「AP過去問 令和5年度秋期 午前 問17」の版間の差分
(→回答・解説) |
(→回答・解説) |
||
(同じ利用者による、間の4版が非表示) | |||
108行目: | 108行目: | ||
<span style="font-size: 0.9rem;">R=3+⌈54⌉⋅2=3+2⋅2=7</span> | <span style="font-size: 0.9rem;">R=3+⌈54⌉⋅2=3+2⋅2=7</span> | ||
次: | 次: | ||
162行目: | 161行目: | ||
<span style="font-size: 0.9rem;">→R=14>TB=13</span> | <span style="font-size: 0.9rem;">→R=14>TB=13</span> 収束する前に<span style="font-size: 0.9rem;">R=14</span>が<span style="font-size: 0.9rem;">TB=13</span>→ より大きくなった。これも処理が滞る。 | ||
180行目: | 179行目: | ||
次: | 次: | ||
<span style="font-size: 0.9rem;">R=5+⌈136⌉⋅4=5+3⋅4=17</span> | <span style="font-size: 0.9rem;">R=5+⌈136⌉⋅4=5+3⋅4=17</span> | ||
<span style="font-size: 0.9rem;">→R=17>TB=15</span> | <span style="font-size: 0.9rem;">→R=17>TB=15</span> 収束する前に<span style="font-size: 0.9rem;">R=17</span>が<span style="font-size: 0.9rem;">TB=15</span>→ より大きくなった。これも処理が滞る。 | ||
194行目: | 194行目: | ||
が答えです。 | が答えです。 | ||
もっと地道な導出方法もあります。方眼紙みたいな奴にウメウメしていく手法です。 | |||
方眼紙に最大処理時間2なら2マス。周期4なら2マスあげて描く | 方眼紙に最大処理時間2なら2マス。周期4なら2マスあげて描く | ||
<span style="font-family: ' | <span style="font-family: 'MS Gothic', 'MS ゴシック', monospace, 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', sans-serif;">■■□□■■□□■■□□■■□□■■□□■■□□■■□□■■□□</span> | ||
こんな感じ。 | こんな感じ。 | ||
204行目: | 207行目: | ||
タスクBは最大処理時間2なら3マス。周期8なら処理時間を差し引いた5マスあげて描く | タスクBは最大処理時間2なら3マス。周期8なら処理時間を差し引いた5マスあげて描く | ||
<span style="font-family: ' | <span style="font-family: 'MS Gothic', 'MS ゴシック', monospace, 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', sans-serif;">☒☒☒□□□□□☒☒☒□□□□□☒☒☒□□□□□☒☒☒□□□□□</span>こんな感じ。 | ||
これを真ん中の方眼紙に埋めていく。 | これを真ん中の方眼紙に埋めていく。 | ||
<span style="font-family: ' | <span style="font-family: 'MS Gothic', 'MS ゴシック', monospace, 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', sans-serif;">■■□□■■□□■■□□■■□□■■□□■■□□■■□□■■□□</span> | ||
<span style="font-family: ' | <span style="font-family: 'MS Gothic', 'MS ゴシック', monospace, 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', sans-serif;">■■☒☒☒■■□■■☒☒☒■■□■■☒☒☒■■□■■☒☒☒■■□</span> | ||
<span style="font-family: ' | <span style="font-family: 'MS Gothic', 'MS ゴシック', monospace, 'Hiragino Kaku Gothic ProN', 'ヒラギノ角ゴ ProN W3', sans-serif;">☒☒☒□□□□□☒☒☒□□□□□☒☒☒□□□□□☒☒☒□□□□□</span> | ||
2025年4月17日 (木) 23:08時点における最新版
AP過去問 令和5年度秋期 午前 問16前の問題へ
AP過去問 令和5年度秋期 午前 問18次の問題へ
問17(問題文)
プリエンプティブな優先度ベースのスケジューリングで実行する二つの周期タスクA及びBがある。タスクBが周期内に処理を完了できるタスクA及びBの最大実行時間及び周期の組合せはどれか。ここで、タスクAの方がタスクBより優先度が高く、かつ、タスクAとBの共有資源はなく、タスク切替え時間は考慮しないものとする。また、時間及び周期の単位はミリ秒とする。
回答・解説
【解き方】
タスクBが処理を完了できるかどうかは、応答時間解析(response time analysis)で判断します。
応答時間の式(初期値はタスクBの実行時間から開始):
R=CB+∑i∈hp(B)⌈RTi⌉⋅Ci
CB :タスクBの最大実行時間
Ti:タスクAの周期
Ci :タスクAの最大実行時間
⌈RTi⌉は天井関数と呼ばれ、シーリング Ti ぶんの Rのように読みます。これは0.8や0.2のような少数を切り上げ、1とする演算です。タスクBより優先度が高いもの(higher priority B)について総和をとることを意味します。この問題ではタスクBに対してはタスクAの1つしかないので総和をとる必要はありません。
ア:
- タスクA:Ci=2、Ti=4
- タスクB:CB=3、TB=8
初期値:Rには仮にCBを入れ、算出された値を次のRとします。収束するか、TBを超えるまで計算します。超えるとタスクが滞りますので、駄目です。TBの周期を超えると、次々とBのタスクがやってきて、消化できずに処理が滞ります。
R=3+⌈34⌉⋅2=3+1⋅2=5
次:
R=3+⌈54⌉⋅2=3+2⋅2=7
次:
R=3+⌈74⌉⋅2=3+2⋅2=7(収束)
→R=7≦TB=8 → OK、もう答えは定まったのでこれ以上計算する必要はないですね。
でも、念のため、練習を兼ねて、他の選択肢についても計算をしてみましょう。
イ:
- タスクA:Ci=3、Ti=6
- タスクB:CB=4、TB=9
初期:
R=4+⌈46⌉⋅3=4+1⋅3=7
次:
R=4+⌈76⌉⋅3=4+2⋅3=10
次:
R=4+⌈106⌉⋅3=4+2⋅3=10(収束)
→R=10>TB=9 R=10がTB=9→ より大きいので処理が滞る。
ウ:
- タスクA:Ci=3、Ti=5
- タスクB:CB=5、TB=13
初期:
R=5+⌈55⌉⋅3=5+1⋅3=8
次:
R=5+⌈85⌉⋅3=5+2⋅3=11
次:
R=5+⌈115⌉⋅3=5+3⋅3=14
→R=14>TB=13 収束する前にR=14がTB=13→ より大きくなった。これも処理が滞る。
エ:
- タスクA:Ci=4、Ti=6
- タスクB:CB=5、TB=15
初期:
R=5+⌈56⌉⋅4=5+1⋅4=9
次:
R=5+⌈96⌉⋅4=5+2⋅4=13
次:
R=5+⌈136⌉⋅4=5+3⋅4=17
→R=17>TB=15 収束する前にR=17がTB=15→ より大きくなった。これも処理が滞る。
したがって
ア
が答えです。
もっと地道な導出方法もあります。方眼紙みたいな奴にウメウメしていく手法です。
方眼紙に最大処理時間2なら2マス。周期4なら2マスあげて描く
■■□□■■□□■■□□■■□□■■□□■■□□■■□□■■□□
こんな感じ。
タスクBは最大処理時間2なら3マス。周期8なら処理時間を差し引いた5マスあげて描く
☒☒☒□□□□□☒☒☒□□□□□☒☒☒□□□□□☒☒☒□□□□□こんな感じ。
これを真ん中の方眼紙に埋めていく。
■■□□■■□□■■□□■■□□■■□□■■□□■■□□■■□□
■■☒☒☒■■□■■☒☒☒■■□■■☒☒☒■■□■■☒☒☒■■□
☒☒☒□□□□□☒☒☒□□□□□☒☒☒□□□□□☒☒☒□□□□□
こんな感じ。処理が滞らないか確かめるタイムライン図を作る。うまくいくので、アが正解で終わり。他のもやっていいけど疲れるので、棄権します。みなさんはやってみて下さい。つまり、なんだかキツネにつままれたような計算式を使わない方法はある。
AP過去問 令和5年度秋期 午前 問16前の問題へ
AP過去問 令和5年度秋期 午前 問18次の問題へ