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

1. URL
2. 担当教員
3. 講義目的
4. 到達目標
5. 授業方法
6. 参考書
7. 成績評価
8. スケジュール
9. 大崎が担当する科目に共通の連絡事項・アドバイス
10. 1. オペレーティングシステムの概要
11. 2. CPU の原理
12. 3. プロセスとスレッド
13. 4. プロセス間通信
14. 5. スケジューリング (1)
15. 6. スケジューリング (2)
16. 7. 前半の総復習
17. 8. メモリ管理 (1)
18. 9. メモリ管理(2)
19. 10. 入出力 (外部 I/O)
20. 11. 入出力 (ユーザインターフェース)
21. 12. ファイルシステム
22. 12. 後半の総復習

8. メモリ管理 (1)

授業の流れ・チーム分けの方針・態度目標

2024-05-24 のものと同じ。

https://lsnl.jp/~ohsaki/lecture/os/2024/#15-1

内容目標

- マルチプログラミング環境における CPU の利用率を計算できるようになる。

- スワッピングとページングの違いを理解し、ページングの利点を他人に説明できるようになる。

- ページングにおける仮想アドレスと物理アドレスの違いを理解し、他人に説明できるようになる。

- ページングの原理を理解し、仮想アドレス、物理アドレス、ページテーブル、ページサイズの関係を他人に理解できるようになる。

課題

課題 1

主記憶上に同時に 4 つのプロセスを配置できるシステムにおける CPU 利用率を求めよ。 ただし、 各プロセスが実行中に I/O 待ちとなる割合を 50% とする。

課題 2

一般に、 スワッピング (swapping) よりも、 ページング (paging) のほうが効率的である理由を説明せよ。

課題 3

仮想アドレス (virtual address) と物理アドレス (physical address) の違いを説明せよ。

課題 4

16 ビットの仮想アドレス空間を持つページングにおいて、ページテーブルの大きさが 8 であった。 ページサイズを答えよ。

略解

課題 1

1 - (0.5)^4 = 0.9375 より約 94%。 各プロセスが I/O 待ちとなる確率が 0.5 であり、 すべてのプロセスが I/O 待ちとなった時に CPU が無駄となるから。

課題 2

スワッピングは主記憶上にあるプロセス全体を外部記憶装置に書き出す。 一方、 ページングは主記憶上にある (例えば 4K バイトの) ページ単位で外部記憶装置に書き出す。 このため、 ページングは、 プログラムが有する参照の局所性 (locality of reference) を活かせるから。

Locality of reference
https://en.wikipedia.org/wiki/Locality_of_reference

課題 3

「物理アドレス」とは、 プログラムが実際に格納されている主記憶上のアドレスである。 例えば、 主記憶の大きさが 256K バイトであれば、 物理アドレスの大きさは 18 ビットである。 「仮想アドレス」とは、 (オペレーティングシステムの仮想メモリによって) 各プロセスが利用できるアドレスである。 例えば、 主記憶の大きさが 256K バイトであっても、 仮想アドレスの大きさが 24 ビットであれば、 各プロセスには 16M バイトのメモリ空間が利用できるように見える。

課題 4

ページテーブルの大きさが 8 (= 2^3) であるから、 ページアドレスは 3 ビットである。 16 ビットの仮想アドレスの上位 3 ビットがページアドレスであるから、 下位 13 ビットがページ内オフセットを表す。 従って、 ページサイズは 8,192 バイトである。

課題 4 の補足

通常は、 仮想アドレス空間の大きさを決定し、 それとともにページングで用いるページサイズを決める。 仮想アドレス空間の大きさとページサイズが決まれば、 自動的に必要なページテーブルの大きさが決まる。

例えば、仮想アドレス空間の大きさが 24 ビットで、 ページサイズが 4 KB のページングを実現しようと決めたなら、 ページテーブルの大きさは 2^24 [B] / 4 [KB] = 4,096 だけ必要となる。 つまり、

(アドレス空間の大きさ) / (ページの大きさ) = (ページテーブルの大きさ)

という関係である。 上記の関係から、 「アドレス空間の大きさ」、 「ページの大きさ」、 「ページテーブルの大きさ」のうち 2 つがわかれば、 もう一つが求められる。

課題 4 は上記の関係を理解しているかを問う問題である (現実には、 ページテーブルの大きさからページサイズを推測するということは普通はしない (それが必要となる場面はほとんどない))。

レポート課題 2024-06-07

「レポート課題 2024-04-12」と同じ。

https://lsnl.jp/~ohsaki/lecture/os/2024/#10-10

質問

- CPUの使用率の適正値のようなものは決まっているのでしょうか。

用途や状況によります。1 億円のコンピュータの CPU 利用率なら 100% が望ましい
でしょう (費用対効果を高めるため)。スマートフォンの CPU なら普段は低ければ低
いほうがいいでしょう (発熱せず、バッテリが長持ちするので)。スマートフォンの
CPU で、AI を使った画像の顔認識をしたいならなら目的によります。発熱、バッテ
リ消費、計算時間、実時間性、他のプロセスに対する影響の許容度など、さまざまな
要因によって決まります。

要望

- CTFの回答時間終了後の相談タイムをもう少し長くしてほしいです。なぜなら、誰がどの問題をどのように解いたのかを詳しく話し合いたいからです。

そうですね。CTF 前のグループワークを 5 分短縮し、CTF 後のグループワークを 5
分増やしてみます。

コメント

- 講義ありがとうございました。

- 講義ありがとうございました。

[<16. 7. 前半の総復習] [>18. 9. メモリ管理(2)]