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

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

11. 入出力 (ユーザインターフェース)

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

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

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

内容目標

- 文字ベースの端末、GUI (Graphical User Interface)、ネットワーク端末の違いを理解し、他人に説明できるようになる

- 文字ベースの端末で用いられるシリアル通信を理解し、その通信時間を定量的に議論できるようになる。

- GUI に用いられるディスプレイの構造を理解し、フレームバッファの操作に必要なデータ量を定量的に議論できるようになる。

- ネットワーク端末の原理を理解し、その通信時間を定量的に議論できるようになる。

課題

課題 1

端末エミュレータ上で stty コマンドを実行したところ、以下の出力が得られた。

$ stty -a
speed 38400 baud; rows 45; columns 106; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; eol2 = <undef>; swtch = <undef>;
start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R; werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0;
-parenb -parodd -cmspar cs8 -hupcl -cstopb cread -clocal -crtscts
-ignbrk brkint ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl -ixon -ixoff -iuclc -ixany imaxbel iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke -flusho -extproc

現在、実行中のプロセスを停止したい時にどのキーを押せばよいか。

課題 2

9.6 Kbps の 8 ビットシリアル回線 (スタートビット、 ストップビットともに 1 ビット、 パリティなし) で接続された端末から、 ANSI エスケープシーケンスを用いて画面をクリアし、 画面上に「Hello, World!」を表示するためのメッセージ送信にかかる時間を答えよ。

ANSI escape code
https://en.wikipedia.org/wiki/ANSI_escape_code

課題 3

1920 x 1080 ピクセルで 24 ビットカラーのディスプレイをクリアし、 16x32 ドットの固定幅フォントで画面左上に「Hello, World!」と表示するために、 フレームバッファの VRAM (Video RAM) に計何バイトの書き込みが必要かを答えよ。

課題 4

1920 x 1080 ピクセルで 24 ビットカラーのディスプレイ映像を非圧縮で遠隔地に転送するネットワーク端末を作りたい。 10 フレーム/秒のフレームレートを実現するために必要なネットワークの通信速度を答えよ。 ただし、 ネットワーク端末の実現において、 ディスプレイ映像以外のデータは無視できるほど小さいとする。

略解

課題 1

Ctrl + C (INT シグナル) または Ctrl + \ (QUIT シグナル) 。

課題 2

画面クリアの ANSI エスケープシーケンスは ESC [ 2 J の 4 バイト。 「Hello, World!」は 13 バイト。 1 バイトの送信に、 スタートビット、 データ (8 ビット)、 ストップビットの計 10 ビットの送信が必要である。 従って、 合計すると (4 + 13) * 10 = 170 ビットの送信が必要である。 従って、

 170
---- = 0.0177 [秒]
9600

課題 3

フレームバッファの大きさが 1,920 * 1,080 * 24 = 49,766,400 ビット。 バイト換算すると 49,766,400 / 8 = 6,220,800 バイト。 1 文字の表示に 16 * 32 * 24 / 8 = 1,536 バイトの書き込みが必要。 「Hello, World!」が 13 文字であるから、

6,220,800 + 1,536 * 13 = 6,240,768 バイト (約 6.0 Mバイト)

課題 4

1 枚のフレームのサイズは 1,920 * 1,080 * 24 = 49,766,400 ビット (c.f. 課題 3)。 1 秒間に 10 フレームの伝送が必要であるから、

 49,766,400 * 10 = 497,664,000 ビット/秒 (= 約 475 M ビット/秒)
 

レポート課題 2025-06-20

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

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

質問

- この講義で教科書などを利用していないので、テスト対策としてどのようにして勉強をしたらよいのかわからないのですがどのようなことをすればよいか教えていただきたいです。

他の授業と同じように授業で学んだ内容を復習してください。過去の講義ビデオをす
べてアップロードしています。また過去の CTF もすべてオープンしています。

- CTFテスト21番(os-11-io/21-zoom)の解説をお願いしたいです。

- CTFの最後のZoomの問題で、(500000 / 8) / (1920 * 1080 * 24 / 8 * 5) を 8 で掛けた値を百分率にしたものが正解になったのですが、計算式のどこでずれてしまっているのでしょうか?

  ごめんなさい、回答が間違っていました。正しくは以下の通りです。

  圧縮後: 500000 ビット
  圧縮前: 1920*1080*24*5 = 248832000 ビット
  圧縮率 = 500000 / 248832000 = 0.0020093878600823045
  回答: 0.201%


[<19. 10. 入出力 (外部 I/O)] [>21. 12. ファイルシステム]