電腦的異常控制:中斷、陷阱、故障、終止、進程環境切換、訊號

來源:互聯網
上載者:User

總結《深入理解電腦系統》:異常控制流程

1,電腦中的異常處理機制:處理器設計人員(如被零除、缺頁,儲存空間訪問違例等)以及作業系統開發人員(如系統調用以及來自外部的IO裝置訊號等)為每種類型的異常分配了一個唯一的非負整數異常號。在系統啟動時,作業系統分配和初始化一張成為異常表的跳轉表,該表使用異常號k作為

索引,以每種類型的例外處理常式地址作為值。當處理器檢測到一個事件(比如CPU根據管腳狀態確定事件類型)發生時,確定異常號k,然後通過異常表目k轉到相應的處理常式。異常表的地址通常儲存在“異常表基底位址暫存器”中。

2,異常處理過程類似於程序呼叫:都會儲存當前寄存器狀態,和返回地址。

但是,(1)異常處理的返回地址要麼是當前執行指令,要麼是當前執行指令的下一條指令。

 (2)異常發生時,如果此時核心代表使用者程式執行(比如說系統調用),這些狀態將會被壓入到核心棧,而不是壓入到使用者棧(程序呼叫壓入           方式)。

         (3)此外,對於例外處理常式通常運行在核心模式,此時對於所有的系統資源具有存取權限。

3,異常的類別

     (1)中斷:中斷是非同步發生的,來自處理器外部IO裝置的訊號(區別於同步異常:執行一條指令的結果),它不是由任何一條專門的指令造成的。例如網路介面卡、磁碟控制卡通過向處理器晶片上的一個管腳發訊號,並將異常號放在系統匯流排上,來觸發中斷,這個異常號標識了引起中斷的裝置。中斷處理常式總是返回到當前指令的下一條指令。

(2)陷阱:陷阱是同步異常,是執行一條指令的結果。陷阱最重要的用途是在使用者程式和核心之間提供系統調用介面。陷阱總返回到當前指令的

下一條指令。

(3)故障:故障由錯誤引起,它可能被故常處理常式修正,如果修正成功,將返回到當前正在執行的指令,重新執行。否則處理常式返回到核心的abort曆程,將終止故障程式。故障的一個典型是缺頁異常。

(4)終止:由不可恢複的知名錯誤造成的結果,處理常式將返回到核心中的abort常式,終止應用程式。

4,進程的環境切換(context switch)

核心為每個進程維護了一個上下文。上下文就是核心重新啟動一個被搶佔進程所需要的狀態集:通用寄存器,浮點寄存器,程式計數器,使用者棧,狀態寄存器,核心棧和各種核心資料結構(比如也表,進程表,檔案表等)。核心通過調度器來搶佔一個執行的進程:

(1)保護當前進程的上下文

(2)恢複某個先前被搶佔進程所儲存的上下文

(3)將控制傳遞給新回複的進程。

以下情況會發生環境切換:

(1)當核心代表使用者執行系統調用時。例如,系統調用因等待某個事件而發生阻塞,那麼核心可以讓當前進程休眠,切換到另一個進程,比如read請求磁碟訪問。

(2)使用者程式調用sleep系統調用,顯式的讓調用進程休眠。

(3)中斷可能引發環境切換。比如所有的系統都有某種產生周期性定時器中斷的機制,典型的位1毫秒或10毫秒。每次發生定時器中斷時,核心判斷當前進程是否已經運行了足夠長的時間,並切換到另一個進程。

5,Unix訊號

一個訊號就是一條訊息,它通知進程一個某種類型的時間已經在系統中發生。每種訊號都對應某個類型的系統時間。

(1)底層的硬體異常是由核心例外狀況處理常式處理的,對使用者進程通常不可見,而訊號提供了向使用者進程通知這些異常發生的機制。比如:一個進程試圖除以0,核心就會發送SIGFPE訊號。

(2)其他的訊號對應於核心或者其他使用者中較高層次的軟體事件。比如SIGINT、SIGKILL等。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.