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