その後、合計(転載)割り込みと例外

割り込みと例外その後、合計

オリジナルリンク:https://blog.csdn.net/u011240016/article/details/53117093
@(OS)

(割り込み中)内部例外

故障(障害)
トラップ(TRAP)
終了(ABORT)は
、内部CPUの命令実行からのイベントです。例えば:違法オペレーションコード、アドレスクロスボーダー、算術オーバーフロー、仮想メモリシステムの落丁イベントになど、命令。マスクできない内部の異常は、イベントがすぐに処理します。

外部割込み:外部からCPUの命令実行のイベント。以下のような:I / O割り込み、クロック割り込み。

  オペレーティング・システム・レベルでは、我々はより多くの「異常」(例外)と希「ブレーク」(割り込み)を聞くと、多くの場合、緩く例外と呼ばれるが、プロセッサのマイクロアーキテクチャの構造仕様は、通常の割り込みと例外の区別します。

  一般的に、割り込みは非同期例外が同期されている、という概念同期および非同期、および当社のネットワーク通信同期または非同期関数呼び出しが異なっていると、いわゆる。割り込みであるから、プロセッサの外部信号I / Oデバイス結果、それがされる命令ストリーム内の命令の実行に起因しない、この意味では、それは非同期であり、外部からの命令ストリームの。

  トラップ(TRAP)、障害(故障)と終了(中止)されている:3つのカテゴリに分類異常の命令ストリームの現在の命令実行からの結果を内部命令ストリーム彼らは、この意味で彼らは、同期されています。

  (1)トラップも落ちるためにそこに設定されていることを知って、意図的な例外で-人々は結果でありたい、その最も一般的な使用であるオペレーティングシステムコール

  エラー状態によって引き起こされる(2)故障、処理ルーチンの障害を修復することができます。修復がない子どもたちをどのような場合には、作業に進み、修復されない場合は、終了するように変換し、次のステップになります。このよう欠落しているページなどの一般的な障害。

  (3)終端は致命的なエラー回復の結果が原因ではありません。多くの場合、アプリケーションシステムの停止につながる - 終了ハンドラは、トリガアプリケーションの終了までが、システムに制御を返しません。

  むしろ、漠然と疑問がある、もあり、中断または異常箇所のリターン

  無ライブドライなフィニッシュに進み、その後、このような割り込みやトラップなどの良性、ちょうど通常のワークフロー外の追加の操作を実行し、そして。したがって、元の命令ストリームが継続した後、次の命令にリターンの処理を終了。そのような障害や終了、修復の失敗、それは命令の実行中に発生しているため(命令の開始によって実行される)のような悪性、および故障修理後、命令を再実行し、修復不可能な障害として、または終了し、それが返されることはありません。

  あなたのIntelプロセッサ割り込みと例外番号およびUNIX / Linuxのプログラミングの一般的な「セグメンテーションフォールト」(セグメンテーションフォールト)を教えてください。

  ペンティアムアーキテクチャでは、システムは、例外の256本の異なる種類まで持つことができます。米国特許第0-31異常な構造定義システム、任意のシステムで同じに対応します。オペレーティングシステムの割り込みの数に対応する32から255の範囲が定義され、トラップされています。第13号は、異常な一般保護違反(一般保護違反が)、それは失敗の理由の数を引き起こす可能性があります。プログラムアプリケーション未定義の仮想メモリ領域理由、または読み取り専用のテキストセグメントを書き込むためのプログラムしようとするため、通常は。UNIX / Linuxは、このような障害を回復しようとしない、一般的に、Unixのは、この失敗は「セグメンテーションフォールト」(セグメンテーションフォールト)として報告されますシェル。IA32システム上で、システムコールは例外テーブル256番号のいずれかの異常であってもよいN N設けINT命令トラップ、によって呼び出されます。しかし、歴史的に、システムコールは第128(0x80の)を介して提供されます。

  この概念によると、特別な重点は命令ストリームからの例外でページフォルト割り込み、に実際にあります。
  異常なストレージ命令ストリームからも、そのため例外ではなく、休憩。

  トラップを設定するには、これらの概念のページ障害、異常なストレージを使用するように、多くの場合、問題を指摘します。

例えば:

(2015.24)は、次の命令がロード命令であると仮定しています。CPUは、ユーザからカーネルモード(システム状態)に原因が実行状態にある可能性が高いときには、次のとおりです。C

DIV R0 A.は、R(R0)/(RL) - > R0
B. N-INT;生成ソフト割り込み
C. NOT R0、レジスタR0の否定含有量は、
D. MOV R0、ADDR、アドレスaddrにデータメモリレジスタR0へ

这里A可以发生除0异常,进行abort例程。B特别注意,很容易看成C语言代码,心想int n怎么还有异常呢?老实说我被这个困扰了很久。实际上这是故意挖的坑,INT指的是interrupt!虽然后面中文注明了是软中断,但是先入为主的印象会超过当前的理性认知。C只是对内容取非,不可能出现异常。D,addr地址可能越界,因此也有可能出现异常。

(2016.22) 异常是指令执行过程中在处理器内部发生的特殊事件,中断是来自处理器外部的请求事件。下列关于中断或异常情况的叙述中,错误的是:A
A. “访存时缺页”属于中断
B. “整数除以0”属于异常
C. “DMA传送结束”属于中断
D. “存储保护错”属于异常

分析:这种概念的识记题如果没有真的理解,就很麻烦。这里,需要特别强调的是CPU指令流相关一定是内中断,也即所谓的异常。而非CPU指令流导致的才是外中断,比如时钟中断,DMA中断等才是真正的外中断。访存时缺页,我们听过太多的缺页中断,缺页异常,后来根本分不清谁是谁了,只需要抓住:缺页是CPU访存指令时才有的。是CPU相关。于是A项错误。
整数除0,当然是CPU干的。存储保护错,也是内存访问相关,属于异常,也叫内中断。
————————————————
版权声明:本文为CSDN博主「DrCrypto」的原创文章,遵循 CC 4.0 BY 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u011240016/article/details/53117093

おすすめ

転載: www.cnblogs.com/caiyishuai/p/11906112.html