2

I Googled for a long time but I still don't understand how it works as most of the explanation are very technical and there are no illustrations to make it clearer. My primary confusion is that what is its'difference with virtual memory?

I hope this question will have a very good explanation here so that other people who ask the same question can find it here when they Google it.

4

2 に答える 2

2

に案内します

http://en.wikipedia.org/wiki/Virtual_memory

http://en.wikipedia.org/wiki/Segmented_memory

セグメンテーションは消滅し始めています。ページングも将来的に同様になると思います。

編集:説明を追加させてください

セグメンテーションとページングは​​、メモリ管理の 2 つの異なる手段ですが、通常は 2 つのことを行います。単純化しすぎるリスクがあります。

  1. セグメンテーションにより、プロセスは、本来のポインタ サイズよりも多くのメモリにアクセスできます。

  2. ページングにより、プロセスは、システムが物理的にサポートするよりも多くのメモリにアクセスできます。

セグメント:

PDP-11 は 16 ビット システムでした。これにより、64K のメモリをアドレス指定できます。後期の PDP-11 システムには、それよりもはるかに多くのメモリが搭載されていました。プロセスは、物理メモリのさまざまなセグメントをその 64K にマップできます。プロセスは 64K のメモリにしかアクセスできませんでしたが、その 64K 内でアクセスできるメモリを変更できました。

8086 とその後継機は、セグメンテーションを高度な技術にもたらしました。ベースレジスタのさらに複雑なシステムを使用すると、プロセスはより大きなメモリ領域にアクセスできます。

ページング: プロセスが、ページに分割された連続した (または比較的) 範囲のメモリ アドレスを参照するシステムです。たとえば、VAX プロセッサには 32 ビット アドレス (理論的には 4GB のメモリにアクセスできる) がありましたが、コンピュータには通常 8、16 32MB のメモリがありました。プロセスは、システムが物理的に持っているよりもはるかに多くのメモリ (および複数のプロセス) にアクセスできます。

これらのシステムは、ページ (約 512 ~ 2048 バイト) に分割され、一連のテーブルによって定義され、ディスク ストレージにマップされたプロセス (仮想メモリ) の連続した範囲を提示しました。プロセスがメモリ内にないページにアクセスすると、ハードウェア例外がトリガーされました。オペレーティング システムはその例外をインターセプトし、物理メモリの新しいページを割り当て、ディスクからメモリをロードしてから、命令を再開します。

オペレーティング システムがこれらの要求を処理するためにより多くのメモリを必要とする場合、既に読み込まれているメモリをページ アウトします。データが読み取り専用の場合、通常、これは実行可能イメージからロードされ、ページアウトする必要はありません。ページが無効としてマークされる可能性があります。読み取り/書き込みメモリの場合、ページは再度必要になるまで保存するためにページ ファイルに書き込まれます。

32 ビット Intel チップは、セグメントとページングを組み合わせた奇妙なシステムを導入しました。セグメントはデータ保護に使用されました。64 ビット プロセッサ モードでは、それがなくなります。

于 2014-05-11T00:44:06.977 に答える