第2回 プロセス管理 - Amano Lab | Dept. of Information

第2回 プロセス管理
ジョブ、プロセスとは?
 プロセスの状態遷移
 プロセス制御ブロック
 スケジューリング

タスク、ジョブ、プロセス
ジョブ: ユーザから見た仕事の単位
 タスク: コンピュータシステム稼動の基本単位
 プロセス: OSが管理する基本制御単位

−

cf)スレッド
タスク(ジョブ)の実行過程の制御もOSの仕事
−
−
−
タスクスケジューリング
ジョブスケジューリング
プロセススケジューリング
プロセス管理とは?



OSが依頼されたユーザからの仕事の管理をするこ
と
近年の多重化(仮想化)されたマシン環境では複数
のタスクを同時に扱わなければならない
具体的には、
−
−
資源(CPU,メモリ)の割り当て、管理
実行管理


スケジューリング
状態管理
並行処理と並列処理

並行処理(Concurrent Processing)
1つのCPUを持つコンピュータシステムにおける同
時実行(並行処理)とは、プログラムを切り替えなが
ら交互に実行すること … コンテキストスイッチ
プログラムA
プログラムB

並列処理(Parallel Processing)
複数のプロセッサ上で、(本当に)同時に実行する
プロセスの状態遷移
CPUの獲得
Ready Queue
新規
実行可能状態
入出力の完了
実行状態
CPUの解放
待ち状態
入出力待ち
停止
プロセスの構造


プロセスは、PCBと呼ばれるデータ構造で管理され
る
PCB (Process Control Block) … プロセス制御ブ
ロック
−
−
−
−
−
−
−
−
プロセスID
プロセスの状態
プログラムカウンタ
優先度(プライオリティ)
CPUレジスタ
退避されたプロセッサ状態語(Processor Status Word)
記憶管理情報
使用する計算資源に関する情報(ファイル、入出力装置)
スケジューリングの目的
スループット(処理効率)の向上
 応答時間(レスポンスタイム)の短縮
 公平な割当て
 応答時間が予測可能であること

スケジューリング
実行順序管理

Ready 状態(実行可能状態)にあるプロセス
のどれを実行させるかを決定
−
−
優先度(priority)
横取り(preemption)
 preemptive
… 横取り可能
 nonpreemptive … 横取り不能
スケジューリングアルゴリズム
1.
2.
3.
FCFS(first come first service) … 到着順
SJF (shortest jobs first) またはSPT(shortest
processing time first)
… 処理時間順
期限付きスケジューリング(deadline scheduling)

4.
5.
リアルタイム処理
優先度順(priority)
ラウンドロビン(round-robin)
FCFS (first come first service)
プロセスの到着順に処理していく
 nonpreemptive … 横取りなし
 ready queue の先頭から順に処理する

job の投入
ready queue
CPU へ
SJF (shortest job first)



処理時間の短いプロセスから順にCPUに割り当て
る
横取りなし
全プロセスの平均応答時間を最小にする
−

処理時間の長いプロセスほど後ろのプロセスの待ち時間
を長くしてしまう
一般には、予めそのプロセスの処理時間はわから
ない
−
−
ユーザによる処理時間の指定
統計による処理時間の予測
SRPT (shortest remaining
processing time first)
残余処理時間順
 新しいプロセスが実行可能になるたびにその
時点で残っているプロセスの処理時間を比較
して最も小さいものを優先的に実行
 横取りあり(preemptive)
 SJFと同様、プロセスの処理時間を正確に予
測するのが難しい

優先度順(priority)




各プロセスに優先度をつけ、優先度の順に実行
preemptive
優先度は、使用するメモリの大きさ、CPU処理時間、
入出力時間などの基準で定義される
優先度は、OSが動的に割り当てることもある
−

入出力の多いものは高い優先度
SRPTやdeadline schedulingも優先度順スケ
ジューリングの一種
優先度順
横取り
到着
100
CPU
40
65
40
88
65
中断
100
93
93
100
88
優先度順に並ぶ
93
40
終了
100
優先度順
starvation と aging
優先度順では、優先度の低いプロセスがい
つまでもCPUを獲得できないという状態がお
こる(飢餓状態:starvation)
 プロセスの優先度を待ち時間の長さに応じて
徐々に上げていく(時効化:aging)

ラウンドロビン(round-robin)
一定の時間ごとにプログラムの実行を切り替
える
 preemptive
 実行時間が一定時間を過ぎたプロセスは、実
行を中断され、待ち行列の最後に回される
 待ち行列を巡回しながら実行されていく
 TS (Time sharing)システムに適している
 全てのユーザに公平に一定の応答時間を保
証する

その他のスケジューリング手法

多重レベル待ち行列
−
−

優先度ごとに待ち行列を設け、各優先度のレベルでそれ
ぞれ異なったスケジューリング手法を適用する
リアルタイム処理、バッチ処理、対話処理の混在が可能
多重レベルフィードバック待ち行列
−
−
−
−
−
優先度の付いた複数の待ち行列を用意
ある待ち行列で一定のCPU時間、実行されたプロセスは
優先度の低い待ち行列にフィードバックされる
各待ち行列では、ラウンドロビンを適用
処理時間の長いプロセスは飢餓状態になるが、UNIXな
どでは、時効化によってこれを解決している
多くのTSSで用いられている