プロセス(タスク)管理 - 明星大学€¢...

Post on 17-Jun-2018

238 views 0 download

Transcript of プロセス(タスク)管理 - 明星大学€¢...

プロセス(タスク)管理

• 複数のプログラムを連続して実行させる

• 複数のプログラムを同時に実行させる

目的:プロセス(プログラム)の効率的な実行

仕事の進め方

仕事1:報告書作成 仕事2:報告書印刷 仕事3:報告書郵送仕事4:伝票集計 仕事5:企画作成

仕事の内容

印刷機

報告書作成

印刷

郵送

印刷ができるまで待つ

伝票集計 企画作成

仕事の内容

印刷機

報告書作成

印刷

伝票集計 郵送企画作成

郵送の仕事は待たせておく

(1) 単一処理

(2) 多重処理(マルチプログラミング,マルチタスク)

1

プログラムとプロセス

■ プログラム : 処理手順の静的な記述

■ プロセス : データを伴ったプログラムの動的な実行の実体

プログラムA

プログラムB

ディスク装置

主記憶

プログラムBの実行の実体

プログラムBの実行の実体

静的な実体(プログラム)は同じでも動的な実体は異なる

プログラムAの実行の実体プロセスP1

プロセスP2

プロセスP3

主記憶

プロセスP1

プロセスP2

プロセスP3

プログラムA

プログラムB

ディスク装置

PSWレジスタ

PCSP

PSWレジスタ

PCSP

PSWレジスタ

PCSP

PSWレジスタ

PCSP

物理CPU

仮想CPU

プロセス実行のイメージプロセスP1,P2,P3は時間的に切り替えられながら実行される

2

プロセスの状態

■ 実行状態(run): プロセッサによりプロセスが実行されている状態

■ 待ち状態(wait): プロセスが入出力などを要求し,入出力動作の完了を待っている状態

( = プロセスの実行は中断される)

■ 実行可能状態(ready): 資源としてのプロセッサが割り当てられれば,中断しているプロセスをいつでも再開できる状態

プロセスP1

P2

P3

P4

P5

実行状態

入出力要求

待ち状態 実行可能状態

入出力完了(割込み)

入出力要求

入出力要求

実行状態待ち状態実行可能状態

コンテキストスイッチ

3

(1) 実行状態 : プロセスが実行されている状態

(2) 待ち状態 : 事象(入出力の動作の完了など)待ちの状態

(3) 実行可能状態 : プロセッサの割当を待っている状態

プロセスの状態と遷移

実行可能状態(ready)

実行状態(run)

待ち状態(wait)

プロセスの生成

ディスパッチ

• タイムアウト• 優先度の高いプロセスの実行要求 事象待ち(入出力要求など)

事象発生(入出力の完了など)

プロセスの消滅終了

ready queue(待ち行列)

P5P4P3P2P1

プロセスの切替え要因

◆ イベントドリブン(event driven;事象駆動)

事象(イベント;システムの状態の変化)が発生したのを契機に,プロセスのスケジューリングを実行する方式。マルチプログラミングの実現に必要。

事象が発生するタイミングの例

• 入出力の要求,完了

• マウスのクリック,キーボード入力

◆ タイムスライス(time slice;時分割 / time sharing)システムの状態変化とは無関係に,設定した短い時間(クオンタム)の周期でプロセスを切り替える方式。一定時間ごとに割込みを発生させるインターバルタイマが必要。

4

プロセスの切替え方式

◆ プリエンプション(preemption)OSが実行中のプロセスを強制的に取り上げることにより,プロセスを中断させる。(WindowsXP,UNIX系OS,MacOS X)

◆ ノンプリエンプション(non-preemption)実行中のプロセスが入出力を要求する場合など,CPUの使用権をプロセス自身が自主的にOSに戻す。(Windows95,MacOS 9)

プロセスP1

プロセスP2

プロセスP3 プロセスが自主的にCPUの使用権を戻す

プロセスP1

プロセスP2

プロセスP3

プロセス実行中にエラーが発生すると,システム全体が停止してしまう可能性がある

• スケジューラ (scheduler) / ディスパッチャ(dispatcher)• プロセスの状態(run,wait,ready)の管理

• 実行可能状態にあるプロセスの選択→ スケジューリングアルゴリズム

• 選択したプロセスを実行させる

• プロセスはプロセス制御ブロック(PCB:Process Control Block)と呼ばれるデータ構造によって管理される

• プロセス番号• プロセスの優先度• 現在のプロセスの状態(実行状態 / 待ち状態 / 実行可能状態)• PC, レジスタ• PSW

など

プロセスの管理

OSの管理領域(主記憶内)中

にプロセスごとに格納される

5

1. 到着順(FCFS:First Come First Served)

2. 処理時間順(SPTF:Shortest Processing Time First)

3. 優先度順(PS:Priority Scheduling)

4. ラウンドロビン(Round Robin)

5. 多重レベルスケジューリング

6. 多重レベルフィードバックスケジューリング

◆実行可能状態にあるプロセスのどれを実行させるか

を決定する

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

6

1. 到着順

先に到着したプロセスから順に処理を行う(FCFS : First Come First Served)

・・・ プロセッサ 終了

待ち行列(queue)

到着順に並ぶ

利点:単純,公平

欠点:長時間実行するプロセスがあると,その後に並ぶプロセスは長時間待たされる(ターンアラウンドタイムTATが大きくなる)

選ばれたプロセスは完了するまで実行される

例:処理時間 P1:1秒,P2:1秒,P3:1秒,P4:100秒

P1-P2-P3-P4の順にほぼ同時に到着したときの平均TAT: 27.25秒P4-P3-P2-P1の順にほぼ同時に到着したときの平均TAT:101.5秒

到着順

105

201510

05

101020

ABCDE

CPU 時間到着時刻プロセス

CPU

■-A-B-C-D-E

1010254040

ターンアラウンドタイム到着

ABCDE

10 20 30 40 50 60A B C,D E

平均 25

7

2. 処理時間順

CPU使用時間の短いプロセスから順に処理を行う

・・・ プロセッサ 終了

待ち行列(queue)

処理時間順に並ぶ

利点:ターンアラウンドタイムの平均時間が最小になる

欠点:実現が困難(あらかじめプロセスの実行時間を知ることは困難)

到着

⇒あらかじめユーザに実行時間を登録させる

処理時間順

105

201510

05

101020

ABCDE

CPU 時間到着時刻プロセス

CPU

■-A-B-D-E-C

1010502020

ターンアラウンドタイム到着

ABCDE

10 20 30 40 50 60A B C,D E

平均 22

8

ソフトウェア開発技術者試験問題(平成18年度秋期)

問:五つのプロセスA~Eに対して,プロセスの多重度が1で,

処理時間順方式のスケジューリングを適用した場合,ジョブBのターンアラウンドタイムは何秒か。ここで,OSのオーバヘッドは考慮しないものとする。

14E23D32C41B20A

単独実行時の処理時間到着時間プロセス

0 1 2 3 4 5 6 7 8 9 10 11 12

A

B

C

D

E

Bのターンアラウンドタイム:11秒(到着時刻 1, 終了時刻 11)

9

3. 優先度順

プロセスごとに実行の優先度をあらかじめ与える

・・・ プロセッサ 終了

待ち行列(queue)

優先度順に並ぶ

利点:実行効率がよい

欠点:優先度の低いプロセスは待たされる(飢餓状態)→時効果(aging):待ち時間の長さによって優先度を上げる

優先度の高いプロセスが実行可能となると,実行中のプロセスが中断される。(プリエンプションの場合)

到着

32321

優先度

105

201510

05

101020

ABCDE

CPU 時間到着時刻プロセス

1010502020

ターンアラウンドタイム

ABCDE

到着

10 20 30 40 50 60A B C,D E

平均 22

優先度順(ノンプリエンプションの場合)

一つのプロセスの実行が終了するまでCPUを割り当てる

※ 優先度は小さい値ほ

ど優先度が高いとする

CPU

1 ■-E2 ■-B-D3 ■-A-C

10

32321

優先度

105

201510

05

101020

ABCDE

CPU 時間到着時刻プロセス

405502510

ターンアラウンドタイム

ABCDE

到着

10 20 30 40 50 60A B C,D E

平均 26

優先度順(プリエンプションの場合)

優先度の高いプロセスが到着したら,優先度の高いプロセスにCPUを割り当てる

※ 優先度は小さい値ほ

ど優先度が高いとする

CPU

1 ■-E2 ■-B-D3 ■-A-C

11

4. ラウンドロビン

プロセスを順番に一定時間(クオンタム)ごとに切り替えて実行する

・・・ プロセッサ 終了

待ち行列(queue)

利点:どのプロセスも公平に実行される

欠点:実行切替えが頻繁になると,オーバーヘッド(overhead:本来の処理以外のために

費やされるコスト(時間))が大きい

クオンタム内に終了しないプロセスは待ち行列の末尾に回される。

到着

ラウンドロビン

105

201510

05

101020

ABCDE

CPU 時間到着時刻プロセス

CPU

■-A-B-C-D-E

クオンタム=5とした場合

305

504525

ターンアラウンドタイム到着

ABCDE

10 20 30 40 50 60A B C,D E

平均 31

12

5. 多重レベルスケジューリング

プロセスの種類をグループに分類し,グループごとに優先度やスケジューリングアルゴリズムを設定する

・・・

プロセッサ

終了

待ち行列1

到着

・・・

待ち行列2

・・・

待ち行列n

優先度によって振分け

各待ち行列でスケジューリングを行う

・・・

多重レベルスケジューリング

到着順1520

020

C1C2

3C

510

405

B1B2

2B

優先度が同じ場合はラウンドロビン(クオンタム=5)

1010A11AアルゴリズムCPU時間到着時間プロセス優先度グループ

105

203540

ターンアラウンドタイム

A1B1B2C1C2

到着

10 20 30 40 50 60C1 B2 C2 B1A1

平均 22

13

6. 多重レベルフィードバックスケジューリング

• ある待ち行列で一定のプロセッサ時間を使用したプロセスをより優先度の低い待ち行列に移す

・・・

プロセッサ

終了

到着

・・・

・・・

各待ち行列で一定時間内に終了しないプロセスは次のレベルの待ち行列の末尾に回される

・・・

14

プロセスとスレッド

■ プロセス :OSから見た処理の実行単位

■ スレッド(軽量プロセス) :プロセスを細分化した実行単位

ブラウザソフトでの例

画像ファイルの受信

音楽の再生

ユーザ入力の処理

など…

並列に実行される

それぞれの処理が一つのスレッドに対応する

プロセスとスレッド

■ プロセス :プロセスごとに独立した主記憶を占める

■ スレッド(軽量プロセス) :プログラム部は主記憶を共有する

主記憶

プログラムA

プログラムA

プログラムAプロセスP1

プロセスP2

プロセスP3

プロセスごとのデータ

主記憶

プログラムAスレッドS1

スレッドごとのデータ

スレッドS2

スレッドS3

15

主記憶

OS

プロセスA

プロセスC

PSWレジスタ

PCSP

PSWレジスタ

PCSP

PSWレジスタ

PCSP

仮想CPU

スレッドのイメージ

スレッド

スレッド

一つのプロセスが複数のスレッドをもつ場合もあれば(マルチスレッド),

一つのプロセスが一つのスレッドに対応する場合もある(シングルスレッド)

スレッド

基本情報技術者試験問題(平成17年度秋期,平成18年度春期)

問:並行処理の単位として,プロセスのほかに,プロセス内に複数存在するスレッドを用いることがある。一つのプロセス内のすべてのスレッドが共有するものはどれか。ア 主記憶空間イ スタックウ プログラムカウンタの値エ レジスタセットの値

基本情報技術者試験問題(平成15年度春期)

問:スレッドとは,プロセス内部に含まれている論理的な並列処理の単位である。スレッドごとに用意されるものはどれか。

ア 主記憶空間イ 開いているファイル識別子ウ プロセス間の通信ポートエ レジスタ群の退避域

16

演習問題 4 1. プロセスは,実行可能状態(ready),実行状態(run),待ち状態(wait)を遷移しながら実行され

る。プロセスの状態遷移に関して,適切な記述はどれか。(基本情報技術者試験問題)

ア CPU 処理と入出力処理が交互に現れるプロセスを複数個同時に実行させると,各プ

ロセスは実行状態と待ち状態の二つの状態間だけを遷移する。 イ 実行可能状態とは,CPU の割当てを待っている状態をいう。実行可能状態のプロセ

スは一般に複数個存在し,これらは待ち行列を形成する. ウ 時分割処理を行っているシステム(タイムシェアリングシステム)では,実行状態

のプロセスは,一定時間が経過すると,待ち状態に遷移する。 エ 実行状態のプロセスは,自分に割り当てられた CPU 時間が終了すると待ち状態にお

かれる。 2. プロセスが実行状態,実行可能状態,待ち状態のいずれかの状態をとるとき,実行状態のプ

ロセスがプリエンプションによってほかのプロセスに実行を中断され,再び実行状態となるまで

の状態の変化として適切なものはどれか。(基本情報技術者試験問題)

ア 実行状態 → 実行可能状態 → 実行状態 イ 実行状態 → 実行可能状態 → 待ち状態 → 実行状態 ウ 実行状態 → 待ち状態 → 実行可能状態 → 実行状態 エ 実行状態 → 待ち状態 → 実行状態 オ 実行状態 → 実行可能状態 →待ち状態 → 実行状態

3. プロセスは実行状態,実行可能状態,待ち状態のいずれかの状態をとる。次の事象が発生し

た場合,そのプロセスはどの状態になるか。(基本情報技術者試験問題(改編))

(1) 自分より優先順位の高いプロセスが実行可能状態となった。 (2) スケジューラによりプロセスが生成された。 (3) 入出力動作が完了した。

(4) プロセスが入出力動作を要求した。 4. 表 1 のプロセスの集合に対し,到着順,処理時間順,プリエンプションのある処理時間順(残

り時間の 小のものを優先),定時間(クオンタム)が 2 のラウンドロビン(到着順に適用し,終

了したら即座に次のプロセスを実行する)の各アルゴリズムを適用したときのターンアラウンド

時間の平均値を求めよ。プロセス切替えに要するオーバヘッドは無視できるものとする。

表 1 プロセスの集合

プロセス 到着時間 処理時間

A B C D

0 1 3 5

2 10 7 3

答 到着順 11.5 処理時間順 10.5 プリエンプションのある処理時間順 9 ラウンドロビン 12.5

17

5. OS におけるプロセスのスケジューリングに関する記述として,適切なものはどれか。(ソフ

トウェア開発技術者試験問題)

ア 到着順方式では,プロセスが生成された順に高い優先順位を付けて CPU 時間を割り

当てる。これは先に開始されたプロセスを優先させて,早く終了させることを目的

としているからである。 イ 優先順方式では,CPU の利用状況の低いプロセスの優先順位を順次高くし,逆に

CPU を多く利用したプロセスの優先順位を低くするので,システム全体の処理効率

を高めるのに適している。 ウ ラウンドロビン方式は,要求された順番に CPU 時間を割り当て,割り当てられた時

間を使い切った後は,待ち行列の末尾に回す方式である。 エ 多重レベルフィードバック方式は,割当て要求のあったプロセスに対して 初に低

い優先順位と長い CPU 時間を割り当て,その後は優先度を高くし,CPU 時間を徐々

に短くする方式である。 6. コンピュータシステムにおけるジョブスケジューリングの説明として,適切なものはどれか。

(ソフトウェア開発技術者試験問題)

ア 到着順方式のスケジューリングは,ジョブ間に CPU を公平に割当てるので,スルー

プットや応答時間の保証が可能である。 イ タイムスライスを利用してプリエンプションを行うと,タイマ割込みが多発するの

で,スループットが低下する。 ウ 対話型とバッチ処理が混在するコンピュータシステムでは,対話型ジョブの優先度

を高くすることによって応答性能の向上が期待できる。 エ 入出力を多用するジョブよりも CPU を多用するジョブの処理優先度を上げた方が,

スループットの向上に寄与する。

18