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

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. 後半の総復習

12. 後半の総復習

授業の流れ

1. ガイダンス・質問記入 (5 分)
2. 質問への回答 (85 分)
5. リフレクションシート記入 (10 分)

態度目標

- 解説された内容を判的思考で分析し、できるだけ多くを吸収する。

- 脳が覚醒した状態のままでいる。

- クリッカーに記入する質問は、可能な限り、正しい日本語で具体的に記入する。

- 始めて知ったこと、なるほどと思ったことはノートに記録する。

内容目標

- 後半の「内容目標」すべてに到達できるようになる。

- 後半の内容に関連して、理解が不十分なもの、疑問が残っているもの、もっと知りたいものを言語化して質問できるようになる。

- 後半の内容に関連する疑問を一つでも多く解消できるようになる。

クリッカー

[授業中に使用] クリッカー (パスワードが必要です)
https://lsnl.jp/app/lecture/clicker/show/os

質問への回答

- テストは全て何問ですか?

まだ問題を作成してませんので未定です。10 問くらいだと思います。

- 前回、授業でDFS, BFSについて学びましたが、BFSにあまりメリットを感じません。幅優先になると非効率なので深さ優先の方が結局はやく見つかると思うのですが、どこにメリットがありますか?

用途によります。詳しくは他の質問への回答を観てください。

- 前回の授業で行ったファイルの識別の問題はどのような形で出題されますか?

まだ問題を作成してません。出題するかも含めて未定です。

- 前回の総復習みたいにCTFはしないんですか?今回

今回は質問への回答のみです。

- テスト勉強何したらいいですか

特別なテスト勉強は不要ですが、何かするなら各回の課題を解けるようにしておいて
ください。

- loTやAIを含むOSの今後についてどう考えていますか

未来は予測できないと考えているのでわかりません。

- 夏休み資格の勉強しようと思ってるんですけど、情報系学生にとって勉強しておくといい資格って何ですか?資格ではなく教材的なものでもいいです。

資格を取るのもいいですが、プログラムを自分で作る、競技プログラミングや セキュ
リティ CTF、ハッカソン等に参加する等が面白いと思います。

- 第9回目講義の内容目標である「最適なページ置き換えアルゴリズムがどのようなもので、なぜ困難であるか」について教えていただきたいです。

それぞれのページが、将来いつ参照されるかがわからないからです。未来がわかれば
最適なページ置き換えが可能になります。「神様がやったらどこまでできるか?」を
考えて、なぜ「神様にしかできないのか?」を考えてみてください。

- 試験時間は何分ですか?

70 分程度の予定です。

- 英語を学ぶメリットはどのようなものがあると思いますか?また、おすすめの英語の勉強法があれば教えてください。

アクセスできる情報や世界が広がるところだと思います。以下を見てみてください。

効率的な英語学習のためのヒント (草稿)
https://lsnl.jp/~ohsaki/research/tips-english/

- 応用情報技術者試験の学習コストは、基本情報技術者試験に比べてどれくらいかかりますか? 勉強するとすれば、どのような勉強方法がおすすめですか? おすすめの参考書などを教えていただきたいです。

受験したのはずいぶん昔で、今と試験問題も変わっていると思うのでわかりません。

- プログラミングで何の言語を一番使いますか?

最近だと Python です。

- 情報系の学習は自分たちが就職するときに重宝されると思いますか?

はい。

- IT系に就職するうえで、一番根幹になるような知識を挙げるとしたら何だと思いますか。

「何を自分の柱とするか」で変わると思います。私が重視するのは、情報工学のさま
ざまな概念の「メンタルモデル」です。例えば、「オブジェクト指向パラダイム」が
どういうものか頭の中でモデルを描けるか、「ウィンドウシステム」がどういうもの
か頭の中でモデルを描けるか、です。別の言い方をすると、ある程度の時間と予算さ
え与えられたら「自分でそれを作れる」と思える程度に理解しているか、です。

- 仮想アドレスが大きければ物理アドレスの大きさ以上のメモリ空間が扱うことができ、主記憶の容量以上のデータも扱えるのはなぜでしょうか?

質問が変ですね。ページングによって物理アドレス以上の(仮想)アドレスを使えるよ
うにしています。仮想アドレスを大きくすることは「目的」であって、「原因」では
ありません。

- CTFのような英語などの問題形式の問題も過去に出題されていますか?

いいえ。

- クリエ文字列をパス名にしていることに脆弱性があることを学びましたが、サーバー上のファイルをの保護を強化したい時はどのようなことをすればいいですか?

入力を必ず sanitize することです。詳しくは他の質問への解説を観てください。

- ページングの時のページのイメージがあまりつかないのですが、具体的にどのようなものですか?

4K バイト程度の固定長のメモリブロックです。

- 個人的に仲の良い教授や先生はいますか?(他学部でも構いません)

みなさん同僚なので、仲が「良い」とか「悪い」という観点でとらえていません。工
学部情報工学課程には素敵な先生方が揃っています。

- プログラミングを上達させるための一番の秘訣はなんですか?

(プログラミングに限らず) 好きになること、楽しむこと、熱中することだと思いま
す。プログラミングであれば、「欲しいもの (= 自分が使いたいもの) を作る」こと
をおすすめします。

- プロセスの切り替えが少ないシステムでは、スワッピングのシンプルさがページングよりも有利になることあると考えられますが、具体的な例としてどんなものがありますか?

「スワッピングやページングが起こる = プロセス数が多い and/or 物理メモリが小
さい」です。そういう状況下ではスワッピングが有利になることは難しいと思います。

- 拡張子を使ってファイルの種類を判断するのは信頼できる方法ですか?例外がある場合、どのようなものがありますか?

いいえ。まったく信頼できない方法です。「例外」とはどういうい意味ですか?

- 文字ベースの端末、GUI (Graphical User Interface)、ネットワーク端末の違いを理解できなかったのでもう一度説明をお願いします

過去の講義ビデオを観てください。

- パリティありの場合、実際どんな動きをしているのでしょうか?メッセージの送信時間を遅らせてまで、どのようなメリットがあるのでしょうか?

「1 ビットの伝送誤りを検出できる」という非常に大きなメリットがあります。

- 仮想アドレスがプライバシー保護に役立つと自習でわかったのですがどのように役立つのですか?

一般的には、ページングとプライバシ保護は関係ありません。

- 理系の学部卒はトヨタ自動車以外にメーカー系の就職先が見つからないのでしょうか?

質問が変ですね。トヨタ自動車は自動車メーカーであって電気メーカーではありませ
ん。学部卒でも技術系として採用するかどうかは業界や会社によると思います。自動
車業界なら、トヨタ自動車に限らず学部卒の技術系を採用してそうなイメージです
(実際にどうかは自身で調べてみてください)。

- 社会に出る前にしておいた方が良いということはありますか?

大学・大学院生活を満喫することだと思います。

- FIFOとLRUはどのように使用されていますか?

どういう意味ですか?

- リフレクションシートやクリッカーのメッセージを入力する部分はなぜ大きさを変えられるようにしてるんですか?(右下の斜め線2本のやつです)

使っている Web ブラウザの機能だと思います (単なる textarea で、フォーム側で
特殊なことはしてません)。

- ファイルを削除しゴミ箱を空にしてもファイルの実体は消えないがストレージに空きができるのはなぜですか?

空きブロック数 (ただし初期化されていない) が増えるからです。

- 新しいOSを作ることはアプリ開発よりも難しいものですか?

OS やアプリの種類のもよりますが、一般的にはその通りです。ソフトウェアの開発
を容易にするために作られたのが OS ですので、難しい処理の多くは OS が引き受け
ています。

- ファイルシステムにおけるファイル削除は通常、 ディレクトリエントリを削除するだけでファイルの実体は削除されないと分かりましたが、前回授業の課題4のようにファイルを削除してごみ箱を空にしても完全には削除されないのでしょうか?ゴミ箱を空にすることでファイルの実体を削除できるわけではなのですか?また完全に削除するには削除してからどのような処理をすれば良いのでしょうか?

「ゴミ箱を空にする = OS における通常のファイル削除」ですので、実体は消えませ
ん。詳しくは他の質問への回答を観てください。

- 夏休みにプログラミングの勉強をしようと考えていますが、先生が最も習得するべきだと思うプログラミング言語は何でしょうか?

「すべき」言語はありませんが、「自分が作りたいものを作れる言語」をマスターす
ることをすすめます。

- 8回の課題3,4で1バイト=8bitだと思っていましたが、13bit=8192バイトとなっていて、分からなくなっているのですが、前者と後者のbitとバイトの関係は違うものですか?

「13 ビット = 8,192 バイト」と思っているのが勘違いです。課題の略解をもう一度
読んでみてください。13 ビットで表現できる非負整数が 0〜2^13-1 の 8192 種類で
す。

- 先生は英語でのサイトを読むように推奨していますが、機械翻訳で和訳させても大丈夫ですか?私自身はそのような方法で今までは学習していました。

大丈夫ではないと思います。普段は英語のまま読み、疲れている時は (疲れていて読
めないので) 機械翻訳に頼る、くらいが良いと思います。

- R (プログラミング)って独学でした方が良いですか?

上と同じで、習得「すべき」言語はありませんが、興味があるならマスターすると良
いと思います。(一部、大学の授業等で学ぶものを除き) 基本的に、プログラミング
言語は独学でマスターするのが普通だと思います。

- 出席できなかった授業もあるので、CTFの書く問題の答えを知りたいです。またその考え方なども添えてくれると嬉しいです。

過去の回答を観てください (回答は非公開で、解説はありません)。

- 第11回の内容目標「文字ベースの端末、GUI (Graphical User Interface)、ネットワーク端末の違いを理解」について。文字ベース端末とGUIが比較されるのは理解できるのですが、ネットワーク端末は単に別物としか思えませんでした。どういった要素に着目して並べているのですか?

タネンバウムの「モダンオペレーティングシステム」の分類です。ローカルか非ロー
カルで分類し、ローカルなものを情報の種別で分類しているのだと思います。

- 初心者がRaspberry Piを勉強するには何から手をつければいいですか?

Raspberry Pi に限らず、「欲しいものを作る」ことをおすすめします。

- 大崎先生は、どのような資格、免許をお持ちですか?

上の質問への回答で話したもの (IPA の資格、英検、運転免許、博士号) くらいしか
持ってません。

- ポートマップド I/O とメモリマップド I/Oについて、どちらがより主流ですか?

具体的なデータを見たことがないのでわかりません。両方併用されているケースが多
いような気がしますが、コンピュータの規模や用途にもよりそうです。

- パソコンのタイピングが遅いのですが、地道に練習すれば他の人のように早くなれますか?また、良い練習方法はどんなことがありますか?

はい。速く、正確にタイピングするのに特別な才能は必要ないと思います。ただし、
正しい知識を知って、正しいフォームで練習してください。

- 今回絶対時間オーバーするやんwww

授業中に回答できなかったものは (このように) 講義ページに回答を掲載します。

- CPUとデバイスコントローラの通信において、ポートマップドI/Oと比較した時の、メモリマップドI/Oの長所と短所は講義内で行いました。なので、ポートマップドI/Oの長所と短所を教えてください?

メモリマップド I/O の利点・欠点の裏返しです。一般に、A と B を比較した時の A
の利点・欠点は、B の欠点・利点です。

- 10. 入出力の課題3の解に割り込み発生から、割り込まれた時の PC に戻るまでの処理が 12 命令とありますが、なぜ12命令か教えて欲しいです

- 第10回の課題3の解説の計算で、行番号の何行目から何行目の命令を数えて12命令になっていますか?

この課題の略解では、割り込まれた瞬間の PC の値の保存に 1 命令、100 行目の値
にジャンプで 1 命令、200〜209 行目の命令の実行で 10 命令、と数えています。

- テストしんどいです

がんばってください。簡単なことを繰り返しても成長しないので、適度な負荷をかけ
ることは必要だと思います。

- リフレクションシートや自習後に提出するレポートって1人何分ぐらいのペースでみてるんですか?

測ったことはありませんが、数十秒くらい (?) だと思います。

- Appleの下取りサービスは個人情報漏洩の危険はないですか?

わかりません (知りません)。

- プログラミング実習Ⅱの落単が確定しました。これからどうすればいいですか???

私の好きな言葉を紹介します。「経験とは、求めていたものを手に入れられなかった
ときに、手に入るものだ。」 -- ランディ・パウシュ

- 生命、宇宙、そして万物についての究極の疑問の答えとは?

どういう意味ですか?

- なんでレッサーパンダが好きなんですか?

かわいいからです。

- 第10回の課題4で、CPUの実効利用率とはどのような意味ですか?CPUがプロセス実行に利用される割合というのがあまりイメージが付かないので、図などを使って説明していただきたいです。

effective な利用率 (utilization) という意味です。

---- Oxford Wordpower: effective /ɪˈfektɪv/ adjective
effective /ɪˈfektɪv/ adjective
1 successfully producing the result that you want
- Scientists are looking for an effective way to reduce energy consumption.
- a medicine that is effective against the common cold
- That picture would look more effective on a dark background.
[OPP] ineffective
2 [only before a noun] real or actual, although perhaps not official
- The soldiers gained effective control of the town.

CPU が 100% 動きっぱなしでも、処理の 20% が無駄なことをしていたとします。こ
の時の CPU の実行利用率は 100% - 20% = 80% となります。

- 資格はあまり役立たないとおっしゃっていましたが就活においてもあまり意味をなさないのでしょうか?よくTOEICの点数が高いと就活で大きなメリットだと耳にするのですが資格の種類や仕事の業種によるのでしょうか?

「価値があるもの = 希少性があるもの」です。22 歳で、TOEIC 950 点なら希少性が
あるので (就職活動においては) 多少は価値はあるでしょう。ただし、あくまで「多
少は」でしょう。

そもそも、人生において就職活動をしている時間は (普通は) ごく短時間です。例え
ば、結婚式に出席した時に役立つ知識 (例: スピーチのマナー) は持っているに越し
たことはありませんが、普通の人が一生の間に結婚式に出席する回数は限られていま
す。

- 研究内容は将来の仕事の業種にどのくらい影響があるとお考えですか?ほとんどの方が研究内容と関連した就職をされますか?

ある程度の影響があると思います。例えば、私の研究室出身の大学院生の多くは情報
通信関係の企業に就職しています。もともと情報通信に興味があったから私の研究室
に来たのか、私の研究室に来たから情報通信関係の企業に就職したのかはわかりませ
ん。

- 動画配信サービス「ニコニコ」のサイバー攻撃に関して大崎教授はどのように考えておりますか?

ひどい話ですが、明日は我が身でと思ってます。

- 今まで授業を受けてきてOSに興味が湧きました。自分で一度学習してみたいと考えているのですが、OSに関する書籍で先生の思う良著があれば教えていただきたいです。

OS の仕組みならタネンバウムの教科書、OS の使い方ならオライリーの本を読むと良
いと思います。

- 「FPSで動作がカクつくのはどうしてですか?」という質問をした者です。大崎先生は好きなゲームありますか?

コナミのグラディウスシリーズです。グラディウスに感動して、中学生の時に、グラ
ディウスを自分で作ってみたくてプログラミングを始めました。

- 授業でFIFOとLRUについて学びましたが、その2つが組み合わされることはあるのでしょうか?

面白い発想ですね。アリかもしれません。探せばそういう論文があるかもしれません。
ぜひ調べてみてください。

- フレームとパケットの違いは何ですか?

文脈にもよりますが、一般的にフレームはレイヤ 2 (データリンク層) における情報
のまとまりを、パケットはレイヤ 3 (ネットワーク層) における情報のまとまりを意
味することが多いです。したがって、イーサネットフレーム、IP パケットのように
呼ばれます。普通は、イーサネットパケット、IP フレームとは呼びません。

- 12回の課題4での具体的な解決策は何がありますか?

物理的に破壊するのが一番です。フラッシュメモリやハードディスクは、ゼロで上書
きしても技術的には復元できるようなので、論理的に消去しても安心はできません。

- 授業内でfooのファイル形式を調べる際、ダウンロードして調べたのですがこのやり方の場合ウイルスの危険に晒される可能性はありますか?また、ダウンロードせずに調べる方法があれば教えていただきたいです。

もちろんあります。危険なものには近付かないことです。原理的に、取得 (ダウンロー
ド) せずに調べるのは不可能です。

- CTFの一番最後の回の問6,7で、Weikipediaのリストに載っていなかったのですが、この場合どのような種別のファイルかをどのように判別したらよいですか?

載ってますよ。06-type は PDF です。07-type はひっかけ問題で、ただのテキスト
ファイルです。

- 大崎先生の研究室の生徒さんは今、どのような研究をやっているのですか?

以下のページを見てみてください。
https://rm.lsnl.jp/projects/public/news

- IT系の仕事に就く際に、とっておいた方がいい資格があれば教えてください。

- PCや携帯などで写真やアプリを削除して容量が減ったということは実体を完全に削除できているということでしょうか?復元はなんらかの方法でできるのでしょうか?

他の質問への回答を観てください。

レポート課題 2024-07-12

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

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


Hiroyuki Ohsaki (ohsaki[atmark]lsnl.jp)
[<21. 12. ファイルシステム]