プロが教えるわが家の防犯対策術!

以下の各々の割り込みについて。

必要な処理を、なぜ他の方法ではなく、割り込みを通してOSに行ってもらうのか?

よくわからなかったので、どなたか教えてください。

・ハードウェアの誤り検出
・入出力処理終了の報告
・タイマ
・外部信号割り込み
・ソフトウェアの誤り検出
・ページフォールト/アドレス変換例外
・システムコール/カーネルコール

A 回答 (2件)

> 必要な処理を、なぜ他の方法ではなく、割り込みを通してOSに行ってもらうのか?


他の方法ってどんなのがあるのでしょうか?
それに、割り込みとOSって必ずしも連動してるわけじゃないし関係の無い割り込みもあります。
それぞれに用途と必要性が有って生じたモノとしか言いようが無いです。
「この世の割り込みの存在意義」を問われているような広義の質問は、本一冊でも解説が困難な事項なので簡潔に説明は不可能かと思います。
8ビットのマイコンキット+OS制作から勉強した方が理解が早いかも知れません。
例外処理なんて言う類の割り込みじゃなくて、ハード関連の制作を少しでも行って直に触れてみればその有用性が多少なりとも理解でき視野も広がると思います。
    • good
    • 0

> 必要な処理を、なぜ他の方法ではなく、割り込みを通してOSに行ってもらうのか?



誤解されている様に感じました。
そして、割り込みにも種類がありますし、状況に依ってかなり違います。

例えば、カーネルでポーリングする事もできるし割り込みによる動作にもできるディスクコントローラ使う場合の事を考えるとデバイスからカーネルへの部分がハードウェア割り込みになるかソフトウェアによるポーリングになるかの違いはあります。それとは別に、ユーザプログラムから見るとシステムコール・カーネルコールの割り込み(ソフトウェア割り込み)になります。
※ 表現が変な気も。別の2つの処理が関係します。リング0で動いてないとデバイス(ハードウェア)へのアクセスはできません。

http://ja.wikipedia.org/wiki/%E3%83%AA%E3%83%B3% …


まず、ハードウェアへのアクセスは利用者権限ではできません。
※ PC-DOS/MS-DOS/古いDOSを基盤に使っていたWindows(-WIndows3.1,95,98,Me)では正しくないです。NT系のWindowsや多くのOSでは正しいです。

そのためハードウェアへのアクセスが必要となった場合には割り込みを使ってシステム(OS)に作業を依頼します。

> ・システムコール/カーネルコール


あるいは、ハードウェアが検出する場合もあります。

> ・ページフォールト/アドレス変換例外 (CPUもしくはMMU回路のハードウェア割り込み)
> ・外部信号割り込み (ハードウェア[割り込みコントローラ])
> ・ハードウェアの誤り検出 (誤り検出をするデバイス)


不明なのも。

> ・ソフトウェアの誤り検出 (色々な場合が考えられる)
> ・入出力処理終了の報告 (??? 例えば、ディスクをアクセスするシステムコールの終了もその一種だろうし)
> ・タイマ (??? ソフトウェアタイマ・ハードウェアタイマ・………)
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!