Modern Operating System 輪講 第3回

Download Report

Transcript Modern Operating System 輪講 第3回

Modern Operating System
輪講
che
2.5.3 Scheduling in Interactive
Systems


インタラクティブシステムのスケジューリングアル
ゴリズムの話
主にCPUをいつスイッチするかが論点
Round-Robin Scheduling


単純に一定時間(quantum)ごとにプロセスを切
り替えていくアルゴリズム
ブロックされたり終了したりしてもスイッチ
A
B
C
D
実行順
Round-Robin Scheduling

気にかけるべきなのはquantumの長さだけ
–
例えばプロセス移行(process switchまたはcontext
switch)に1msecかかるのに、quantumが4msecだと
実行時間の20%が無駄になる。逆に長すぎると並列
順番が全然回っ
てこない
処理に問題。20msecから50msecがよいとされる。
A
B
C
A
無駄
無駄
B
Priority Scheduling

優先度によるスケジューリング
–
優先度の最も高いプロセスが常に実行される

実行されると優先度が下がる
優先度
実行
A
1 23
B
2
C
5
Multiple Queues

昔々
–
–
メモリの中には一つのプロセスしか入れられなかった
プロセスをスイッチするたびにプロセスをディスクに退避させ新
しいプロセスを読み出す必要があった

–
効率をよくするためには個々のプロセスのquantumを長くしなけ
れば

–
ものすごい無駄
でも平行性が失われる
そこでクラス分けによるスケジューリングが考えられた
Multiple Queues

クラスごとに実行時間が決定される
–
–
–

一番上のクラスは1quantum実行される
その下のクラスは2quantum
その下のクラスは4quantum・・・・・・
ブロックされずに1quantumを使い切ったプロセ
スは下のクラスに移動
–
最初は処理が多いが、後になると処理が少なくなる
プロセスでは非効率になる可能性
Shortest Process Next

プロセスが多いとスイッチの手間がかかって非
効率
–

すぐに終わりそうな小さなプロセスを先に終わらせて
しまえば効率的
どのプロセスがすぐ終わるのかをどうやって見
つけるかが問題
Guaranteed Scheduling


最初に、ユーザやCPUの数に応じて一つにどれ
だけCPU時間を割り当てるか決めておく
スケジューラは、このあらかじめ決められた時間
通りにプロセスが実行されるように努力する
–
–
決められた時間以上に動いていたら優先度を下げる
決められた時間以下だったら優先度を上げる
Lottery Scheduling

Guaranteed Schedulingは良いアイデアだが、
実装が難しい
–

簡単な実装で実現できるのがlottery scheduling
コンピュータ資源を誰が使うのかをくじによって
決定してしまう
Lottery Scheduling

例えば
–
–
–

1秒に50回くじ引きを行う
くじに当たったプロセスは20msecCPUを使える
重要なプロセスはくじを多く持ち、CPU時間獲得の
チャンスが増える
長期的に見ると、他のアルゴリズムよりも平等
Lottery Scheduling

例えばその2
–
–
クライアントプログラムとサーバプログラムが動いているとする
クライアントからサーバにデータを送る

–
クライアントからサーバにくじを送る

–
サーバはくじが増えるので、CPU時間獲得のチャンスも上がる
サーバの処理が終わったらクライアントにくじを返す


クライアントはブロックされる
クライアントは再び動き出す
このような場合、サーバは最初はくじはいらない
–
非常に効率的!
Fair-Share Scheduling

こんな状況を考えてみる
–
–
ユーザ1が9個のプロセス、ユーザ2が1個のプロセス
を起動していたとする
ユーザ1はCPUを90%使えるが、ユーザ2は10%し
か使えない。


不公平!回避したい!
プロセスのスイッチをユーザごとに行えば、ユー
ザの格差がなくなる
2.5.4 Scheduling in Real-Time Systems


リアルタイムシステムでのスケジューリング
例えば
–
CDプレイヤー

–
飛行機

–
処理が遅いと音が飛ぶ
処理が遅いと墜落する
病院

処理が遅いと病人が大変なことに
hard real timeとsoft real time

hard real time
–

かかる時間の限度が絶対的に決まっているもの
soft real time
–
限度を超えることが望ましくないが、でもまぁ我慢でき
るもの
静的スケジューリングと動的スケジューリン
グ

静的
–
システムが動く前からスケジューリングを決定しておく


前もって実行時の情報が完全にわかっていないとだめ
動的
–
その場で決める