還是之前計算機只能乙個乙個的處理作業,cpu資源利用率低下,為了解決這個問題,人們發明了作業系統,引入中斷機制,實現了多道程式併發執行。
本質:發生中斷就意味著需要作業系統的介入,開展管理工作。
當中斷發生時,cpu立即進入核心態
當中斷發生後,當前執行的程序暫停執行,並由作業系統核心對中斷進行處理。
對於不同的中斷訊號,會進行不同的處理
發生了中斷,就意味著需要作業系統介入,開展管理工作。由於作業系統的管理工作(比如程序切換,分配io裝置等)需要使用特權指令,因此cpu會由使用者態轉變成核心態。中斷可以使cpu由 使用者態轉變成核心態。使作業系統獲得計算機的控制權。
使用者態->核心態轉換:中斷實現,並且中斷是唯一的方式
核心態->使用者態的轉換:通過執行乙個特權指令,將程式狀態字(psw)的標誌位置為使用者態
內中斷內中斷也稱為異常、例外、陷入;
自願中斷----指令中斷:如系統呼叫時使用的訪管指令(又叫做陷入指令、trap指令)
強迫中斷----例如:硬體故障(缺頁),軟體中斷(整數除0)
外中斷1、cpu乙個乙個指令的執行,每次執行完乙個指令都要檢查一下當前是否有外部中斷訊號傳過來。
2、如果檢測到有外部中斷訊號,則需要保護被中斷程序的cpu環境,(程式計數器(pc),程式狀態字(pws),各種通用的暫存器)
3、根據中斷訊號型別轉入相應的中斷處理程式。
4、恢復原程序的cpu狀態並退出,返回原來的程序繼續往下執行。
引入系統呼叫
作業系統作為使用者和計算機硬體之間的介面,需要向上提供一些簡單易用的服務。主要包括命令介面和程式介面。其中,程式介面由一組系統呼叫組成。系統呼叫是作業系統提供給應用程式(程式設計師/程式設計人員)使用的介面,可以理解為一種可**用程式呼叫的特殊函式,應用程式可以發出系統呼叫請求來獲得作業系統的服務。
應用程式通過系統呼叫請求作業系統的服務。系統中的各種共享資源都由作業系統統一掌管,因此在程式中,凡是與資源有關的操作(如儲存分配,io操作,檔案管理等),都必須通過系統呼叫的方式向作業系統提出服務請求,由作業系統代替他完成,這樣可以保證系統的穩定性和安全性,防止使用者進行非法操作。
中斷 異常和系統呼叫比較
系統呼叫 應用程式主動向作業系統發出的服務請求 異常 非法指令或者其他原因導致當前指令執行失敗 中斷 來自硬體裝置的處理請求 源頭 中斷 外部裝置 異常 應用程式 系統呼叫 應用程式請求作業系統提供服務 響應方式 中斷 非同步 異常 同步 系統呼叫 同步或者非同步 處理機制 中斷 持續,對使用者應用...
中斷 異常和系統呼叫的關係
中斷 異常和系統呼叫的關係 1.中斷的概念 中斷是cpu的乙個功能,就是cpu停下當前的工作,保留現場後自動地轉去執行相應的處理程式,cpu控制權發生改變,處理完該事件後再返回斷點繼續執行被剛才被打斷的程式。2.中斷的分類 2.1分為軟中斷和硬中斷 軟中斷 a.程式設計異常通常叫做軟中斷 b.軟中斷...
linux作業系統中斷 異常和系統呼叫
中斷 異常和系統呼叫是作業系統中十分重要的概念,在這裡略作介紹,當作乙個複習。首先,中斷和異常的聯絡是十分緊密的,廣義的中斷既包含中斷也包含異常。中斷 廣義 會改變處理器執行指令的順序,通常與cpu晶元內部或外部硬體電路產生的電訊號相對應,廣義的中斷包括以下兩類 1.來自cpu外部的中斷稱為外部中斷...