第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で用いられている
© Copyright 2024 ExpyDoc