今日は同期について読んでいました。クリティカル セクションの問題に対するピーターソンのソリューションがソフトウェア ベースのソリューションであることを読んだ後、私は少し混乱しています。ここで私の質問は次のとおりです。「ソフトウェアベースのソリューション」とはどういう意味ですか?
質問する
6396 次
2 に答える
3
クリティカル セクションの問題を解決し、相互排除を強制するには、いくつかのアプローチがあります
。まず、ソフトウェア ベースのソリューションです。このソリューションは、クリティカル セクションを保護するために、 Peterson アルゴリズム、Dekker のアルゴリズム、Lamport のベーカリー アルゴリズム(複数のプロセス用)などのアルゴリズムに基づいています。これらのソリューションは、メモリ アクセス レベルでの基本的な相互排除のみを想定しています。これを超えると、ハードウェア、OS、またはプログラミング言語でのサポートは想定されていません。
ソフトウェアがアプローチする主な問題は、高いプロセス オーバーヘッドと論理エラーのリスクです (Stallings による OS 内部情報に基づく) 。ソフトウェア ソリューションのほかに、割り込みの無効化など
のハードウェア ソリューションもあります。Compare&Swap 命令と Exchange 命令。これらのソリューションはビジー待機を採用しており、飢餓とデッドロックの可能性があります。
相互排除を強制するもう 1 つのパラダイムは、OS とプログラミング言語によって実装されるメカニズムであるセマフォとモニターを使用することです。
于 2012-08-05T08:20:12.000 に答える