計算機システム概論・4回目

29
計計計計計計計計計 計計 計計計計計計計 計計計計計計計計計計計 計計計計計計計計計 OS 計計計 計計計計計計計計計計計計 計計計計計計計計計計 計計計計計計計計 1

Upload: quyn-burnett

Post on 31-Dec-2015

19 views

Category:

Documents


0 download

DESCRIPTION

計算機システム概論・4回目. 本日のトピック:メモリの管理と仮想記憶 メモリ管理における OS の役割 メモリの割当方法について ページングと補助記憶 仮想記憶に ついて. メモリ管理における OS の役割. メモリ(主記憶装置): プロセッサと情報をやりとりできる唯一の装置 プログラムや計算の途中経過,結果などを格納 プロセスに 何かをさせようとすると,必ず メモリが必要 有限の容量しかない 複数のプロセスに対し,メモリを配分する仕組みが必要 ...OS のお仕事. 実現したい仕組み. OS とプロセスの間で,「 メモリの貸し借り 」を行う仕組みが必要 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 計算機システム概論・4回目

計算機システム概論・4回目

本日のトピック:メモリの管理と仮想記憶メモリ管理における OS の役割メモリの割当方法についてページングと補助記憶仮想記憶について

1

Page 2: 計算機システム概論・4回目

メモリ管理における OS の役割

メモリ(主記憶装置):プロセッサと情報をやりとりできる唯一の装置プログラムや計算の途中経過,結果などを格納プロセスに何かをさせようとすると,必ずメモリが必要有限の容量しかない

複数のプロセスに対し,メモリを配分する仕組みが必要...OS のお仕事

2

Page 3: 計算機システム概論・4回目

実現したい仕組み

OS とプロセスの間で,「メモリの貸し借り」を行う仕組みが必要

プロセスは, OS からメモリを借りるメモリを「割当て」てもらう

借りたメモリが不要になったとき, OS にメモリを返す

メモリを「解放する」

3

プロセス

プロセス OSメモリ管理機構

要求

割当

解放

メモリ

Page 4: 計算機システム概論・4回目

メモリ管理機構の仕事

メモリ管理機構が行うべき仕事:メモリの貸し出し状況把握

どのプロセスに,メモリのどの部分を貸し出しているかメモリの中で,利用可能な部分(未使用領域)はどこか

割当要求への対処未使用領域のどこを切り取って,プロセスに貸し出すか

プロセス(仮想計算機)のアドレス解決プロセスから見える仮想的な住所(アドレス)と,

実メモリのアドレスとの対応付けを行う

4

Page 5: 計算機システム概論・4回目

メモリの使用状況

メモリの貸し出し状況把握とは ...どのプロセスに,メモリのどの部分を貸し出しているかメモリの中で,利用可能な部分(未使用領域)はどこか

を管理,把握すること

5

プロセス1プロセス2プロセス3

プロセス4プロセス5

貸出中の領域未使用の領域

OS

Page 6: 計算機システム概論・4回目

状況把握の方法

どのプロセスに,メモリのどの部分を貸し出しているかプロセスごとに,どの領域を使っているか記録しておく

6

• レジスタ状態• メモリの開始アドレス• 使用メモリサイズ

 :プロセス

メモリの中で,利用可能な部分(未使用領域)はどこか連結リスト,双方向リストなどを利用して記憶しておく

...連結リスト:

...双方向リスト:

Page 7: 計算機システム概論・4回目

未使用領域の管理方式例

サイズの昇順(降順)で連結することも可能上図は連結リストとしての実現.双方向リストも可

7

未使用領域の最初の数バイトを用いて,リストを表現

サイズ 次の未使用領域の場所

2000 30 80 120

150

170

12050 1703030 30 -1

最初の未使用領域の場所

あらかじめ決められたアドレス

Page 8: 計算機システム概論・4回目

メモリの解放

プロセスからメモリが解放(返却)されたとき ...当該領域を「未使用」扱いに必要に応じて,他の未使用領域と併合

8

使用中 未使用

解放

併合

Page 9: 計算機システム概論・4回目

メモリの割当

プロセスからメモリの割当を要求されたとき ...未使用領域の一部を切り出して,プロセスに貸し出すどの未使用領域から切り出すか ... いくつかの戦略あり使える未使用領域がない場合の対応は?

9

要求サイズ

A B

基本的には,すし屋のカウンターにグループ客を座らせる問題 ... と同じ

Page 10: 計算機システム概論・4回目

メモリ割当の戦略

要求サイズより大きな未使用領域の中で ...(A) 最初に見つかったところから切り出す (first-fit)(B) もっとも大きな未使用領域から切り出す (worst-fit)

細かな未使用領域が多数発生することになり,損(C) もっとも小さい未使用領域から切り出す (best-fit)

大きな領域を後に残しておけるので,全体的には得

10

要求サイズ

A C B

Page 11: 計算機システム概論・4回目

戦略の違い

11

worst-fit戦略

要求: の後に が来る場合

割当不能!

best-fit 戦略

割当可能!

Page 12: 計算機システム概論・4回目

割当不能時の対処法

要求されたメモリ割当に使える未使用領域がないときは ...未使用領域ができるまで待つ

小さな要求が先に処理され,いつまでも空かないかも

使用中の領域を移動して,大きなスペースを作りだすメモリ内部の他の場所に移動補助記憶装置等,メモリの外部に,一時的に追い出す

12

要求サイズ

Page 13: 計算機システム概論・4回目

領域の再配置について

使用中領域の再配置(移動,追い出し):配置場所の変更を,プロセスには意識させたくない

プロセス(プログラム)による「メモリの使い方」を十分理解し,

その視野の外で動作する仕組みを作りだす必要アリ

コンピュータのプログラム:抽象化された仮想計算機上で動作するよう作成される

メモリは,第 0 番地から順番にすべて利用可能,と想定仮想的なアドレスを使って,データ等の場所を指示

実動作時には,メモリ内のどこかに配置される 13

Page 14: 計算機システム概論・4回目

仮想計算機上のプログラム

14

000: JMP 100 :

100: LOAD B, 200 :

200: 2Ah

仮想計算機内でのプログラム

100 JMP 200 :

200 LOAD B, 300 :

300 2Ah

100 番地に配置400 JMP 500

:500 LOAD B, 600

:600 2Ah

400 番地に配置

仮想アドレスを実アドレスに変換する必要アリ

Page 15: 計算機システム概論・4回目

アドレス解決の仕組み

方式 1) メモリ割当時に,どのラベルが何番地になるか計算する

配置場所の移動はきわめて困難になる方式 2) メモリベースレジスタ (MBR) をプロセスに持たせる

アドレスの参照は, MBR の値により補正MBR の値を変えれば,配置場所の移動は比較的容易

15

400 JMP 100 (+ MBR) :

500 LOAD B, 200 (+ MBR) :

600 2Ah

400 番地に配置 MBR 400

000: JMP 100 :

100: LOAD B, 200 :

200: 2Ah

仮想計算機内

Page 16: 計算機システム概論・4回目

ここまでのまとめ

計算機のメモリは, OS のメモリ管理機構が管理するメモリ管理機構は,プロセスからの動的な要求に対応する

未使用領域の管理には,リスト構造の利用が便利best-fitting 戦略を使えば,割当の効率がよいMBR を用いてアドレス解決を行えば,再配置が容易

16

ここからのおはなしページ単位でのメモリ管理にすれば,もっと効率アップMBR方式を拡張する必要あり仮想記憶方式との整合性も良い

Page 17: 計算機システム概論・4回目

メモリの「ページ」

ページ:メモリを管理するときの1ブロック典型的な 1 ページ= 4096バイト分のメモリ

基本的なアイデア:メモリ全体を多数のページに分割するプロセスの持つメモリも,ページに分割して管理プロセスは,ページ変換表を使ってページの対応を管理

( MBR は使わない)

この方式の良いところ:必ずしも連続したページを割り当てる必要がない

17

Page 18: 計算機システム概論・4回目

ページの管理

18

実際のメモリ 未使用ページ使用中ページ

0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

プロセスの持つ14 6 9 2ページ変換表

0123

14692

内部番号 実ページ番号ページ変換表を利用することで,連続したメモリ領域を保持している場合と同等に扱える

Page 19: 計算機システム概論・4回目

プロセス内でのアドレス管理

ページサイズを S とする

プロセスが,自分のメモリの先頭から M 番目にアクセスする:1. M = PS + Q となる P と Q を計算する

P ...プロセス内で何ページ目にあたるかQ ...そのページ内で,先頭から何番目か

2. ページ変換表の P 行目を参照し,実ページ番号 R を得る

3. メモリの RS + Q 番地が,アクセスすべき番地

実際のメモリ番地への変換は, OS が行う(プロセスは, OS に対して M 番地の内容を問い合わせるだけ)

19

Page 20: 計算機システム概論・4回目

アドレス変換の例

ページサイズを S = 1000h バイトとする

プロセス内の 28F4h 番地にアクセスしたいとき...1. 28F4h = 2x1000h + 8F4h2. 実ページ番号は 93. メモリ 9 ページ目の 8F4h 番地

 = 98F4h 番地を参照

20

189 13 14 15

0123

14692

内部番号 実ページ番号

0 1 2 3 4 5 6 7 8 10 11 12 16 17 19

14 6 9 2

0000

1000

2000

3000

0000

1000

2000

3000

4000

5000

6000

7000

8000

9000

A000

B000

C000

D00

0

E000

F000

1000

0

1100

0

1200

0

1300

0

Page 21: 計算機システム概論・4回目

ページ単位でメモリ管理をする利点

使い道のない,小さな未使用領域の発生を抑制「断片化の問題」が少ない

一つのプロセスに,連続したメモリを割当てる必要がない

割当場所の違いは,ページ変換表を使って OS が吸収

2番目の利点をもっと積極的に利用すると ...ページの場所を移動しても,比較的簡単に対応可能

(プロセスのページ変換表を書き換えるだけ)ページを,メモリ以外の場所に一時退避することも可能実際のメモリ容量以上のページを確保することも可能

⇒仮想記憶21

Page 22: 計算機システム概論・4回目

主記憶装置と補助記憶装置

準備:メモリのページを一時退避するための補助記憶装置を用意

(スワップ領域:ハードディスク等の高速装置を利用)

アドレス変換表を拡張(退避中か否か,退避場所に関する情報を持たせ

る)

22

アドレス変換表

メモリ(主記憶装置)

ディスク(補助記憶装置)

Page 23: 計算機システム概論・4回目

ページアウト

主記憶上の未使用ページが少なくなってくると ...OS が,補助記憶装置に掃出すページを選択する掃出すページの内容を補助記憶装置へ転送掃出された跡地を未使用扱いに掃出されたページを指していたアドレス変換表を更新

23

ページアウトスワップアウト

Page 24: 計算機システム概論・4回目

ページイン

ページアウトされていたページが参照されると ...割込み(ページフォルト,アドレス変換例外)が発生主記憶の未使用ページへ,補助記憶からデータ転送アドレス変換表を更新

24

ページインスワップイン

Page 25: 計算機システム概論・4回目

ページアウトの戦略

ページイン:参照されたページを読み込むだけページアウト:どのページを掃出すか,選択の余地あり

参照される確率が低そうなページをページアウトしたい「メモリ参照の局所性」を利用

プログラム実行中のある時点で A 番地のメモリを参照⇒A 番地付近のメモリも参照される可能性が高い

メモリのページ毎に,「最近いつ参照されたか」を記録しておく「近々には使われなさそうなメモリページ」をページアウトする

25

Page 26: 計算機システム概論・4回目

LRU 法

LRU 法  (Least Recently Used)「最近最も使われなかった」ページを掃き出す戦略

グローバル LRU 法:対象ページがどのプロセスに属するか無関係に,

とにかく最近使われていないものを掃き出す

ローカル LRU 法:優先度の低いプロセスを特定し,そのプロセスに

属するページを LRU で掃き出す

26

Page 27: 計算機システム概論・4回目

仮想記憶

ページイン,ページアウトが可能であれば,プロセスの全てのページが,主記憶上にある必要はない

仮想記憶:プロセスに「見せる」アドレス空間を,実際のメモリの

アドレス空間とは分離して管理する仕組みプロセスに対し,実際のメモリサイズよりも大きな

メモリサイズを提供することが可能

ただし,頻繁にページイン・ページアウトを繰り返すようだと,実行効率は大幅に悪化する 27

Page 28: 計算機システム概論・4回目

メモリ管理に関連するその他の概念

デマンドページング,プリページング実際に参照されたページのみページインする(デマンド–)ページ参照を予測し,事前にページインを行う(プリ–)

スラッシングメモリの割当要求が過剰で,プロセッサがページイン,

ページアウトにばかり時間をとられて仕事が進まない様子

近年の計算機 ...巨大なメモリを持つようになった⇒ スラッシング,ページングが発生する機会も少なくなった

28

Page 29: 計算機システム概論・4回目

本日のまとめ

メモリ管理について未使用領域の管理と割当戦略ページング仮想記憶

次回の講義:ファイルシステムについて

課題(結果の提出不要):UNIXベースの OS で vmstat を実行し,メモリ使用状況や

ページイン・アウトの様子を観察せよ

29