この資料は、情報工学レクチャーシリーズ オペレーティングシステム 松尾啓志 著(森北出版株式会社)を用いて授業を行うために、名古屋工業大学松尾啓志、津邑公暁が作成しました。...

29
1 オオオオオオオオオオオオ #10 オオオオオ オオオオオオオオオオオオオ オオオオオオオオオオオオ オオ オオ オオオオオオオオオ オオオオオオオオオオオオオ オオオオオオオ ()、 オオオオ オオオオオオオオオオオオ 、。 オオオオオオオ 2007 オオオオオオオオオオオオオオオ オオオオオオオオオオ オオオオオオオオオオ 、、 オオオ ([email protected]) オオオオオオオオオオ オオオオオオオオオオオオオ オオオオオオオオオ

Upload: kelly-montoya

Post on 03-Jan-2016

35 views

Category:

Documents


0 download

DESCRIPTION

この資料は、情報工学レクチャーシリーズ オペレーティングシステム 松尾啓志 著(森北出版株式会社)を用いて授業を行うために、名古屋工業大学松尾啓志、津邑公暁が作成しました。 パワーポイント 2007 で最終版として保存しているため、変更はできませんが、授業でお使いなる場合は松尾 ([email protected]) まで 連絡いただければ、編集可能なバージョンをお渡しする事も可能です。. オペレーティングシステム #10 主記憶管理: セグメンテーション, ページ化セグメンテーション. 復習. ページング 主記憶の再配置システム - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: この資料は、情報工学レクチャーシリーズ オペレーティングシステム 松尾啓志 著(森北出版株式会社)を用いて授業を行うために、名古屋工業大学松尾啓志、津邑公暁が作成しました。

1

オペレーティングシステム#10

この資料は、情報工学レクチャーシリーズ オペレーティングシステム 松尾啓志 著(森北出版株式会社)を用いて授業を行うために、名古屋工業大学松尾啓志、津邑公暁が作成しました。

パワーポイント 2007 で最終版として保存しているため、変更はできませんが、授業でお使いなる場合は松尾([email protected]) まで連絡いただければ、編集可能なバージョンをお渡しする事も可能です。

Page 2: この資料は、情報工学レクチャーシリーズ オペレーティングシステム 松尾啓志 著(森北出版株式会社)を用いて授業を行うために、名古屋工業大学松尾啓志、津邑公暁が作成しました。

2

オペレーティングシステム#10

オペレーティングシステム

#10 主記憶管理:セグメンテーション,

ページ化セグメンテーション

Page 3: この資料は、情報工学レクチャーシリーズ オペレーティングシステム 松尾啓志 著(森北出版株式会社)を用いて授業を行うために、名古屋工業大学松尾啓志、津邑公暁が作成しました。

3

オペレーティングシステム#10 復習

■ ページング 主記憶の再配置システム 仮想アドレスの上位(ページ番号)を

物理アドレスの上位(ページフレーム番号)に変換することでアドレス変換

フラグメンテーションも改善

■ ページテーブル 上記変換を行うためのテーブル ページに対応するエントリごとにフラグなどを配置

➔ ページへのアクセス権などを設定可能

Page 4: この資料は、情報工学レクチャーシリーズ オペレーティングシステム 松尾啓志 著(森北出版株式会社)を用いて授業を行うために、名古屋工業大学松尾啓志、津邑公暁が作成しました。

4

オペレーティングシステム#10

物理空間

3

復習:ページングの動作

00

01

02

03

04

05

06

07

08

09

0

1

2

0x00000

0x00FFF0x01000

0x01FFF0x02000

0x02FFF0x03000

0x03FFF0x04000

0x04FFF0x05000

0x05FFF0x06000

0x06FFF0x07000

0x07FFF0x08000

0x08FFF0x09000

0x09FFF

0x0000

0x0FFF0x1000

0x1FFF0x2000

0x2FFF0x3000

0x3FFF

V P C ページフレーム

111111111

0100

02030405060708

02

0011 00

仮想アドレス

物理アドレス

02 123

1230

スワップイン

Page 5: この資料は、情報工学レクチャーシリーズ オペレーティングシステム 松尾啓志 著(森北出版株式会社)を用いて授業を行うために、名古屋工業大学松尾啓志、津邑公暁が作成しました。

5

オペレーティングシステム#10 復習

■ ページングの改善法 ハッシュ関数

➔ ページテーブルの巨大さを緩和➔ 仮想アドレス空間に比例する大きさが必要だったのが,

物理アドレス空間に比例する大きさまで縮小

連想レジスタ➔ 主記憶へのアクセス回数の緩和➔ 最近使用した「ページ番号→ページフレーム番号」の

変換結果を CPU 内で記憶➔ ページテーブル検索のための主記憶アクセスを削減

Page 6: この資料は、情報工学レクチャーシリーズ オペレーティングシステム 松尾啓志 著(森北出版株式会社)を用いて授業を行うために、名古屋工業大学松尾啓志、津邑公暁が作成しました。

6

オペレーティングシステム#10 今日の内容

■ ページングの構成法 多重レベルページング (10.3) 0 レベルページング (10.4)

■ セグメンテーション セグメンテーション (10.1) ページ化セグメンテーション (10.2)

■ 教科書とは違う順番でやります

Page 7: この資料は、情報工学レクチャーシリーズ オペレーティングシステム 松尾啓志 著(森北出版株式会社)を用いて授業を行うために、名古屋工業大学松尾啓志、津邑公暁が作成しました。

7

オペレーティングシステム#10

10.3多重レベルページング

Page 8: この資料は、情報工学レクチャーシリーズ オペレーティングシステム 松尾啓志 著(森北出版株式会社)を用いて授業を行うために、名古屋工業大学松尾啓志、津邑公暁が作成しました。

8

オペレーティングシステム#10 復習:ページングの問題点

■ ページテーブルが巨大 (仮想記憶の大きさと同じエントリ数)

             × (同時実行プロセス数)だけのエントリ数が必要

主記憶を圧迫

■ 前回はハッシュ関数を利用することで改善➔ 仮想アドレス空間に比例する大きさが必要だったのが,

物理アドレス空間に比例する大きさまで縮小 さらに改善したい

Page 9: この資料は、情報工学レクチャーシリーズ オペレーティングシステム 松尾啓志 著(森北出版株式会社)を用いて授業を行うために、名古屋工業大学松尾啓志、津邑公暁が作成しました。

9

オペレーティングシステム#10 多重レベルページング

0x0000

0x1000

0x2000

0x3000

仮想アドレス

物理アドレス

123

1230

基底アドレス

10

234

6000

0 2

0x4000

0x5000

0x6000

0x7000

0x8000

0x9000

主記憶

ページテーブルページ

テーブル

ページテーブル

仮想アドレス

空間

2

1

3

4

5

2

3

6

6

0

0

80005000

ページテーブル

ページテーブル

0x00000

0x00FFF0x01000

0x01FFF0x02000

0x02FFF0x03000

0x03FFF0x04000

0x04FFF0x05000

0x05FFF0x06000

0x06FFF0x07000

0x07FFF0x08000

0x08FFF0x09000

0x09FFF

ページテーブルページ番号

23

フレーム番号

01

ページテーブルを多段に

Page 10: この資料は、情報工学レクチャーシリーズ オペレーティングシステム 松尾啓志 著(森北出版株式会社)を用いて授業を行うために、名古屋工業大学松尾啓志、津邑公暁が作成しました。

10

オペレーティングシステム#10 多重レベルページング

0x0000

0x1000

0x2000

0x3000

仮想アドレス

物理アドレス

123

1230

基底アドレス

10

234

6000

0 2

0x4000

0x5000

0x6000

0x7000

0x8000

0x9000

主記憶

ページテーブル

仮想アドレス

空間

2

1

3

4

5

2

3

6

6

0

0

80005000

ページテーブル

ページテーブル

0x00000

0x00FFF0x01000

0x01FFF0x02000

0x02FFF0x03000

0x03FFF0x04000

0x04FFF0x05000

0x05FFF0x06000

0x06FFF0x07000

0x07FFF0x08000

0x08FFF0x09000

0x09FFF

ページテーブル

ページテーブル

当面必要でないページテーブルは,

仮想記憶上に置いておける

Page 11: この資料は、情報工学レクチャーシリーズ オペレーティングシステム 松尾啓志 著(森北出版株式会社)を用いて授業を行うために、名古屋工業大学松尾啓志、津邑公暁が作成しました。

11

オペレーティングシステム#10 多重レベルページング

■ ページングを多段化 2 段だけでなく,さらに多段化も可能

■ ページテーブルを細かく分割可能 必要なテーブルのみを主記憶上に置くことで

主記憶使用量を削減

■ 多段化により,主記憶アクセスは増加 TLB により解決

Page 12: この資料は、情報工学レクチャーシリーズ オペレーティングシステム 松尾啓志 著(森北出版株式会社)を用いて授業を行うために、名古屋工業大学松尾啓志、津邑公暁が作成しました。

12

オペレーティングシステム#10

10.40 レベルページング(連想写像方式)

Page 13: この資料は、情報工学レクチャーシリーズ オペレーティングシステム 松尾啓志 著(森北出版株式会社)を用いて授業を行うために、名古屋工業大学松尾啓志、津邑公暁が作成しました。

13

オペレーティングシステム#10 連想写像方式

■ 一般的なページング 主記憶上にページテーブル CPU 内の MMU が,ページテーブルを用いて

アドレス変換

■ 0 レベルページング(連想写像方式) ハードウェアとしての MMU を持たない 一般的なページテーブルを持たず,

連想メモリで構成した TLB でアドレス変換

Page 14: この資料は、情報工学レクチャーシリーズ オペレーティングシステム 松尾啓志 著(森北出版株式会社)を用いて授業を行うために、名古屋工業大学松尾啓志、津邑公暁が作成しました。

14

オペレーティングシステム#10

3

0 レベルページングの動作

00

01

02

03

04

05

06

07

08

09

0

1

2

0x00000

0x00FFF0x01000

0x01FFF0x02000

0x02FFF0x03000

0x03FFF0x04000

0x04FFF0x05000

0x05FFF0x06000

0x06FFF0x07000

0x07FFF0x08000

0x08FFF0x09000

0x09FFF

0x0000

0x0FFF0x1000

0x1FFF0x2000

0x2FFF0x3000

0x3FFF

V P C ページフレーム

0 011 0 310 011 0 0110 011 0 210 011 0 11

0100

02030405060708

02

07

05

仮想アドレス

物理アドレス

00

02 789

789003

物理空間

フレーム ページフレーム

00 302 005 2

07 1

連想メモリ

インデクスを持たない全エントリを並列検索

02 0

Page 15: この資料は、情報工学レクチャーシリーズ オペレーティングシステム 松尾啓志 著(森北出版株式会社)を用いて授業を行うために、名古屋工業大学松尾啓志、津邑公暁が作成しました。

15

オペレーティングシステム#10 0 レベルページングの特徴

■ メリット 高クロック実装が可能

➔ MMU 不要のため, CPU 機構が単純化

■ デメリット TLB ヒットしなかった場合のオーバヘッドが膨大

➔ ソフトウェア処理のため

■ よって ... 主記憶使用量の少ないプログラムには高速 主記憶使用量の多いプログラムには非常に低速

Page 16: この資料は、情報工学レクチャーシリーズ オペレーティングシステム 松尾啓志 著(森北出版株式会社)を用いて授業を行うために、名古屋工業大学松尾啓志、津邑公暁が作成しました。

16

オペレーティングシステム#10

10.1セグメンテーション

Page 17: この資料は、情報工学レクチャーシリーズ オペレーティングシステム 松尾啓志 著(森北出版株式会社)を用いて授業を行うために、名古屋工業大学松尾啓志、津邑公暁が作成しました。

17

オペレーティングシステム#10

こちらも実現したい

ページングで実現可能■ 大きさが無制限 プロセスは主記憶の空き容量を考慮する必要なし プログラムの簡単化,バグの可能性減少

■ プロセスごとに固有 他のプロセスからのアクセスに対し保護

■ プログラム部,データ部,スタック部など分離 用途ごとに空間を分けることで,自プロセス内での不正アクセスの可能性を低減

■ 必要時にはプロセス間で共有も可能 並列動作するプロセス間で共有し,

高速な通信機構として使用

復習:理想的な論理アドレス空間

Page 18: この資料は、情報工学レクチャーシリーズ オペレーティングシステム 松尾啓志 著(森北出版株式会社)を用いて授業を行うために、名古屋工業大学松尾啓志、津邑公暁が作成しました。

18

オペレーティングシステム#10 セグメンテーション

■ ページ(ページング) 一定の大きさを割り当て単位とする

■ セグメント(セグメンテーション) プロセスに対し複数のセグメントを割り当て

➔各セグメントは論理的に独立➔ プログラム部,データ部など固有領域として使用可能

各セグメントはその論理空間の大きさを自由に増減可能

Page 19: この資料は、情報工学レクチャーシリーズ オペレーティングシステム 松尾啓志 著(森北出版株式会社)を用いて授業を行うために、名古屋工業大学松尾啓志、津邑公暁が作成しました。

19

オペレーティングシステム#10 セグメンテーション

プロセス1

プログラム領域

プログラム領域

データ領域

データ領域

スタック領域

スタック領域

プロセス2

データ領域

データ領域

プロセス間共有も実現可

セグメント

Page 20: この資料は、情報工学レクチャーシリーズ オペレーティングシステム 松尾啓志 著(森北出版株式会社)を用いて授業を行うために、名古屋工業大学松尾啓志、津邑公暁が作成しました。

20

オペレーティングシステム#10

物理空間

セグメンテーション

0x00000

0x00FFF0x01000

0x01FFF0x02000

0x02FFF0x03000

0x03FFF0x04000

0x04FFF0x05000

0x05FFF0x06000

0x06FFF0x07000

0x07FFF0x08000

0x08FFF0x09000

0x09FFF

0x0000

0x3FFF

V 基底アドレス

11

111111

0100

02030405060708

仮想アドレス

物理アドレス

02 123

1345

セグメント長

0x1222

10 1222 1300

1300

Page 21: この資料は、情報工学レクチャーシリーズ オペレーティングシステム 松尾啓志 著(森北出版株式会社)を用いて授業を行うために、名古屋工業大学松尾啓志、津邑公暁が作成しました。

21

オペレーティングシステム#10 セグメンテーション

■ 利点 プログラム部,データ部など,用途別に複数を

プロセスに割り当て 各セグメンテーションは大きさを増減可

■欠点 フラグメンテーション

他の手法と組み合わせて利用

Page 22: この資料は、情報工学レクチャーシリーズ オペレーティングシステム 松尾啓志 著(森北出版株式会社)を用いて授業を行うために、名古屋工業大学松尾啓志、津邑公暁が作成しました。

22

オペレーティングシステム#10

10.2ページ化セグメンテーション

Page 23: この資料は、情報工学レクチャーシリーズ オペレーティングシステム 松尾啓志 著(森北出版株式会社)を用いて授業を行うために、名古屋工業大学松尾啓志、津邑公暁が作成しました。

23

オペレーティングシステム#10 ページング v.s. セグメンテーション

■ ページング 固定長ブロック

➔ フラグメンテーションの解決

ページテーブル➔ 仮想→物理アドレスの1 対 1 対応

➔ 動的再配置による仮想記憶の実現

■ セグメンテーション 複数のアドレス空間

➔ 用途別論理空間の実現

アドレス空間のオーバラップ

➔複数プロセスによる空間の共有を実現

Page 24: この資料は、情報工学レクチャーシリーズ オペレーティングシステム 松尾啓志 著(森北出版株式会社)を用いて授業を行うために、名古屋工業大学松尾啓志、津邑公暁が作成しました。

24

オペレーティングシステム#10

■ ページング + セグメンテーション セグメンテーションを,複数のページフレームにより構成する

セグメントごとにページテーブルを用意

ページ化セグメンテーション

セグメントセグメントページフレーム

ページフレーム

ページ番号 フレーム番号

セグメントセグメント

ページフレーム

ページフレーム

ページフレーム

ページ番号 フレーム番号

セグメントセグメント ページフレーム

ページ番号 フレーム番号

ページテーブル

ページテーブル

ページテーブル

Page 25: この資料は、情報工学レクチャーシリーズ オペレーティングシステム 松尾啓志 著(森北出版株式会社)を用いて授業を行うために、名古屋工業大学松尾啓志、津邑公暁が作成しました。

25

オペレーティングシステム#10 ページ化セグメンテーション

0x0000

0x1000

0x2000

0x3000

仮想アドレス

物理アドレス

123

1230

基底アドレス

10

234

セグメント長

6000 1000

0 2

0x4000

0x5000

0x6000

0x7000

0x8000

0x9000

物理アドレス

空間

主記憶

ページテーブルページ

テーブル

ページテーブル

仮想アドレス

空間

セグメント

0

9

2

1

3

4

5

6

7

8

セグメント2

3

6

6

0

0

8000 10005000 2000

セグメント 0

セグメント 2

セグメント 1ページテーブル

セグメント 0 用ページテーブル

ページ番号

23

フレーム番号

01

セグメントテーブル

Page 26: この資料は、情報工学レクチャーシリーズ オペレーティングシステム 松尾啓志 著(森北出版株式会社)を用いて授業を行うために、名古屋工業大学松尾啓志、津邑公暁が作成しました。

26

オペレーティングシステム#10

ページ化セグメンテーションにおける仮想アドレス

■ 仮想アドレスの構造

セグメントがページ単位で構成されている➔ セグメンテーションとページングの階層化

セグメント内相対アドレスが,ページングにおける仮想アドレスに相当

➔ 仮想アドレスの構造も二階層になっていると考えるとわかりやすい

仮想アドレスセグメント番号 セグメント内の相対アドレス

ページ番号

オフセット(ページ内相対アドレス)

仮想アドレス

セグメント番号セグメント内相対アドレスページ番号

オフセット(ページ内相対アドレス)

Page 27: この資料は、情報工学レクチャーシリーズ オペレーティングシステム 松尾啓志 著(森北出版株式会社)を用いて授業を行うために、名古屋工業大学松尾啓志、津邑公暁が作成しました。

27

オペレーティングシステム#10 ページ化セグメンテーションの利点

■ フラグメンテーションの回避 主記憶割り当ては基本的にページ単位

■複数セグメント 各セグメントは大きさ増減可能 複数使用により,用途別に使い分け可能

■ プロセス間共有 セグメンテーションとほぼ同様に共有可能

■ ページテーブルの分散 ページテーブルが複数に分割されるので,

多重レベルページング同様,その一部を仮想記憶に追い出すことで主記憶使用量削減

Page 28: この資料は、情報工学レクチャーシリーズ オペレーティングシステム 松尾啓志 著(森北出版株式会社)を用いて授業を行うために、名古屋工業大学松尾啓志、津邑公暁が作成しました。

28

オペレーティングシステム#10 今日のまとめ

■ 多重レベルページング 従来のページングにおける,仮想アドレスの

「ページ番号部」を複数に分割 それぞれをページ番号とし階層化したテーブルを検索 ページテーブルの分割により,テーブルによる

主記憶使用量を削減(残りは仮想記憶へ)

■ 0 レベルページング(連想写像方式) MMU を持たず, CPU の構成を単純化(=高速化) 連想記憶(検索のためのインデクスを持たない)でTLB を構成

Page 29: この資料は、情報工学レクチャーシリーズ オペレーティングシステム 松尾啓志 著(森北出版株式会社)を用いて授業を行うために、名古屋工業大学松尾啓志、津邑公暁が作成しました。

29

オペレーティングシステム#10 今日のまとめ

■ セグメンテーション セグメント:

仮想記憶と物理記憶を対応させる可変長な単位 プロセスあたり複数のセグメントを許す セグメント間のオーバラップ(共有領域)を許す

■ ページ化セグメンテーション ページングとセグメンテーションの利点を融合 セグメンテーションの利点を生かしつつ

➔ フラグメンテーションを回避➔ ページテーブルの分割により,多重ページング同様

主記憶使用量の削減