平成30年度 春期 午前Ⅱ 問9
オペレーティングシステム
プリエンプティブに関する問題
リアルタイム OS で用いられる,タスクがデッドラインを必ず守るデッドラインスケジューリングでは,周期タスクを図のように次の四つのパラメタ r,C,D,T(0<r+C≦D≦T)の組みで表現することができる。
周期タスクのパラメタ:
時間 ─────────────────────────────────────────────────────→
| ←──────────── T ────────────→ | ←──────────── T ────────────→ | |||
| ←───────── D ─────────→ | ←───────── D ─────────→ | |||
| ←r→ | ←───── C ─────→ | ←r→ | ←───── C ─────→ |
[周期タスクの実行] [周期タスクの実行]
- 周期 T ごとに起動し,起動から r 後に周期タスクの実行(長さ C)が始まり,起動から D 以内に終わる。
二つのタスク X,Y を r=0,D=T という条件下で生成した場合,スケジュールが可能となる C,D の組合せはどれか。ここで,タスクは X,Y の順に起動され,優先度は X の方が高い。また,スケジューリングはプリエンプティブ方式であり,OS のオーバヘッドは考慮しない。
選択肢は原典ではタスク X の C・D とタスク Y の C・D の表。
- アタスク X の C:1 / タスク X の D:2 / タスク Y の C:2 / タスク Y の D:3
- イタスク X の C:1 / タスク X の D:2 / タスク Y の C:2 / タスク Y の D:4
- ウタスク X の C:2 / タスク X の D:3 / タスク Y の C:2 / タスク Y の D:3
- エタスク X の C:2 / タスク X の D:4 / タスク Y の C:3 / タスク Y の D:4
答えと解説を見る
✓ これが正解イタスク X の C:1 / タスク X の D:2 / タスク Y の C:2 / タスク Y の D:4
解説
X が周期2で1、Y が周期4で2を使う組なら期限を守れます。
r=0、D=T なので、各タスクは周期の始めに起動し、次の起動までに実行時間 C を終えればよいことになります。スケジューリングはプリエンプティブなので、優先度の高い X が起動すれば Y を中断して先に実行され、Y は X が動いていない時間だけ使えます。正解の組では、X は周期2ごとに1、Y は周期4ごとに2の実行が必要です。時刻0〜1で X、1〜2で Y、2〜3で再び起動した X、3〜4で Y が動き、Y は時刻4の期限までに合計2の実行を終えます。CPU の使用率も 1/2+2/4=1 で、100% を超えません。ほかの組は使用率がいずれも1を超えるので、どう並べても期限に間に合いません。各タスクの C/T を足して1を超えないかをまず確かめ、そのうえで時間軸に並べて確認すると確実です。
ほかの選択肢はなぜ違うのか
- アタスク X の C:1 / タスク X …:X が時刻0〜1と2〜3を使うので、Y が動けるのは時刻1〜2の1だけで、期限の時刻3までに必要な2を終えられません。使用率も 1/2+2/3≒1.17 で1を超えています。
- ウタスク X の C:2 / タスク X …:X が時刻0〜2を使い、Y は時刻2〜3の1しか実行できないので、期限の時刻3までに2を終えられません。使用率は 2/3+2/3≒1.33 で、そもそも処理能力を超えています。
- エタスク X の C:2 / タスク X …:X が時刻0〜2を使った後、Y は時刻2〜4の2しか実行できず、必要な3には足りません。使用率も 2/4+3/4=1.25 で1を超えるので、どの順序でも期限に間に合いません。
この問題の用語
- スケジュール作業の順序と日程を決めた計画のことをいいます。作業の前後関係から日程を組み立てるには、PERTが向いています。
出典:平成30年度 春期 エンベデッドシステムスペシャリスト試験 午前Ⅱ 問9
同じ用語が出る問題
- 令和2年度 10月 午前Ⅱ 問9:プリエンプティブの問題(スケジュール)
- 平成24年度 春期 午前Ⅱ 問3:CANに関する問題(スケジュール)
- 平成22年度 春期 午前Ⅱ 問22:構造化分析に関する問題(スケジュール)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)