• ベストアンサー

オーバレイ方式と仮想記憶システムの違い

オーバレイ方式は容量が大きくて、一度にローディングできないプログラムをセグメントに分割して必要なセグメントだけをロードして実行する方式。 仮想記憶システムはプログラムを分割して、必要な部分だけを主記憶装置にロードする。 オーバレイ方式は実記憶管理らしいのですが、上記のような感じに考えるとオーバレイ方式も仮想記憶管理になるような気がするのですが、何がどう違うのですか?

質問者が選んだベストアンサー

  • ベストアンサー
  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.2

No.1の補足です。 > 仮想記憶システムはプログラムを分割して、必要な部分だけを主記憶装置にロードする。 > オーバレイ方式は実記憶管理らしいのですが、上記のような感じに考えると > オーバレイ方式も仮想記憶管理になるような気がするのですが、何がどう違うのですか? 仮想記憶の説明が中途半端で確かに紛らわしいですね。 仮想記憶の場合、すでに説明したように、プログラムの分割も必要な部分のメモリーへの ロードも全てハードとOSがアプリケーションに気づかせる事無く勝手に行ないます。 オーバレイ方式ではこれを全てアプリケーションがやらないといけないのです。 次にオーバレイ方式が仮想記憶管理でない証拠をお見せしましょう。 オーバレイ構造の図を使いましょう。 参考URLがdocファイルなのでここにURLを載せられません。 Googleで「コンピュータシステム入門 オーバレイ構造」で検索してください。 問14にオーバレイ構造図があります。 このプログラムの本当の大きさは(A+B+C+D+E+F+G)です。 しかし、実際に使うメモリーの大きさは(A+B+D+F)のように小さいです。 一方、このプログラムを仮想記憶で動かす時には使う仮想メモリーの大きさは (A+B+C+D+E+F+G)です。 使われる実記憶はこれよりも少ないはずですが実際にいくら使うかは アプリケーションはノータッチです。 このようにアプリケーションから見た使用メモリー量と実際に使われるメモリー量の間に 差があるものが仮想記憶管理と言われるのです。

082
質問者

お礼

お礼が遅くなりまして、すいません。 とても、わかりやすい回答ありがとうございました。

その他の回答 (2)

  • kfir2001
  • ベストアンサー率35% (163/455)
回答No.3

ymmasayanさんが、回答されているとおりです。 オーバーレイ方式では、分割されたセグメント同士は同時に主記憶に存在しません。 一方仮想記憶システムでは、必要な部分が自動的に主記憶にロードされます。任意の部分が同時に主記憶に存在できます。 最近のコンピューターでは、オーバーレイ方式なんて使うことはないでしょう。例外はゲーム機で、場面が進むごとにプログラムをDVDからロードしていくようになっています。

082
質問者

お礼

回答ありがとうございました。 また、お世話になることがありましたら よろしくお願いします。

  • ymmasayan
  • ベストアンサー率30% (2593/8599)
回答No.1

まず仮想記憶システムは 1.ハードとOSで全て管理している。従ってアプリケーションは記憶管理にノータッチ 2.仮想アドレスと言うものが使用される 一方、オーバーレイ方式は 1.記憶管理はアプリケーションとOSという完全なソフトレベルで行なう 2.セグメント分割とセグメントのローディングタイミングの管理は当然アプリケーションの仕事 3.仮想アドレスは使用しない。 4.仮想アドレス方式でない計算機上でもオーバーレイ方式は使える。 > オーバレイ方式も仮想記憶管理になるような気がするのですが、何がどう違うのですか? オーバーレイ方式はあくまでも実アドレスをベースにメモリーの節約を考えているのでこれは仮想アドレス方式とはいえません。 もし、判りにくければ補足してください。

関連するQ&A