category
OS・低レイヤ
10 件の記事
FIG-085 パイプとファイルディスクリプタ — 縦棒1本が、何をつなぎ替えているのか 1ステップずつ進めると、土管が1本作られ、左のfd1と右のfd0がつなぎ替わる。行が流れ、stderrだけがパイプに乗らない。 FIG-082 メモリリーク — GCがあるのに、なぜ溢れるのか 機能を実行するたびヒープが埋まる。参照を残すとGCが何度回っても1マスも空かず、手放した瞬間に一気に回収される。 FIG-068 仮想メモリ — 机が足りなければ床に下ろす 4枠しかない物理フレームに8枚の仮想ページをやりくりさせ、ページフォルトとスワップが起きる瞬間を体験する。 FIG-059 スタックとヒープ — 値を渡すか、地図を渡すか コードを1行ずつ実行し、値型のコピーは独立、参照型は同じ実体を共有することを体感する。 FIG-058 プロセスとスレッド — 共有メモリは速いが危ない 2スレッドに共有カウンターを増やさせ、ロック無/有で「失われた更新」が起きる/防げる様子を動かす。 FIG-052 コンパイラとインタプリタ — 先に全部訳すか、その場で訳すか 繰り返し回数スライダーを動かして、起動は速いインタプリタと、回すほど速いコンパイラの逆転を見比べる。 FIG-033 環境変数 — コードを変えずに接続先を切り替える 環境スイッチを切り替えると、同じコードのまま接続先のデータベースだけが変わるのを試す。 FIG-025 CPUキャッシュ階層 — 近いほど速いが、小さい データを要求してL1→L2→L3→RAMの探索を動かし、再アクセスが一瞬になる局所性を体感する。 FIG-021 ガベージコレクション — 辿れないものはゴミ 参照の線を切って、ルートから到達できないオブジェクトがマーク&スイープで回収される様子を動かす。 FIG-014 デッドロック — お互いの一足を待ち続ける2人 2つのスレッドにロックを取らせて膠着を再現し、発生4条件と防ぎ方を体感する。