記 憶 管 理(1)

22
記 記 記 記(1) 記記記記記記記記記記記記 記9記

description

記 憶 管 理(1). オペレーティングシステム 第 9 回. 記 憶 管 理 と は. プログラムの実行開始時に必要なメモリを割り当てる 実行終了時にメモリを解放する 別のプログラムに割り当てられるようにするため 他の機能もある. 大 き な 問 題. プログラムを実行するためには,メモリに格納する メモリの大きさよりも,大きなプログラムを実行することはできない メモリを大きくしても,それより大きなプログラムを実行したくなる. よ く 考 え て み る と. プログラム全体をメモリに格納する必要はない - PowerPoint PPT Presentation

Transcript of 記 憶 管 理(1)

記 憶 管 理(1)

オペレーティングシステム第 9 回

記 憶 管 理 と は プログラムの実行開始時に必要なメモリを割

り当てる

実行終了時にメモリを解放する 別のプログラムに割り当てられるように

するため

他の機能もある

大 き な 問 題 プログラムを実行するためには,メモリに格

納する

メモリの大きさよりも,大きなプログラムを実行することはできない

メモリを大きくしても,それより大きなプログラムを実行したくなる

よ く 考 え て み る と プログラム全体をメモリに格納する必要はな

プログラムを分割し,実行するのに必要な部分のみをメモリに格納 必要ない部分はディスクなどの補助記憶装

置に格納 実際には,全体をディスクに格納しておき,

必要になった部分だけをメモリに格納する

オ ー バ レ イ(1) プログラムの分割方法や,実行に必要な部分

の指示を利用者(プログラマ)が行う

overlay 重ね割付け

オ ー バ レ イ(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 をメモリに格

納する

メモリを読み込む単位をオーバレイセグメントと呼ぶ 先の例では,モジュール=オーバレイセグ

メント いくつかのモジュールをひとつのオーバ

レイセグメントとする場合もある

オ ー バ レ イ(4)この大きさのメモリがあれば,実行でき

オ ー バ レ イ(5) プログラムの分割と必要な部分の指示はプロ

グラマが行わなければならない

プログラムのことは,プログラムを作った者がよく知っているはず

しかし,易しいことではない

仮 想 記 憶(1) プログラムの分割,メモリへの読み込みを自

動的に行う オペレーティングシステムが行う

実際のメモリよりも,大きな仮想メモリ(仮想記憶)があるようになる

プログラマにメモリの大きさを意識させない

重要!!!

仮 想 記 憶(2) プログラムが格納さ

れている仮想記憶を一定の大きさのページに分割 ページの大きさを

4096 バイトとする

物理的記憶装置(メモリ 実記憶)も同じ大きさのページ枠(ブロック)に分割

仮 想 記 憶(3) 仮想記憶はディスク

などの補助記憶装置に格納

プログラムの実行に伴い,必要なページのみを実記憶のページ枠に格納

仮 想 記 憶(4) ページ表 仮想記憶の各ページに対して

実記憶に格納されている ページ枠の番号又はページ枠の先頭番地

実記憶に格納されていない そのことが分かるような印

ここでは省略しているので注意!

仮 想 記 憶(5) プログラム中でデー

タや命令を参照 データや命令の番地

は 格納されている

ページ番号 そのページの先頭

からの相対番地( 0 ~ 4095 )

前提ページの大きさを

4096としている

ページ 1 の先頭からの相対番地

仮 想 記 憶(6) 仮想記憶の 4098 番地

ページ番号が 1 で,相対番地が 2 である(相対番地は 0 ~ 4095 : 12 ビット)

仮 想 記 憶(7) 仮想記憶のページ 1

が, 65536 番地から始まるページ枠に格納

仮想記憶の 4098 番地の実記憶での番地

4098 番地は

ページ1の2番地

仮 想 記 憶(8) ページ番号 1 のページ

ページ表を調べると 65536 番地から始まるページ枠

実記憶での番地は 65536 + 2 = 65538 番地 ページ枠の先頭からの番地は,ページの先

頭からの番地と同じ(相対番地)

仮 想 記 憶(9) プログラムの実行に伴いある番地を参照 その番地のページ番号 ページ番号をページ表で調べる 該当ページが実記憶にない

ページフォールトという割込み 該当ページの実記憶への読み込みと

ページ表更新

仮 想 記 憶(10) 空いているページ枠がない

使用中のページ枠を空けて,そこに読み込む

空けるページ枠の決め方 ページ置換えアルゴリズム 次回

仮 想 記 憶(11) あるページがいつも,同じページ枠に格納

されるとは限らない 格納されるたびに変わると考えるべき

番地を参照するたびに,番地の計算を行う 動的番地変換

仮 想 記 憶(12) 仮想記憶や実記憶を同じ大きさに分割する

方式をページ方式

セグメント方式と呼ばれるものもある