記 憶 管 理(1)
-
Upload
sarah-jacobs -
Category
Documents
-
view
29 -
download
0
description
Transcript of 記 憶 管 理(1)
よ く 考 え て み る と プログラム全体をメモリに格納する必要はな
い
プログラムを分割し,実行するのに必要な部分のみをメモリに格納 必要ない部分はディスクなどの補助記憶装
置に格納 実際には,全体をディスクに格納しておき,
必要になった部分だけをメモリに格納する
オ ー バ レ イ(2) A , B , C , D の 4
つの部分(モジュール)からなるプログラム
プログラムの実行開始→ A から
A が B を呼び出す B が終了→ A に戻る
( B は不要になる)
A が C を呼び出す C が終了→ A に戻る
( C は不要になる)
A が D を呼び出す D が終了→ A に戻る A が終了→プログラ
ムの終了
オ ー バ レ イ(3) A が B を呼び出すときに, B をメモリに格
納する
メモリを読み込む単位をオーバレイセグメントと呼ぶ 先の例では,モジュール=オーバレイセグ
メント いくつかのモジュールをひとつのオーバ
レイセグメントとする場合もある
仮 想 記 憶(1) プログラムの分割,メモリへの読み込みを自
動的に行う オペレーティングシステムが行う
実際のメモリよりも,大きな仮想メモリ(仮想記憶)があるようになる
プログラマにメモリの大きさを意識させない
重要!!!
仮 想 記 憶(2) プログラムが格納さ
れている仮想記憶を一定の大きさのページに分割 ページの大きさを
4096 バイトとする
物理的記憶装置(メモリ 実記憶)も同じ大きさのページ枠(ブロック)に分割
仮 想 記 憶(4) ページ表 仮想記憶の各ページに対して
実記憶に格納されている ページ枠の番号又はページ枠の先頭番地
実記憶に格納されていない そのことが分かるような印
ここでは省略しているので注意!
仮 想 記 憶(5) プログラム中でデー
タや命令を参照 データや命令の番地
は 格納されている
ページ番号 そのページの先頭
からの相対番地( 0 ~ 4095 )
前提ページの大きさを
4096としている
ページ 1 の先頭からの相対番地
仮 想 記 憶(8) ページ番号 1 のページ
ページ表を調べると 65536 番地から始まるページ枠
実記憶での番地は 65536 + 2 = 65538 番地 ページ枠の先頭からの番地は,ページの先
頭からの番地と同じ(相対番地)
仮 想 記 憶(9) プログラムの実行に伴いある番地を参照 その番地のページ番号 ページ番号をページ表で調べる 該当ページが実記憶にない
ページフォールトという割込み 該当ページの実記憶への読み込みと
ページ表更新