偽の共有とは何ですか?

誤った共有は、実行中の2つのアプリケーションが同時に、各プログラムまたはプロセスが独自のキャッシュに保存しているのと同じ論理メモリ領域の情報にアクセスしようとする場合に、コンピュータープログラムで発生する可能性のある状況です。各アプリケーションのキャッシュのデータは共通のソースからコピーされるため、1つのキャッシュを変更すると、他のキャッシュをソースからリロードする必要があります。共有の誤った側面は、1つのプログラムによるキャッシュラインに加えられた変更が実際に使用しているデータに実際に影響しない場合に発生します。その場合、キャッシュを再ロードすることはシステムリソースの無駄であり、プログラムのパフォーマンスに悪影響を与える可能性があります。誤った共有の問題は、アプリケーションに含まれるコードの直接的な結果ではないため、検出が困難です。

誤った共有が発生する主な理由の1つは、オペレーティングシステムまたはハードウェアが読み取りと書き込みデータをどのように処理するかに見られることです。ハードディスクまたは他のソースからの情報がプログラムによって読み取られたり書かれたりしている場合、通常は一時的なキャッシュにロードされるため、迅速にアクセスできます。ソースの位置からキャッシュされた情報の量はキャッシュラインと呼ばれ、通常は2バイトから256バイトの長さになる可能性のあるメモリの論理ブロックです。一部のオペレーティングシステムまたはシステムアーキテクチャでは、並列処理など、プログラムが同時に実行できます。これは、2つの個別のプログラムが同じキャッシュラインで情報にアクセスしようとすることが可能であるため、各プログラムにはソースデータの独自のコピーがあり、1つのキャッシュの変更が他のキャッシュに反映されない可能性があり、保持しているデータを無効にします。

HAに使用される多くのメカニズムがあります2つのプログラムが同じキャッシュラインにアクセスしようとした場合の状況をnledしますが、結果は最も頻繁に、1つのプログラムが他のプログラムが変更した更新された情報でキャッシュをリロードすることを余儀なくされます。このタイプのインシデントは、各プログラムがアクセスしているキャッシュライン内のデータが関連していない場合に誤った共有として知られているため、1つのプログラムにキャッシュをリロードすることは、処理能力やその他のリソースの無駄です。これは、キャッシュ内の情報を変更しないプログラムにとって最も多くの場合問題であるため、他のプロセスが行ったアプリケーションの上書きの変更のリスクはありません。

誤った共有の影響を防止または軽減するために、2つの一般的な方法が存在します。 1つ目は、メモリ内のデータの前後に空白の情報を追加し、本質的に別のプログラムからアクセスされていない別のキャッシュラインに強制することです。 2番目の方法は、読み取りと書き込みの頻度をキャッシュラインに制限することです。e可能な限り。より複雑なソリューションには、キャッシュレベルの管理や、オペレーティングシステムが共有を処理する方法の変更が含まれます。

他の言語

この記事は参考になりましたか? フィードバックをお寄せいただきありがとうございます フィードバックをお寄せいただきありがとうございます

どのように我々は助けることができます? どのように我々は助けることができます?