電腦系統:第8章 異常控制流程

來源:互聯網
上載者:User

標籤:style   color   io   ar   linux   時間   line   size   

參考材料:深入理解電腦系統,第8章

1控制流程的種類

——》對由“程式內部”變數表示的內部狀態的變化作出反應的。簡單來說,就是我在運行這段程式,在“程式”中明確指明了下條啟動並執行指令,如順序下一條,while,跳轉等

——》對一些系統狀態的變化作出反應,這些系統狀態“不是由這段程式內的變數”捕獲的。簡單來說,就是我在運行這段程式,運行著運行著,突然從本段程式外部來了一個刺激要我作出反應。

——》對於第二種控制流程,系統通過ECF(Exceptional Control Flow異常控制流程)作出反應。


8.1異常

——》異常的基本過程:processor檢測到有時間發生——》根據提前寫定好的異常表進行跳轉——》到對應例外處理常式——》根據不同類別的異常,作出不同的”返回“


8.1.1異常處理:處理異常需要硬體和軟體緊密合作,很容易搞混哪個部分執行哪個任務:SO,分清哪個部分做哪個任務

1——》”硬體“基礎:每個異常的異常號exception number

2——》”軟體“:作業系統在啟動時,初始化一個”異常表“

3——》”硬體“:processor檢測到了異常——》根據異常表進行跳轉

4——》”軟體“:執行對應例外處理常式


8.1.2異常的類別

1——》中斷(非同步發生的:不是當前指令引起的結果)

2——》陷阱trap

  ——》系統調用

  ——》故障faults

  ——》終止aborts (這4種異常是”同步發生“的,因為是當前指令引起的結果,如缺頁)


*——》以上的幾個概念

”當前指令指明的“指第一種控制流程,因為在程式運行到goto時就會發生跳轉,這是程式顯示指明的;

”當前指令引起的“指程式中沒有顯式的指明要怎麼控制下一條執行哪個(到這就可以判斷是”ECF“),但是因為執行當前一條指令,引起了異常(如缺頁)這就是同步發生的”異常“;

”不是當前指令引起的結果“指程式當前指令不會引起任何異常,但是外部有個裝置發來一個訊號,這就是非同步發生的”異常“;


8.1.3Linux/IA32系統中的異常

1——》IA32系統,查百度應該是指IA32架構,是一個英特爾的指令集架構

2——》這個系統關於異常處理的特異性

——》異常類型數:256.各自都定義好了

——》各個異常的處理方法(舉例了幾個特殊的)

——》系統調用是通過int 0x80提供的

——》所有到”linux“的系統調用是通過寄存器(如%eax等)而不是棧傳遞的

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.