OS7 件の記事

OS の記事

UNIXシグナルとプロセスのライフサイクル - fork/exec/waitからゾンビ、PID 1問題、graceful shutdownまで

UNIXシグナルとプロセスのライフサイクル - fork/exec/waitからゾンビ、PID 1問題、graceful shutdownまで

約46分

UNIXのプロセスが生まれてから刈り取られるまでを、fork/exec/wait、終了ステータス、ゾンビと孤児、SIGTERMやSIGKILLなどのシグナル、async-signal-safe、コンテナのPID 1問題とtini、Kubernetesの終了フロー、Node.jsとPythonのgraceful shutdown実装まで一次ソース付きで解説します。

CPUスケジューラの仕組み - 古典アルゴリズムからCFS、EEVDF、sched_extまで

CPUスケジューラの仕組み - 古典アルゴリズムからCFS、EEVDF、sched_extまで

約46分

CPUスケジューラの仕組みを、スループット・レイテンシ・公平性のトレードオフ、FIFOやMLFQなどの古典アルゴリズム、LinuxのCFSからEEVDFへの移行、sched_ext、スケジューリングクラス、cgroupのcpu.maxによるスロットリング、観測方法まで一次ソース付きで解説します。

ファイルシステムの仕組み 徹底解説 - inode・ジャーナリング・ページキャッシュ

ファイルシステムの仕組み 徹底解説 - inode・ジャーナリング・ページキャッシュ

約63分

ファイルを開いて書き込んで閉じるまでにカーネルとディスクで何が起きているのかを、VFS・inode・ディレクトリエントリ・エクステント・ページキャッシュ・ext4のジャーナリング・CoWファイルシステムまで順に追います。man7.orgとkernel.orgの一次情報に加え、実機のext4とmacOSで測った出力例を添えて解説します。

排他制御とデッドロック 入門 - ミューテックス・セマフォから食事する哲学者まで

排他制御とデッドロック 入門 - ミューテックス・セマフォから食事する哲学者まで

約21分

レースコンディションはなぜ起きるのか、から始めて、クリティカルセクション・相互排他・ミューテックス・セマフォ(生産者消費者問題)・条件変数・スピンロックを整理します。デッドロックのCoffman4条件と食事する哲学者の問題、予防・回避(銀行家のアルゴリズム)・検出の違い、ライブロックとスターベーション、ロック順序統一やタイムアウトなど実務の回避策を、C++・Python・Go・Javaの同期プリミティブのコード例つきで解説します。

並行処理と並列処理 入門 - プロセス・スレッド・非同期の違い

並行処理と並列処理 入門 - プロセス・スレッド・非同期の違い

約15分

並行(concurrency)と並列(parallelism)の違いから、プロセスとスレッド、非同期・ノンブロッキングI/Oまでを入門者向けに整理します。Rob Pikeの定義、メモリ空間の分離と共有、コンテキストスイッチ、I/OバウンドとCPUバウンドの見分け、PythonのGIL・JavaScriptのイベントループ・Goのgoroutine、レースコンディションとデッドロックの触りまで、各言語の公式ドキュメントを一次ソースにコード例つきで解説します。