私は、Silberschatz、Galvin、およびGagneによって、Operating System Conceptsからオペレーティングシステムを研究しています。 229ページPetersonのソリューションは、最新のCPUアーキテクチャで正しく動作しますか?
、本の状態これは約Petersons Solution:
ため、現代のコンピュータ・アーキテクチャは、ロードおよびストアなどの基本的な機械 語命令を実行する方法のため、ピーターソンのソリューションをすることを保証 はありませんそのようなアーキテクチャでは正しく動作します。
私はWikipediaにこれを見て、説明に最も近いように思われる。この発見:
最近のほとんどのCPUは、メモリが実行効率を向上させるためにアクセスする順序を変更。このようなプロセッサは、通常、メモリバリア命令を介して、メモリアクセスのストリーム内で順序付けを強制する何らかの方法を常に与える。メモリアクセスを再順序付けするプロセッサ上でのPeterson'sおよび関連するアルゴリズムの実装は、通常、シーケンシャルオペレーションを間違った順序で起こさないように正しく動作させるために、そのようなオペレーションの使用を必要とする。
これが何を意味しているのか、これが答えでさえ理解できない場合は、メモリアクセスの順序を変更することができます。
なぜ、ピーターソンのソリューションは近代的なアーキテクチャでは動作しないのですか?
ピーターソンのソリューションとは何ですか?どのような問題に解決策がありますか?あなたの質問がStackOverflowに属しているかどうかわからない、それはソースコードに関連していないようだ。 –
@BasileStarynkevitchウィキペディアのページにリンクしました。オペレーティングシステムの概念については、いくつかの質問があります。また、ソフトウェアアルゴリズムの質問は[faq]のようにトピック上にあります。 – asheeshr
この問題についての私の理解は、ロック解除が早すぎる場合と同じです。2番目のプロセスにはアクセス権が与えられますが、最初のプロセスにはまだデータを書き込む(または読み込む)ことができます。これにより、2番目のプロセスで古いデータが使用される可能性があります。 – Moshe