メモリ不足の問題を軽減するために、仮想メモリの出現、
技術的なカバレッジ:
目的:小さなに大きなプログラムメモリを実行するために、一般的なストレージ管理と組み合わせて使用、マルチプログラミングシステムで使用されます。
原理:手順は、いくつかの機能的に独立したプログラムモジュールに分割し、自身の論理構造によれば、そのモジュールは、実行された時間に応じて、共有メモリ領域と同時に実行されることはありません。
図1に示すように、必要な部分(共通機能)コードおよびデータ常駐メモリ。
メモリにロードされた他のプログラムモジュール2、オプションの部分(関数は使用されません)。
3、モジュール、すなわちモジュール共有A互いを覆うように、同時にメモリにロードされた存在しない関係を呼び出す必要はありません
パーティション。
要約:オーバーレイ技術は、外部メモリモジュールに使用されていないプログラム、用いられる永久メモリモジュールを、分割するときに特定のメモリブロックに対応するロードモジュール、他のプログラムに対応するモジュールあなたは珍しいモジュールを実行するために呼び出す際に、インストール
プログラムモジュールは、特定のモジュールカバーの前にメモリブロックにロードされたプログラムの後ろに、特定のメモリブロックにロードされます
特定のメモリブロックがモジュールにロードされます。(すなわち、異なるプログラムの特定のメモリブロックは、対応するプロシージャ・コールを提供するために、カバレッジローディングを達成するモジュール。)
AはBとC呼び出しが、BとCの間のコールではない関係を行い、その後そうD、E、E、BおよびCは、同一のカバレッジエリア内に配置され、コールが互いにD EFに関係なくありますこれは、同じカバレッジエリアに配置することができます。また、関係が調整することにより、全体的なフットプリントを最適化するために存在していないモジュールの呼び出し関係をグループ化することができます。
短所:
複素除算モジュール(場合、カバーは、プログラマブルモジュールが指定されてもよいです)。
スワップアウトされ、時間がかかります。
技術の切り替え:
目標:メモリ内のマルチチャネル・プログラムは、そのプログラムは、より多くのメモリリソースを取得するために、実行中のプログラムまたは実行する必要があること。
方法:
1、プログラムは、メモリの空き容量を取得するために、外部メモリを実行するために一時的にできないことがあります。
図2に示すように、オペレーティング・システムは、外部メモリ(スワップアウトアウトスワップ)にプロセスのアドレス空間全体の内容を保存し、プロセスの外部メモリアドレス空間は、(スワップ)メモリに読み込まれ、入れ替えプログラム全体のアドレス空間の内容のサイズ。
いくつかの問題を達成するための技術の交換:
起こる交換するとき:交換時期を決定するために、1、?十分なスペースまたは十分に危険がないときにだけメモリをスワップアウト。
2、スワップ領域のサイズ:これらのことができるようにしなければならない:すべてのユーザがメモリイメージのコピーのすべてを処理し保持するために十分な大きさでなければなりません
メモリイメージへのダイレクトアクセス。
3、程序换入时的重定位:换出后再换入的内存位置一定要在原来的位置上吗?最好采用动态映射的方法。
交换技术和覆盖技术的比较:
1、覆盖技术只能发生在那些相互之间没有调用关系的程序模块之间,因此程序员必须给出程序内各个模块之间的逻辑覆盖关系(发生在同一个程序内)。
2、交换技术是以内存中的程序大小为单位来进行的,他不需要程序员给出各个模块之间的逻辑覆盖结构,换言之,交换发生在内存中程序之间,而覆盖则发生在运行程序的内部。
虚存技术:
局部性原理:包括时间局部性和空间局部性,可以根据内存的局部性原理来优化代码,提高代码执行效率。
时间局部性:如果程序中的某一条指令一旦执行,则不久后该指令可能再次被执行;如果某数据被访问,则不久之后该数据可能再次被访问。
空间局部性:一旦程序访问了某个存储单元,则不久之后,其附近存储单元也将被访问。
虚存技术--基本特征
1、大的用户空间:通过把物理内存与外存相结合,提供给用户的虚拟内存空间通常大于实际的物理内存,即实现了这两者的分离。如32位的虚拟内存地址理论上可以访问4GB,而可能计算机上仅有256M的物理内存,但硬盘容量大于4GB.
2、部分交换:与交换技术相比,虚拟存储的调入和调出是对部分虚拟地址空间进行的。
3、不连续性:物理内存分配的不连续性,虚拟地址空间使用的不连续性(如上图彩色部分)。
————————————————
原文链接:https://blog.csdn.net/hello_java_Android/article/details/89971664