オペレーティングシステム〜高速キャッシュテクノロジーのアイデアと仮想アドレスメモリテクノロジーのアイデア

従来のメモリ管理のデメリット

** 1回限り:**ジョブの実行を開始する前に、ジョブを一度にメモリにロードする必要があります。これにより、次の2つの問題が発生します
。①ジョブが非常に大きい場合、メモリに完全にロードできず、大きなジョブの実行に失敗します
。②メモリがすべてを保持できないため、多数のジョブを実行する必要がある場合。ジョブの場合、実行できるジョブの数が少ないため、複数のジョブが発生します。プログラムの同時実行性が低下します。

レジデンシー:ジョブがメモリにロードされると、ジョブが完了するまで、それはメモリに留まります。実際、一定期間内に、ジョブのデータのごく一部にアクセスするだけで正常に実行できるため、メモリ内に一時的に未使用のデータが大量に発生し、貴重なメモリリソースが浪費されます。

上記の問題を解決するために、局所性の原則に従って仮想メモリ技術が導入されています

局所性の原則

時間の局所性:プログラム内の特定の命令が実行されると、この命令はすぐに再実行される可能性があります。特定のデータがアクセスされた場合、そのデータはすぐに再びアクセスされる可能性があります。(プログラムにはたくさんのループがあるため)

空間的局所性:プログラムが特定のストレージユニットにアクセスすると、近くのストレージユニットにすぐにアクセスされる可能性が非常に高くなります。(大量のデータが連続してメモリに格納され、プログラムの命令も順次メモリに格納されるため)

仮想メモリの定義と特徴

局所性の原則に基づいて、プログラムをロードすると、プログラムですぐに使用される部分をメモリにロードし、一時的に使用されていない部分を外部メモリに残してプログラムを実行できます。

プログラム実行プロセスでは、アクセスされた情報がメモリにない場合、オペレーティングシステムが必要な情報を外部ストレージからメモリに転送し、プログラムの実行を続行します。

メモリスペースが十分でない場合、オペレーティングシステムは、メモリ内の一時的に未使用の情報を外部メモリにスワップアウトする責任があります。
オペレーティングシステムの管理下では、仮想メモリである実際のメモリよりもはるかに大きなメモリがあるように見えます。

ここに画像の説明を挿入します
仮想メモリには、次の3つの主な特徴があります。
反復性:ジョブの実行時に一度にメモリにロードする必要はありませんが、メモリへの複数の転送に分割できます。
交換可能性:ジョブの実行中に常にメモリに常駐する必要はありませんが、実行中のプロセス中にジョブをスワップインおよびスワップアウトできます。
仮想性:メモリ容量は論理的に拡張されているため、ユーザーに表示されるメモリ容量は実際の容量よりもはるかに大きくなります。

キャッシュテクノロジーのアイデア

プログラムの局所性の原則に従って、近い将来頻繁にアクセスされるデータは高速メモリに配置され、一時的に使用されないデータは低速メモリに配置されます。

たとえば、次のコードでは、whileループを実行すると、配列aのすべてのデータをキャッシュに読み込むことができます。
ここに画像の説明を挿入します

おすすめ

転載: blog.csdn.net/Shangxingya/article/details/113813724
おすすめ