仮想メモリをサポートせずに複数のプロセスをサポートできますか?

仮想メモリをサポートせずに複数のプロセスをサポートできますか?

仮想メモリをサポートせずに複数のプロセスをサポートできますか?それなら、もう少し知りたいです。

ベストアンサー1

ハードウェアサポートがなくても(いいえメモリ管理ユニット)、すべてのポインタは物理アドレスを表します。しかし、一般に、MMUを介して提供されるいくつかの主な機能は失われます。

  • ポインタは常にRAMの特定の位置を指すため、交換はできません(または非常に限られた方法でのみ実行できます)。通常、MMUが指定された仮想アドレスの物理ページを見つけることができない場合、MMUは例外をスローし、オペレーティングシステムによって提供される例外ハンドラがスワップからページを取得します。
  • ポインタはチェックなしで逆参照されるため、各プロセスは他のプロセスのメモリとカーネルメモリにアクセスできます。一般に、MMU が指定された仮想アドレスの物理ページを見つけることができない場合、例外が発生し、オペレーティング システムによって提供される例外ハンドラが間違ったアクセスを試みるプロセスを終了します。
  • 同じポインタは異なるプロセスで同じ意味を持つため、簡単に実装できません。クロス。通常、これが行うことは、forkプロセスの物理メモリをコピーし、同じ仮想アドレスから新しい物理アドレスにマッピングされる新しい仮想メモリを作成することです。

一部のUnixファミリーオペレーティングシステムは、MMUなしでシステムで実行できます。

¹現代のユニスでは、通常これが行われます。怠惰(記録中にコピー)、これは物理ページが見つからないときにMMUに依存して例外を発生させます。

おすすめ記事