Exercise List os 2012

Menu Menu

2012年度の問題です。過年度生は全部解答すれば、それで2012年度合格とします。 〆切は、2013/10/11 とします。


宿題

問題に関しては、問題ごとに別なメールで、以下のタイトルで
    Subject: Lecture on Operating System Lecture Exercise 1.1

kono@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回で不可とします。


英語の教科書の使い方

問題1.1


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 について調べてみよう。

MTBF


問題 2.8 df command

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.9


問題 2.10 FILE 構造体

ファイル構造体とポインタ

問題3.1

システムコールの実装について調べよう。

Linux Kernel Source


問題3.2

プロセスが使用しているシステムコールを調べる。

システムコールのトレース


問題3.3

サーバにrequest が来た時に、どのようなプロセスの状態の時間的遷移をUMLの sequence diagram で、記述してみよ。

サーバの 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

Thread Pool 作成と実行の様子


問題5.2

Amdahl 則があるので、恒常的に並列性を維持する必要がある。

Amdal 則がよくわかるような図を書いてみよう。

Amdal 則の図


問題5.3

PathFinder を使って、Thread を用いたプログラムが要求仕様を満たしていることを検証しよう。

PathFinder の問題


問題6.1

Pipeline 作成と実行の様子


問題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 が良い。そのバランスを考えよう。

Busy Wait の問題


問題7.2 getaddrinfo

コンピュータ上の使用可能なアドレスを探す。

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

アンケート

補講に関する感想や、提案、批判を書いてください。


Shinji KONO / Thu Sep 12 00:30:30 2013