pptファイル

タスクの有限状態機械モデル
実行可能
(レディ)
待ち条件解除
(最高優先度でない)
最高優先度
最高優先度
を喪失
待ち
(ブロック)
待ち条件解除
(最高優先度)
ブロック条件に合致する
システムコール
実行中
(1タスクのみ)
レートモノトニックスケジューリング
𝜏1 = 3,1,3 ,
𝜏1
高優
先度
𝜏2
中優
先度
𝜏3
低優
先度
𝜏2 = 8,1,8 ,
𝜏3 = (10,4,10)
タスクの有限状態機械モデル
実行可能
(レディ)
ジョブリリース
(レディキューへ)
待ち
(ブロック)
実行中ジョブ完了
(レディキュー先頭)
被プリエンプション
ジョブリリース
(プリエンプション)
ジョブ完了
実行中
(1タスクのみ)
メッセージキューを介したジョブリリース
メッセージキュー
周期的に
入力
入力機器
(センサ)
データ
入力
(送信)
受信待ち
タスク
リアルタイム
タスク
データ
読取り
(受信)
① タスクが受信システムコール(RTタスク ブロック)
② センサが送信(RTタスク レディ)
③ RTタスク実行
メッセージキューを介したジョブリリース
メッセージキュー
キュー長:1
リアルタイム
タスク
データ
書込み
(送信)
送信待ち
タスク
周期的に
出力
出力機器
(アクチュエータ)
データ
出力
(受信)
① タスクが送信システムコール(RTタスク ブロック)
② アクチュエータが受信(RTタスク レディ)
③ RTタスク実行
タスクの有限状態機械モデル
実行可能
(レディ)
ジョブリリース
(レディキューへ)
待ち
(ブロック)
実行中ジョブ完了
(ジョブキュー先頭)
被プリエンプション
ジョブリリース
(プリエンプション)
ジョブ完了
(次のジョブを要求)
実行中
(1タスクのみ)
セマフォ(mutex)を利用した相互排除
セマフォ
共有資源
アクセス
リアルタイム
タスクA
acquire
トークン
release
リアルタイム
タスクB
共有資源へのアクセスはacquireしてからreleaseするまでの間
mutexオーナーシップ
mutex
共有資源
アクセス
タスクA
lock
オーナー
タスクA
トークン
unlock
相互排除によるタスクのブロック
セマフォ
acquire
待ち
タスク
リアルタイム
タスクA
release
acquire
リアルタイム
タスクB
① タスクAがacquireシステムコール
② タスクBがacquireシステムコール(タスクB ブロック)
③ タスクAがreleaseシステムコール(タスクB レディ)
タスクの有限状態機械モデル
他タスクによる
セマフォrelease
ジョブリリース
(レディキューへ)
実行可能
(レディ)
実行中ジョブ完了
(ジョブキュー先頭)
被プリエンプション
他タスクによる
セマフォrelease
待ち
(ブロック)
ジョブリリース
(プリエンプション)
ジョブ完了
(次のジョブを要求)
実行中
(1タスクのみ)
ブロックされるセマフォacquire
デッドロック問題
lock-r2
lock-r1
(blocked)
𝜏2
高優
先度
lock-r1
𝜏1
低優
先度
lock-r2
(blocked)
優先度逆転現象
lock
(blocked)
𝜏1
高優
先度
𝜏2
中優
先度
lock
𝜏3
低優
先度
unlock
優先度逆転現象
lock
(blocked)
𝜏1
高優
先度
𝜏2
中優
先度
lock
𝜏3
低優
先度
unlock