排他制御
2022-09-19 (月) 16:42:58
排他制御 †
ロックとアンロック †
デッドロック †
- 複数のプロセスが無秩序にロック・アンロックをすることで、お互いで資源の解放を待つ状態になること
クリティカルセクション †
- 他のプロセスによる処理を許すと、正しいし結果が得られなくなる部分のこと
セマフォ †
- semaphore
- 排他制御のメカニズム
- セマフォ変数(資源の残量を示す変数)と、資源の解放を待っているプロセスの待ち行列で構成される
- P操作:
- クリティカルセクションに入る前に行う。
- セマフォ変数から1減算する
- 減算後のセマフォ変数が負になった場合、プロセスの実行を中断して待ち行列に入れる
- V操作:
- クリティカルセクションに入るタイミングで行う。
- セマフォ変数に1加算する
- 増加前のセマフォ変数が負の場合、待ち行列の先頭プロセスを実行可能状態にする
セマフォの種類 †
- 2値セマフォ
- バイナリセマフォ
- セマフォ変数が0と1の値しか持たないセマフォ
- 1つのタスクは1つのセマフォ変数しか使わない
- ゼネラルセマフォ
- セマフォ変数が複数の値を持つセマフォ
- 1つのタスクは複数のセマフォ変数を使うことができる