54
1 リアルタイムシステム

リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

1

リアルタイムシステム

Page 2: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

2

リアルタイムシステム

イベント1

イベント2

イベントn

P1

P2

Pn

イベント i が生じると,タスクPiが起動され,実行し,アクションを起こす.

入力:イベント 出力:アクション

Page 3: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

3

タスクの処理モデル

タスク実行

時間 スタート 終了 解放 デッドライン

解放: 当該タスクを実行してよいことを示す.OSのレディキューに入れる.

Page 4: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

リアルタイムシステムの分類 分類の観点

デッドラインを守れなかったときに,システムにどのような影響を与えるか?

ハードリアルタイムシステム,ソフトリアルタイムシステム,ファームリアルタイムシステム

ハードリアルタイムシステム システムに致命的な影響を与える.

例:クルマのブレーキ,カメラのシャッター

ソフトリアルタイムシステム システムのサービスが低下するだけで,致命的な影響は与えない. 例:画像/音声の転送

ファームリアルタイムシステム

デッドラインを守れなかったとき,システムに致命的な影響はないが,デッドラインを守れなかったタスクの処理価値はゼロとなる.

例:ロボットのある作業がデッドラインを守れなかった場合,その作業は中止するが,ロボット全体の作業は継続させる.

4

Page 5: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

5

リアルタイムスケジューリング

Page 6: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

6

参考文献 リアルタイムスケジューリング

・白川洋充,竹垣盛一:リアルタイムシステムとその応用,システム制御情報ライブラリ22,システム制御情報学会編,朝倉書店,2001. ・藤倉俊幸:リアルタイム/マルチタスクシステムの徹底的研究,-組み込みシステムの基本とタスクスケジューリング技術の基礎-,CQ出版,2003.

Page 7: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

7

内容

リアルタイムスケジューリング概論

優先度固定のスケジューリング レートモノトニックスケジューリング(Rate Monotonic Scheduling)

デッドラインモノトニックスケジューリング(Deadline Monotonic Scheduling)

動的優先度のスケジューリング EDFスケジューリング(Earliest Deadline First scheduling)

LLスケジューリング(Least Laxity scheduling)

優先度逆転現象(プライオリティインバージョン) 優先度継承方式(プライオリティインヘリタンスプロトコル:Priority

Inheritance Protocol)

プライオリティシーリング方式(Priority Ceiling Protocol)

Page 8: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

8

タスクの処理モデル

タスク実行

時間 スタート 終了 解放 デッドライン

解放: 当該タスクを実行してよいことを示す.OSのレディキューに入れる.

Page 9: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

9

タスクの種類

周期タスク

外部からのイベント:周期的に発生

イベントに関連付けられたタスクも周期的に起動される.

非周期タスク

周期的でないタスク

対応するイベントがランダムに発生.

散発的タスク

一度起動されると,ある時間,起動されない. 例:パケット到着時の割り込みハンドラ,パケットの到着は,散発的.

Page 10: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

10

タスク処理のモデル化

)の集合(:タスク τττττ },,,,{iiii

T

: 実行終了時刻

: 実行開始時刻

: 相対デッドライン

: デッドライン時刻

解放時刻): タスク起動時刻(

時間は含めない   中断されている

行されている時間.実際にプロセッサで実: タスク実行時間

fi

si

Di

di

Ti

Ci)

(

Page 11: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

11

タスク処理のモデル化

Ci

Ti di

タスク実行

時間 スタート 終了 解放 デッドライン

si fi

Di

Page 12: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

12

スケジューリング方式の分類

オフラインVS.オンライン タスクのパラメータ(解放時刻,最悪実行時間,デッドラインなど)情報が全て事前(実行前)に分かっているか否か?

オフライン方式: 分かっているので,事前にスケジューリングする方式.

オンライン方式:分かっておらず,実行時にスケジューリングする方式.

静的VS.動的 静的スケジューリング: 優先度を実行前に固定的に割り当てて実行.

→ 優先度固定のスケジューリング

動的スケジューリング; 優先度を実行中に動的に変化させる.

→ 動的優先度のスケジューリング

Page 13: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

13

スケジューリング方式

優先度固定のスケジューリング

動的優先度のスケジューリング

Page 14: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

14

固定優先度のスケジューリング

Page 15: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

15

固定優先度のスケジューリング

固定優先度のスケジューリングとは,スケジューリングの間に,タスクの優先度は変化しない.

タスクの優先度は,実行前に予め割当てられている.

固定優先度スケジューリングの種類 レートモノトニックスケジューリング(Rate monotonic

scheduling) 周期の短いタスクに,よい高い優先度を付けて,スケジューリングする.

デッドラインモノトニックスケジューリング(Deadline monotonic scheduling) 解放(リリース)からデッドラインまでの時間が短いタスクに,よい高い優先度を付けて,スケジューリングする.

Page 16: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

16

レートモノトニックスケジューリング

Page 17: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

17

レートモノトニックスケジューリングとは?

周期の短いタスクに,より高い優先度を与える.

最初の論文

C.Liu and J.W.Layland: Scheduling Algorithms for Multiprogramming in a Hard Real-Time Envinronment, J. of ACM, Vol.20, No.1, pp.46-61, 1973.

Page 18: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

18

レートモノトニックスケジューリング ー前提条件ー

単一プロセッサ

全てのタスクが周期的:非周期タスクはない.

ハードリアルタイムシステム

デッドラインは,周期の終わり

各タスクは,独立

各タスク最大実行時間は,既知で,一定.

プリエンプティブスケジューリング

Page 19: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

19

レートモノトニックでのスケジュール可能性について ープロセッサ利用率の定義ー

(プロセッサ利用率Uの定義)

m

i

TiCiU1

/

の周期: タスク

の実行時間: タスク

iTi

iCiタスクの数:m

Page 20: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

20

レートモノトニックでのスケジュール 可能性について

(定理)タスク数がmのシステムが,レートモノトニックでスケジューリングできるための十分条件は,次式が成立することである.

m

i

mmTiCiU

1

/1)1(/ 2

の周期:タスク

の実行時間タスク

iTi

iCi :プロセッサ利用率:U

Page 21: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

21

数値例

)1(2/1

mm

m1 2 3 4 5 ∞

1.0 0.83 0.78 0.76 0.74 0.69

上記の表より.プロセッサ利用率が,0.69(m=∞)以下であれば,どのような場合であろうと,レートモノトニックでスケジューリング可能であることが分かる.

Page 22: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

22

レートモノトニックスケジューリング例 ー条件を満たす例ー

,2m )4,2()1,1( TC),8,2()0,0( TC

828.0)1(275.04/28/2/2

1

2/1

2 i

TiCiU

なので,スケジューリング可能である.

Time

タスク

P1

Time

タスク

P0

周期T0=8

周期T1=4

0 5 10 20 15

1 13 3 11 9 7 5 15 17 19

プリエンプション プリエンプション プリエンプション

11 16 4 3 8 12 19

(実現例)

タスク1の方が周期が短いので,レートモノトニックスケジューリングでは,タスク1の方が優先度が高い.

Page 23: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

23

レートモノトニックスケジューリング例 ー条件を満たさない例(スケジューリングできる例)ー

,2m )4,2()1,1( TC),8,3()0,0( TC

828.0)1(2875.04/28/3/2

1

2/1

2 i

TiCiU

なので,スケジューリングできないか?.

Time

タスク

P1

Time

タスク

P0

上記のように,スケジュールできる.

前述の式は,十分条件である(必要十分条件ではない).

周期T0=8

周期T1=4

プリエンプション プリエンプション プリエンプション

0 16 8

1 9 13 5 17 15 11 7 3 19

3 13 11 5

レートモノトニックスケジューリングでは,タスクの優先度は,

タスク0<タスク1

Page 24: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

24

レートモノトニックスケジューリング例 ー条件を満たさない例(スケジューリングできない例)ー

,3m )5,1()1,1( TC),4,1()0,0( TC

3

1

3/1)1(36/35/14/1/ 2

i

TiCiU

なので,スケジューリングできないか?.

Time

タスク

P0

)6,3()2,2( TC

Time

タスク

P1

Time

タスク

P2

デッドラインを越える!

できない!

周期T0=4

周期T0=5

周期T0=6

0

2

1

1 0

6 0 2 4

4

7

5

5 6

プリエン

プション

18 12

10 6

20 15

16 12 8 20

レートモノトニックスケジューリングでは,タスクの優先度は,

タスク0>タスク1>タスク2

Page 25: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

25

レートモノトニックスケジューリング

,2m )4,2()1,1( TC),2,1()0,0( TC

3

1

0.14/22/1/i

TiCiU

Time

タスク

P0

Time

タスク

P1

各タスクの周期が整数倍のときは,CPU使用率(U)=1,にできる.

周期T1=4

周期T1=2

0

0 20 16 12 8 4

プリエンプション

7 6 5 3 2 1 18 17 15 14 13 11 10 9 19

Page 26: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

26

レートモノトニックスケジューリングの解釈 なぜ,レートモノトニックスケジューリングが,注目されるのか?

理論的根拠はあるのか?

根拠: 間違い:周期の短いタスクは,実行時間も短いから,優先度を高くして早めに実行させた方がよい.

優先度割り付けの問題(priority assignment problem)

(理論的根拠)

定理

2つのタスクH,Lを考える.タスクHの周期<タスクLの周期,とし,タスクH,Lの優先度を各々,P(H),P(L)とする.次の2通りのスケジューリングを考える.

・スケジューリング1:タスクL,Hの優先度を,P(L)<P(H)として,スケジューリングする.

(レートモノトニックスケジューリング) ・スケジューリング2:タスクL,Hの優先度を,P(L)>P(H)として,スケジューリングする.

このとき,スケジューリング2でスケジュール可能ならば,スケジューリング1でもスケジュール可能である.

上記は,タスク数を一般とするn個の場合にも成立する.

上記の定理が意味するもの.

・周期の長いタスクの優先度を高くしてスケジュールしたものがスケジュール可能であれば,レートモノトニックスケジューリングでも必ずスケジュール可能である.

Page 27: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

27

前述の定理の解釈

レートモノトニックスケジューリング

レートモノトニックスケジューリングではない

スケジュール可能なタスク集合

課題:定理の逆は成立しない.反例を挙げよ.すなわち,スケジューリング1でスケジュール可能で,スケジューリング2でスケジュールできないタスクパターンの例.

Page 28: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

28

一般化した定理 定理

n個のタスク(τ 1,…τ n)があり,それらのタスクの周期について,T1<T2<…<Tn,とする.ここで,Tiは,タスクτ iの周期.τ iの優先度をP(τ i)とする.このとき,次の2つのスケジューリングを考える.

・スケジューリング1:P(τ 1)>P(τ 2)>...>P(τ n)なる優先度を各タスクに付けてスケジューリングする(レートモノトニックスケジューリング).

・スケジューリング2:上記スケジューリング1以外の優先度を付けてスケジューリングする.

このとき,下記が成立する.

スケジューリング2でスケジュール可能であれば,必ずスケジューリング1でスケジュール可能である.

上記の意味するもの.

・レートモノトニックを使用してもスケジュールできないタスク集合をスケジューリングできる方式はない.(前提:周期タスク,固定優先度) 上記の意味で,レートモノトニックスケジューリングは最適である.

Page 29: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

29

レートモノトニックでのスケジュール可能性について ー必要十分条件ー

(定理)タスク数がmのシステムが,レートモノトニックでスケジューリングできるための必要十分条件は,次式が成立することである.

,1,,11),(

miil

l

CjMin

i

j j

k

kRilk T

TT

 

の実行時間タスクiCi : の周期タスクiTi :

}/,...,1,1|),({      TTR kiiliklk ここで,

10.1,15.1functionfloor:

,10.1,25.1functionceiling:

 以下の最大整数,例:,   

 以上の最小整数,例:, 

xx

xx

Page 30: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

30

定理を使った例(その1)(1/3)

みる.件式を用いて判定して■そこで,必要十分条

かを判定できない.スケジュール可能か否

,足せず,この判定ではとなり,十分条件を満

を計算すると,

■まず,十分条件式

 :・各タスクの実行時間

 ・各タスクの周期:

・タスク数

2

1

2/1

1

/1

)1(235/347/45/2/

)1(/

42,21

72,51

,2:

2

2

i

m

i

m

TiCiU

mTiCiU

CC

TT

m

Page 31: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

31

定理を使った例(その1)(2/3)

 スケジュ となり,タスク1は

となる.すなわち,・従って,集合

なので,・

なので,で,・

を求める.■集合

ール可能である.

,15/21/11

1

.1,1)}1,1{()},{(1

.111/1

.111

)1(1

1

1 1

1

1

j

TCCj

lkklR

lTT

kiik

iR

TT

T

Page 32: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

32

定理を使った例(その1)(3/3)

能ではない.2は,スケジュール可■上記により,タスク

1を満足しない.  となり,左辺

            

   

のとき・

1を満足しない.となり,左辺

            

   

のとき・

る.スケジュール可能であであれば,タスク2はどちらかの式が1以下を計算し,少なくともの組合せについて,式・上記の2つの

となる.・従って,

なので,のとき,  

なので,のとき,  

なので,を求める. ・次に,

なので,で,・

を求める.■次に集合

17

8

7

4

7

4

7

4

5

7

7

2

211

1

)1,2(),(

15

6

5

4

5

2

7

5

5

4

5

2

211

1

)1,1(),(

),(

)1,2(),1,1(),(

112/22

115/71/21

/,...,1

2.121

)2(2

1

2

1 2

2

21

2

2

2

2

1

2

1 2

1

11

1

1

1

1

i

j j jj

k

k

i

j j jj

k

k

TT

TTT

TTT

TTT

T

TT

TTT

TTT

TTT

T

CCCjl

l

Cj

lk

CCCjl

l

Cj

lk

lk

lk

lTTk

lTTk

TkTill

kiik

iR

Page 33: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

33

定理を使った例(その2)(1/3)

  

ール可能である.タスク1は,スケジュ

を選べば)すれば(そのように・従って,次式が成立

となる.すなわち,・従って,集合

なので,・

なので,で,・

を求める.■集合

とする.・各タスクの周期:

・タスク数

1

1 1

1

1

,1100/11/11

1

,1

.1,1)}1,1{()},{(1

.111/1

.111

)1(1

3503,1502,1001

,3

j

CTCCj

C

lkklR

lTT

kiik

iR

TTT

TT

T

Page 34: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

34

定理を使った例(その2)(2/3)

  

            

   

のとき

            

   

のとき・

・すなわち,

ュール可能である.ば,タスク2はスケジかの式が1以下であれ  少なくともどちら

を計算し,の組合せについて,式・上記の2つの  

となる.・従って, 

なので,のとき,   

なので,のとき,   

なので,を求める. ・次に,

なので,で,・

を求める.■次に集合 

1150

2

75

121

211

1

)1,2(),(

1100

2

100

121

211

1

)1,1(),(

),(

)1,2(),1,1(),(

112/22

11100/1501/21

/,...,1

2.121

)2(2

150100150

150

150100

100100

1

2

1 2

2

21

2

2

2

2

1

2

1 2

1

11

1

1

1

1

CCCC

CCCjl

l

Cj

lk

CCCC

CCCjl

l

Cj

lk

lk

lk

lTTk

lTTk

TkTill

kiik

iR

i

j j jj

k

k

i

j j jj

k

k

TT

TTT

TTT

TTT

T

TT

TTT

TTT

TTT

T

Page 35: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

35

定理を使った例(その2)(3/3)

  

            

   

のとき・例:  

ある.はスケジュール可能で タスク

ば,つの式が1以下であれを計算し,少なくともの組合せについて,式つの・上記の

となる.          ・従って,

なので,のとき,   

なので,のとき,   

なので,のとき,   

なので,を求める. ・次に,

なので,で,・

を求める.■次に集合  

1300

3

150

2

100

1321

3212

2

)2,2(),(

3

1),(6

})1,3(),2,2(),1,2(),3,1(),2,1(),1,1({}),({3

113/33

2,12150/3502/32

3,2,13100/3501/31

/,...,1

3,2.131

)3(3

350300

300150300

300100300

300

22

22

22 3

2

21

3

1 2

2

21

2

2

2

2

CCCCCC

CCCCjl

l

Cj

lk

lk

lkR

lTTk

lTTk

lTTk

TkTill

kiik

iR

TT

TTT

TTT

TTT

TTT

T

i

j j jj

k

k

Page 36: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

36

デッドラインモノトニックスケジューリング

Page 37: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

37

デッドラインモノトニックスケジューリングとは?

レートモノトニックスケジューリングでは,相対デッドラインDi=Tiとしていた.Di:タスクiの相対デッドライン,Ti:タスクiの周期

ここでは,Ci≦Di≦Tiの場合に拡張.(Ci:タスクiの実行時間) デッドラインモノトニックスケジューリングとは?

相対デッドラインが小さいものに,より高い優先度を付けてスケジューリングする方式

レートモノトニックスケジューリングは,周期の短いタスクにより高い優先度をつけていた(Di=Tiとしていたので)

Ci

Ti di

タスク実行

時間 スタート 終了 解放 デッドライン si fi

)(相対デッドラインDi

)(周期T

Page 38: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

38

デッドラインモノトニックスケジューリングのスケジュール可能性のための必要十分条件

レートモノトニックスケジューリングの必要十分条件において,TkをDkに置き換えたもの.

Page 39: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

39

動的優先度のスケジューリング

Page 40: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

40

動的優先度のスケジューリング

優先度:動的(ランタイム時)に変化する.

動的優先度スケジューリングの種類

EDFスケジューリング(Earliest Deadline First scheduling)

絶対デッドラインに一番早く達するタスクに最高の優先度を与える.

LLスケジューリング(Least Laxity scheduling)

Page 41: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

41

EDF(Earliest Deadline First) スケジューリング

Page 42: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

42

EDFスケジューリング

絶対デッドラインに一番早く達するタスクに最高の優先度を与える.

優先度が同じ場合には,周期が短いタスクから実行.

周期も同じ場合には,タスク番号の小さいタスクから実行

Page 43: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

43

固定優先度スケジューリングとEDFスケジューリングの違い (引用:白川洋充,竹垣盛一:リアルタイムシステムとその応用,システム制御情報ライブラリ22,システム制御情報学会

編,朝倉書店,2001.p.59)

),,(,32,1,0 DiTiCiPimPPP )数:タスク()6,6,3()2,2,2(),5,5,1()1,1,1(),4,4,1()0,0,0( DTCDTCDTC

タスク

P0

タスク

P1

タスク

P2

タスク

P0

タスク

P1

タスク

P2

・レートモノトニック:スケジューリングできない.

・EDFでは,下記のようにスケジュールできる.

3

1

60/576/35/14/1/i

TiCiU なので,60単位時間のうち,57:使用,3:アイドル時間

0

0

0 5

4

6

10 15 20 25 30 35

40 45 50 55

40

8 12 16 20 28

40 44 48 52 56

32 36 40

12 18 24 30 36

42 48 54 60

アイドル時間

60

60

24

→ time

→ time

Page 44: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

44

EDFの議論

前述の例

固定優先度のレートモノトニックの必要十分条件で,スケジューリングできない例であった.(実際に,必要十分条件を適用して,確かめてみよ.)

レートモノトニックでスケジューリングできないものでも,EDFでは,スケジューリングできる. 上記は,EDFでは,スケジューリングできても,レートモノトニックではスケジューリングできないものがあることを,意味する.

議論: 固定優先度スケジューリングでスケジューリング可能であれば,必ず,EDFでもスケジューリング可能であるか?

Page 45: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

45

EDFスケジューリングのスケジュール可能性 ー必要十分条件ー

(定理)任意のリリース時刻を持つタスク数がmのシステムが,EDFスケジューリングでスケジューリングできるための必要十分条件は,次式が成立することである.

m

i iT

Ci

1

,1

の周期:タスクの実行時間,:タスク

ここで,

iTiiCi

Page 46: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

46

プライオリティインバージョン (優先度逆転現象)

参考文献

・L.Sha, R.Rajkumar, and J.P.Lehoczky: Priority Inheritance Protocols:

An Approach to Real-Time Synchronization, Technical Report CMU-CS-

87-181, Computer Science DCepartment, Carnegie Mellon Univ.(1987).

・L.Sha, R.Rajkumar, and J.P.Lehoczky: Priority Inheritance Protocols:

An Approach to Real-Time Synchronization, IEEE Trans. On Computers,

Vol.39, No.9, pp.1175-1185, 1990.

・R.Rajkumar: A Priority Inheritance Approach, Kluwer Academic

Publishers, 1991.

・藤倉俊幸:リアルタイム/マルチタスクシステムの徹底的研究,-組み込みシステムの基本とタスクスケジューリング技術の基礎-,CQ出版,2003.

Page 47: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

47

優先度逆転現象とは?

互いに独立で,優先度が異なる2つのタスクで,優先度が低いタスクの方が実行されてしまう現象.

Page 48: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

48

優先度逆転現象の例

Time

タスク

L

Time

タスク

M

Time

タスク

H

CS実行

:クリティカルセクション実行

:クリティカルセクション以外の実行

タスクH

起動

CSに入ろうとして

サスペンドされる.

CS:クリティカルセクション

タスクM起動

タスクHより優先度の

低いタスクMが実行される(優先度逆転現象).

ロック解除

CS実行

タスクの優先度: H > M > L

横取り ロック獲得

Page 49: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

49

優先度逆転現象の解決方法

優先度継承方式(プライオリティインヘリタンス方式,Priority Inheritance Protocol)

タスクがリソース待ちになったとき,そのリソースを確保しているタスクの優先度をリソース待ちタスクの優先度まで引き上げる.クリティカルセクション終了後,優先度を元に戻す.

プライオリティシーリング方式(Priority Ceiling Protocol)

Page 50: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

50

優先度継承方式

Time

タスク

L

Time

タスク

M

Time

タスク

H

CS実行

:クリティカルセクション実行

:クリティカルセクション以外の実行

タスクH起動

CSに入ろうとして

サスペンドされる.

CS:クリティカルセクション

Lの優先度を,Hの優先度にする(優先度の継承).Mは実行されない.CSを出るときに優先度を元に戻す.

CS実行

タスクの優先度(初期値): H > M > L

タスクH起動

Ready状態

横取り

ロック解除

Page 51: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

51

優先度継承方式の問題点

デッドロックが生じる可能性がある.

連続ブロックキングが生じやすい.

連続ブロッキングとは?

高い優先度のタスクが何回もブロックされる現象(低優先度タスクの優先度をあげたため).

解決方法

プライオリティシーリング方式(Priority Ceiling Protocol)

Page 52: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

52

優先度継承方式におけるデッドロックの発生

Time

タスク

L

Time

タスク

H

:リソース2 :CS以外の実行

前提:タスクH,L

・タスクの優先度(初期値):H> L

・タスクL,Hがリソース1,2に対して各々ロックをとる.

・ロックのとり方は,サスペンドロック方式.

・注意:L,Hのロックを取る順序が逆.

/* タスクH*/

lock(リソース1); lock(リソース2); ・・・ unlock(リソース2); unlock(リソース1);

/* タスクL*/

lock(リソース2); lock(リソース1); ・・・ unlock(リソース1); unlock(リソース2);

:リソース1

リソース2のロックを取りにいくが,Lがロックをとっているため,サスペンドされる.

Lに制御が移り,リソース1のロックを取りにいくが,Hがリソース1のロックをとっているため,デッドロック発生

lock(リソース2);

起動 lock(リソース1);

横取り 制御が移る.

Page 53: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

53

プライオリティシーリング方式(Priority Ceiling Protocol)

優先度継承方式の欠点(デッドロック,連続ブロッキング)を解決する方式

方式の概略 優先度継承方式の改良版

各クリティカルセクション(CS)にプライオリティシーリング値を付ける.シーリング値は,そのCSを共有しているプロセスの中で,最もプライオリティの高いプロセスのプライオリティとする.

プロセスPがCSに入ろうとした場合の処理: 自分のプライオリティが,他プロセスによってすでにロックされている全てのCSのシーリング値よりも,高いときのみCSに入ることができる.

Page 54: リアルタイムシステムfukuda/HijyoukinH25/kitakyushu/...リアルタイムシステムの分類 分類の観点 デッドラインを守れなかったときに,システムにどのような影響を与えるか?

以上

54