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

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. ファイルシステム

10. 入出力 (外部 I/O)

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

2025-04-25 のものと同じ。

https://lsnl.jp/~ohsaki/lecture/os/2025/#12-1

内容目標

- CPU とデバイスコントローラの通信において、ポートマップド I/O とメモリマップド I/O の長所と短所を理解し、他人に説明できるようになる。

- ミニ CPU を用いて割り込みの原理を理解するとともに、ミニ CPU における割り込みの動作をシミュレートできるようになる。

- 割り込みにおける割り込みハンドラの処理時間と最大割り込み頻度の関係を定量的に議論できるようになる。

- ラウンドロビンスケジューリングにおけるプロセス切り替えのオーバヘッドと CPU の利用効率の関係を定量的に議論できるようになる。

課題

資料: ミニ CPU による割り込みの理解
https://lsnl.jp/~ohsaki/lecture/os/2025/priv/mini-cpu-interrupt.pdf

課題 1

CPU とデバイスコントローラの通信において、 ポートマップド I/O と比較した時の、 メモリマップド I/O の長所と短所を述べよ。

課題 2

資料「ミニ CPU による割り込みの理解」中の「CPU 係と割り込み係によるシミュレーション」を二人ペアとなって実行せよ。 CPU 係と割り込み係の両方を、 それぞれ一回ずつ以上シミュレートすること。

課題 3

ミニ CPU において、 一命令の実行に要する時間をすべて等しくΔ [s] とする。 「ミニ CPU による割り込みの理解」中の「ミニ CPU による割り込みの例」の割り込みハンドラを、 一秒間に最大何回呼び出すことが可能か。

課題 4

ミニ CPU において、 一命令の実行に要する時間をすべて等しくΔ [s] とする。 ラウンドロビンスケジューリングを用いたプリエンプティブマルチタスキングにおいて、 プロセスの切り替えを行うプログラム (割り込みハンドラを含むすべての割り込み処理) の命令数を N とする。 クォンタムの大きさを T [s] とした時の CPU の実効利用率 (CPU がプロセス実行に利用される割合) を答えよ。 ただし、 各プロセスが実行中に I/O 待ちになることはないとする。

略解

課題 1

長所: I/O のための専用の機械語命令が必要ない。 C 言語のような高級言語でデバイスを操作するプログラムが書ける。 メモリ保護機能を使える (例: アクセス制限がかけられる)。

短所: 特定のアドレス範囲のキャッシュを無効にする必要がある (複雑なキャッシュ機構が必要となる)。 メモリバスが複数ある場合に複雑な制御が必要となる。

課題 2

割り込まれた瞬間の PC の値を保存するのも、 すべて「CPU 係」の役割であることに注意せよ。 「割り込み係」は単に自由なタイミングで声をかけるのみである。

課題 3

割り込み発生から、 割り込まれた時の PC に戻るまでの処理が 12 命令 (割り込まれた瞬間の PC の値の保存に 1 命令とカウントしている) である。 1 回の割り込みに要する時間が 12 Δ [s] であるから、 一秒間に最大

  1
-----
12 Δ

回の呼び出しが可能である。

課題 4

1 回のプロセス切り替えに要する時間が N Δ [s] である。 T [s] ごとのクォンタムごとに N Δ [s] だけの CPU 時間をプロセス切り替えに消費するから、 CPU の実効利用率は

    T
---------
 T + N Δ

である。

レポート課題 2025-06-13

「レポート課題 2025-04-11」と同じ。

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

質問

- CTFのUSBメモリの問題の答えがなぜ0になるのかを知りたかったので調べたところ、ポーリングを使っていると出てきたのですが、なぜUSBは割り込みを使わずにポーリングを使っているのですか?

  まず、USB (Universal Serial Bus) はバスの規格なのでオペレーティングシステム
  のデバイスドライバの実現法は規定していません。したがって、「USB は割り込みを
  使わずにポーリングを使っている」は誤りです。

  一般に、デバイスドライバの実現法に割り込みを使う方法とポーリングを使う方法が
  あります。ポーリングを使えば割込みは不要です。

  ちなみに、ポーリング (polling) は動詞 poll の動名詞形で、動詞 poll は以下の
  ような意味です。

  ---- Oxford Wordpower: poll2 /pəʊl/ verb [transitive]
  poll2 /pəʊl/ verb [transitive]
  1 to receive a certain number of votes in an election
  - The Liberal Democrat candidate polled over 3 000 votes.
  2 to ask members of the public their opinion on a subject
  - Of those polled, only 20 per cent were in favour of changing the law.

  デバイスドライバにおける polling は、to ask device controllers of the
  computer their status という意味です。


[<18. 9. メモリ管理(2)] [>20. 11. 入出力 (ユーザインターフェース)]