令和元年度 秋期 午前 問13
コンピュータ構成要素
割込みに関する問題
メイン処理,及び表に示す二つの割込み A,B の処理があり,多重割込みが許可されている。割込み A,B が図のタイミングで発生するとき,0ミリ秒から5ミリ秒までの間にメイン処理が利用できる CPU 時間は何ミリ秒か。ここで,割込み処理の呼出し及び復帰に伴うオーバヘッドは無視できるものとする。
| 割込み | 処理時間(ミリ秒) | 割込み優先度 |
|---|---|---|
| A | 0.5 | 高 |
| B | 1.5 | 低 |
図(発生タイミング。矢印の位置を目盛から読み取って書き写した):
割込み A の発生: 1,2.5,3.5 ミリ秒 割込み B の発生: 0,5 ミリ秒 横軸は時間(ミリ秒)で 0〜5 の目盛 注記 ↓ は,割込みの発生タイミングを示す。
- ア2
- イ2.5
- ウ3.5
- エ5
答えと解説を見る
✓ これが正解ア2
解説
割込みに使われた合計を、区間の5ミリ秒から引きます。
割込みの処理が走っているあいだ、主となる処理は止まって待たされます。ですから使える時間は、区間の長さから割込みに使われた合計を引いたものになります。優先度の低いほうは0の時点で発生し、1.5ミリ秒ぶん働きます。優先度の高いほうは1と2.5と3.5の三か所で発生し、一回あたり0.5ミリ秒です。高いほうは低いほうの途中でも割り込めるので、順番待ちは生じません。低いほうは中断されたぶん終わりが後ろへ延びますが、働く長さ自体は変わりません。合計すると低いほうが1.5、高いほうが三回で1.5、あわせて3ミリ秒です。区間の5から3を引いて、主となる処理が使えるのは2ミリ秒となります。5の時点で起きるものは区間のちょうど終わりなので、ここには数えません。時間の帯を描き、埋まった部分を塗ると数え落としが減ります。
ほかの選択肢はなぜ違うのか
- イ2.5:2.5は、優先度の高いほうを三回ではなく二回として数えたときの値です。発生した時刻の並びを一つ読み落とすと、ちょうどこの差になります。時刻を先に書き出してから足し上げれば、数え落としは防げます。目盛から一つずつ拾います。
- ウ3.5:3.5は、優先度の低いほうだけを引いたときに残る時間に近い値です。高いほうの三回ぶんが計算に入っていません。優先度が高くても、働いているあいだは同じように時間を使います。優先度は長さを変えません。優先順を決めるだけです。
- エ5:5は、割込みを一つも引かなかった場合の値です。区間の長さそのものなので、何も起きない前提での答えになってしまいます。止まっていた時間を引く、という出発点を落とすとこの形になります。上限として持っておくと役に立ちます。
出典:令和元年度 秋期 基本情報技術者試験 午前 問13
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)