排他制御

2022-09-19 (月) 16:42:58

排他制御

ロックとアンロック

デッドロック

  • 複数のプロセスが無秩序にロック・アンロックをすることで、お互いで資源の解放を待つ状態になること

クリティカルセクション

  • 他のプロセスによる処理を許すと、正しいし結果が得られなくなる部分のこと

セマフォ

  • semaphore
  • 排他制御のメカニズム
  • セマフォ変数(資源の残量を示す変数)と、資源の解放を待っているプロセスの待ち行列で構成される
  • P操作:
    • クリティカルセクションに入る前に行う。
    • セマフォ変数から1減算する
    • 減算後のセマフォ変数が負になった場合、プロセスの実行を中断して待ち行列に入れる
  • V操作:
    • クリティカルセクションに入るタイミングで行う。
    • セマフォ変数に1加算する
    • 増加前のセマフォ変数が負の場合、待ち行列の先頭プロセスを実行可能状態にする

セマフォの種類

  • 2値セマフォ
    • バイナリセマフォ
    • セマフォ変数が0と1の値しか持たないセマフォ
    • 1つのタスクは1つのセマフォ変数しか使わない
  • ゼネラルセマフォ
    • セマフォ変数が複数の値を持つセマフォ
    • 1つのタスクは複数のセマフォ変数を使うことができる

関連用語