OS3 件の記事

OS の記事

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

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

21

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

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

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

14

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