作業系統18 IO系統之中斷機構和裝置驅動程式

2021-08-21 13:36:42 字數 3504 閱讀 5664

三.中斷處理程式

四.裝置驅動程式概述

五.對i/o裝置的控制方式

六.參考資料

1.中斷和陷入

a.中斷

cpu對io裝置發來的中斷訊號的一種響應。cpu暫停正在執行的程式,保留環境,執行中斷程式,執行完畢後,再回到斷點。中斷是由外部裝置引起,也稱為外中斷

b.陷入

由cpu內部事件引起的中斷。如溢位、非法指令、位址越界、電源故障等。也稱為內中斷。與中斷一樣,系統如果發現陷入時間,cpu也將暫停正在執行的程式,保留環境,執行該陷入事件的處理程式,執行完畢後,再回到斷點。

2.中斷限量表和中斷優先順序

a.中斷向量表

為每種裝置配以相應的中斷處理程式,把該程式的入口位址放在中斷向量表的乙個表項中,並規定乙個中斷號用於裝置的中斷請求。

b.中斷優先順序

系統中有多個中斷訊號源,系統為他們規定不同的優先順序。如:鍵盤《印表機《磁碟

3.對多中斷源的處理方式

對於多中斷訊號源的情況下,當處理機正在執行乙個中斷時,有來乙個新的中斷請求,此時有兩種處理方式

a.遮蔽中斷

對任何新到的中斷請求都暫時不處理,讓其等待。知道處理機已經完成本次中斷的處理。處理機再去檢查是否有中斷發生,若有再去處理新到的中斷,若無。則返回被中斷的程式。該方法中,所有中斷都按照順序執行,優點是簡單,但不能對實時性要求較高的中斷處理。

b.巢狀中斷

在設定了中斷優先順序的系統中,通常按照這樣的規則來進行優先順序控制。

當乙個程序請求i/o 操作時,該程序將被掛起,直到i/o裝置完成i/o操作後,裝置控制器便向cpu傳送乙個中斷請求,cpu響應後便轉向中斷處理程式,中斷處理程式執行相應的處理,處理完後解除相應程序的阻塞狀態。

中斷處理程式的處理過程分成以下幾個步驟:

1. 測定是否有未響應的中斷訊號

當裝置完成乙個字元的讀入(如字元裝置),裝置控制器向處理機傳送乙個中斷請求訊號,請求處理機將字元讀入記憶體。處理機執行完當前指令後都要檢測是否有未響應的中斷訊號。若沒有繼續執行下一條指令,若有,則停止原有程序的執行,準備轉去指向中斷處理程式,為處理機的控制權交給中斷程式。

2.保護被中斷程序的cpu環境

3.轉入相應的裝置處理程式

處理機測試各個中斷源,確定io裝置,並傳送確認訊號。裝置收到訊號後,取消中斷請求訊號。將裝置中斷處理程式的入口位址裝入到程式計數器中,這樣,當處理機執行時,便可以自動轉向中斷處理程序。

4.中斷處理

不同的裝置有不同的中斷處理程式。該程式首先從裝置控制器中讀出裝置狀態,判別本次中斷是正常完成中斷還是異常結束中斷,如果是正常完成中斷,中斷裝置便做結束處理。如果是異常結束中斷,則根據發生異常的原因做出相應的處理。

5.恢復被中斷程序的現場

中斷處理完成後,恢復cpu現場,退出中斷。是否返回被中斷的程序,取決於:

中斷處理流程如下圖:

io操作完成後,驅動器必須檢查本次操作是否發生錯誤,並向上層報告本次i/o指向情況,最終向呼叫者報告本次i?o指向情況。,除第四步外,其餘各步驟對於i/o裝置都是相同的。

裝置處理程式通常又稱為裝置驅動程式,它是i/o系統的高層與裝置控制器之間的通訊程式,其主要任務是接收上層軟體發來的抽象i/o要求,如read或write命令,再把它轉換為具體要求後,傳送給裝置控制器,啟動裝置去執行;反之,它也將由裝置控制器發來的訊號傳送給上層軟體。由於驅動程式與硬體密切相關,故通常應為每一類裝置配置一種驅動程式。

1.裝置驅動程式的功能

2.裝置驅動程式的特點

裝置驅動程式屬於低階的系統例程,它與一般的應用程式及系統程式之間有下述明顯差異:

3.裝置處理方式

4.裝置驅動程式的處理過程對i/o裝置的控制,隨著軟硬體的發展前後出現過如下的控制方式:使用輪詢的可程式設計i/o方式,使用中斷的可程式設計i/o方式,直接儲存器訪問(dma)方式,i/o通道控制方式.前兩種是以位元組為單位進行資料傳遞,後兩種是以資料塊為單位進行資料傳遞。

下面對這些方式進行介紹。

1.使用輪詢的可程式設計i/o方式

忙——等待方式

下圖是展示了程式i/o方式的流程

2.使用中斷的可程式設計i/o方式

啟動:由cpu根據程序的i/o請求,向裝置控制器發出一條i/o命令;此後cpu繼續執行其它程序,即cpu與外設並行工作。

完成:i/o裝置完成操作後,由控制器通過控制線向cpu傳送一中斷訊號,由cpu檢查i/o操作是否正確,若無錯,便向控制器傳送取走資料的訊號。

優點:系統效率高: 並行工作、用極少的時間處理中斷

缺點:裝置與cpu之間的資料交換仍以字(節)為單位。

下圖是展示中斷驅動i/o方式的流程

3.直接儲存器訪問(dma)方式

a.dma(direct memory access)控制方式的引入

為了適應一次傳送大量資料的應用要求,以及儘量減少cpu對高速外設的干預;所以引入了dma方式。

dma方式的特點如下:

b.dma控制器的組成

dma控制器由三部分組成:主機與dma控制器的介面,dma控制器和裝置的介面,i/o控制邏輯。

如下圖:

c.dma工作過程(以磁碟資料讀入為例)

4.i/o通道控制方式

a.i/o通道控制方式的引入

引入目的:

b.通道程式

通道是通過執行通道程式並與裝置控制器共同實現對i/o裝置的控制的。通道程式是由一系列通道指令(或稱為通道命令)所構成的。

每條指令都包含以下資訊:

《作業系統第四版》

作業系統之中斷

中斷是指計算機執行過程中,出現某些意外情況需主機干預時,機器能自動停止正在執行的程式並轉入處理新情況的程式,處理完畢後又返回原被暫停的程式繼續執行。中斷是一種使cpu中止正在執行的程式而轉去處理特殊事件的操作,這些引起中斷的事件稱為中斷源,它們可能是來自外設的輸入輸出請求,也可能是計算機的一些異常事...

作業系統之中斷異常

中斷來自外部,異常來自內部。中斷 異常 指系統發生某個非同步 同步事件後,處理機暫停正在執行的程式,轉去執行處理該事件程式的過程。中斷引入 為了開發cpu和通道 或裝置 之間的併發操作。異常引入 用於表示cpu執行指令時本身引發的事件。分級原因 不同的中斷可能在同一時間點發出請求。一般的來說,告訴裝...

作業系統 中斷

寫在前面 參考中斷 中斷是指cpu對i o裝置發來的中斷訊號的一種響應。cpu暫停正在執行的程式,保留cpu環境後,自動地去執行該i o裝置的中斷處理程式。執行完後,再回到斷點,繼續執行原來的程式。i o裝置可以是字元裝置,也可以是塊裝置 通訊裝置。由於中斷時由外部裝置引起的,故又稱外中斷。在作業系...