中斷和異常,陷阱的區別和聯絡
對於中斷,異常和陷阱的各種關係,總結如下:
表 2.1. 中斷,異常和陷阱的區別和聯絡
對CPU來說是 | 和當前CPU所執行的指令的關係 | CPU接下來的事情 | 程式設計師和使用者的態度 | ||
---|---|---|---|---|---|
中斷 | 被動的 | 非同步的 | 沒關係 | 跳轉到對應的ISR | 希望有對應的中斷,以使得CPU可以響應對應的中斷,執行對應的ISR |
異常 | 被動的 | 同步的 | 有關係,因為就是當前指令執行出問題,才有的異常 | 跳轉到對應的異常處理 | 不希望出現異常,如果出現了,那往往是指令執行出現某些錯誤了 |
陷阱 | 主動的 | 同步的 | 有關係,就是執行當前軟中斷指令,才進入的軟中斷 | 執行對應的軟中斷處理函式 | 對於想要實現除錯功能的程式設計師,有需要此陷阱的必要,其他人不用關心此點 |
下面,用圖表總結了,中斷,陷阱和異常的區別:
注意 | |
---|---|
無論是中斷,還是異常和陷阱,對應的處理函式,一般都可以稱其為中斷服務程式ISR,都只是一個函式 具體函式裡面要做什麼事情,是由你寫程式的人決定的 比如中斷中處理對應的事情,異常中自己決定如何響應出現的異常,陷阱中決定做什麼事情。 |
相關文章
- Instruction和Question的區別和聯絡Struct
- javaSE中的==和equals的聯絡與區別Java
- 異常和中斷
- hive中order by、distribute by、sort by和cluster by的區別和聯絡Hive
- SCADA和PLC的區別聯絡
- tcp/ip和http的區別和聯絡TCPHTTP
- Rxjs map, mergeMap 和 switchMap 的區別和聯絡JS
- http、socket、tcp的區別和聯絡?HTTPTCP
- Vue中watch、computed與methods的聯絡和區別Vue
- Java中異常分類和Throw和Throws的區別Java
- java-介面和抽象類的聯絡和區別。Java抽象
- 異常-編譯期異常和執行期異常的區別編譯
- Python中__new__和__init__的區別與聯絡Python
- C/C++引用和指標的聯絡和區別C++指標
- 【知識點】 gcc和g++的聯絡和區別GC
- HDFS 塊和 Input Splits 的區別與聯絡
- 程式和執行緒的區別與聯絡執行緒
- 程序、執行緒和協程之間的區別和聯絡執行緒
- 模電和數電在應用上的區別和聯絡
- 程式、執行緒和協程之間的區別和聯絡執行緒
- SAP UI5 和 OpenUI5 的區別和聯絡UI
- 【Python入門必看】Python中Cookie和Session的區別與聯絡!PythonCookieSession
- spring、springmvc、springboot、springcloud 之間的聯絡和區別SpringMVCSpring BootGCCloud
- cgi和fast-cgi以及php-fpm的聯絡和區別ASTPHP
- OData API 和 Restful API 這兩個概念的區別和聯絡APIREST
- 異常-throw的概述以及和throws的區別
- gcc 和 g++ 的聯絡和區別,使用 gcc 編譯 c++GC編譯C++
- Linux 上的 AppImage、Snap、Flatpak 之間的區別和聯絡LinuxAPP
- Java異常十一:使用throw丟擲異常物件;throw和throws的區別Java物件
- 異常監控和判斷
- 最簡單的例子瞭解js中call()、apply()、bind()的區別和聯絡JSAPP
- SAP R/3,SAP ECC 和 SAP S/4HANA 的聯絡和區別
- HTTPS、SSL、TLS三者之間的聯絡和區別HTTPTLS
- Unicode,UTF-8和UTF-16的區別與聯絡Unicode
- Linux中軟連結和硬連結之間有什麼區別和聯絡?Linux
- Linux核心筆記009 - 中斷、異常、陷阱、Bottom half、訊號Linux筆記
- IPLC專線、CN2、BGP、CIA和普通線路的區別和聯絡
- RestController和Controller的區別和異同RESTController
- 跟你深入剖析可迭代物件和迭代器的區別與聯絡物件