CSAPP 異常控制流

2022-05-02 22:51:07 字數 746 閱讀 9560

在一般的情況下,處理器處理的指令序列是相鄰的(順序執行)。

異常控制流提供了指令的跳轉,它一部分是由硬體實現的,一部分是由作業系統實現的。

異常處理

在系統啟動時,作業系統分配和初始化一張稱為異常表的跳轉表:

觸發異常時將從跳轉表中找到並執行相應的異常處理程式的**(所謂的核心態**?):

系統呼叫

每個系統呼叫都屬於異常,當呼叫c庫中的系統呼叫函式時將觸發異常。

ia32系統中,系統呼叫是通過一條稱為int 0x80(異常號)的陷阱指令來提供的。

所有linux的系統呼叫都是通過暫存器來傳遞的。

下面是乙個系統呼叫的例子

int

main()

相應的彙編**

main:

movl $4, %eax 系統呼叫號

movl $1, %ebx 檔案描述符

movl $string, %ecx "hello, world\n"movl $len, %edx 長度

int $0x80...

CSAPP 第八章 異常控制流 小結

異常控制流 ecf 為什麼重要,主要是理解系統概念,應用程式和系統是如何互動的,理解併發,了解軟體異常如何工作。事件 狀態變化 觸發異常。異常類別 類別原因 非同步 同步 返回行為 中斷來自i o的訊號 非同步返回到下一條指令 陷阱有意的異常 同步返回到下一條指令 故障潛在的可恢復的錯誤 同步可能返...

異常控制流

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

異常控制流

作業系統通過使控制流程發生突變來響應系統狀態變化,這些突變就是異常控制流 exceptional control flow,ecf 異常控制處理流程 1.系統啟動時,作業系統分配和初始化一張異常表,使得索引為k的條目對應異常號為k的處理程式的位址。2.系統執行時,處理器檢測到狀態變化,確定相應的異常...