Upload
others
View
1
Download
0
Embed Size (px)
Citation preview
1
リアルタイムシステム
2
リアルタイムシステム
イベント1
イベント2
イベントn
P1
P2
Pn
イベント i が生じると,タスクPiが起動され,実行し,アクションを起こす.
入力:イベント 出力:アクション
3
タスクの処理モデル
タスク実行
時間 スタート 終了 解放 デッドライン
解放: 当該タスクを実行してよいことを示す.OSのレディキューに入れる.
リアルタイムシステムの分類 分類の観点
デッドラインを守れなかったときに,システムにどのような影響を与えるか?
ハードリアルタイムシステム,ソフトリアルタイムシステム,ファームリアルタイムシステム
ハードリアルタイムシステム システムに致命的な影響を与える.
例:クルマのブレーキ,カメラのシャッター
ソフトリアルタイムシステム システムのサービスが低下するだけで,致命的な影響は与えない. 例:画像/音声の転送
ファームリアルタイムシステム
デッドラインを守れなかったとき,システムに致命的な影響はないが,デッドラインを守れなかったタスクの処理価値はゼロとなる.
例:ロボットのある作業がデッドラインを守れなかった場合,その作業は中止するが,ロボット全体の作業は継続させる.
4
5
リアルタイムスケジューリング
6
参考文献 リアルタイムスケジューリング
・白川洋充,竹垣盛一:リアルタイムシステムとその応用,システム制御情報ライブラリ22,システム制御情報学会編,朝倉書店,2001. ・藤倉俊幸:リアルタイム/マルチタスクシステムの徹底的研究,-組み込みシステムの基本とタスクスケジューリング技術の基礎-,CQ出版,2003.
7
内容
リアルタイムスケジューリング概論
優先度固定のスケジューリング レートモノトニックスケジューリング(Rate Monotonic Scheduling)
デッドラインモノトニックスケジューリング(Deadline Monotonic Scheduling)
動的優先度のスケジューリング EDFスケジューリング(Earliest Deadline First scheduling)
LLスケジューリング(Least Laxity scheduling)
優先度逆転現象(プライオリティインバージョン) 優先度継承方式(プライオリティインヘリタンスプロトコル:Priority
Inheritance Protocol)
プライオリティシーリング方式(Priority Ceiling Protocol)
8
タスクの処理モデル
タスク実行
時間 スタート 終了 解放 デッドライン
解放: 当該タスクを実行してよいことを示す.OSのレディキューに入れる.
9
タスクの種類
周期タスク
外部からのイベント:周期的に発生
イベントに関連付けられたタスクも周期的に起動される.
非周期タスク
周期的でないタスク
対応するイベントがランダムに発生.
散発的タスク
一度起動されると,ある時間,起動されない. 例:パケット到着時の割り込みハンドラ,パケットの到着は,散発的.
10
タスク処理のモデル化
)の集合(:タスク τττττ },,,,{iiii
T
: 実行終了時刻
: 実行開始時刻
: 相対デッドライン
: デッドライン時刻
解放時刻): タスク起動時刻(
時間は含めない 中断されている
行されている時間.実際にプロセッサで実: タスク実行時間
fi
si
Di
di
Ti
Ci)
(
11
タスク処理のモデル化
Ci
Ti di
タスク実行
時間 スタート 終了 解放 デッドライン
si fi
Di
12
スケジューリング方式の分類
オフラインVS.オンライン タスクのパラメータ(解放時刻,最悪実行時間,デッドラインなど)情報が全て事前(実行前)に分かっているか否か?
オフライン方式: 分かっているので,事前にスケジューリングする方式.
オンライン方式:分かっておらず,実行時にスケジューリングする方式.
静的VS.動的 静的スケジューリング: 優先度を実行前に固定的に割り当てて実行.
→ 優先度固定のスケジューリング
動的スケジューリング; 優先度を実行中に動的に変化させる.
→ 動的優先度のスケジューリング
13
スケジューリング方式
優先度固定のスケジューリング
動的優先度のスケジューリング
14
固定優先度のスケジューリング
15
固定優先度のスケジューリング
固定優先度のスケジューリングとは,スケジューリングの間に,タスクの優先度は変化しない.
タスクの優先度は,実行前に予め割当てられている.
固定優先度スケジューリングの種類 レートモノトニックスケジューリング(Rate monotonic
scheduling) 周期の短いタスクに,よい高い優先度を付けて,スケジューリングする.
デッドラインモノトニックスケジューリング(Deadline monotonic scheduling) 解放(リリース)からデッドラインまでの時間が短いタスクに,よい高い優先度を付けて,スケジューリングする.
16
レートモノトニックスケジューリング
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.
18
レートモノトニックスケジューリング ー前提条件ー
単一プロセッサ
全てのタスクが周期的:非周期タスクはない.
ハードリアルタイムシステム
デッドラインは,周期の終わり
各タスクは,独立
各タスク最大実行時間は,既知で,一定.
プリエンプティブスケジューリング
19
レートモノトニックでのスケジュール可能性について ープロセッサ利用率の定義ー
(プロセッサ利用率Uの定義)
m
i
TiCiU1
/
の周期: タスク
の実行時間: タスク
iTi
iCiタスクの数:m
20
レートモノトニックでのスケジュール 可能性について
(定理)タスク数がmのシステムが,レートモノトニックでスケジューリングできるための十分条件は,次式が成立することである.
m
i
mmTiCiU
1
/1)1(/ 2
の周期:タスク
の実行時間タスク
iTi
iCi :プロセッサ利用率:U
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=∞)以下であれば,どのような場合であろうと,レートモノトニックでスケジューリング可能であることが分かる.
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の方が優先度が高い.
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
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
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
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個の場合にも成立する.
上記の定理が意味するもの.
・周期の長いタスクの優先度を高くしてスケジュールしたものがスケジュール可能であれば,レートモノトニックスケジューリングでも必ずスケジュール可能である.
27
前述の定理の解釈
レートモノトニックスケジューリング
レートモノトニックスケジューリングではない
スケジュール可能なタスク集合
課題:定理の逆は成立しない.反例を挙げよ.すなわち,スケジューリング1でスケジュール可能で,スケジューリング2でスケジュールできないタスクパターンの例.
28
一般化した定理 定理
n個のタスク(τ 1,…τ n)があり,それらのタスクの周期について,T1<T2<…<Tn,とする.ここで,Tiは,タスクτ iの周期.τ iの優先度をP(τ i)とする.このとき,次の2つのスケジューリングを考える.
・スケジューリング1:P(τ 1)>P(τ 2)>...>P(τ n)なる優先度を各タスクに付けてスケジューリングする(レートモノトニックスケジューリング).
・スケジューリング2:上記スケジューリング1以外の優先度を付けてスケジューリングする.
このとき,下記が成立する.
スケジューリング2でスケジュール可能であれば,必ずスケジューリング1でスケジュール可能である.
上記の意味するもの.
・レートモノトニックを使用してもスケジュールできないタスク集合をスケジューリングできる方式はない.(前提:周期タスク,固定優先度) 上記の意味で,レートモノトニックスケジューリングは最適である.
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
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
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
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
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
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
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
36
デッドラインモノトニックスケジューリング
37
デッドラインモノトニックスケジューリングとは?
レートモノトニックスケジューリングでは,相対デッドラインDi=Tiとしていた.Di:タスクiの相対デッドライン,Ti:タスクiの周期
ここでは,Ci≦Di≦Tiの場合に拡張.(Ci:タスクiの実行時間) デッドラインモノトニックスケジューリングとは?
相対デッドラインが小さいものに,より高い優先度を付けてスケジューリングする方式
レートモノトニックスケジューリングは,周期の短いタスクにより高い優先度をつけていた(Di=Tiとしていたので)
Ci
Ti di
タスク実行
時間 スタート 終了 解放 デッドライン si fi
)(相対デッドラインDi
)(周期T
38
デッドラインモノトニックスケジューリングのスケジュール可能性のための必要十分条件
レートモノトニックスケジューリングの必要十分条件において,TkをDkに置き換えたもの.
39
動的優先度のスケジューリング
40
動的優先度のスケジューリング
優先度:動的(ランタイム時)に変化する.
動的優先度スケジューリングの種類
EDFスケジューリング(Earliest Deadline First scheduling)
絶対デッドラインに一番早く達するタスクに最高の優先度を与える.
LLスケジューリング(Least Laxity scheduling)
41
EDF(Earliest Deadline First) スケジューリング
42
EDFスケジューリング
絶対デッドラインに一番早く達するタスクに最高の優先度を与える.
優先度が同じ場合には,周期が短いタスクから実行.
周期も同じ場合には,タスク番号の小さいタスクから実行
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
44
EDFの議論
前述の例
固定優先度のレートモノトニックの必要十分条件で,スケジューリングできない例であった.(実際に,必要十分条件を適用して,確かめてみよ.)
レートモノトニックでスケジューリングできないものでも,EDFでは,スケジューリングできる. 上記は,EDFでは,スケジューリングできても,レートモノトニックではスケジューリングできないものがあることを,意味する.
議論: 固定優先度スケジューリングでスケジューリング可能であれば,必ず,EDFでもスケジューリング可能であるか?
45
EDFスケジューリングのスケジュール可能性 ー必要十分条件ー
(定理)任意のリリース時刻を持つタスク数がmのシステムが,EDFスケジューリングでスケジューリングできるための必要十分条件は,次式が成立することである.
m
i iT
Ci
1
,1
の周期:タスクの実行時間,:タスク
ここで,
iTiiCi
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.
47
優先度逆転現象とは?
互いに独立で,優先度が異なる2つのタスクで,優先度が低いタスクの方が実行されてしまう現象.
48
優先度逆転現象の例
Time
タスク
L
Time
タスク
M
Time
タスク
H
CS実行
:クリティカルセクション実行
:クリティカルセクション以外の実行
タスクH
起動
CSに入ろうとして
サスペンドされる.
CS:クリティカルセクション
タスクM起動
タスクHより優先度の
低いタスクMが実行される(優先度逆転現象).
ロック解除
CS実行
タスクの優先度: H > M > L
横取り ロック獲得
49
優先度逆転現象の解決方法
優先度継承方式(プライオリティインヘリタンス方式,Priority Inheritance Protocol)
タスクがリソース待ちになったとき,そのリソースを確保しているタスクの優先度をリソース待ちタスクの優先度まで引き上げる.クリティカルセクション終了後,優先度を元に戻す.
プライオリティシーリング方式(Priority Ceiling Protocol)
50
優先度継承方式
Time
タスク
L
Time
タスク
M
Time
タスク
H
CS実行
:クリティカルセクション実行
:クリティカルセクション以外の実行
タスクH起動
CSに入ろうとして
サスペンドされる.
CS:クリティカルセクション
Lの優先度を,Hの優先度にする(優先度の継承).Mは実行されない.CSを出るときに優先度を元に戻す.
CS実行
タスクの優先度(初期値): H > M > L
タスクH起動
Ready状態
横取り
ロック解除
51
優先度継承方式の問題点
デッドロックが生じる可能性がある.
連続ブロックキングが生じやすい.
連続ブロッキングとは?
高い優先度のタスクが何回もブロックされる現象(低優先度タスクの優先度をあげたため).
解決方法
プライオリティシーリング方式(Priority Ceiling Protocol)
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);
横取り 制御が移る.
53
プライオリティシーリング方式(Priority Ceiling Protocol)
優先度継承方式の欠点(デッドロック,連続ブロッキング)を解決する方式
方式の概略 優先度継承方式の改良版
各クリティカルセクション(CS)にプライオリティシーリング値を付ける.シーリング値は,そのCSを共有しているプロセスの中で,最もプライオリティの高いプロセスのプライオリティとする.
プロセスPがCSに入ろうとした場合の処理: 自分のプライオリティが,他プロセスによってすでにロックされている全てのCSのシーリング値よりも,高いときのみCSに入ることができる.
以上
54