応用情報技術者 2023年 秋期 午前2 問17
問題文
プリエンプティブな優先度ベースのスケジューリングで実行する二つの周期タスクA及びBがある。タスクBが周期内に処理を完了できるタスクA及びBの最大実行時間及び周期の組合せはどれか。ここで、タスク Aの方がタスクBより優先度が高く、かつ、タスク AとBの共有資源はなく、タスク切替え時間は考慮しないものとする。また、時間及び周期の単位はミリ秒とする。

選択肢
ア:(正解)
イ:
ウ:
エ:
🔒 解説は解答すると表示されます
応答時間解析【午前2解説】
正解の理由
タスクBが周期内(=デッドライン=周期)に完了するかは、単にCPU利用率の合計が1以下かでは判断できません。固定優先度プリエンプティブでは高優先度タスクAによる離散的な干渉回数を切り上げで評価する応答時間解析(RTA)が必要です。選択肢アでは、応答時間反復計算
を繰り返すと収束値が となり、タスクBの周期 を超えないため、Bは周期内に完了します。したがって選択肢アが成立します。
解法ステップ
- 各選択肢についてパラメータを定義する()。
- 初期値 として反復を開始する。
- 更新式を用いて (本問題は高優先度はAのみなので項は1つ)
- 収束()するか、あるいは途中で となれば不成立と判定する。
- 収束値が 以下ならタスクBは周期内に完了すると判断する。
計算手順の実例(選択肢ア):
- (収束)
- 収束値 → 可 schedulable
選択肢別の誤答解説
- ア(正当化)
- 利用率合計は で1未満だが、正しい判定はRTAで行った結果 のため可です。ここでのポイントは「必要条件(利用率合計≦1)」を満たすだけでなく、応答時間が周期内に収束することを確かめた点です。
- イ
- パラメータ:。
- 反復: → → → 収束 。よってBは期限内に終わらない。利用率合計は約0.944で1以下だが、切り上げ干渉で期限超過する典型例です。
- ウ
- パラメータ:。
- 反復:(収束14)で のため不可。利用率合計は約0.985で1未満でも失敗します。
- エ
- パラメータ:。
- 反復:(収束17)で のため不可。利用率合計は1.0ちょうどでもRTAで不可となることに注意。
よくある誤解
- 利用率合計 ≦ 1 が十分条件だと誤解する
- 利用率合計が1以下は必要条件に過ぎません。高優先度タスクの発生が周期境界で重なると、切り上げにより瞬間的な干渉が増え、応答時間が期限を超えます。必ずRTAでチェックしてください。
- 干渉回数を小数で扱う(切り上げを忘れる)
- 干渉回数は実際の発生回数なので の切り上げを使う必要があります。小数のまま積算すると過小評価になります。
- 反復の初期化や終了判定を適切に行わない
- 初期は 、収束判定は繰返しで等しくなるか、途中で が出たら即座に不可と判断します。
補足コラム
- ブロッキング(共有資源がある場合):もし高優先度/低優先度間で共有資源が存在するなら、プロトコル(例えば優先度継承法や優先度上限プロトコル)による最大ブロッキング時間 を応答時間式に加えます。
- タスクが複数の高優先度タスクを持つ場合:干渉項はそれらすべての和になります(本問は高優先度がAのみのため1項)。
- 簡易判定:利用率チェックは速いスクリーニングになりますが、本問のように厳密判定が必要な場合は必ずRTAを実施してください。
FAQ
Q. 反復が収束しない場合はどう判断するべきですか?
A. 反復中に が出たら即時「不可」と判定できます。通常は有限ステップで収束または期限超過が判明します。
A. 反復中に が出たら即時「不可」と判定できます。通常は有限ステップで収束または期限超過が判明します。
Q. デッドラインが周期より短い場合は?
A. 解析式は同様ですが、比較対象はデッドライン です。収束値が 以下かを確認します。
A. 解析式は同様ですが、比較対象はデッドライン です。収束値が 以下かを確認します。
Q. 実務で手で計算するのが大変な場合は?
A. 小さな数のタスクなら手計算で十分ですが、複数タスクの系ではツールやスクリプト(簡単なRTAループ)を使うと安全です。以下は単純な実装例です:
A. 小さな数のタスクなら手計算で十分ですが、複数タスクの系ではツールやスクリプト(簡単なRTAループ)を使うと安全です。以下は単純な実装例です:
import math
def rta(Ca, Ta, Cb, Tb):
R = Cb
while True:
R_next = Cb + math.ceil(R / Ta) * Ca
if R_next == R:
return R_next
if R_next > Tb:
return None # 未達成
R = R_next
print(rta(2,4,3,8)) # 選択肢ア -> 7
関連キーワード: 固定優先度、応答時間解析、RTA、プリエンプティブ、干渉切り上げ、デッドライン解析、優先度干渉

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

