中斷和異常,陷阱的區別和聯絡
對於中斷,異常和陷阱的各種關係,總結如下:
表 2.1. 中斷,異常和陷阱的區別和聯絡
對CPU來說是 | 和當前CPU所執行的指令的關係 | CPU接下來的事情 | 程式設計師和使用者的態度 | ||
---|---|---|---|---|---|
中斷 | 被動的 | 非同步的 | 沒關係 | 跳轉到對應的ISR | 希望有對應的中斷,以使得CPU可以響應對應的中斷,執行對應的ISR |
異常 | 被動的 | 同步的 | 有關係,因為就是當前指令執行出問題,才有的異常 | 跳轉到對應的異常處理 | 不希望出現異常,如果出現了,那往往是指令執行出現某些錯誤了 |
陷阱 | 主動的 | 同步的 | 有關係,就是執行當前軟中斷指令,才進入的軟中斷 | 執行對應的軟中斷處理函式 | 對於想要實現除錯功能的程式設計師,有需要此陷阱的必要,其他人不用關心此點 |
下面,用圖表總結了,中斷,陷阱和異常的區別:
注意 | |
---|---|
無論是中斷,還是異常和陷阱,對應的處理函式,一般都可以稱其為中斷服務程式ISR,都只是一個函式 具體函式裡面要做什麼事情,是由你寫程式的人決定的 比如中斷中處理對應的事情,異常中自己決定如何響應出現的異常,陷阱中決定做什麼事情。 |
相關文章
- Oracle中User和Schema的區別和聯絡Oracle
- javaSE中的==和equals的聯絡與區別Java
- 異常和中斷
- tcp/ip和http的區別和聯絡TCPHTTP
- orcle pfile和spfile的區別和聯絡
- NET|Ref 和out 的區別和聯絡
- Instruction和Question的區別和聯絡Struct
- hive中order by、distribute by、sort by和cluster by的區別和聯絡Hive
- 詳解CALayer 和 UIView的區別和聯絡UIView
- ORACLE中的兩個概念:user和schema的區別和聯絡Oracle
- http、socket、tcp的區別和聯絡?HTTPTCP
- SCADA和PLC的區別聯絡
- Session和Cookie的聯絡與區別SessionCookie
- CGI與Servlet的區別和聯絡Servlet
- Session和Cookie的區別與聯絡SessionCookie
- 轉:IDOCBAPIRFC區別和聯絡API
- Java中異常分類和Throw和Throws的區別Java
- Vue中watch、computed與methods的聯絡和區別Vue
- Python中time和datetime的區別與聯絡Python
- php中$_REQUEST、$_POST、$_GET的區別和聯絡小結PHP
- java-介面和抽象類的聯絡和區別。Java抽象
- Jdk、Jre Jvm的區別和聯絡JDKJVM
- Linux和Ubuntu的區別與聯絡LinuxUbuntu
- 資料庫中varchar和Nvarchar區別與聯絡資料庫
- has、ohasd、crs、cluster區別和聯絡
- 異常-編譯期異常和執行期異常的區別編譯
- 【知識點】 gcc和g++的聯絡和區別GC
- Rxjs map, mergeMap 和 switchMap 的區別和聯絡JS
- Python中__new__和__init__的區別與聯絡Python
- Java異常的中斷和恢復Java
- 程式和執行緒的區別與聯絡執行緒
- HDFS 塊和 Input Splits 的區別與聯絡
- NUMA,MPP和HADOOP的區別與聯絡Hadoop
- 並行和併發的區別與聯絡並行
- volatile和synchronized的區別與聯絡[轉]synchronized
- malloc free與new delete的區別和聯絡delete
- C/C++引用和指標的聯絡和區別C++指標
- 中斷機制和中斷描述符表、中斷和異常的處理