操作系統——中斷、異常和系統調用比較

    我們首先要明確,爲什麼操作系統需要中斷、異常和系統調用:

  •     在計算機運行時,內核是被信任的第三方
  •     只有內核纔可以執行特權指令
  •     方便應用程序

    接下來我們先簡單瞭解一下三者的概念:

    系統調用(system call)

        應用程序主動向操作系統發出的服務請求

    異常(exception)

        非法指令或者其他原因導致當前指令執行失敗   (如:內存出錯)後的處理請求

    中斷(hardware interrupt)

        來自硬件設備的處理請求

    下面我們先看一下這張圖(內核的進入和退出圖),方便對後面的概念進行理解

   


    現在,正式開始從如下幾個方面對三者進行比較:

    源頭

    中斷:外設引起

    異常:應用程序意想不到的行爲

    系統調用:應用程序請求操作系統提供服務

    響應方式

    中斷:異步

    異常:同步

    系統調用:異步或同步

    ps:關於同步和異步,我昨天的文章中有過介紹

    處理機制

    中斷:持續,對用戶應用程序是透明的

    異常:殺死或者重新執行意想不到的應用程序指令

    系統調用:等待和持續


    接下來我們詳細介紹一些中斷的處理機制,處理機制包括硬件處理和軟件處理

    硬件處理

    依據內部或者外部事件設置中斷標誌,然後依據中斷向量調用相應的中斷服務例程。

    軟件處理

    首先進行現場保存(由編譯器完成),然後進行中斷服務處理(中斷服務例程完成),接着清除中斷標記(中斷服務例程),最後進行現場恢復(編譯器)。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章