プリエンプティブな優先度ベースのスケジューリングで実行する二つの周期タスクA及びBがある。タスクBが周期内に処理を完了できるタスクA及びBの最大実行時間及び周期の組合せはどれか。ここで、タスクAの方がタスクBより優先度が高く、かつ、タスクAとBの共有資源はなく、タスク切替え時間は考慮しないものとする。また、
時間及び周期の単位はミリ秒とする。
┌──────┬────┐
ア │ タスクの │タスクの│
│最大実行時間│ 周期 │
┌────┼──────┼────┤
│タスクA│ 2 │ 4 │
├────┼──────┼────┤
│タスクB│ 3 │ 8 │
└────┴──────┴────┘
┌──────┬────┐
イ │ タスクの │タスクの│
│最大実行時間│ 周期 │
┌────┼──────┼────┤
│タスクA│ 3 │ 6 │
├────┼──────┼────┤
│タスクB│ 4 │ 9 │
└────┴──────┴────┘
┌──────┬────┐
ウ │ タスクの │タスクの│
│最大実行時間│ 周期 │
┌────┼──────┼────┤
│タスクA│ 3 │ 5 │
├────┼──────┼────┤
│タスクB│ 5 │ 13 │
└────┴──────┴────┘
┌──────┬────┐
エ │ タスクの │タスクの│
│最大実行時間│ 周期 │
┌────┼──────┼────┤
│タスクA│ 4 │ 6 │
├────┼──────┼────┤
│タスクB│ 5 │ 15 │
└────┴──────┴────┘
ア
プリエンプティブなマルチタスクは、OSがアプリケーションのCPU割り当て時間を管理する方式である。
ア 正しい。A、Bが同時にスケジューリングされても、以下のようにタスクBが周期内に処理を完了できる。
012345678910111213141516
タスクA ■■ ■■ ■■ ■・・・
タスクB □ ■■ ■ □ ■■・・・
イ A、Bが同時にスケジューリングされると、1回目のタスクBが処理を完了できないまま、9ミリ秒後に新たなタスクBが実行される。
012345678910111213141516
タスクA ■■■ ■■■
タスクB □ ■■■ ★
ウ A、Bが同時にスケジューリングされると、1回目のタスクBが処理を完了できないまま、13ミリ秒後に新たなタスクBが実行される。
012345678910111213141516
タスクA ■■■ ■■■ ■■■
タスクB □ ■■ ■■ ★
エ A、Bが同時にスケジューリングされると、1回目のタスクBが処理を完了できないまま、15ミリ秒後に新たなタスクBが実行される。
012345678910111213141516
タスクA ■■■■ ■■■■ ■■
タスクB □ ■■ ■■ ★
【別解】
タスクAの実行時間をX、周期をa、タスクBの実行時間をY、周期をbをおくと、周期内に処理を完了するには以下の関係式を満たす必要がある。
1 > X/a + Y/b
これをbについて解くと、
ab > Xb + Ya
b > Xb/a + Y
となり、この関係式を満たすのはアである。
問5 | 目次 | 問7 |