Windows system >> Windowsの知識 >  >> Linuxシステムチュートリアル >> Linuxチュートリアル >> Linuxの割り込みと例外基本

Linuxの割り込みと例外基本

  

Q1。割り込みとは何ですか?例外とは何ですか?両者の違いは何ですか?

A:

1)I /Oインタフェース上でプログラムクエリ制御サービスを使用することによって引き起こされるプロセッサの非効率性を克服するために、割り込み制御が生成されます。プロセッサの応答は、I /Oインタフェースがサービスを必要とし、プロセッサが継続的に問い合わせる必要がない場合にのみ取得できます。したがって、初期割り込みは外部デバイスに対するもので、外部割り込み(またはハードウェア割り込み)と呼ばれます。 Br>

2)例外は内部割り込みとも呼ばれ、マシンが動作しているときのランダムイベントやプログラミングの都合を解決するために生成されます。

3)256種類の割り込みが外部から利用可能です。マスク割り込み(INTR)および外部ノンマスカブル割り込み(NMI)、すべてのI /Oデバイスによって生成された割り込み要求(IRQ)はマスク可能割り込みを引き起こし、緊急事態によって引き起こされた障害(ハードウェア障害など)はマスク不可能割り込みを生成します。 Br>

4)例外はさらにフォルトとトラップに分けられますそれらの共通の特徴はそれらが割り込みコントローラを使用せず、シールドもされないことです(例外は実際にはCPUによって送信される端末信号です)。


Q2。割り込みベクタとは何ですか? Linuxはどのように割り込みベクタを割り当てますか?

A:

1)プロセッサが各割り込み要因を簡単に識別できるように、256個のベクタ割り込みに0〜255の番号が付けられています。つまり、割り込みタイプコードnが割り当てられています。この8ビット符号なし整数をベクトル、割り込みベクトルと呼びます。

2)Linuxでは、256個の割り込みベクトルを次のように割り当てています。異常でノンマスカブルな割り込み;

B.番号32から47のベクタ(I /Oデバイスによる割り込み)は、マスカブル割り込みに割り当てられます。

C.残り、番号付けソフト割り込みを識別するために48から255までのベクトルが使用されています; Linuxはシステムコールを実行するためにそれらのうちの1つだけ(すなわち128か0x80ベクトル)を使用します。


Q3。割り込みディスクリプタテーブルとは何ですか?ドア記述子とは何ですか?

A:

1)実アドレスモードでは、CPUは0から始まる1KBの空間を割り込みベクタテーブルとして使用し、テーブル内の各エントリは4バイトを占有します。ただし、プロテクトモードでは4バイトのエントリからなる割り込みベクタテーブルでは要件を満たすことができないため、プロテクトモードでは割り込みベクタテーブルのエントリは8バイトで構成され、割り込みベクタテーブルは割り込み記述ともいいます。テーブル(IDT);

2)IDTの各エントリはゲート記述子と呼ばれます。


Q4。どのような種類のゲートディスクリプタがありますか?それらの違いは何ですか?

A:ゲート記述子のタイプコードは3ビットを占め、ゲート記述子のタイプを示します。これは主に次のカテゴリに分類されます。

1)割り込みゲート:そのタイプコード110で、割り込みハンドラまたは例外ハンドラが配置されているセグメントのセレクタとセグメントオフセットが含まれます。

2)トラップゲート:そのタイプコードは111;

3)システムゲート:ユーザーモードのプロセスがトラップドアにアクセスできるように、Linuxカーネルによって特別に設定されています。

Copyright © Windowsの知識 All Rights Reserved