2017-08-03 15 views

答えて

3

TL; DR:はい、仮想メモリはページングなしで存在することができます。


非常に簡単な検索ではthisが生成されます。

仮想メモリは、仮想アドレスと呼ばれるプログラムで使用されるメモリアドレスをコンピュータメモリの物理アドレスにマッピングするメモリ管理技術です。

これらのアドレスは固定サイズである必要はありません。


Paging:

によってコンピュータ格納メモリ管理方式であり、メインメモリで使用するための二次記憶装置からデータを取得します。この方式では、オペレーティングシステムは、ページと呼ばれる同じサイズのブロックでセカンダリストレージからデータを取得します。

+0

私は概念を知っています。しかし、私は彼らが別々に存在するかどうかを知りたい – helloansuman

+0

@helloansumanページングは​​仮想メモリなしでは存在できませんが、仮想メモリはページングなしで存在する可能性があります。 –

+0

どうすればそれが可能か説明できますか? @トニー – helloansuman

2

質問に対する回答は、「仮想メモリ」の定義方法によって異なります。 「アプリケーションが認識するアドレス」と同じように定義すると、ページメモリなしで仮想メモリが存在する可能性があります。

ページングに先立ち、システムはユーザープロセスを分離するためにセグメンテーションを使用しました。簡単な言葉で言えば、すべてのプロセスには独自のセグメントがあります。 「見える」すべてのアドレスはセグメント内のオフセットだけです。ハードウェアは、アプリケーションによって要求されたアドレスにセグメントベースを暗黙的に追加して物理アドレスを取得します。ページテーブルのように、セグメントベースはカーネルによってのみ変更可能であり、同時にプロセス間でメモリの一部を共有するためのスコープを許可しながら、同時にプロセス用のメモリを分離することができます。

セグメントには、すべてのアクセスの前にチェックされる制限があり、ユーザーが非常に大きなオフセットを使用せず、他のプロセスに流出しないようにします。

セグメンテーションサポートはセグメント・レジスタが存在しない2つのだけのセグメントが%fs%gsが存在し続けるレジスタ常に0に設定されているインテルX86_64アーキテクチャから削除されました。しかし、それらの制限チェックはハードウェアでは実行されません。これらのセグメントは現在、スレッドローカルストレージ用にOSによって使用されています。

+0

ありがとうございます。この回答は役に立ちます。 – helloansuman

関連する問題