クリティカル セクションは、同時プロセスで共有変数にアクセスするプログラム セグメントを指します。クリティカル セクションとは、共有リソースにアクセスするプログラムの断片を指します。これらの共有リソースには複数のスレッドが同時にアクセスすることはできません。クリティカルセクションに入ることができるのは一度に 1 つのプロセスのみであり、入った後は他のプロセスが入ることはできません。
このチュートリアルの動作環境: Windows 7 システム、Dell G3 コンピューター。
クリティカル セクションは、同時プロセスで共有変数にアクセスするプログラム セグメントを指します。
クリティカル セクションの概要
クリティカル セクションとは、共有リソース (共有デバイスや共有メモリなど) にアクセスするプログラム フラグメントを指します。複数のスレッドが同時にリソースにアクセスすることはできません。スレッドがクリティカル セクションに入ると、他のスレッドまたはプロセスは待機する必要があります (例: 制限付き待機待機メソッド) これらの共有リソースが確実に使用されるように、クリティカル セクションの入り口と出口にいくつかの同期メカニズムを実装する必要があります。例: セマフォが使用されます。プリンターなど、単一のスレッドによってのみアクセスできるデバイス。
クリティカル リソースにアクセスする各プロセスのコード セクションは、クリティカル セクションと呼ばれます (クリティカル リソースは、一度に 1 つのプロセスのみが使用を許可される共有リソースです)。クリティカルセクションに入ることができるのは一度に 1 つのプロセスのみであり、入った後は他のプロセスが入ることはできません。ハードウェアクリティカルなリソースであっても、ソフトウェアクリティカルなリソースであっても、複数のプロセスが相互にアクセスする必要があります。
複数のプロセスで同じクリティカル リソースが関与するクリティカル セクションを、関連クリティカル セクションと呼びます。 .
クリティカル セクションに入るプロセスのスケジューリング原則:
1. アイドル状態のクリティカル セクションに入るように要求しているプロセスが複数ある場合、許可されるプロセスは 1 つだけです一度に入力します。
2. クリティカル セクションには常に複数のプロセスが存在することはできません。プロセスが独自のクリティカル セクションに入った場合、クリティカル セクションに入ろうとしている他のすべてのプロセスは待機する必要があります。
3. クリティカル セクションに入るプロセスは、他のプロセスが時間内にクリティカル セクションに入ることができるように、制限時間内に終了する必要があります。
4. プロセスが独自のクリティカル セクションに入ることができない場合は、プロセスの「ビジー待機」現象を避けるために CPU を放棄する必要があります。
関連するおすすめ: 「プログラミング ビデオ 」
以上がクリティカルセクションは、同時プロセスでアクセスされる共有変数を指します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。