ブロッキング(計算)


Blocking_(computing)

メモリアクセスの最適化手法については、ループブロッキングを参照してください 計算、処理が実行されているコンピュータプログラムのインスタンスです。プロセスは常に正確に1つのプロセス状態で存在します。ブロックされているプロセスとは、リソースが使用可能になったり、I / O操作が完了したりするなどのイベントを待機しているプロセスです。
ではマルチタスクコンピュータシステム、個々のタスク、または実行スレッド、システムのリソースを共有しなければなりません。共有リソースには、CPU、ネットワークとネットワークインターフェイス、メモリとディスクが含まれます。
あるタスクがリソースを使用している場合、通常、別のタスクがそのリソースにアクセスすることは不可能であるか、望ましくありません。この同時使用を防ぐために、相互排除の手法が使用されます。他のタスクがブロックされると、最初のタスクが共有リソースの使用を終了するまで実行できません。
プログラミング言語とスケジューリングアルゴリズムは、全体的な効果のブロックを最小限に抑えるように設計されています。ブロックするプロセスは、ローカルの作業タスクの進行を妨げる可能性がこの場合、「ブロッキング」はしばしば望まれないものとして見られます。ただし、そのような作業タスクは、代わりに独立したプロセスに割り当てられている可能性があり、スケジューリングが続行されるため、一方を停止しても他方にはほとんど影響がありません。例としては、他の部分を受動的に待機する(ポーリングやスピンループがない)ことがチャネルのセマンティクスの一部である「チャネルでのブロック」が正しく設計されたこれらのいずれかを使用して、リアクティブシステムを実装できます。
デッドロックとは、プロセスが循環的に互いに病理学的に待機することを意味します。そのため、ブロッキングとは直接関連し
プロセスが待機している(「ブロックされている」)イベントが発生すると、プロセスはブロックされた状態から実行可能などの差し迫った状態に進みます。

も参照してください
並行コンピューティング
データの依存関係
デッドロック
ノンブロッキングアルゴリズム
競合状態
スケジューリング(計算)

参考文献
^ Stallings、William(2004)。オペレーティングシステム:内部および設計原則(第5版)。プレンティスホール。
^ ++および2012年以降:ハーブサッター-C ++の同時実行性 ^ RobPikeによる同時実行パターンを実行します
Stub
  このオペレーティングシステム関連