異常控制流

2021-07-11 23:14:20 字數 573 閱讀 3980

作業系統通過使控制流程發生突變來響應系統狀態變化,這些突變就是異常控制流(exceptional control flow,ecf)。

異常控制處理流程:

1.系統啟動時,作業系統分配和初始化一張異常表,使得索引為k的條目對應異常號為k的處理程式的位址。

2.系統執行時,處理器檢測到狀態變化,確定相應的異常號k,通過異常表跳轉到條目k的處理程式的位址。

3.觸發異常之後,剩下的就在處理程式中完成,處理完之後,執行一條特殊的「從中斷返回」指令,從異常處理中返回。

異常分類:

1.非同步異常:

中斷(interrupt):通常來自外部i/o裝置的訊號,如網路介面卡,磁碟控制器等向處理器傳送乙個訊號。處理完成後,將控制返回到下一條指令。

2.同步異常:

陷阱(trap):最重要的作用就是實現系統呼叫,如讀檔案read,建立程序frok等。處理完成後,將控制返回給下一條指令。

故障(fault):由錯誤引起,可能會被處理程式修正,修正後將控制返回到當前指令重新執行,否則直接終止。典型的故障例項就是缺頁異常。

終止(abort):不可恢復的致命錯誤引起的,通常是一些硬體錯誤。

異常控制流

異常控制流 在作業系統執行程式時,作業系統會把程式具體到每條指令,利用程式指標順序執行指令以達到程式執行的目的。這些指令類似乙個集合,稱之為控制流。程式指標依次執行每條指令,稱之為控制轉移。但是在程式執行過程中因為種種原因,程式狀態發生變化,程式指標不會依次執行這些程式指令,引起程式狀態變化的是存在...

異常控制流

從給處理器加電開始,直到斷電為止,程式計數器假設乙個值的序列a 0,a 1,a n 1,其中,每個a k是某個相應的指令i k的位址。每次從a k到a k 1 的過渡稱為控制轉移。這樣的控制轉移序列叫做處理器的控制流 現代系統通過使控制流發生突變來對這些情況作出反應,這些突變稱為異常控制流 ecf ...

CSAPP 異常控制流

在一般的情況下,處理器處理的指令序列是相鄰的 順序執行 異常控制流提供了指令的跳轉,它一部分是由硬體實現的,一部分是由作業系統實現的。異常處理 在系統啟動時,作業系統分配和初始化一張稱為異常表的跳轉表 觸發異常時將從跳轉表中找到並執行相應的異常處理程式的 所謂的核心態 系統呼叫 每個系統呼叫都屬於異...