質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
OS

OS(オペレーティングシステム)は、システムソフトウェアの一種であり、一般的に、ハードウェアを直接的に管理・操作する最も中心的な機能を有するソフトウェアがオペレーティングシステムとして呼ばれます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

Q&A

解決済

2回答

5446閲覧

デバイスドライバと割込みハンドラの違いがわかりません。

strike1217

総合スコア651

OS

OS(オペレーティングシステム)は、システムソフトウェアの一種であり、一般的に、ハードウェアを直接的に管理・操作する最も中心的な機能を有するソフトウェアがオペレーティングシステムとして呼ばれます。

Linux

Linuxは、Unixをベースにして開発されたオペレーティングシステムです。日本では「リナックス」と呼ばれています。 主にWebサーバやDNSサーバ、イントラネットなどのサーバ用OSとして利用されています。 上位500のスーパーコンピュータの90%以上はLinuxを使用しています。 携帯端末用のプラットフォームAndroidは、Linuxカーネル上に構築されています。

0グッド

1クリップ

投稿2016/11/18 08:39

編集2016/11/18 09:34

デバイスドライバと割込みハンドラの違いがわかりません。

「デバイスドライバはカーネルルーチンの集合」と本には書いてあります。
割込みハンドラはループバックルーチンと書いてあります。

つまり、割込みハンドラはデバイスドライバの一部ということでしょうか??

とある本には、、、

ハード割込みのイベント → 割込みハンドラ → スケジューラ処理 → ユーザー空間のプロセス
となっていました。

ところが、しばらく読んでいくと、、、
「ドライバがキャッチした割込みイベントを直接ユーザー空間のアプリに渡している」とありました。

デバイスドライバと割込みハンドラ全くの別物と思っていたので、ここで混乱しています。

android を例に取ると、、、
画面にタッチすると、データ確定割込みが発生 → 割込みに対応した割込みハンドラを実行 → タッチ位置情報を読み取るカーネルスレッドをスケジューラに登録 → カーネルスレッドからI2Cドライバから位置データを取得 → そのデータをinputドライバに引き渡す。

と書いてあります。

これを見ると割込みハンドラとデバイスドライバは全くの別物という感じですが、、、、、
ちょっとよくわかりません。
教えてください!

[追記]
割込みハンドラはソフト割込み(システムコール)、ハード割込みの両方の割込みが発生した場合は必ず、必要になるものですよね?
デバイスドライバはデバイスのアクセスの時(デバイスファイルへの書き込み、読み込み)のみ使用するという理解で正しいですよね?
そうなると、ハード割込みはデバイスを介しているので、デバイスドライバは必ず、必要になりますよね。
ソフト割込みの場合だと、全てが必ずしもデバイスにアクセスを必要とする割り込みとは限りませんよね?
やはり、デバイスドライバと割込みハンドラは別物、、、、、と考えたんですが、、、、、
違いますかね??

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

20年近く前に書いた文章ですが、何かの参考になれば嬉しいです。
もっともターゲットが linux のカーネル 1.9 - 2.0.x なので、
今はだいぶ変わっているかもしれませんが。

http://net-newbie.com/linux/driver/driver1.html

「割込みハンドラというメモリ上に待機しているプログラム」はデバイスドライバの一部

割り込みを使うドライバにおいては、そう考えて差し支えないと思います。
もっとも「割り込みハンドラ」はドライバに限った手段ではないので、
「何らかの割り込みによって起動されるプログラムの一部分を割り込み
ハンドラと呼ぶ」と考えればよいかと。

上記の文章では割込みハンドラのことを『ボトムハーフ』などと呼んでいます。

投稿2016/11/18 13:31

hotta

総合スコア1613

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

strike1217

2016/11/19 11:12

「割り込みハンドラはドライバに限った手段ではない」! ありがとうございます!
guest

0

ベストアンサー

割り込みハンドラは手段で、デバイスドライバは目的じゃないのかな。
「割り込みハンドラを使ったデバイスドライバ」みたいな。

投稿2016/11/18 10:57

fuzzball

総合スコア16731

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

strike1217

2016/11/18 11:18

デバイスドライバにも種類があるということでしょうか?
Y.H.

2016/11/18 11:26 編集

fuzzballさんの回答どおりで デバイスドライバは目的(デバイスにアクセスするためのもの)で、その実装で割り込みハンドらを使用しているものがあるという感じです。 割り込みを使わずにメモリマップドI/Oをポーリングしたりするデバイスドライバも存在しするとおもうので。
strike1217

2016/11/18 11:49

あああ〜〜。 「IO監視方式に割込みハンドラを採用している」ということですか! んん〜〜〜 ということは、「割込みハンドラというメモリ上に待機しているプログラム」はデバイスドライバの一部という理解でよろしいのでしょうか?
Y.H.

2016/11/18 12:12

割り込みハンドラを使用するのはデバイスドライバだけとは限りません。
strike1217

2016/11/18 12:15

あ、なるほど! 別物ということですね!
strike1217

2016/11/18 12:17

ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問