Exercise List os 2012
Menu Menu2012年度の問題です。過年度生は全部解答すれば、それで2012年度合格とします。 〆切は、2013/10/11 とします。
宿題
問題に関しては、問題ごとに別なメールで、以下のタイトルでSubject: Lecture on Operating System Lecture Exercise 1.1kono@ie.u-ryukyu.ac.jp まで送ること。
学籍番号をメールの中に記述すること。問題番号は正確に記述すること。出席しない場合でも、問題解答を送れば出席扱いとします。
学科のメールアカウント及び、学科のメールサーバ経由で提出すること。それ以外は受け付けません。
ソースコードは最低限引用すること。
ソースコード自体は、学科の Mercurial repository に置き、そのRepository のURL をレポートに含めること。
Repository は、*問題ごと*に作成し、
ssh://urasoe.ie.u-ryukyu.ac.jp/net/home/hg/y07/e075737/os/ex1.1という形式で示してください。Web URL は参照以外には使わないこと。
コンパイルエラーは、gcc なら -O2 -Wall で確認し、エラー及びウォーニングを、すべてなくすこと。Eclipse でも、エラー及びウォーニングはすべ取ること。
C では Makefile、Java では build.xml を含めること。
他人のレポートのコピペ、WWW上の公開された情報からのコピペは、3回で不可とします。
英語の教科書の使い方
Fedora の Install
問題1.2問題2.1
File System API のMindMapによる分析問題2.2
find の使い方問題2.3
zsh の使い方問題2.4
Java7 と Eclipse問題2.5
問題2.4 のファイルを使って、 Maven と Mercurial の Merge、JUnit による Test のやり方を調べる。問題2.6
C のAPIは、構造体を用いることが多い。構造体の扱いに気をつけながら、API の使い方を勉強しよう。問題2.7 MTBF
MTBF とは Mean Time Between Failures (平均故障間隔) の略で、故障発生までの時間の平均値のこと。MTBF について調べてみよう。
問題 2.8 df command
df command を使って、自分がどこにいるかを調べよう。学科のサーバの構成は?
User
/etc/passwd , /etc/master.passwd で管理されている。Uid は数字で16bitのシステムが多かったが、今では32bitが普通。パスワード自体は/etc/master.passwd にあり直接検索できない。また見ることができたとしても、encode されているので解析は不可能ではないが難しい。昔は、crypt されたパスワードが、/etc/shadow などに格納されていて、元のパスワードに復号することが出来なかった。この方法では、CHAPなどの challenge 型の認証には対応できない。現在では、パスワード自体が暗号化されて、復号化可能な状態で格納されているのが普通である。
Mac OS X には、KeyRing というパスワードの管理システムが使われている。
問題 2.10 FILE 構造体
ファイル構造体とポインタ問題3.1
システムコールの実装について調べよう。問題3.2
プロセスが使用しているシステムコールを調べる。問題3.3
サーバにrequest が来た時に、どのようなプロセスの状態の時間的遷移をUMLの sequence diagram で、記述してみよ。問題3.4
並列make の実装問題3.5
プロセスが使用しているファイルディスクリプタを調べる。問題4.1 シミューレータ
プロセスシミュレータ問題4.2-4.5教科書の問題
割り当てられた教科書の問題を解け。
Subject: Lecture on Operating System Lecture Exercise 4.2 Subject: Lecture on Operating System Lecture Exercise 4.3 Subject: Lecture on Operating System Lecture Exercise 4.4 Subject: Lecture on Operating System Lecture Exercise 4.5として、4つ個別のメールで出して下さい。
レポートを、まだ一つも出してない人には割り当てられません。
英語の問題を英語で書き写して、その後に解答すること。(問題の訳は必要ありません)
解答は英語でも良いです。
Web 上から写したものを見付けた場合は失格としてます。
問題5.1
問題5.2
Amdahl 則があるので、恒常的に並列性を維持する必要がある。Amdal 則がよくわかるような図を書いてみよう。
問題5.3
PathFinder を使って、Thread を用いたプログラムが要求仕様を満たしていることを検証しよう。問題6.1
問題6.2
Pipeline と PathFinder問題6.3
Kernel 内部の同期の実現方法問題6.4
sem_p, sem_v を使って、synchronized queue を実現してみよう。問題6.5
DeadLock の問題問題7.1 Busy Wait
OSに時間を渡さないと不必要に CPU を食ってしまう。しかし、応答性は Buy wait が良い。そのバランスを考えよう。問題7.2 getaddrinfo
コンピュータ上の使用可能なアドレスを探す。問題7.3 Multicast と Bloadcast
multicast と bloadcast の問題問題7.4 サーバとクライアント
server と client の問題問題7.5-6 様々な API
以下の問題を2つ選択して、API を調べる簡単なプログラムを作成し動作を調べよ。ここに載ってない Unix / Mac OS X の API を調べ、簡単なプログラムを作成し動作を調べても良い。
Subject: Lecture on Operating System Lecture Exercise 7.5 Subject: Lecture on Operating System Lecture Exercise 7.6
問題8.1
GUI によるPage table のデモ問題8.2 Perfomance of Demand Paging
平均Page fault 処理時間
問題8.3 メモリの大量消費とスワップ
メモリをたくさん使った状況の観察問題9.1
バックアップに関する考察問題10.1
記述問題問題10.2
アンケート補講に関する感想や、提案、批判を書いてください。