|
テスト勉強。 |
2004年06月29日(火) |
はやそ> テスト勉強します。 明後日のオペレーティングシステムって授業でテストあります。 教科書まとめようと思います。 ノート書くのめんどいんで日記に書きます。 友達のF君が教科書見せろとうるさいので ここに書くことにします。 そうです ケータイでエr(ry 見て3万請求された彼です。
お許しください(ぁ
--------------------------------------------------------- ■オペレーションシステム■ (第一弾:スケジューリング編)
☆プログラムの性質☆ ○再入可能 複数のプロセスが同時に実行可能なプログラム
○逐次再使用可能 同時には実行できないが、処理が完了した時点ですぐに次のプロセスで実行可能なプログラム
○再使用不能 複数プロセスで同時に実行不可能なプログラム (プログラムが使用するデータ領域が独立していない)
☆プロセス☆ 処理が重くなったりするとプロセスを中断することがある。 処理が軽くなるとプロセスを再開させることができる。 システム障害やデバッグ時に中断することもある。
☆スレッド☆ プロセスの処理の本質に関係ない部分を極力小さくしたもの。 ・プログラムカウンタ ・レジスタセット ・スタック ・子スレッド ・状態 という固有の情報を持つ プロセスよりも高速
☆スレッドの利用☆ サーバープログラムの応答性を向上させることができる。 並列アルゴリズムに容易に表現可能。
☆マルチプログラミング☆ CPUの入出力処理中(I/O処理とも言う)のアイドル時間を減らすことで、CPUができるだけ多くの時間動いている状態にすること。
(I/O処理してる間に他の作業をCPUに割り付ける。
○入出力バウンド CPU処理よりも入出力処理の時間が長いもの。
○CPUバウンド 入出力よりもCPU処理(ry
これらはCPUを効率よく動かすようにスケジューリングするのが困難になりやすい。 各プロセスにおいてスケジューリングアルゴリズムを選択しなければならない。
☆CPUスケジューリング☆ ○CPUスケジューラ 実行可能状態にあるプロセスの中から次にCPUを割り付けるプロセスを選択する。 一時的にプロセスを中断したり再開したりする命令をディスパッチャに渡すこともある。
○ディスパッチャ CPUスケジューラによって決められたプロセスを実際にCPUに割り付ける。 CPUスケジューラから呼び出され、実行中プロセスのレジスタを退避し、次の実行すべきプロセスのレジスタを回復する。システムモードからユーザーモードに切り替え、次に実行すべきプロセスに制御を渡す。
○マルチプログラミングの多重度 システムに内のプロセスの数 これを一定に保てるようにすれば効率が上がる。 (到着率と離脱率を等しくなるようにすればよい。
☆スケジューリング用語集☆ スケジューリングアルゴリズムはいろいろな種類がある。 現在あるプロセスの状態によってそれを使い分けることで 効率よくCPUを使うことになる。
○CPU利用率 全体の時間に対して実際にCPUが動いている時間。 (動いてない時はI/O処理のためアイドル中)
○スループット 単位時間あたりにCPUが行う仕事量
○ターンアラウンド時間(ターンアラウンドタイム プロセスに実行要求してから完了するまでの時間。 平均ターンアラウンド時間が短い方が効率が良い。
○待ち時間 プロセスが実行可能状態になってから実行が完了するまでの時間
○応答時間 プロセスの実行要求してから最初に応答が得られるまでの時間
☆スケジューリングアルゴリズム☆ ○FCFSスケジューリング(First Come First Serviceの略 入ってきた順番にプロセスを処理する。 これは処理するプロセスの処理時間が短い順に来れば平均ターンアラウンド時間が短くなるため、プロセスの順序がかなり影響する。
○SJFスケジューリング 最も短いCPU処理をもつプログラムを優先して割り付ける。 しかし処理時間がわかっていなければいけないので実際のスケジューリングアルゴリズムとして使えない。
○優先度スケジューリング プロセスに優先度を割り付けてその順番で割り付ける。 同じ優先度ならFCFSなどで処理。 優先度は時間制限や主記憶の使用量、CPU処理時間、I/O時間などで決定される。
○ラウンドロビンスケジューリング タイムシェアリングシステムを用いたスケジューリング。 順番はFCFS。 タイムスライスが極端に長いとFCFSと変わらない。 極端に短いとプロセス変更のオーバーヘッド時間がバカにならない。
○多重レベルスケジューリング プロセスごとに上記のどのスケジューリングを行うか決め、それぞれのキューに入れてCPUの割付をそれぞれ行う。 キュー同士の移動ができないものを多重レベルスケジューリングと言う。 キュー同士の移動ができるものは多重レベルフィードバックスケジューリングと言う。
多重レベルフィードバックスケジューリングが最も一般的な形態である。 ---------------------------------------------------------
_| ̄|○多すぎ
|
|