• 検索結果がありません。

CPUスケジューリング

N/A
N/A
Protected

Academic year: 2021

シェア "CPUスケジューリング"

Copied!
26
0
0

読み込み中.... (全文を見る)

全文

(1)
(2)

多重プログラミングの概念

CPUを無駄なく使いたい

開始 遊休状態: 入力 ジョブA 遊休状態: 入力 開始 遊休状態: 入力 ジョブB 遊休状態: 入力 図4.1 二つの上部A,Bの実行 停止 停止 2

(3)

図4.2 多重プログラミング機構のない場合のジョブ実行 開始 遊休状態: 入力 ジョブA 遊休状態: 入力 停止 開始 遊休状態: 入力 ジョブB 遊休状態: 入力 停止 待 ち

多重プログラミングの概念

開始 遊休状態: 入力 ジョブA 遊休状態: 入力 停止 開始 遊休状態: 入力 ジョブB 遊休状態: 入力 停止

(4)

プロセスとは?

厳密な概念はない! 定義は困難

あえて言うと,プロセスとは下記の2つの定義?あり

1)実行しているプログラム

2)疑似プロセッサ

プログラムを実行するための器

その他,ユーザの代理という概念?もあり.

OSが管理するための単位

プロセスのことをタスクとも言う.

4

(5)

プロセスの状態

活動中 新規 待機中 停止 図4.6 プロセス状態遷移図 実行中 新規 待機中 実行待ち 停止

(6)

プロセス制御ブロック(PCB: Process Control Block)

プロセスに関する情報を格納しておく器

必要な情報(詳細はOS,ハードウェアによって異なる)

 プロセスの状態

 新規,実行待ち,実行中,...

 プログラムカウンタ

 レジスタの内容

 レジスタの種類はプロセッサによって異なる.

 メモリ管理情報

 上限/下限レジスタ,ページ表(ページングシステ ム),..

 課金情報

 CPU使用時間,実使用時間,課金番号,ジョブ番号,..

 入出力情報

 未完了の入出力要求,割当てられている入出力装置, オープンされているファイル,..

 CPUスケジューリング情報

 プロセスの優先度,レディキューへのポインタ,... プログラムカウンタ レジスタ類 開かれたファイルのリスト 記憶範囲 プロセス番号 プロセス 状態 ポインタ ・ ・ ・ 図4.8 プロセス制御ブロック 6

(7)

コンテキスト(context)とは?

(8)

コンテキストスイッチ:プログラムの切り替え

レジスタ退避 ・ ・ ・ レジスタ復元 レジスタ退避 ・ ・ ・ レジスタ復元 利用者プログラムA オペレーティングシステム 利用者プログラムB 割込みまたはスーパバイザコール 割込みまたはスーパバイザコール 実行状態 実行状態 実行状態 遊休状態 遊休 状態 遊休 状態 図4.9 利用者間でのCPUの切り替え 8

(9)

スケジューリングのためのキュー(1/2)

レディキュー(Ready queue,実行待ち列)

実行可能状態のプロセスをつないでおくキュー

デバイスのためのキュー(デバイスキュー,装置待

ち列)

装置が空くのを待っているプロセスのキュー

図4.10 実行待ち列と種々の入出力装置待ち列(図:準備中

(10)

スケジューリングのためのキュー(2/2)

図4.12 単純化した待ち列図式(図:準備中

図4.11 CPUスケジューリングの待ち列図式表現(図:準備中

(11)

スケジューラ

ースケジューラの種類ー

長期スケジューラ(Long term scheduler, ジョブスケジューラ)

 システムで処理すべきジョブを選択

 複数(多重度)のジョブを選択

 メモリにロード

短期スケジューラ(short term scheduler,CPUスケジューラ)

 実際にCPUに割当てるジョブを選択

 選択するのは1つのみ

中期スケジューラ(medium term scheduler)(ないOSもある)

 多重度の制御

 プロセスをシステムから取り除く.

(12)

ディスパッチャ(dispatcher)

CPUスケジューラで選択されたプロセスにCPUを実際

に割当てるプログラムのこと.OSの一部.

仕事

プログラムカウンタの設定,レジスタ内容のロード,

ユーザモードへの切り替え,...

12

(13)

スケジューリングアルゴリズム

評価基準: 何を目標にするか?

CPU使用率

スループット(throughput)

 単位時間当りに完了したジョブ数 

ターンアラウンド時間(turnaround time)

 ジョブ投入からジョブ完了までにかかった時間 

待ち時間(waiting time)

 レディキューにいる時間 

応答時間(response time)

 会話型システム:コマンド投入からプロンプトが帰ってくるまでの時間 

理想

CPU使用率,スループット → 最大

ターンアラウンド時間,待ち時間,応答時間 → 最小

(14)

スケジューリングアルゴリズムの分類

横取りのない(non-preemptive)アルゴリズム

先着順サービス方式(FCFS, First-Come-First-Served)

最短ジョブ優先方式

優先度方式

横取りのある(preemtive)アルゴリズム

ラウンドロビン(Round-Robin,巡回方式)

多重レベル待ち列(Multi-queue scheduling)

多重レベルフィードバック列(Multi-level feedback

queue)

14

(15)

横取りのない(non-preemptive)アルゴリズム

先着順サービス方式(FCFS, First-Come-First-Served)

最短ジョブ優先方式

(16)

先着順サービス方式(FCFS, First-Come-First-Served)

ジョブ バースト時間 1 24 2 3 3 3 到着した順番に実行する. 例 ジョブ2 ジョブ1 ジョブ3 0 24 27 30 ガント図 時刻0でほとんど同時にジョブ1,2,3が到着したが, ジョブ1,ジョブ2,ジョブ3の順で到着した場合: ジョブ2 ジョブ3 ジョブ1 0 3 6 30 時刻0でほとんど同時にジョブ1,2,3が到着したが, ジョブ2,ジョブ3,ジョブ1の順で到着した場合: 平均ターンアラウンド時間=(24+27+30)/3 = 27 平均ターンアラウンド時間=(30+3+6)/3 = 13 ガント図 16

(17)

最短ジョブ優先方式

ジョブ バースト時間 1 6 2 3 3 8 4 7 実行時間の短い順に実行する. 理論的に最小の待ち時間を与える. 仮定:横取りがない. 例 ガント図 時刻0でほとんど同時にジョブ1,2,3,4が到着した場合. ジョブ2 ジョブ1 ジョブ3 0 3 9 16 24 ジョブ4

(18)

優先度方式(priority scheduling)

プロセスに優先度を付けて,優先度順に実行する.

(19)

横取りのある(preemtive)アルゴリズム

横取りのある最短ジョブ優先方式

ラウンドロビン(Round-Robin,巡回方式)

多重レベル待ち列(Multi-queue scheduling)

多重レベルフィードバック列(Multi-level feedback

queue)

(20)

横取りのある最短ジョブ優先方式

ジョブ 到着時刻 バースト時間 1 0 8 2 1 4 3 2 9 4 3 5 最小残り時間優先方式(Shortest-Remaining-Time-First)とも言う. 例 ガント図 ジョブ2 ジョブ1 ジョブ3 0 1 5 26 平均ターンアラウンド時間 =((17-0)+(5-1)+(26-2)+(10-3))/4 = 13 10 ジョブ4 17 横取り ジョブ1 横取りのない最短ジョブ優先方式の場合: 平均ターンアラウンド時間 = 57/4 = 14.25 20

(21)

ラウンドロビン(Round-Robin,巡回スケジューリング)(1/3)

ジョブ バースト時間 1 24 2 3 3 3 一定時間CPUを割り当てる. 一定時間: タイムスライス(time-slice, 量子時間) 終了しなければ,次に回す(レディキューの最 後尾につなぐ) 例 ジョブ2 ジョブ1 ジョブ3 0 26 30 ガント図 平均ターンアラウンド時間=47/3 = 16 22 10 14 4 7 18 ジョブ1 ジョブ1 ジョブ1 ジョブ1 ジョブ1 下記は,タイムスライス=4の場合のガント図 仮定:時刻0で,ジョブ1,2,3の順で到着 タイムスライスについて タイムスライス → ∞ : FCFS(先着順サービス)

(22)

ラウンドロビン(Round-Robin,巡回スケジューリング)(2/3)

ジョブ バースト時間 1 13 2 6 3 11 例の追加(右表) 例 ジョブ2 ジョブ1 ジョブ3 0 26 30 ガント図 平均ターンアラウンド時間=(30+18+29)/3 = 77/3 22 12 16 4 8 18 ジョブ3 ジョブ1 ジョブ1 ジョブ3 下記は,タイムスライス=4の場合のガント図 仮定:時刻0で,ジョブ1,2,3の順で到着 29 1 22

(23)

ラウンドロビン(Round-Robin,巡回スケジューリング)(3/3)

■タイムスライスの終了時の処理 プロセスの入れ替え: コンテキストスイッチング(Context switching) コンテキストの入れ替え 古い(今実行していた)プロセスのレジスタ内容を退避 新しいプロセスのレジスタ内容をレジスタにロード オーバヘッドが生じる タイムスライスを短くするとコンテキストのオーバヘッドが大 図4.16 状態切換えを増加させるより小さな量子時間(タイムスライス)値(図:準備中

(24)

多重レベル待ち列

 タイプの異なるジョブ  フォアグランドジョブ(foreground,会話的ジョブ等)  バックグランドジョブ(background,バッチ等)  キュー毎に異なるスケジューリングアルゴリズム  CPUの割当方法:優先度,時間配分 システムタスク 会話型 編集 バッチ 学生バッチ 最高優先度 最高優先度 図4.18 多重待ち列スケジューリング方式 24

(25)

多重レベルフィードバック列

 キュー間の移動を許す.  自由度の高いスケジューリング  パラメータ  キューの数  各キューのスケジューリングアルゴリズム  移動の決定方策  最初に入れるキューの決定方法  パラメータの決定が困難 キュー2 キュー1 キュー0 タイムスライス=16 タイムスライス=8

(26)

アルゴリズムの評価手法

解析的評価

決定性モデル

ジョブの振る舞いが決定的

確率的モデル

ジョブの振る舞いが確率的

待ち行列理論(Queueing theory)

シミュレーション

26

参照

関連したドキュメント

  ⑵  航空貨物  イ  搬入手続 . 第 1

平成3

( 2 ) 輸入は輸入許可の日(蔵入貨物、移入貨物、総保入貨物及び輸入許可前引取 貨物は、それぞれ当該貨物の蔵入、移入、総保入、輸入許可前引取の承認の日) 。 ( 3 )

 「フロン排出抑制法の 改正で、フロンが使え なくなるので、フロン から別のガスに入れ替 えたほうがいい」と偽

保安規定第66条条文記載の説明備考 (3)要求される措置 適用される 原子炉 の状態条件⑧要求される措置⑨完了時間 運転

 STEP ①の JP 計装ラックライン各ラインの封入確認実施期間および STEP ②の封入量乗 せ替え操作実施後 24 時間は 1 時間に

震災発生時のがれき処理に関

引き続き、中間処理業者の現地確認を1回/3年実施し評価を実施す