マナビング基本情報技術者

多重割込みがあるときのCPU時間の求め方

基本情報技術者試験 令和元年度秋期 午前 問13 / コンピュータ構成要素 › プロセッサ

過去問にチャレンジ

令和元年度秋期 午前 問13

メイン処理,及び表に示す二つの割込みA,Bの処理があり,多重割込みが許可されている。割込みA,Bが図のタイミングで発生するとき,0ミリ秒から5ミリ秒までの間にメイン処理が利用できるCPU時間は何ミリ秒か。ここで,割込み処理の呼出し及び復帰に伴うオーバーヘッドは無視できるものとする。

令和元年度秋期 午前 問13の図
  1. ア

    2

  2. イ

    2.5

  3. ウ

    3.5

  4. エ

    5

会話形式の解説

講師講師
図の矢印は、割込みが発生した時刻です。まず、0〜5ミリ秒の間に各割込みがCPUを何ミリ秒使うか確かめましょう。
受験者受験者
Bは0ミリ秒に始まりますが、1ミリ秒でAが発生します。Bはそこで終わるのですか。
講師講師
終わりません。優先度の高いAを先に処理し、Aの終了後にBの残りを処理します。Bが使う時間は合計1.5ミリ秒です。
受験者受験者
中断されても、Bの残りの処理時間は消えないのですね。Aは何回分を数えますか。
講師講師
5ミリ秒より前に、Aは1、2.5、3.5ミリ秒の3回発生します。1回0.5ミリ秒なので、合計1.5ミリ秒です。
受験者受験者
AとBで1.5ミリ秒ずつ、割込み処理は合計3ミリ秒です。5ミリ秒から引くと、メイン処理は2ミリ秒使えます。
講師講師
そのとおりです。2ミリ秒が正解です。では、2.5ミリ秒という値は合いますか。
受験者受験者
メイン処理が2.5ミリ秒なら、割込み処理には2.5ミリ秒しか残りません。必要な3ミリ秒より0.5ミリ秒足りません。
講師講師
そうです。3.5ミリ秒は、Aの1.5ミリ秒だけを引いた値で、Bの処理時間が抜けています。5ミリ秒は割込みを一切引いていない値です。
受験者受験者
5ミリ秒ちょうどにもBが発生しています。その分は数えなくてよいのですか。
講師講師
今回は0〜5ミリ秒に使える時間を求めます。5ミリ秒ちょうどに発生するBの処理時間は、この区間に含めません。

まとめ

多重割込みでは、優先度の高い処理が低い処理を中断しても、低い処理の残り時間は消えません。0〜5ミリ秒にAは3回発生し、合計1.5ミリ秒、Bも1.5ミリ秒CPUを使います。したがって、メイン処理に残る時間は5−(1.5+1.5)=2ミリ秒です。5ミリ秒ちょうどに発生するBの処理時間は含めません。

解答・解説

正解はアです

この問題のテーマ

多重割込みが起きたとき、指定された区間でメイン処理に残るCPU時間を求める問題です。

解き方の考え方

図の矢印は割込みの発生時刻を示しています。Aは1、2.5、3.5ミリ秒に発生し、各0.5ミリ秒、Bは0ミリ秒に発生して計1.5ミリ秒処理されます。Bの処理中に優先度の高いAが発生すると、Bは中断し、Aの終了後に残りを処理します。0〜5ミリ秒で割込みが使う時間を合計し、区間の長さから引きます。

選択肢ごとの解説

  1. ○ア  2
    2ミリ秒という値が正解です。Aの合計は0.5×3=1.5ミリ秒、Bは1.5ミリ秒なので、メイン処理が使える時間は5−(1.5+1.5)=2ミリ秒です。
  2. ×イ  2.5
    2.5ミリ秒をメイン処理に割り当てると、割込みに割り当てた時間は5−2.5=2.5ミリ秒になります。図表のAとBが使う合計3ミリ秒より0.5ミリ秒少ないため、合いません。
  3. ×ウ  3.5
    3.5ミリ秒は、区間の長さからAの1.5ミリ秒だけを引いた値です。0ミリ秒に発生したBもCPUを1.5ミリ秒使うので、この値にはなりません。
  4. ×エ  5
    5ミリ秒は区間全体の長さです。この間にAとBの処理が実行されるため、メイン処理が区間全体を使うことはできません。

POINT

  • 割込みの矢印は処理の開始と終了ではなく、発生した時刻を示します。
  • 優先度の高い割込みが処理中に発生すると、低い方の処理を中断して先に実行します。
  • 中断された処理の残り時間も、区間内で実行されればCPU使用時間に含めます。
  • 5ミリ秒ちょうどに発生するBの処理時間は、0〜5ミリ秒の区間には含めません。

※出典:令和元年度秋期 基本情報技術者試験 午前 問13(一部改変)