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

1. URL

  講義ページ (単一ページ版)
  http://www.lsnl.jp/~ohsaki/lecture/os/2017/

  講義ページ (複数ページ版 (モバイル端末向け))
  http://www.lsnl.jp/~ohsaki/lecture/os/2017/toc.html

  質問用メイリングリスト
  os-qa[atmark]lsnl.jp
  本文には、必ず学生番号・氏名・メールアドレス (@kwansei.ac.jp のもの) を明記してください。

  質問送信フォーム (パスワードが必要です)
  http://www.lsnl.jp/cgi-bin/lecture/os-qa

  レポート課題提出フォーム (パスワードが必要です)
  http://www.lsnl.jp/cgi-bin/lecture/os-report

2. 担当教員

  大崎 博之
  関西学院大学 理工学部 情報科学科
  E-mail: os-staff[atmark]lsnl.jp
  
  オフィスアワー
  毎週水曜日 1:30pm-3:00pm @ 理工学部 IV 号館 教授室44

3. 講義目的

コンピュータの基本ソフトウェアであるオペレーティングシステムの概念と、 その原理を学ぶ。オペレーティングシステムの歴史、プロセスとスレッド、デッ ドロック、メモリ管理、入出力、ファイルシステムなど基本的な概念に加えて、 マルチメディア処理、マルチプロセッサシステム、セキュリティなど最近のト ピックについても学ぶ。

4. 到達目標

オペレーティングシステムの基本的な概念が理解できるようになる。

5. 授業方法

講義形式で行うが、単に、「教科書の内容を抜粋して説明する」という講義は 行わない。

まず、教科書のエッセンスを説明する。その後、各回のトピックが、現在広く 利用されているオペレーティングシステム (Debian GNU/Linux) にどのように 実現されている (もしくは実現されていない) かを解説する。オペレーティン グシステムを、学術的な観点と、実践的な観点の両方から学ぶため、非常に興 味を持って取り組めるであろう。

6. 教科書

Andrew S. Tanenbaum 『モダンオペレーティングシステム第 2 版』 (ピアソン・ エデュケーション・ジャパン、2004 年)

→ 絶版のため参考図書扱いとする

7. 成績評価

授業中試験 40 %、平常リポート 60%

8. スケジュール

  2017 年度 オペレーティングシステム講義スケジュール (予定)

  2017/ 4/12 オペレーティングシステムの概要
  2017/ 4/19 プロセスとスレッド
  2017/ 4/26 プロセス間通信
  2017/ 5/ 3 スケジューリング
  2017/ 5/10 メモリ管理(1)
  2017/ 5/17 前半総復習
  2017/ 5/24 中間試験
  2017/ 5/31 メモリ管理(2)
  2017/ 6/ 7 入出力 (外部 I/O)
  2017/ 6/14 入出力 (ユーザインターフェース)
  2017/ 6/21 ファイルシステム
  2017/ 6/28 中間試験
  2017/ 7/ 5 [休講]
  2017/ 7/12 マルチメディア処理

9. 大学の講義・演習とは

  教育基本法
  http://law.e-gov.go.jp/htmldata/H18/H18HO120.html
  
  (学校教育)
  第六条の 2
  前項の学校においては、教育の目標が達成されるよう、教育を受ける者の心身
  の発達に応じて、体系的な教育が組織的に行われなければならない。この場合
  において、教育を受ける者が、学校生活を営む上で必要な規律を重んずるとと
  もに、自ら進んで学習に取り組む意欲を高めることを重視して行われなければ
  ならない。
  
  (大学)
  第七条
  大学は、学術の中心として、高い教養と専門的能力を培うとともに、深く真理
  を探究して新たな知見を創造し、これらの成果を広く社会に提供することによ
  り、社会の発展に寄与するものとする。

→ 必要な規律を重んずること、自ら進んで学習に取り組むことが大切。大学は、 専門的能力を培うとともに、深く真理を探究する場所である。

  大学設置基準
  http://law.e-gov.go.jp/htmldata/S31/S31F03501000028.html
  
  (単位)
  第二十一条の 2
  前項の単位数を定めるに当たつては、一単位の授業科目を四十五時間の学修を
  必要とする内容をもつて構成することを標準とし、授業の方法に応じ、当該授
  業による教育効果、授業時間外に必要な学修等を考慮して、次の基準により単
  位数を計算するものとする。
  一 講義及び演習については、十五時間から三十時間までの範囲で大学が定める
  時間の授業をもつて一単位とする。
  二 実験、実習及び実技については、三十時間から四十五時間までの範囲で大学
  が定める時間の授業をもつて一単位とする。ただし、芸術等の分野における個
  人指導による実技の授業については、大学が定める時間の授業をもつて一単位
  とすることができる。

→ 2 単位の講義・演習では、90 時間の学修を必要とするので、67.5 時間の予 習・復習が必要になる。

10. 教育方針

  × 単位を取るコツを教える
  ○ 知的好奇心を刺激する

  × ツールの使い方を教える
  ○ 概念を教える

  × 知識を伝える
  ○ 自分で学ぶ方法を教える

  × 教員が主役
  ○ 受講生が主役

  本当にこの授業を受講したいか? 自分自身で考えて決めてほしい。
  
  受講する場合
  → すべての授業に遅刻せず出席し、主体的に学習する
     学習共同体なので、他の人に対しても責任を負う
     出席するに値する授業になっていなければ大崎に知らせる

11. (1) オペレーティングシステムの概要

到達目標

1. オペレーティングシステムとは何かを他人に説明できるようになる

2. 「拡張マシンとしてのオペレーティングシステム」および「リソースマネー ジャとしてのオペレーティングシステム」という二つの観点を理解できるよう になる

3. コンピュータハードウェアの概要を他人に説明できるようになる

課題

講義内容を復習し、「到達目標」まで到達できていない (十分に理解できてい ない) と考える点について参考図書・文献・インターネットを利用して調査し、 理解を深めよ。その後、以下の設問に対するレポートを提出せよ。

設問 1 (15 分): 今日の授業 (自習も含む) で学んだ内容のうち、何が特に大 切だと思うか? 理由とともに説明せよ。

設問 2 (60 分): 好きなオペレーティングシステムを一つ選び、そのオペレー ティングシステムを「拡張マシンとして」および「リソースマネージャとして」 という二つの観点から概要・機能・特徴を論ぜよ。

※ 検索エンジンで「Windows 拡張マシン」や「OS X リソースマネージャ」等 で検索しても意味のある情報は得られません。講義中で説明した、「拡張マシ ン」や「リソースマネージャ」の観点から論じてください。

設問 3: 自由記述。感想、教員へのメッセージ、記録用のメモなど自由に記述 して構わない。空白でも良い。ただし、質問は質問フォームから送ること。

提出方法: 「レポート課題提出フォーム」から送信せよ。レポートが再提出さ れた場合は、新しいほうを採点対象とする。

提出期限: 一律の期限を設定しない。最終提出期限は 2017/7/18(火) 5:00pm とする。各自で学習計画を立てて、計画的に取り組むこと。

注意事項: 提出されたレポートは、匿名にした上で、他の受講者および来年度 以降に大崎が担当する講義の受講者に公開する場合がある。他の受講者に公開 されて困る内容はレポートに含めないこと。

質問および回答

- 大崎先生は某極小柔社のオペレーティングシステムを親でも殺されたのかの ようにこき下ろされていますが何故でしょうか. 授業中に隣席の友達が起動 していてヒヤヒヤしました.

  そこまで毛嫌いしていませんが、プロプリエタリソフトウェアであること、
  OS の設計が美しくないこと、個人情報が保護されない等の複数の理由で使
  いませんし、他人にも勧めません。

- 基本情報処理試験の勉強をしようと思ってるのですが就職活動の時に役に立 つと思われますか?

- 情報処理技術者の資格は就活をするにあたってプラスになりますか?

- 就活についてですが、今、学科の友人が様々な資格を取得しようとしている のですが、資格を取っている人とそうでない人では就活にハンデをおうこと になりますか?

  はい。資格そのものよりむしり、資格を取るための課程に意義があると思い
  ます。

- 大学院生は海外に研究発表等行ったりしますか?

  する学生もいます。

- macのswift を使用してゲームを作成したいのですが、オススメの本とかを おしえていただきたいです。

  ごめんなさい。最近の Macintosh のことはわかりません。

- この質問などで、成績に影響などはありますか? 私は就職活動をするに当たっ て、資格を取っておいたほうが、よいのではないかと思っています。実際に 資格があれば、評価など変わってきますか?

  勉学態度を反映したものですので、相応に影響します。資格の有無はオペレー
  ティングシステムの成績には無関係です。

- 大学卒の段階と大学院卒業後の就職(主に情報部門の仕事について)どれくら いの違いがあるのか知りたいです。

  一般に、研究開発を希望するなら大学院まで行ったほうがいいでしょう。

- 大学院に進学すると、社会に出るのが遅くなってしまいますが、そういった 面での学部卒の人との差はありますか?

  大学院で所属する大学や研究室によります。

- 先生は自作のソフトウェアに囲まれて死ぬことが目標だとおっしゃられてい ましたが、携帯端末やそのソフトウェアなども自作しているのでしょうか?

  一部作ったものもありますが、基本的に携帯端末は不要だと考えてます。

- 1階の親機のルーターから無線LANを2階に飛ばしてパソコン使っているので すが、回線が悪いときが多いです。何が原因なのでしょうか?

  いろんな原因が考えられます。まずは電波の S/N 比 (信号強度) をチェッ
  クしましょう。

- PS4の格闘ゲームをしているのですが、無線LANと有線LANだとどれぐらいの 遅延の差がでますか?

  これもいろんな要因によって左右されますが、単純に有線と無線の違いなら
  数 ms 程度です (ただし環境によって大きく変化します)。

- C言語やjavaなどいろいろとプログラミング言語はありますが、どの言語を やっていれば就職に有利とかありますか? もしあるならそれについてのオス スメの参考書などあれば教えてください。

  就職先によります。就職先を限定しないなら C、Python あたりでしょう。C
  なら K&R、Python ならオライリーの本を勧めます。

- 空間分割多重があれば、時間割多重は必要ない気がするのですが、どうです か

  資源を無限に分割可能 (A) で、なおかつごく少量の資源しか要求しない
  (B) ならその通りですが、一般には (A) も (B) も成り立ちません。

- DuckDuckGoを使っているようでしたが,なぜそれをつかうのか理由を教えて ください. NSAなどによる情報収集に対して,大崎先生自身は何か対策してい ますか.

  プライバシーを保護したいことと、Google の収益を増やしたいと思わない
  からです。

- 大崎先生がこの授業で最も学んで欲しいことは何ですか.

  「世の中にはこんな楽しいことがあるんだ」という刺激を受けて欲しいと思っ
  ています。

- 拡張マシンとしてのOSに関して、計算機の機能を拡張し、難しいことを代わ りにしてくれるというものでしたが、あまり理解ができませんでした。具体 例をあげていただけると助かります。

- OSについての質問です。拡張マシンとしてのOSの説明を十分に理解できなかっ たので教えてください。例えば、画面上に文字を表示させたいとき、printf を用いて表示させることができますが、実際は裏で画面上のどこどこの座標 に点を打つというプログラムが作動しています。OSはそういった難しく面倒 な部分を肩代わりしてくれる役割を持つということですか?

  はい。文字を表示するためだけに、(OS も含めた) 数多くのプログラムが動
  作しています。

- 先生はマイクロソフトが嫌いと聞きました。アップルも同様に嫌いなのですか?

  特に「嫌い」という感情は持ってませんが、どちらも素晴しい企業だとは思っ
  ていません。

- 情報科学系の学部卒では、企業のSEやソフトウェアの開発以外にどのような 職種がありますか?

  むしろ学部卒だと、技術系ではない仕事 (営業、公務員、教員) が多いよう
  に思います。

- 情報理論と符号理論のような、オペレーティングシステムとセットになるよ うな講義はありますか?

  「コンピュータアーキテクチャ」、「ネットワーク」、「ネットワークコン
  ピューティング」は特に関係が深いです。

- 質問なのですが、僕は大学院へ進級を検討しているのですが、大学院へ進学 した場合でも大学院在学中に様々な資格を取ったり、就活の準備、インター ン等に参加する時間はありますか。

  はい。ただ、大学院では研究に専念することを勧めます (それが一番自分の
  ためになるので)。

- 情報科学概論の講義で、目標は世界征服だと仰っていましたが現在どのくら い進行しているのですか?

  今は、研究・教育ともに日本のトップレベルくらいだと思います。

- 現在はOSがあるので、直接ハードウェアを操作しないでいいということは分 かりましたが、現在では、ハードウェアを直接操作するということはあるの でしょうか?

  何のプログラムを書くかによります。Windows 上でアプリケーションを書く
  なら操作しません (というより操作できません)。組み込みシステムのプロ
  グラムを書くなら、ハードウェアを直接操作します。

- OSについて学べば僕でも教授が講義中に使っているような自作のOSがつくる ことができますか?

  はい。

- 私は情報セキュリティを将来の目標としているのですが、それについて勉強 しようとして調べていくと、情報セキュリティがあまりにも広義的なものだ ということを知りました。情報セキュリティという言葉を原動力にしてきた 私ですが、そこからどの方向へ進めばいいのか分からなくなってしまいまし た。セキュリティを勉強するにあたって、どんな方向性があって、何を勉強 すればベターなのかをご教授いただきたいです。

  ごめんなさい、セキュリティの専門家じゃないのでわかりません。

- macとかwindows,linuxのosって何が違ってどんな短所長所があるのか知りた い。プログラマのPCスペックはどれくらい必要なのか。

  OS X も Linux も、基本は UNIX です。Windows だけ特殊ですね。プログラ
  ミングには低スペックな PC で十分です。

- 先生はゲームに出会っていなかったら、今頃なにをしていましたか。また、 仕事はなにをしていましたか。

  わかりません。どうなっていたんでしょうね。

- おすすめのOSはなんですか?

  GNU Hurd です。

- 課題の横の時間はなんですか?

  私が想定する所要時間 (単位は分) です。

要望

- 座席指定はあんまりです.……座席指定制を辞めて,多少面倒であっても他の 方法での出欠確認が行われることを望みます.

- 授業の席は、エアコンの風が直接当たらない席を希望します。

  受講生向けページ
  http://www.lsnl.jp/~ohsaki/lecture/os/2017/for-students/

- プロジェクターを使用するために電気を暗くしているためノートが取りづら いのでもう少し電気をつけて欲しいです。

- 質問というより要望になってしまうのですが、前回授業を受けているとき、 とても手元が暗く感じていました。スクリーンを用いた授業なので仕方ない かとは思いますが、もう少しだけ明かりを調節することはできないでしょう か。

  調整してみます。

- 黒板をつかってほしいです。

  試してみます。

12. (2) プロセスとスレッド

到達目標

- プロセスとスレッドのしくみを理解し、他人に説明できるようになる。

- プロセスとスレッドそれぞれの利点・欠点を他人に説明できるようになる。

- プロセスの状態遷移図を描き、他人に説明できるようになる。

課題

講義内容を復習し、「到達目標」まで到達できていない (十分に理解できてい ない) と考える点について参考図書・文献・インターネットを利用して調査し、 理解を深めよ。その後、以下の設問に対するレポートを提出せよ。

設問 1 (60 分): 以下の文書を読み、概要を理解せよ。わかったこと、わから なかったことの両方を箇条書の形式で列挙せよ。日本語のページを参考にして もよいが、必ず英語のページを読んで理解すること。

Process (computing) (Inter-process communication の前まで) http://en.wikipedia.org/wiki/Process_(computing)

※ 原文の和訳は無意味です。必ず自分の言葉で書いてください。

設問 2 (60 分): 以下の文書を読み、概要を理解せよ。わかったこと、わから なかったことの両方を箇条書の形式で列挙せよ。日本語のページを参考にして もよいが、必ず英語のページを読んで理解すること。

Thread (computing) (Multithreading の前まで) http://en.wikipedia.org/wiki/Thread_(computing)

※ 原文の和訳は無意味です。必ず自分の言葉で書いてください。

設問 3: 自由記述。感想、教員へのメッセージ、記録用のメモなど自由に記述 して構わない。空白でも良い。一般的な質問はメイリングリスト宛に送ること。

提出方法: 「レポート課題提出フォーム」から送信せよ。レポートが再提出さ れた場合は、新しいほうを採点対象とする。

提出期限: 一律の期限を設定しない。最終提出期限は 2017/7/18(火) 5:00pm とする。各自で学習計画を立てて、計画的に取り組むこと。

注意事項: 提出されたレポートは、匿名にした上で、他の受講者および来年度 以降に大崎が担当する講義の受講者に公開する場合がある。他の受講者に公開 されて困る内容はレポートに含めないこと。

質問および回答

- 座席ですが、希望があれば記入とあり、僕は講義を受けるにあたり特に座席 にこだわりがなく放置していましたら座席がなくなっていました。僕はどこ に座って講義を受ければよいのでしょうか。

  後方ブロックの 2 列目以降に前から詰めて座ってください。

- アプリゲームを作るにはiOS向けとAndroid向けどちらが作りやすいですか?

  最近の動向を追い掛けていないのでわかりません。何を目的にするかにより
  ますが、Pygame (http://pygame.org/) のコードを真似て、Python で書く
  ことをおすすめします。

- どのOSが一番優れていると思いますか? どのOSも一長一短あるかと思います が、OSにおいてどういった要素が重要で、どのOSがその点で優れているとお 考えですか

  どんな観点かにもよりますが、歴史的には UNIX V6 や 4.3BSD だと思いま
  す。

- パソコンがそんなに好きではないためOSという言葉を聞いてもあまり何も思 い浮かびません。何も知らない状態で受けても大丈夫でしょうか?

  大丈夫ではないと思うので、まず、コンピュータを好きになってあげてくだ
  さい。

- もしかして今回課題として掲示されたWikipediaのページは大崎先生が編集 されていますか?

  いいえ。

- 座席指定用のスプレッドシートがGoogleのサービスなのですが個人情報を抜 かれることはないのでしょうか?

  いわゆる Web サービスなので、Web サービスを利用して収集される情報
  (IP アドレス、OS やブラウザの種別、Google アカウントを利用していれば
  その情報) は当然収集されてしまいます。

- ping 値を測定しているときに気づいたのですが、なぜ学内LANを使用しない のですか?プライバシー保護のためですか?

  すべての教室で無線 LAN が使えないためです。

- 大崎先生はWindowsの利用規約には、我々に不都合な事が書かれていると言 われていましたが、Linuxや(MAC)には授業中に取り上げられていた(色づけ されていた)内容は一切書かれていないといった認識でよろしいですか。

  いいえ。Apple も Microsoft も同じようなものです。フリーソフトウェア
  のライセンス (GPL 等) が異色です。

- 先生のOSはC言語を用いて作ったのですか?

  Perl で書いています。

- 課題1_2を行ううえで質問があります。今までコンピュータを触ったことが なかったので好きなosというものがないのですが、課題について調べた結果、 使用したことはないがこのOSが好きだというのはいいのでしょうか。

  はい。レポートにはそのように明記してください。

- 情報科学科、人間システム工学科の教員の中で、先生が特に尊敬する教員は いらっしゃいますか?

  「特に」と聞かれると難しいですが、多くの先生が、精力的に、情熱を持っ
  て教育に取り組んでいらっしゃると思います。

- 私は、履歴書に書けるような資格が1つもありませんが、就職活動の時にこ のままでも通用するでしょうか?

  他に誇れるものがあればまったく問題ないでしょう。他に誇れるものがなけ
  れば (どの企業を志望するによりますが) より困難が待っているでしょう。

要望

- 黒板より万年筆での授業の方が良かったです。

  書画カメラに戻します。

13. (3) プロセス間通信

到達目標

- プロセス間通信とは何かを理解し、他人に説明できるようになる。

- プロセス間通信の 3 つの問題を他人に説明できるようになる。

- セマフォおよび mutex とは何かを理解し、他人に説明できるようになる。

課題

講義内容を復習し、「到達目標」まで到達できていない (十分に理解できてい ない) と考える点について参考図書・文献・インターネットを利用して調査し、 理解を深めよ。その後、以下の設問に対するレポートを提出せよ。

設問 1 (60 分): 以下の文書を読み、概要を理解せよ。わかったこと、わから なかったことの両方を箇条書の形式で列挙せよ。日本語のページを参考にして もよいが、必ず英語のページを読んで理解すること。

Semaphore (programming) (Example: Producer/consumer problem の前まで) http://en.wikipedia.org/wiki/Semaphore_(programming)

※ 原文の和訳は無意味です。必ず自分の言葉で書いてください。

設問 2 (60 分): 以下の文書を読み、誤訳している箇所を 3 つ以上見つけよ。 それぞれについて、該当箇所、原文と訳文、どこがどのように誤っているかを 説明せよ。

セマフォ http://ja.wikipedia.org/wiki/セマフォ

設問 3: 自由記述。感想、教員へのメッセージ、記録用のメモなど自由に記述 して構わない。空白でも良い。一般的な質問はメイリングリスト宛に送ること。

提出方法: 「レポート課題提出フォーム」から送信せよ。レポートが再提出さ れた場合は、新しいほうを採点対象とする。

提出期限: 一律の期限を設定しない。最終提出期限は 2017/7/18(火) 5:00pm とする。各自で学習計画を立てて、計画的に取り組むこと。

注意事項: 提出されたレポートは、匿名にした上で、他の受講者および来年度 以降に大崎が担当する講義の受講者に公開する場合がある。他の受講者に公開 されて困る内容はレポートに含めないこと。

質問と回答

- スレッドとプロセスについての質問なのですが、あるCPUをシングルスレッ ドシングルコアだと仮定してそのCPU上ではハードウェアへのアクセスであっ たり操作がスレッドとして時分割などで行われているという認識で間違いな いでしょうか? OS上でのプログラムのスレッドとプロセスについては何とな く理解できるのですが機械的なところではどうなっているか理解できなかっ たので質問させていただきました。

  一つの CPU は、(単一コアであれば) 同時に一つの命令しか実行できません。
  同時に一つの命令しか実行できないので、一つのデバイスにしかアクセスで
  きません。ある瞬間に実行する命令が、OS のコード、プロセス A のコード、
  プロセス B のスレッド 1 のコード、プロセス B のスレッド 2 のコー
  ド……という風に切り替わっています。

- 情報科学科/人間システム工学科 教務ページにログインするのに HTTPS が 使われていないですが、これって学籍番号とパスワードが平文で送られてい るってことではないのでしょうか? なぜわざわざ危険な方を採用しているの ですか? 情報系学科ながら HTTP ページ上でパスワードの入力要求をするな んて,少し意味がわかりません。コストの問題でしょうか?

  平文で送られていて、良くない方法ですね。コストというか、手間の問題だ
  と思います。

- 我々が普段使用するコンピュータとスーパーコンピュータはどのあたりが異 なるのでしょうか? スーパーコンピュータは、どのようにして高度な計算を 実現しているのですか?

  最近のスーパーコンピュータだと、普通のパソコンとほとんど同じです。主
  に、規模 (台数) とか、インターコネクトが違います。

- 時間を十分に持っている学生が一人と知恵とお金を持つ学生が一人と足りな いものを補う一人の学生の計三人がいるとします。三人は漠然とした何かを 卒業までに達成するという目標をたて、それを生きがいにすることに決めま した。仮に大崎教授がその中の一人の学生だとしたとき、三人で何をしよう と思いますか?

  有用なフリーソフトウェアを開発して公開する、かな。

- ぜひ先生の TRON プロジェクトの評価をお聞きしたいです。

  ごめんなさい。評価できるほど理解していません。

- 映画シチズンフォーでエドワードスノーデンさんは、NSAは盗聴器として(例 えばホテルの客室の)IP電話を遠隔起動できると言っています。やるかやら ないか(しているかしていないか)は置いておいて、先生も遠隔起動して盗聴 できますか?

  ある特定のホテルの、特定の客室、と言われたらできません。「どこかの客
  室」ならできると思います。が、「不正アクセス防止法」があるので絶対に
  試さないでください。

- 授業で使用している万年筆はどこのメーカーのものですか?

  ペリカンです。

- 日本語版ウィキペディアに誤訳があると言われていましたが、なぜ大崎先生 自身が修正しないのでしょうか?

  「誤りがある」というレベルではないので、少しの労力で直すのは不可能だ
  と思います。あと、専門的な情報は、英語の文献から得るべきだと思ってい
  ます。

- また、関西学院のホームページに載せられている大崎先生の写真と授業でみ る大崎先生の印象が全然違います。ホームページの写真がとても若く見える だけなのでしょうか?

  そうですか? でも、確かに古い写真です。

- パソコンがあまり好きではないので〜というくだりの質問に対する先生の解 答がとてもスッキリしました。偏見かもしれないですが何故情報科学科には そのような学生が多いのでしょうか。

  コンピュータやインターネットが、電気・ガス・水道と同じように「あっ
  てあたりまえ」になっている、中身がブラックボックス化している、カリキュ
  ラムの問題 (伝統的な情報科学で、若者の夢を見づらい) など、複数の要因
  があるような気がします。

- やり過ぎとも感じましたが先生のより良い授業の為にとSHUREのヘッドセッ トを持ち出した時は感動しました。レベルが足りないと仰っていましたが間 にアンプのようなものを接続されるのでしょうか? またプロジェクタへの画 面の転送は無線で行うのでしょうか? そしてこういった機材は全て先生の個 人的出費、趣味で賄われているのでしょうか?

  (1) マイクアンプを入ればうまく行きそうです。(2) VNC (いわゆるリモー
  トデスクトップ) で飛ばせばいいな……と計画しています、(3) 多くが自費
  ですが、研究費のものもあります (物によります)。

要望

- 講義「オペレーティングシステム」質問送信フォームから質問等を送信した 後、[ホームに戻る]をクリックすれば OS の講義 HP に戻れるようにした方 が使いやすいと思いました。

  そうですね。対応しました。

- 黒板を使うのをできるだけ控えてほしい。大事なところがわかりにくいです。

  書画カメラを使います。

- 講義で前半、いろいろお話しされていましたが、少し長いと思いました。あ まり長いと眠くなるので、20 分ほどで良いと思います。

  時間配分工夫します。

- 単純に雑談が多くて、授業で伝えられる OS に関しての知識が少ないと思い ました。その授業の後でウィキペディアを読んでその内容について、自習を して理解を深めろと言われてもなかなか時間がかかります。そしてウィキペ ディアを読む課題ですが、読めば読むほど分からないこと、知らない概念が 出てきて、収集がつきません。ウィキペディアで情報を得るより、 先生の 授業内でより多くの情報を得たいです。それと同時に課題のウェイトを軽く していただきたいです。英語という点もありますが、本当に書いてあること をちゃんと理解しようと思ったらとても 60 分では足りないです。

  「読めば読むほど分からないこど、知らないことが出てくる」で合っていま
  す (なので、「分からなかったこと」も答える課題です)。

- 課題で Wikipedia を読んで行うものがありましたがひとつの記事を全て読 むだけでも 2.3h かかると思います。60 分で理解可能なところまででいい のでしょうか。

  「60 分でできたところまで」と考えるのではなく、「どうすれば 60 分で
  できるか」を考えてください。

14. (4) スケジューリング

到達目標

- OS におけるスケジューリングとは何かを他人に説明できるようになる。

- OS におけるスケジューリングの重要性・困難さを他人に説明できるようになる。

- 代表的なスケジューリングアルゴリズムを理解し、その動作をトレースできるようになる。

課題

講義内容を復習し、「到達目標」まで到達できていない (十分に理解できてい ない) と考える点について参考図書・文献・インターネットを利用して調査し、 理解を深めよ。その後、以下の設問に対するレポートを提出せよ。

設問 1 (90 分): 以下の問題に回答せよ。回答は手書のものをスキャン (また は撮影) し、添付ファイルとして提出せよ。ファイル形式は PDF 形式を推奨す るが、PDF を作成できない場合は JPEG を ZIP でアーカイブしたものでもよい。 ファイル名は「XXXX-LASTNAME.pdf または XXXX-LASTNAME.zip (XXX は学生番 号、LASTNAME は名前、すべて半角文字、例: 1234-yamada.pdf)」とせよ。

  京都大学大学院情報学研究科 平成22年度 博士前期課程入試問題より抜粋
  http://www.lsnl.jp/~ohsaki/lecture/os/2017/for-students/0503.pdf

設問 2: なし

設問 3: 自由記述。感想、教員へのメッセージ、記録用のメモなど自由に記述 して構わない。空白でも良い。一般的な質問はメイリングリスト宛に送ること。

提出方法: 「レポート課題提出フォーム」から送信せよ。レポートが再提出さ れた場合は、新しいほうを採点対象とする。

提出期限: 一律の期限を設定しない。最終提出期限は 2017/7/18(火) 5:00pm とする。各自で学習計画を立てて、計画的に取り組むこと。

注意事項: 提出されたレポートは、匿名にした上で、他の受講者および来年度 以降に大崎が担当する講義の受講者に公開する場合がある。他の受講者に公開 されて困る内容はレポートに含めないこと。

質問と回答

- 今後 OS はどのように変化し発展していくと思われますか?

  難しいですね。あくまで予想ですが、「標準化」 (standardization)一) と
  「ネットワーク化」 (operating system for platform 化) が進むと思いま
  す。

- シェルスクリプトを学びたいのですがおすすめの本はありますか?

  読者のレベルにもよりますが、私が読んだ本の中では、「UNIX プログラミ
  ング環境」と「詳解 シェルスクリプト」をおすすめします。

- Emacs の良いところはどういった点ですか? Emacs の良さがわからない学 生にも、わかりやすいように教えていただければと思います。

  (1) フリーソフトウェア (自由なソフトウェア) であること、(2) 「本物」
  であること、(3) Emacs 自体が Lisp のインタープリタであること、だと思
  います。

要望・感想

- 講義の中のデモで使用していたプログラムが欲しいです。自分のコンピュー タでも試してみたいです。

  以下に置きました。tar + gzip でアーカイブしてあります。  

  http://www.lsnl.jp/~ohsaki/lecture/os/2017/for-students/02-process.tar.gz
  http://www.lsnl.jp/~ohsaki/lecture/os/2017/for-students/03-ipc.tar.gz

- 毎週 OS の講義が非常に楽しみです。情報科学科の中には , 講義で指定の 教科書をひたすら読んでいくという先生もいらっしゃっいますが、大崎先生 の講義のように、知的好奇心を刺激するような講義はあまりありません。概 念を説明した後に、デモで実際のコンピュータの具体的な動きが見えるので 理解が深まります。これからの講義も楽しみにしております。

  ぜひ楽しんでください。

15. (5) メモリ管理(1)

到達目標

- コンピュータにおけるメモリ (主記憶) の構成を理解し、他人に説明できるようになる。

- OS におけるメモリ管理の重要性および困難さを理解し、他人に説明できるようになる。

- スワップおよびページングの概要・利点・欠点を理解し、他人に説明できるようになる。

課題

講義内容を復習し、「到達目標」まで到達できていない (十分に理解できてい ない) と考える点について参考図書・文献・インターネットを利用して調査し、 理解を深めよ。その後、以下の設問に対するレポートを提出せよ。

設問 1 (90 分): 以下の問題に回答せよ。回答は手書のものをスキャン (また は撮影) し、添付ファイルとして提出せよ。ファイル形式は PDF 形式を推奨す るが、PDF を作成できない場合は JPEG を ZIP でアーカイブしたものでもよい。 ファイル名は「XXXX-LASTNAME.pdf または XXXX-LASTNAME.zip (XXX は学生番 号、LASTNAME は名前、すべて半角文字、例: 1234-yamada.pdf)」とせよ。

  http://www.lsnl.jp/~ohsaki/lecture/os/2017/for-students/0510.pdf

設問 2: なし

設問 3: 自由記述。感想、教員へのメッセージ、記録用のメモなど自由に記述 して構わない。空白でも良い。一般的な質問はメイリングリスト宛に送ること。

提出方法: 「レポート課題提出フォーム」から送信せよ。レポートが再提出さ れた場合は、新しいほうを採点対象とする。

提出期限: 一律の期限を設定しない。最終提出期限は 2017/7/18(火) 5:00pmと する。各自で学習計画を立てて、計画的に取り組むこと。

注意事項: 提出されたレポートは、匿名にした上で、他の受講者および来年度 以降に大崎が担当する講義の受講者に公開する場合がある。他の受講者に公開 されて困る内容はレポートに含めないこと。

質問と回答

- 優先度が記述されていない SPT (Shortest Processing Time First) 方式の 問題でも実行時間が同じプロセスが 2 つあるときは先にあったプロセスを 優先させるのでしょうか。

  いろいろな方式があります (定まっていません)。
  
  「優先度に従うスケジューリングアルゴリズムで、優先度が同じプロセスの
  どれを先に処理するか? (ランダムか? 古い順か? 新しい順か?)」とか、
  「ラウンドロビン方式で、新しく生成されたプロセスがクォンタムを得る順
  番はいつ回ってくるか? (ランダムか? 一番最初か? 一番最後か?)」はいろ
  んなパターンがあって、「普通はこう」とか「一番いいのはこう」とは定まっ
  ていません。
  
  試験の答案では、「……は……という複数の方式が考えられる。今回
  は、……であるから、……を……とした場合の結果を示す。」のように回答
  してください (出題者は回答者の理解度を測るために試験をしているので)。

要望

- 今回の Emacs を用いた講義が一番私は講義に集中しやすいです。図は書画 カメラでも個人的にはいいと思います。

  エディタを使うスタイルをしばらく続けてみます。  

16. (6) メモリ管理(2)

到達目標

- スワップおよびページングの概要・利点・欠点を理解し、他人に説明できるようになる。

- 代表的なページ置き換えアルゴリズムを理解し、その動作をトレースできるようになる。

課題

講義内容を復習し、「到達目標」まで到達できていない (十分に理解できてい ない) と考える点について参考図書・文献・インターネットを利用して調査し、 理解を深めよ。その後、以下の設問に対するレポートを提出せよ。

設問 1 (90 分): 以下の問題に回答せよ。回答は手書のものをスキャン (また は撮影) し、添付ファイルとして提出せよ。ファイル形式は PDF 形式を推奨す るが、PDF を作成できない場合は JPEG を ZIP でアーカイブしたものでもよい。 ファイル名は「XXXX-LASTNAME.pdf または XXXX-LASTNAME.zip (XXX は学生番 号、LASTNAME は名前、すべて半角文字、例: 1234-yamada.pdf)」とせよ。

http://www.lsnl.jp/~ohsaki/lecture/os/2017/for-students/0517.pdf

設問 2: なし

設問 3: 自由記述。感想、教員へのメッセージ、記録用のメモなど自由に記述 して構わない。空白でも良い。一般的な質問はメイリングリスト宛に送ること。

提出方法: 「レポート課題提出フォーム」から送信せよ。レポートが再提出さ れた場合は、新しいほうを採点対象とする。

提出期限: 一律の期限を設定しない。最終提出期限は 2017/7/18(火) 5:00pm とする。各自で学習計画を立てて、計画的に取り組むこと。

注意事項: 提出されたレポートは、匿名にした上で、他の受講者および来年度 以降に大崎が担当する講義の受講者に公開する場合がある。他の受講者に公開 されて困る内容はレポートに含めないこと。

質問および回答

- 大崎先生が論文を書くときは、Microsoft Word を使わないで、どうやって 書いているのですか? 具体的なアプリケーションソフトウェアを教えてくだ さい。

  ほとんどの文書は Emacs の org モードで書きます。論文は LaTeX で書い
  ています (LaTeX のソースファイルを Emacs で編集しています)。

- 博士課程へ進もうと考えた理由はなんでしたか?

  Ph.D (博士号) を持っているほうが、カッコいいと思ったからです。

- 先生のようにEmacsの達人になりたいです。Emacsを使いこなせるようになる ための方法を教えてください。

  すべてのプログラミングに共通だと思いますが、「こんなものが欲しい」→
  「作ってみる」→「もっとこんなものが欲しい」→「作ってみる」……を繰
  り返すことだと思います。

- 雑談の時間が多すぎるという意見もあるようですが,個人的には雑談70分、 概念の解説15分ぐらいがちょうど心地よいです。雑談長めでお願いします。

  「雑談」と言うと聞こえが悪いので、「身近な情報科学に関する話題」と呼
  びます :-) バランスよく取り入れます。授業時間 90 分だと短いですね。

- 講義中、できるだけEmacsを使って欲しいです。Emacsの小技をありったけ入 れていただきたいです。

  挑戦します。

- 先生がEmacsを入力している時、単語 「quantum」を辞書登録していたよう ですが、あれはどういったツールですか? 「program」と入力すると「プロ グラム」、「sensor」と入力すれば"センサ"という風にカタカナに変換され ていて、とても便利そうだと思いました。

  東北大の佐藤先生が開発された SKK (日本語入力システム) の標準機能です。
  SKK の機能の中で、私が最も好きな機能です。

- たまに入力フォームなどで、全角数字を禁止して「半角数字のみを入力して ください」という注意書きがあり、全角数字を入力すると「全角数字は使用 しないでください」というエラーメッセージが出ます。全角と半角の両方に 対応するのは簡単そうに思えますが、実際はどうなのでしょうか? (e.g. 関 学シラバス: https://syllabus.kwansei.ac.jp/)

  文字コードの変換自体は簡単ですが、微妙な問題ですね。(1) ユーザが入力
  したものと違うものが保存されるのは直感に反する、(2) Web だと漢字コー
  ドが一意でないため誤変換のリスクがある、などが気になります。ちなみに、
  私は全角の数字・記号は一切使いません。

- 来学期開講のネットワークコンピューティング/ネットワークコンピューティ ングの資料が見てみたいです。去年の資料を公開していただくことは可能で しょうか?

  しばらく見られるようにしておきます。講義内容は変更する可能性があるの
  で、あくまで参考程度に見てください。

  http://www.lsnl.jp/~ohsaki/lecture/netcomp/2016/
  http://www.lsnl.jp/~ohsaki/lecture/netcompx/2016/

- 先生の研究室の 「研究テーマ」のページの「こんな人を求めています」の2 箇所に貼られている、問い合わせ先が得られるであろうリンク (http://www.ispl.jp/~oosaki/#contact) を辿ると、急にインドへの格安航 空券を手に入れる方法について解説しているページに移ります。急にドメイ ンも変わったので少し混乱しました。わざとですか?

  指摘ありがとう。本当ですね。修正しておきました (以前所属していた研究
  室で使っていたドメインが失効して、他の人の手に移っていました)。

- プロ3の課題 B8 ページの「3. ハッシュ法」 で「open hashing」と 「closed hashing」 の説明が逆になっていると思います。Stack Overflow でもこれに関する質問 (http://stackoverflow.com/questions/9124331/meaning-of-open-hashing-and-closed-hashing) や、海外の大学の資料も参考にしましたが、やはり間違っていると思います。 プロ 3 の B8 ページは正しいのでしょうか?

  指摘ありがとう。その通りですね。

- 成績評価についてなのですが、講義ページでは「レポート60%、授業試験 40%」、シラバスでは「レポート30%、授業試験70%」とありますが、どちら が正しいのでしょうか?

  「授業中試験 40 %、平常リポート 60%」で評価します。

要望

  なし

17. (7) 入出力 (外部 I/O)

到達目標

- コンピュータにおける入出力デバイスの構成を理解し、他人に説明できるようになる。

- DMA (Direct Memory Access) と割込み (interrupt) の概要と重要性を理解し、他人に説明できるようになる。

- 入出力ソフトウェアの 3 種類の実現法 (プログラムド I/O、割り込み駆動 I/O、DMA を用いた I/O) を理解し、それぞれの利点・欠点を他人に説明できるようになる。

課題

講義内容を復習し、「到達目標」まで到達できていない (十分に理解できてい ない) と考える点について参考図書・文献・インターネットを利用して調査し、 理解を深めよ。その後、以下の設問に対するレポートを提出せよ。

設問 1 (60 分): 以下の文書を読み、概要を理解せよ。わかったこと、わから なかったことの両方を箇条書の形式で列挙せよ。日本語のページは参考になら ないので、必ず英語のページを読んで理解すること。

  Direct memory access (冒頭と Principle)
  https://en.wikipedia.org/wiki/Direct_memory_access

設問 2 (60 分): 以下の文書を読み、概要を理解せよ。わかったこと、わから なかったことの両方を箇条書の形式で列挙せよ。日本語のページは参考になら ないので、必ず英語のページを読んで理解すること。

  Interrupt (冒頭と Overview)
  https://en.wikipedia.org/wiki/Interrupt

設問 3: 自由記述。感想、教員へのメッセージ、記録用のメモなど自由に記述 して構わない。空白でも良い。一般的な質問はメイリングリスト宛に送ること。

提出方法: 「レポート課題提出フォーム」から送信せよ。レポートが再提出さ れた場合は、新しいほうを採点対象とする。

提出期限: 一律の期限を設定しない。最終提出期限は 2017/7/18(火) 5:00pm とする。各自で学習計画を立てて、計画的に取り組むこと。

注意事項: 提出されたレポートは、匿名にした上で、他の受講者および来年度 以降に大崎が担当する講義の受講者に公開する場合がある。他の受講者に公開 されて困る内容はレポートに含めないこと。

質問および回答

- 中間試験の採点結果はどのようにして知れますか?

  公開しません。

- 課題のURLが 403 になっています。

  修正しました。

要望

- 当初このOS講義の最後の回に「セキュリティ」が予定されていて、とても楽 しみにしていたのですが、その回が時間の関係で省かれてしまうことになっ て残念です。これからの講義の中で、一番内容の薄い回とスイッチしてほし いです。

  予定していたのは、セキュリティの定義、暗号の基礎、デジタル署名、ユー
  ザ認証あたりの基礎の話なので、期待しているようなコアな話ではないと予
  想します。

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

到達目標

- 3 種類のユーザインターフェース (キャラクタ端末、GUI、ネットワーク端末) の概要とそれらの特性を理解し、他人に説明できるようになる。

質問および回答

- 以前おすすめの OS として GNU Hurd を挙げられたのは何故でしょうか。

  由緒正しい OS だからです。  

- 授業で先生は Emacs を使っていますが、世の中には Vim というエディタも 存在するみたいです。先生が Vim を使用しない理由はなんですか?

  Vim は vi のクローンですが、設定ファイルの編集等には vi も使用します
  (逆に言えば、root 権限で Emacs は使いません)。私が UNIX を学び始めた
  頃には存在しなかったこともあり、Vim は真面目に使ったことがありません。
    
  Vim (text editor)
  https://en.wikipedia.org/wiki/Vim_(text_editor)

- 先生が使われている OS は部分的にオリジナルだとおっしゃっていた記憶が ありますが、元々はどのディストリビューションなのでしょうか? また、使っ ている OS のどういった部分がオリジナルなのでしょうか?

  ベースは Debian GNU/Linux です。デスクトップ環境が自作です (ウィンド
  ウマネージャ、ステータスモニタ、ログモニタ、フォント (英数字+記号)、
  プレゼン用タイマ、画像ビューア、PDF ビューア)。メーラー、スケジュー
  ラ、MP3 プレイヤー、描画ツール、電卓、Web クローラー、WebDAV クライ
  アント、スキャナフロントエンド&後処理、印刷フィルタ、シンタックスチェッ
  カ、CPU 周波数管理、ネットワーク設定、省電力設定あたりも自作していま
  す。

- パスワード管理ソフトを使っていますか? 使っていればどういったソフトを 使っているのか知りたいです。

  使っていません (便利なものがあれば教えてください)。

- 最終レポート課題で、量子コンピュータ (以下の記事) は「3. 過去 5 年以 内に雑誌・論文等で発表されたオペレーティングシステムに関する技術」に 入りますか?

  Googleが49個の量子ビット(Qubit)を持つ量子コンピュータを2017年内に実演することを計画中
  http://gigazine.net/news/20170612-google-49-qubit-quantum-computing/
  
  「2.3 調査対象として選択した理由」を論理的に説明できるものであれば構
  いません。

要望

なし

19. (9) ファイルシステム

到達目標

- ファイル、ディレクトリ、ファイルシステムの概念を理解し、他人に説明できるようになる。

- OS における典型的なファイル操作、ディレクトリ操作を理解し、他人に説明できるようになる。

課題

講義内容を復習し、「到達目標」まで到達できていない (十分に理解できてい ない) と考える点について参考図書・文献・インターネットを利用して調査し、 理解を深めよ。その後、以下の設問に対するレポートを提出せよ。

設問 1 (90 分): 好きな OS を一つ選び、(1) その OS におけるファイル名の 長さの上限、および (2) その OS におけるディレクトリ内ファイル数の上限を 実際に *実験によって* 確認せよ。確認方法と実行結果を報告せよ。

設問 2 (60 分): 好きな OS を一つ選び、(1) その OS におけるファイル属性 の一覧、および (2) その OS におけるディレクトリ属性の一覧を調査せよ。余 分な属性 (本当は不要だった) や、不足している属性 (本当は必要だったのに ない) があるかを考えよ。調査方法・調査結果を報告せよ。OS システムコール に着目して調べるとよい (c.f. stat(2)、getdents(2))。

設問 3: 自由記述。感想、教員へのメッセージ、記録用のメモなど自由に記述 して構わない。空白でも良い。一般的な質問はメイリングリスト宛に送ること。

提出方法: 「レポート課題提出フォーム」から送信せよ。レポートが再提出さ れた場合は、新しいほうを採点対象とする。

提出期限: 一律の期限を設定しない。最終提出期限は 2017/7/18(火) 5:00pm とする。各自で学習計画を立てて、計画的に取り組むこと。

※ 提出期限を 7/18(火) に延長しました

注意事項: 提出されたレポートは、匿名にした上で、他の受講者および来年度 以降に大崎が担当する講義の受講者に公開する場合がある。他の受講者に公開 されて困る内容はレポートに含めないこと。

質問および回答

- 遂に実用できそうな不揮発性メモリが発表されましたが、今後のオペレーティ ングシステムにはシャットダウン、外部記憶装置という概念が無くなってい くのでしょうか。

  どうなるのでしょうね。素朴には、(1) ファイルシステムのフラッシング
  (一時情報の書き出し) は不要になる (すでにそれに近い状況ですが)、(2)
  外部記憶装置はなくならない (もしくはオンラインストレージになる)、だ
  と思います。
  
  不揮発性メモリをDIMMスロットに装着する標準規格「NVDIMM」
  http://pc.watch.impress.co.jp/docs/column/semicon/721621.html
  
  進む不揮発性メモリの開発--SSDよりも大きな変化に?
  https://japan.zdnet.com/article/35081029/
  
  2016 Non-Volatile Memories Workshop
  http://nvmw.ucsd.edu/2016/program

- ランサムウェア作成で逮捕された中学生についてどう思われますか? こういっ た事件を防ぐ為にも、優れた技術者の育成の為にも今後の情報系の教育につ いて考えさせられる事件だと思いました。

  社会学的な観点から、なくらないと思います。

- 先日、「この世界が仮想現実である証明」という記事で、この世界で「早く 動くものほど時間が遅くなる」というのは高校の理科などで聞いたことがあ りました。なぜこのことが成立するのかを考える際にもしこの世界が仮想現 実であれば当然コンピューターのようなもので制御されるはず。そこでゲー ムと同じで容量が大きいものや速度が速いものを扱う際処理速度が遅くなる という感覚と同じで、このあまりにも早いスピードで移動するなら時間は遅 くなるあるいはコンピュータと同じでフリーズ、時間が止まる。このことか らこの世界は仮想現実であれば「早く動くものほど時間が遅くなる」がつじ つまが合うということで僕はすごく納得させられていまいましたが先生はど う思いますか?

  「早く動くものほど時間が遅くなる」というのは特殊相対性理論 (special
  relativity) ですね。面白い考え方ですが、上記が正しいとすると、「The
  speed of light in a vacuum is the same for all observers, regardless
  of their relative motion or of the motion of the light source.」に矛
  盾しますね (光のレンダリング速度 (?) は、それをレンダリングしている
  コンピュータの負荷が上がって不変のはず)。
  
  Time dilation
  https://en.wikipedia.org/wiki/Time_dilation

- 中学生が将来なりたい職業としてITエンジニア・プログラマが1位になった アンケート [1] があるようです。インターネット上でのアンケートという ことで回答した層の偏りがあるようにも思いますが、今後情報系の学生が増 えるならば嬉しく思います。ですが最近このような文献 [2] を読みました。 もしアンケートの通り情報系の学校へ進学する学生が増えたとしても、ふる いにかけられた結果彼等が就職を諦めてしまうのかもしれません。偏見かも しれませんが、情報系の学部学科は真に学生を育てるようなカリキュラムに なっていないように思います。勿論やる気のない学生はいけませんが、もう 少ししっかりと学生のやる気を引き出す様なカリキュラムにはなれば良いな と思います。大崎先生はどうお考えでしょうか。

  [1] 中高生が将来なりたい職業は?
  http://s.news.mynavi.jp/news/2017/04/26/109/

  [2] Javaスクールの危険
  http://local.joelonsoftware.com/wiki/Java%E3%82%B9%E3%82%AF%E3%83%BC%E3%83%AB%E3%81%AE%E5%8D%B1%E9%99%BA

  問題意識は理解できますが、「しっかりと学生のやる気を引出す」のが大学
  の主たるミッションではないので、そこに過度に期待しないほうがいいと思
  います。私も頑張りますので、みなさんも頑張りましょう。
  
  教育基本法
  http://law.e-gov.go.jp/htmldata/H18/H18HO120.html
  
  "The aim of education should be to teach us rather how to think,
  than what to think--rather to improve our minds, so as to enable us
  to think for ourselves, than to load the memory with thoughts of
  other men." -- Bill Beattie

要望

- 電圧を実際に見てみるというデモ、最高でした。しかし音楽を流すのは、こ れ以降やめて頂きたいです。

20. 最終レポート課題

自身で選択した「オペレーティングシステムに関する技術」について調査し、 調査結果をレポートにまとめよ。以下から調査する「オペレーティングシステ ムに関する技術」を一つ選び、その技術を、信頼のおける文献に基づいて調査 せよ。

  1. 講義で学んだオペレーティングシステムに関する技術のうち、さらに深く知りたいと思うもの
  2. 最近、メディア等で話題になっているオペレーティングシステムに関する技術のうち、その中身を理解したいと思うもの
  3. 過去 5 年以内に雑誌・論文等で発表されたオペレーティングシステムに関する技術

レポートの構成は以下の通りとせよ。

  表紙 (タイトル、学生番号、氏名、メールアドレス、提出日、授業科目名、担当教員名など)
  1. 課題説明 (「最終レポート課題」の内容をそのまま貼り付ける)
  2. 調査対象のオペレーティングシステムに関する技術
  2.1 「オペレーティングシステムに関する技術」の名称
  2.2 選択したカテゴリ (上記の 1〜3 のどれに該当するか)
  2.3 調査対象として選択した理由
  3. 調査方法
  3.1 文献一覧 (文献の著者・タイトル・雑誌名/書籍名・出版年月・巻・号・ページ数など)
  3.2 文献の選定理由 (なぜ選んだか? 信頼できると判断した理由の説明)
  4. 調査結果
  4.1 調査結果の概要 (調査結果を 1 パラグラフで要約する)
  4.2 XXX の背景 (XXX に「オペレーティングシステムに関する技術」名が入る、その技術が登場した歴史的・社会的背景)
  4.3 XXX の目的 (その技術は何を解決するために生まれたか?)
  4.4 XXX の仕組 (その技術のメカニズムや動作原理など)
  4.5 XXX の利点 (他の技術と比較した時の優位性は?)
  4.6 XXX の限界 (その技術の限界や問題点は?)
  5 感想 (授業、課題、最終レポート課題等に関する感想を自由に)

レポートは PDF 形式で作成し、提出せよ。構成以外の様式は自由とする。

提出方法: 「レポート課題提出フォーム」から添付ファイルとして送信せよ。 講義日は「final_report」を選択せよ。設問1〜設問3 は空白でよい。レポート が再提出された場合は、新しいほうを採点対象とする。

提出期限: 2017/7/18(火) 5:00pm (期限を過ぎたレポートは受理しない)

注意事項: 提出されたレポートは、匿名にした上で、他の受講者および来年度 以降に大崎が担当する講義の受講者に公開する場合がある。他の受講者に公開 されて困る内容はレポートに含めないこと。

21. (10) マルチメディア処理

到達目標

- マルチメディア処理の困難さを理解し、他人に定量的に説明できるようになる。

- マルチメディアデータの表現方法・規模を理解し、他人に説明できるようになる。

課題

講義内容を復習し、「到達目標」まで到達できていない (十分に理解できてい ない) と考える点について参考図書・文献・インターネットを利用して調査し、 理解を深めよ。その後、以下の設問に対するレポートを提出せよ。

設問 1 (90 分): 好きなマルチメディアファイルのフォーマットを一つ選び、 (1) そのファイルフォーマットの概要を調査する、(2) そのファイルフォーマッ トの仕様 (specification) を探して取得する、(3) 仕様を眺めてどのような項 目が記述されているか理解する(「何について」書かれているかだけ理解すれば よい。中身を理解する必要はない。)、の 3 つを行え。それぞれ (1)〜(3) に ついて何をして、何がわかったかを報告せよ。

ファイルフォーマットの例: 音声 (WAV, MP3, AIFF)、画像 (JPEG, PNG, TIFF, BMP, GIF)、動画 (AVI, MOV, FLV, DivX, MP4, MPEG)

ファイルフォーマット概要 + 仕様のサンプル

  PNG
  http://www.wdic.org/w/TECH/PNG

  JPEG
  http://www.wdic.org/w/TECH/JFIF

  WAV  
  http://www.wdic.org/w/TECH/WAV

詳細な仕様のサンプル

  PNG
  http://www.libpng.org/pub/png/spec/

  FLV
  Video File Format Specification Version 10
  https://www.adobe.com/content/dam/Adobe/en/devnet/flv/pdfs/video_file_format_spec_v10.pdf

  JPEG
  http://www.w3.org/Graphics/JPEG/

  WAV
  http://digitalpreservation.gov/formats/fdd/fdd000001.shtml

設問 2: なし

設問 3: 自由記述。感想、教員へのメッセージ、記録用のメモなど自由に記述 して構わない。空白でも良い。一般的な質問はメイリングリスト宛に送ること。

提出方法: 「レポート課題提出フォーム」から送信せよ。レポートが再提出さ れた場合は、新しいほうを採点対象とする。

提出期限: 一律の期限を設定しない。最終提出期限は 2017/7/18(火) 5:00pmと する。各自で学習計画を立てて、計画的に取り組むこと。

注意事項: 提出されたレポートは、匿名にした上で、他の受講者および来年度 以降に大崎が担当する講義の受講者に公開する場合がある。他の受講者に公開 されて困る内容はレポートに含めないこと。

質問および回答

- 先週、先生は音楽を掛けていましたが、あれは先生が打ち込んだMIDI音源で すか? それともMP3ですか? エミュレータでカセットを起動して鳴らしてい ただけですか? もし、MIDI音源ならどのようなソフトを使って打ち込みをし たか教えていだたきたいです。

  MDX ファイルを、自作した FM 音源ボードで再生していました。

- 最大ファイル名とファイル数の課題についての質問です。ファイル数検査の 為にWindowsにてバッチファイルから大量の空ファイルを作成させているの ですが、中々終わらず不安なので調べたところNTFSでは2^64個生成できるそ うです。無限に作成できるという情報もあります。処理がなかなか終わらな いのと、終わったとしてもそのフォルダにアクセスした瞬間コンピューター が壊れそうなのですがどうすれば良いでしょうか?

  何を調べて、何を計画して、何を実行して、何を考えたのかを書いてくださ
  い (「うまく行きました、めでたしめでたし」というレポートは期待してい
  ません)。ファイル作成で Windows が壊れれば、それは OS のバグです (な
  ので普通は壊れません)。

- とある大学で出席の方法が、QRコードを読み込むというものでした。学内 Wi-Fi と組み合わせたりすることで、今の出欠方法よりもスタイリッシュに なれそうな予感がします。今後視野に入れてみてはいかがでしょうか?

  素朴に考えると、端末を複数台持てば (複数台持たなくても) 容易に代返で
  きてしまいそうです。何か良い方法があればぜひ教えてください。

- 私は開発環境を整えることがとても煩わしく感じるのですが、先生はいかが でしょうか?

  「必要なライブラリを揃える」、「開発環境のバージョンを揃える」という
  意味では面倒ですね。「エディタをカスタマイズする」、「開発のためのツー
  ルを改造・自作する」という意味だとワクワクします (今日の少しの努力で、
  これから一生快適なコンピュータライフが送れるからです)。

- 関学から UCB などの CS 分野でのトップスクールに行って Ph.D. プログラ ムを修了した方はいるのでしょうか?今までにそのような学生がいないとし ても、「関学から」可能だと思いますか?

  聞いたことはありません。そもそも、(関学かどうかに関係なく) 博士後期
  課程から海外に行く学生がほとんどいないと思います。「関学から可能か?」
  と言えば、もちろん可能だと思います。

- 2038 年問題についてどう思われますか? 色んな機器の対応がいつ行われる のでしょうか。

  2000 年問題と同じように、大きな問題にはならない気がします。

要望

- 今回のデータ復元のデモ、とても面白かったです。最後の授業でのデモ及び、 いわゆる「身近な情報科学に関する話題」についても非常に楽しみにしてお ります。

- OSの最初の授業で、Emacsを知り、その時からEmacsを使っています。いろい ろ便利な機能はありますが、org-mode はとても便利だと思いました。世界 が広がりました。ありがとうございました。

「授業に関する調査」における自由記述 (改善が必要なもの、否定的なもの)

貴重な意見をありがとう。講義をする側からは気付かないことも多いので、と ても助かります。単なる愚痴や不満ではなく、具体的に問題点や改善案を指摘 してくれているのが素晴らしいと思います。

板書

- 授業は分かりやすいが、後に復習しにくい。板書をもう少し工夫して欲しい。 - 板書があとから見返して見にくかったです。 - 字が汚なすぎて読めないので、プリントを配ってほしい。

内容

- 雑談減らして授業してほしい。 - 自分で調べてほしいという願いがあってのことだと思いますが、授業の内容がうすいと思いました。もう少しキーワードの説明をしたり、自分で調べたら答が見つかるような授業をして欲しかったです。 - 授業はおもしろいがムズかしい。

課題

- 毎回の課題が大変でした。 - 課題が多く、また難しかった。 - レポート課題が少し多いように感じた。レポート課題はあったほうが良いと思うが量を調整してほしい。

教室

- 前の列の照明が少し暗く感じました。 - 一番前の列で受講していましたが、やはり手元が暗いです。次年度からは 2 列目以降から等工夫が必要な気がします。 - 先生の立つ位置の関係で、たまにスクリーンが見えない時がある。 - 先生の立つ位置によっては前に書いてあることが見えなくなります。

その他

- もし単位を落としたら GNU Hurd を普段使いの OS にします。 - 単位を落としたら Windows 派に戻ります。


Hiroyuki Ohsaki (ohsaki[atmark]lsnl.jp)