(1)程式控制
最簡單的i/o控制方式是處理機對i/o裝置直接進行控制,採取程式i/o(programmed i/o)方式或稱為忙一等待方式。cpu首先向裝置控制器的控制暫存器發出一條i/o指令啟動i/o裝置進行資料傳輸,硬體同時把狀態暫存器中的忙/閒標誌busy置為1,表示該i/o裝置尚未輸入完乙個字(符)。接著cpu應重複讀取狀態暫存器忙/閒標誌busy進行測試(cpu不能執行其他程序),直至busy=0,表示該i/o裝置已將輸入資料送入到i/o控制器的資料暫存器中,於是cpu將從資料暫存器中取出資料,送入記憶體的指定單元,接著,再啟動去讀下乙個資料,並置busy=l。
在程式i/o方式中,由於cpu的速度遠遠高於i/o裝置,導致cpu的絕大部分時間都處於等待i/o裝置完成而迴圈測試之中,造成了cpu的極大浪費。但是它管理簡單,在要求不高的場合可以被採用。
(2)中斷控制
(3)dma控制
中斷驅動i/o方式雖然大大提高了主機的利用率,但是它以字(節)為單位進行資料傳送,每完成乙個字(節)的傳送,控制器便要向cpu請求一次中斷(做儲存現場資訊,恢復現場等工作),仍然占用了cpu的許多時間。這種方式對於高速的塊裝置的i/o控制顯然是不適合。為了進一步減少cpu對i/o的干預,引入了直接儲存器訪問dma(direct memory access)控制方式。
dma方式是一種完全由硬體執行i/o資料交換的工作方式,它需要使用乙個專門的dma控制器(dmac),內含於裝置控制器,dmac中有控制狀態暫存器、傳送位元組計數器、記憶體位址暫存器和資料緩衝暫存器。在這種方式中,dmac採用盜竊匯流排控制權的方法從cpu接管對匯流排的控制,成批的資料交換不經過cpu而直接在記憶體和i/o裝置之間進行。
dma方式下的資料傳送過程可分為三個階段:
(4)通道控制方式
雖然 dma方式比中斷驅動方式已顯著地減少了cpu的干預,即由以字(節)為單位的干預減少到以資料塊為單位的干預。但是cpu每發出一條i/o指令,也只能去讀(或寫)乙個連續的資料塊。而當我們需要一次去讀多個離散的資料塊且將它們分別傳送到不同的記憶體區域,或者相反時,則需由cpu分別發出多條i/o指令及進行多次中斷處理,才能完成。
由於dma每次只能執行一條i/o指令,不能滿足複雜的i/o操作要求。在大、中型計算機系統中,普遍採用由專用的i/o處理機---具有執行i/o指令能力的通道來接受cpu的委託,與cpu並行獨立執行自己的通道程式來實現i/o裝置與記憶體之間的資訊交換,這就是通道技術。通道技術可以進一步減少 cpu的干預,即把對乙個資料塊為單位的讀(或寫)的干預,減少到對一組資料塊為單位的讀(或寫)的有關的控制和管理的干預。這樣可實現 cpu、通道和i/o裝置三者之間的並行工作,從而更有效地提高了整個系統的資源利用率和執行速度。
通道是通過執行通道程式,並與裝置控制器來共同實現對i/o裝置的控制。通道程式是由一系列的通道指令(或稱為通道命令)所構成。通道指令與一般的機器指令不同,在每條指令中包含的資訊較多,有操作碼、記憶體位址、計數(讀或寫資料的位元組數)、通道程式結束位p和記錄結束標誌r。通道程式是在cpu執行i/o命令時通過裝置管理程式產生的,傳遞給通道。
(1)位元組多路通道
在這種通道中,通常都含有較多個(8,16,32)非分配型子通道(乙個通道連線多個邏輯裝置),每乙個子通道連線一台i/o裝置。這些子通道按時間片輪轉方式共享主通道。乙個子通道完成乙個位元組的傳送後,立即讓出位元組多路通道(主通道),給另乙個子通道使用。它適用於連線低速或中速裝置,如印表機、終端等。
位元組多路通道主要用於連線大量的低速裝置,如鍵盤、印表機等等。例如資料傳輸率是1000b/s,即傳送1個位元組的間隔是1ms,而通道從裝置接收或傳送乙個位元組只需要幾百納秒,因此通道在傳送兩個位元組之間有很多空閒時間,位元組多路通道正是利用這個空閒時間為其他裝置服務。
(2)陣列選擇通道
這種通道雖然可以連線多台i/o裝置,但是它只有乙個分配型通道(連線多個物理裝置,但是只能使用乙個邏輯裝置),在一段時間內只能執行一道通道程式、控制一台裝置進行資料傳送,其資料傳送是按陣列塊方式進行。選擇通道很像乙個單道程式的處理器,在一段時間內只允許執行乙個裝置的通道程式。即當某台裝置一旦占用了該通道,就被它獨佔,直至該裝置傳送完畢釋放該通道為止。可見,它適於連線高速裝置(如磁碟機、磁帶機),但是這種通道的利用率較低。
(3)陣列多路通道
陣列選擇通道雖然有很高的傳輸速率,但它每次只允許乙個裝置傳輸資料。陣列多路通道是將陣列選擇通道的傳輸速率高和位元組多路通道的分時並行操作的優點結合起來,形成的一種新的通道。當某裝置進行資料傳送時,通道只為該裝置服務;當裝置在執行定址等控制性動作時,通道暫時斷開與這個裝置的連線,掛起該裝置的通道程式,去為其他裝置服務,即執行其他裝置的通道程式。它含有多個非分配型子通道,可以連線多台高、中速的外圍裝置,其資料傳送卻是按陣列方式進行。所以這種通道既具有很高的資料傳輸速率,又能獲得令人滿意的通道利用率。
3、虛裝置和spooling技術
思考題:
作業系統之裝置管理
讀寫乙個磁碟塊的時間的影響因素有 其中,尋道時間最長,因此磁碟排程的主要目標是使磁碟的平均尋道時間最短。fcfs,first come first served 按照磁碟請求的順序進行排程。優點是公平和簡單。缺點也很明顯,因為未對尋道做任何優化,使平均尋道時間可能較長。sstf,shortest s...
裝置管理 作業系統
裝置管理 裝置是計算機中的重要資源,裝置管理的主要任務是控制裝置和cpu之間進行i o操作。由於現代作業系統的外部裝置的多樣性和複雜性以及不同裝置需要不同的裝置處理程式,裝置管理成了作業系統中最複雜 最具有多樣性的部分。裝置管理模組在控制各類裝置和cpu進行i o操作的同時,還要盡可能的提高裝置與裝...
作業系統 裝置管理
讀寫乙個磁碟塊的時間的影響因素有 其中,尋道時間最長,因此磁碟排程的主要目標是使磁碟的平均尋道時間最短。2.1先來先服務fcfs first come first served 按照磁碟請求的順序進行排程。優點是公平和簡單。缺點也很明顯,因為未對尋道做任何優化,使平均尋道時間可能較長。2.2最短尋道...