タスクの有限状態機械モデル 実行可能 (レディ) 待ち条件解除 (最高優先度でない) 最高優先度 最高優先度 を喪失 待ち (ブロック) 待ち条件解除 (最高優先度) ブロック条件に合致する システムコール 実行中 (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
© Copyright 2025 ExpyDoc