平成24年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問9
テクノロジ/ソフトウェア優先度に基づくプリエンプティブスケジューリングが行われる二つのタスクA,Bがある。優先度はAの方が高く,制約条件は次のとおりである。Bが実行中,割込みによってAに実行を移すとき,A,Bともにデッドラインを超えないためには,割込みハンドラを何マイクロ秒以内で処理する必要があるか。ここで,割込み発生から割込みハンドラが起動するまでの時間,及びタスク切替えによるオーバヘッドの時間は無視するものとする。 タスクA:実行時間30マイクロ秒,起動してからデッドラインまでの時間60マイクロ秒 タスクB:実行時間50マイクロ秒,起動してからデッドラインまでの時間100マイクロ秒 (注:本サイトでは原問題の表を文字表記に変換しています)
出典:平成24年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問9
- ア20
- イ30
- ウ40
- エ50
正解:ア
解説
割込みハンドラの処理時間をXマイクロ秒とします。タスクAは,割込み発生時点から数えてハンドラの処理X+自身の実行時間30が,デッドラインである60以内に収まる必要があるので,X≦60-30=30が条件になります。一方タスクBは,割込みが発生した時点でどこまで実行が進んでいたとしても,残りの実行時間と合わせてタスクB自身の実行時間50は必ず消費されるため,ハンドラの処理XとタスクAの実行30を合わせた50+X+30が,デッドラインである100以内に収まる必要があり,X≦100-50-30=20が条件になります。両方の条件を同時に満たす必要があるので,X≦min(30,20)=20,すなわち20マイクロ秒以内が答えとなります。
選択肢ごとの解説
- ア正しい(本サイトの計算による)。タスクAの制約からX≦30,タスクBの制約からX≦20が導かれ,両方を満たす最大値は20マイクロ秒です。
- イ誤り。30はタスクAの制約(X≦60-30)だけを満たす値であり,タスクBの制約(X≦100-50-30=20)を満たしません。
- ウ誤り。40はタスクA・タスクBいずれの制約(X≦30及びX≦20)も超えており,この値では割込みハンドラの処理中にどちらかのタスクがデッドラインを超える可能性があります。
- エ誤り。50はタスクBの実行時間そのものであり,タスクA・タスクBいずれの制約もこの値では満たせません。