ITサービスマネージャ 2015年 午前2 問19
問題文
SVC(SuperVisor Call)割込みが発生する要因として、適切なものはどれか。
選択肢
ア:OSがシステム異常を検出した。
イ:ウォッチドッグタイマが最大カウントに達した。
ウ:システム監視LSIが割込み要求を出した。
エ:ユーザプログラムがカーネルの機能を呼び出した。(正解)
🔒 解説は解答すると表示されます
SVC割込み【午前2解説】
正解の理由
SVC(SuperVisor Call)割込みは、ユーザプログラムがOSの機能を利用するために、カーネルへ処理を依頼するときに発生します。たとえば、ファイルの読み書きやメモリの確保などをOSに依頼する場合です。
したがって、ユーザプログラムがカーネルの機能を呼び出したというエが適切です。SVC割込みは、プログラムが意図的に発生させるソフトウェア割込みです。
解法ステップ
- SVCの「Supervisor Call」が、OSのカーネルに処理を依頼する呼出しであることを確認します。
- 選択肢の中から、ユーザプログラムによるカーネル機能の呼出しを探します。
- タイマや監視LSIなど、ハードウェアが発生源となる割込みと区別します。
選択肢別の誤答解説
-
ア:OSがシステム異常を検出した。
システム異常の検出は、例外や異常処理につながる要因です。ユーザプログラムがカーネル機能を呼び出すSVC割込みとは異なります。 -
イ:ウォッチドッグタイマが最大カウントに達した。
ウォッチドッグタイマによる通知は、タイマというハードウェアが発生させる割込みです。SVC割込みではありません。 -
ウ:システム監視LSIが割込み要求を出した。
システム監視LSIが発生させるのは、ハードウェアからの割込みです。プログラムによるカーネル呼出しとは発生源が異なります。 -
エ:ユーザプログラムがカーネルの機能を呼び出した。
ユーザプログラムからOSへ処理を依頼する状況です。SVC割込みの説明に当たります。
よくある誤解
-
「割込みはすべてハードウェアが発生させる」と考えること
SVC割込みのように、プログラムの命令によって発生するソフトウェア割込みもあります。 -
「OSに関係する割込みはすべてSVC割込み」と考えること
OSが異常を検出した場合や、ハードウェアから通知を受けた場合は、SVC割込みとは別の要因による処理です。 -
SVC割込みと通常の関数呼出しを同じものと考えること
SVC割込みは、ユーザモードからカーネルモードへ移行してOSの機能を利用するための仕組みです。
補足コラム
ユーザプログラムは、通常、OSのカーネル領域を直接操作できません。そのため、システムコールを通じてカーネルに処理を依頼します。SVC命令を実行すると、CPUは制御をカーネル側へ移し、OSが依頼された処理を行います。
FAQ
Q. SVC割込みは、プログラムの誤りで発生するものですか?
A. 通常は、OSの機能を利用するためにプログラムが意図的に発生させます。異常が起きたときの割込みとは区別されます。
A. 通常は、OSの機能を利用するためにプログラムが意図的に発生させます。異常が起きたときの割込みとは区別されます。
Q. タイマ割込みとSVC割込みの違いは何ですか?
A. タイマ割込みはタイマなどのハードウェアが発生させます。一方、SVC割込みはプログラムがカーネルの機能を呼び出すことで発生します。
A. タイマ割込みはタイマなどのハードウェアが発生させます。一方、SVC割込みはプログラムがカーネルの機能を呼び出すことで発生します。
関連キーワード: SVC、ソフトウェア割込み、システムコール、カーネル、ユーザモード、カーネルモード

\ せっかくなら /
ITサービスマネージャを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

