版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第六章 輸入輸出系統(tǒng)第六章輸入輸出系統(tǒng)6.1I/O系統(tǒng)的功能、模型和接口系統(tǒng)的功能、模型和接口6.2I/O設(shè)備和設(shè)備控制器設(shè)備和設(shè)備控制器6.3中斷機(jī)構(gòu)和中斷處理程序中斷機(jī)構(gòu)和中斷處理程序6.4設(shè)備驅(qū)動程序設(shè)備驅(qū)動程序6.5與設(shè)備無關(guān)的與設(shè)備無關(guān)的I/O軟件軟件6.6用戶層的用戶層的I/O軟件軟件6.7緩沖區(qū)管理緩沖區(qū)管理6.8磁盤存儲器的性能和調(diào)度磁盤存儲器的性能和調(diào)度第六章 輸入輸出系統(tǒng)6.1 I/O系統(tǒng)的功能、模型和接口系統(tǒng)的功能、模型和接口6.1.1 I/O系統(tǒng)的基本功能系統(tǒng)的基本功能 1. 隱藏物理設(shè)備的細(xì)節(jié)隱藏物理設(shè)備的細(xì)節(jié) I/O系統(tǒng)必須通過對設(shè)備加以適當(dāng)?shù)某橄?,以隱藏物理設(shè)備的
2、實(shí)現(xiàn)細(xì)節(jié),僅向上層進(jìn)程提供少量的、抽象的讀/寫命令。2. 與設(shè)備的無關(guān)性與設(shè)備的無關(guān)性 方便用戶對設(shè)備的使用。一方面,用戶不僅可以使用抽象的I/O命令,還可使用抽象的邏輯設(shè)備名來使用設(shè)備;另一方面,可有效提高OS的可移植性和易適應(yīng)性。第六章 輸入輸出系統(tǒng)6.1.1 I/O系統(tǒng)的基本功能系統(tǒng)的基本功能 3. 提高處理機(jī)和提高處理機(jī)和I/O設(shè)備的利用率設(shè)備的利用率 該功能盡可能讓處理機(jī)和I/O設(shè)備并行操作。處理機(jī)應(yīng)能快速響應(yīng)用戶的I/O請求;減少在每個I/O設(shè)備運(yùn)行時處理機(jī)的干預(yù)時間。4. 對對I/O設(shè)備進(jìn)行控制設(shè)備進(jìn)行控制 有四種控制方式:采用輪詢的可編程I/O方式;采用中斷的可編程I/O方式;
3、直接存儲器方式; I/O通道方式。具體采用何種控制方式,與I/O設(shè)備的傳輸速率、傳輸?shù)臄?shù)據(jù)單位等因素有關(guān)。第六章 輸入輸出系統(tǒng)6.1.1 I/O系統(tǒng)的基本功能系統(tǒng)的基本功能 5. 確保對設(shè)備的正確共享確保對設(shè)備的正確共享(1)獨(dú)占設(shè)備,進(jìn)程互斥地訪問這類設(shè)備,即系統(tǒng)一旦把這類設(shè)備分配給某進(jìn)程后,便由該進(jìn)程獨(dú)占,直至用完釋放。(2)共享設(shè)備,一段時間內(nèi)允許多個進(jìn)程同時訪問的設(shè)備。6. 錯誤處理錯誤處理 臨時性錯誤和持久性錯誤。對于臨時性錯誤,可通過重試操作來糾正;對于持久性錯誤,向上層報告。第六章 輸入輸出系統(tǒng)6.1.2 I/O系統(tǒng)的層次結(jié)構(gòu)和模型系統(tǒng)的層次結(jié)構(gòu)和模型 I/O軟件涉及的面很寬,向
4、下與硬件有密切關(guān)系,向上與文件系統(tǒng)、虛擬存儲器系統(tǒng)和用戶直接交互。1. I/O軟件的層次結(jié)構(gòu):軟件的層次結(jié)構(gòu): 通常把I/O軟件組織成四個層次:第六章 輸入輸出系統(tǒng)2. I/O系統(tǒng)中各種模塊之間的層次視圖系統(tǒng)中各種模塊之間的層次視圖第六章 輸入輸出系統(tǒng)6.1.2 I/O系統(tǒng)的層次結(jié)構(gòu)和模型系統(tǒng)的層次結(jié)構(gòu)和模型 2. I/O系統(tǒng)的分層系統(tǒng)的分層 (1)中斷處理程序。處于I/O系統(tǒng)的底層,直接與硬件進(jìn)行交互。當(dāng)有I/O設(shè)備發(fā)來中斷請求信號時,在中斷硬件做了初步處理后,便轉(zhuǎn)向中斷處理程序。(2)設(shè)備驅(qū)動程序。處于I/O系統(tǒng)的次底層,是進(jìn)程和設(shè)備控制器之間的通信程序。將上層發(fā)來的抽象I/O請求轉(zhuǎn)換為對
5、I/O設(shè)備的具體命令和參數(shù),并把它裝入到設(shè)備控制器中的命令和參數(shù)寄存器中,或者相反。(3)設(shè)備獨(dú)立性軟件。I/O軟件獨(dú)立于具體使用的物理設(shè)備。第六章 輸入輸出系統(tǒng)6.1.3 I/O系統(tǒng)接口系統(tǒng)接口1. 塊設(shè)備接口塊設(shè)備接口l塊設(shè)備指數(shù)據(jù)的存取和傳輸都是以數(shù)據(jù)塊為單位的設(shè)備。塊設(shè)備特征:傳輸速率較高;可尋址,即能指定數(shù)據(jù)的輸入源地址及輸出的目標(biāo)地址,可隨機(jī)地讀/寫磁盤中任一塊。l將抽象命令映射為低層操作。將上層發(fā)來的對文件或設(shè)備的打開、讀、寫和關(guān)閉等抽象命令映射為設(shè)備能識別的較低層具體操作。l隱藏了磁盤的二維結(jié)構(gòu)。塊設(shè)備接口將磁盤上的所有扇區(qū)從0到n-1依次編號,則將磁盤的二維結(jié)構(gòu)改為一種線性序
6、列。塊設(shè)備管理程序與高層之間的接口。第六章 輸入輸出系統(tǒng)6.1.3 I/O系統(tǒng)接口系統(tǒng)接口2. 流設(shè)備接口流設(shè)備接口 又稱字符設(shè)備接口,反映了字符設(shè)備的本質(zhì)特征。l字符設(shè)備。指數(shù)據(jù)的存取和傳輸是以字符為單位的設(shè)備,其傳輸率較低、不可尋址。常采用中斷驅(qū)動方式。lget和put操作。字符設(shè)備采取順序存取方式。通常為字符設(shè)備建立一個字符緩沖區(qū),設(shè)備的I/O字符流順序地進(jìn)入字符緩沖區(qū),或從字符緩沖區(qū)順序地送出到設(shè)備。lin-control指令。該指令包含了許多參數(shù),每個參數(shù)表示一個與具體設(shè)備相關(guān)的特定功能。第六章 輸入輸出系統(tǒng)6.2 I/O設(shè)備和設(shè)備控制器設(shè)備和設(shè)備控制器6.2.1 I/O設(shè)備設(shè)備1.
7、 I/O設(shè)備的類型設(shè)備的類型 2)按傳輸速率分類,I/O設(shè)備分為三類:低速設(shè)備、中速設(shè)備、高速設(shè)備。 I/O設(shè)備由執(zhí)行I/O操作的機(jī)械部分和執(zhí)行控制I/O的電子部件組成。執(zhí)行I/O操作的機(jī)械部分是一般的I/O設(shè)備;執(zhí)行控制I/O的電子部件稱為設(shè)備控制器或適配器(adapter)。 1)按使用特性分類,I/O設(shè)備分為存儲設(shè)備、I/O設(shè)備。 第六章 輸入輸出系統(tǒng)2. 設(shè)備與控制器之間的接口設(shè)備與控制器之間的接口 控制信號線:設(shè)備控制器向I/O設(shè)備發(fā)送控制信號時的通路, 該信號規(guī)定了設(shè)備要執(zhí)行的操作。狀態(tài)信號線:傳送指示設(shè)備當(dāng)前狀態(tài)的信號。緩沖轉(zhuǎn)換器控制邏輯信號數(shù)據(jù)數(shù)據(jù)信號線狀態(tài)信號線控制信號線至設(shè)
8、備控制器I/O 設(shè)備6.2.1 I/O設(shè)備設(shè)備11.23+第六章 輸入輸出系統(tǒng)6.2.2 設(shè)備控制器設(shè)備控制器1. 設(shè)備控制器的基本功能設(shè)備控制器的基本功能 1) 接收和識別命令 ,能接收并識別處理機(jī)發(fā)來的多種命令。2) 數(shù)據(jù)交換。數(shù)據(jù)寄存器3) 標(biāo)識和報告設(shè)備的狀態(tài)。狀態(tài)寄存器 4) 地址識別。識別控制的每個設(shè)備的地址,配置地址譯碼器 5) 數(shù)據(jù)緩沖。在輸出時,緩沖區(qū)暫存由主機(jī)高速傳來的數(shù)據(jù);在輸入時,緩沖區(qū)暫存從設(shè)備送來的數(shù)據(jù)。6) 差錯控制。 控制一個或多個I/O設(shè)備,以實(shí)現(xiàn)I/O設(shè)備和計算機(jī)之間的數(shù)據(jù)交換。第六章 輸入輸出系統(tǒng)2. 設(shè)備控制器的組成設(shè)備控制器的組成 圖圖 6-4 設(shè)備控
9、制器的組成設(shè)備控制器的組成 數(shù)據(jù)寄存器控制/狀態(tài)寄存器數(shù)據(jù)線I/O邏輯控制器與設(shè)備接口1控制器與設(shè)備接口i數(shù)據(jù)狀態(tài)控制數(shù)據(jù)狀態(tài)控制地址線控制線CPU與控制器接口控 制 器 與 設(shè) 備 接 口6.2.2 設(shè)備控制器設(shè)備控制器11.25?第六章 輸入輸出系統(tǒng)6.2.4 I/O通道通道 1. I/O通道設(shè)備的引入通道設(shè)備的引入 I/O通道是一種特殊的處理機(jī),它建立了獨(dú)立的I/O操作,承擔(dān)了原來由CPU處理的I/O任務(wù)。I/O通道具有執(zhí)行I/O指令的能力,并通過執(zhí)行通道(I/O)程序來控制I/O操作。 u I/O通道與一般的處理機(jī)不同:一、指令類型單一,主要局限于與I/O操作有關(guān)的指令; 二、通道沒有
10、自己的內(nèi)存,其所執(zhí)行的通道程序是放在主機(jī)的內(nèi)存中的。 第六章 輸入輸出系統(tǒng)2. 通道類型通道類型 1) 字節(jié)多路通道(Byte Multiplexor Channel) 圖圖 6-6 字節(jié)多路通道的工作原理字節(jié)多路通道的工作原理 控制器A控制器B控制器C控制器D控制器NA1A2A3子通道AB1B2B3子通道BC1C2C3子通道CN1N2N3子通道NA1B1C1A2B2C2設(shè)備6.2.4 I/O通道通道 第六章 輸入輸出系統(tǒng)2) 數(shù)組選擇通道(Block Selector Channel) 數(shù)組選擇通道按數(shù)組方式進(jìn)行數(shù)據(jù)傳送,可以連接多臺高速設(shè)備。然而,它只含有一個分配型子通道,在一段時間內(nèi)只能
11、執(zhí)行一道通道程序,控制一臺設(shè)備進(jìn)行數(shù)據(jù)傳送,其利用率很低。 6.2.4 I/O通道通道 3) 數(shù)組多路通道(Block Multiplexor Channel) 數(shù)組多路通道將數(shù)組選擇通道傳輸速率高和字節(jié)多路通道相結(jié)合,使得各子通道分時并行操作。它含有多個非分配型子通道。第六章 輸入輸出系統(tǒng)3. “瓶頸瓶頸”問題問題 設(shè)備1設(shè)備2設(shè)備3設(shè)備4設(shè)備5設(shè)備6設(shè)備7控制器1控制器2控制器3控制器4通道1通道2存儲器6.2.4 I/O通道通道 I/O設(shè)備控制器1控制器2通道1通道2存儲器I/O設(shè)備I/O設(shè)備I/O設(shè)備圖圖 6-8 多通路多通路I/O系統(tǒng)系統(tǒng) 圖圖 6-7 單通路單通路I/O系統(tǒng)系統(tǒng) 第
12、六章 輸入輸出系統(tǒng)6.3 中斷機(jī)構(gòu)和中斷處理程序中斷機(jī)構(gòu)和中斷處理程序6.3.1 中斷簡介中斷簡介1. 中斷和陷入中斷和陷入 中斷指CPU對I/O設(shè)備發(fā)來的中斷信號的一種響應(yīng)。CPU暫停正在執(zhí)行的程序,保留CPU環(huán)境后,自動轉(zhuǎn)去執(zhí)行該I/O設(shè)備的中斷處理程序。執(zhí)行完后,再回到斷點(diǎn),繼續(xù)執(zhí)行原來的程序。 中斷是由外部設(shè)備引起的,稱外中斷;由CPU內(nèi)部事件所引起的 中斷,稱為內(nèi)中斷或陷入。中斷是多道程序得以實(shí)現(xiàn)的基礎(chǔ),也是設(shè)備管理的基礎(chǔ)。第六章 輸入輸出系統(tǒng)6.3.1 中斷簡介中斷簡介2. 中斷向量表和中斷優(yōu)先級中斷向量表和中斷優(yōu)先級 每種設(shè)備配以相應(yīng)的中斷服務(wù)程序,中斷服務(wù)程序入口地址的偏移量與
13、段基值構(gòu)成中斷向量中斷向量。所有中斷向量的集合按順序存放到存儲器的某一區(qū)域內(nèi),這個存儲區(qū)稱為中斷向量表中斷向量表。每一個設(shè)備的中斷請求規(guī)定一個中斷中斷號號。當(dāng)有多個中斷信號源,系統(tǒng)需根據(jù)它們規(guī)定的中斷中斷優(yōu)先級優(yōu)先級確定響應(yīng)。 對于多中斷信號源的情況,當(dāng)處理機(jī)正在處理一個中斷時,又來了一個新的中斷請求時,有兩種處理方式:屏屏蔽(禁止)中斷蔽(禁止)中斷與嵌套中斷嵌套中斷。第六章 輸入輸出系統(tǒng)6.3.2 中斷處理程序中斷處理程序 當(dāng)一個進(jìn)程請求I/O操作時,該進(jìn)程將被掛起,直到I/O設(shè)備完成I/O操作后,設(shè)備控制器便向CPU發(fā)送一個中斷請求,CPU響應(yīng)后便轉(zhuǎn)向中斷處理程序,執(zhí)行相應(yīng)的處理,處理完
14、后解除相應(yīng)進(jìn)程的阻塞狀態(tài),整個處理過程有以下幾個步驟: (1)測定是否有未響應(yīng)的中斷信號;(2)保護(hù)被中斷進(jìn)程的CPU環(huán)境;(3)轉(zhuǎn)入相應(yīng)的設(shè)備處理程序;(4)中斷處理;(5)恢復(fù)CPU的現(xiàn)場并退出中斷。第六章 輸入輸出系統(tǒng)圖圖6 6-10中斷現(xiàn)場保護(hù)示意圖中斷現(xiàn)場保護(hù)示意圖 PSW程序狀態(tài)字PC(N1)程序計數(shù)器R0Rn寄存器開始返回用戶程序中斷服務(wù)子例程PSWPC(N1)中斷棧TTM線指針YNN1R0Rn第六章 輸入輸出系統(tǒng)圖圖6 6-11中斷處理流程中斷處理流程 喚醒被阻塞的驅(qū)動程序進(jìn)程對被中斷進(jìn)程的CPU環(huán)境進(jìn)行保護(hù)分析中斷原因,轉(zhuǎn)入相應(yīng)的中斷處理程序終端中斷處理程序打印機(jī)中斷處理程序
15、磁盤中斷處理程序恢復(fù)被中斷進(jìn)程的CPU現(xiàn)場返回被中斷的進(jìn)程,繼續(xù)執(zhí)行中斷請求信號第六章 輸入輸出系統(tǒng)6.4 設(shè)備驅(qū)動程序設(shè)備驅(qū)動程序 設(shè)備驅(qū)動程序是I/O系統(tǒng)的高層與設(shè)備控制器之間的通信程序,其主要任務(wù)是接收上層軟件發(fā)來的抽象I/O要求,再把它轉(zhuǎn)換為具體要求后,發(fā)送給設(shè)備控制器,啟動設(shè)備去執(zhí)行;反之,它也將由設(shè)備控制器發(fā)來的信號傳送給上層軟件。第六章 輸入輸出系統(tǒng)6.4.1 設(shè)備驅(qū)動程序概述設(shè)備驅(qū)動程序概述1. 設(shè)備驅(qū)動程序的功能設(shè)備驅(qū)動程序的功能(1) 接收由與設(shè)備無關(guān)的軟件發(fā)來的命令和參數(shù),并將命令中的抽象要求轉(zhuǎn)換為與設(shè)備相關(guān)的低層操作序列。(2) 檢查用戶I/O請求的合法性,了解I/O設(shè)
16、備的工作狀態(tài),傳遞與I/O設(shè)備操作有關(guān)的參數(shù),設(shè)置設(shè)備的工作方式.(3) 發(fā)出I/O命令。如果設(shè)備空閑,便立即啟動I/O設(shè)備,完成指定的I/O操作;反之,則將請求者的請求塊掛在設(shè)備隊(duì)列上等待。(4) 及時響應(yīng)由設(shè)備控制器發(fā)來的中斷請求,并根據(jù)其中斷類型,調(diào)用相應(yīng)的中斷處理程序進(jìn)行處理。第六章 輸入輸出系統(tǒng)6.4.1 設(shè)備驅(qū)動程序概述設(shè)備驅(qū)動程序概述2. 設(shè)備驅(qū)動程序的特點(diǎn)設(shè)備驅(qū)動程序的特點(diǎn)(1)驅(qū)動程序?qū)⑦M(jìn)程的I/O請求經(jīng)過轉(zhuǎn)換后,傳送給控制器;把控制器中所記錄的設(shè)備狀態(tài)和I/O操作完成情況及時地反映給請求I/O的進(jìn)程; (2)對不同類型的設(shè)備應(yīng)配置不同的驅(qū)動程序;(3)驅(qū)動程序與I/O設(shè)備所
17、采用的I/O控制方式緊密相關(guān);(4)由于驅(qū)動程序與硬件緊密相關(guān),因而其中的一部分必須用匯編語言書寫;(5)驅(qū)動程序應(yīng)允許可重入。第六章 輸入輸出系統(tǒng)6.4.1 設(shè)備驅(qū)動程序概述設(shè)備驅(qū)動程序概述3. 設(shè)備處理方式設(shè)備處理方式(1) 為每一類設(shè)備設(shè)置一個進(jìn)程,專門用于執(zhí)行這類設(shè)備的I/O操作;(2) 在整個系統(tǒng)中設(shè)置一個I/O進(jìn)程,專門用于執(zhí)行系統(tǒng)中所有各類設(shè)備的I/O操作;(3) 不設(shè)置專門的設(shè)備處理進(jìn)程,而只為各類設(shè)備設(shè)置相應(yīng)的設(shè)備驅(qū)動程序,供用戶或系統(tǒng)進(jìn)程調(diào)用。在不同的操作系統(tǒng)中,所采用的設(shè)備處理方式不同:第六章 輸入輸出系統(tǒng)6.4.2 設(shè)備驅(qū)動程序的處理過程設(shè)備驅(qū)動程序的處理過程 設(shè)備驅(qū)動
18、程序的主要任務(wù)是啟動指定設(shè)備,完成上層指定的I/O工作。其處理過程:(1) 將抽象要求轉(zhuǎn)換為具體要求。(2) 對服務(wù)請求進(jìn)行校驗(yàn)。驅(qū)動程序在啟動I/O設(shè)備之前,檢查用戶的I/O請求是不是該設(shè)備能夠執(zhí)行的。(3) 檢查設(shè)備的狀態(tài)。檢查設(shè)備是否處于就緒狀態(tài)。(4) 傳送必要的參數(shù)。(5) 啟動I/O設(shè)備。驅(qū)動程序向控制器中的命令寄存器傳送相應(yīng)的控制命令。第六章 輸入輸出系統(tǒng)6.4.3 對對I/O設(shè)備的控制方式設(shè)備的控制方式 在處理機(jī)向控制器發(fā)出一條I/O指令,啟動輸入設(shè)備輸入數(shù)據(jù)時,同時將狀態(tài)寄存器中的忙/閑busy標(biāo)志置為1,然后不斷循環(huán)測試busy。當(dāng)busy=1時,表示輸入機(jī)尚未輸完一個字,
19、處理機(jī)繼續(xù)對該標(biāo)志進(jìn)行測試,直至busy=0,表明輸入機(jī)已將輸入數(shù)據(jù)送入控制器的數(shù)據(jù)寄存器中。 1. 使用輪詢的可編程使用輪詢的可編程I/O方式方式 在程序I/O方式中,CPU的絕大部分時間都處于等待I/O設(shè)備完成數(shù)據(jù)I/O的循環(huán)測試中,造成對CPU的極大浪費(fèi)。第六章 輸入輸出系統(tǒng)2. 使用中斷的可編程使用中斷的可編程I/O方式方式 在I/O設(shè)備輸入每個數(shù)據(jù)的過程中,由于無須CPU干預(yù),因而可使CPU與I/O設(shè)備并行工作。僅當(dāng)輸完一個數(shù)據(jù)時,才需CPU花費(fèi)極短的時間去做些中斷處理??梢?,這樣可使CPU和I/O設(shè)備都處于忙碌狀態(tài),從而提高了整個系統(tǒng)的資源利用率及吞吐量。 當(dāng)某進(jìn)程要啟動某個I/O
20、設(shè)備工作時,便由CPU向相應(yīng)的設(shè)備控制器發(fā)出一條I/O命令,然后立即返回繼續(xù)執(zhí)行原來的任務(wù)。6.4.3 對對I/O設(shè)備的控制方式設(shè)備的控制方式 第六章 輸入輸出系統(tǒng)圖 5-7 程序I/O和中斷驅(qū)動方式的流程 向I/O控制器發(fā)讀命令讀I/O控制器的狀態(tài)檢查狀態(tài)?從I/O控制器中讀入字向存儲器中寫字傳送完成?未就緒就緒出錯CPUI/OI/OCPUI/OCPUCPU 內(nèi)存下條指令完成未完向I/O控制器發(fā)讀命令讀I/O控制器的狀態(tài)檢查狀態(tài)?從I/O控制器中讀字向內(nèi)存中寫字傳送完成?就緒出錯CPUI/OI/OCPUI/OCPUCPU 內(nèi)存下條指令完成未完中斷CPU做其它事向I/O控制器發(fā)布讀塊命令CPU
21、DMACPU做其它事讀DMA控制器的狀態(tài)中斷DMACPU下條指令(a) 程序I/O方式(b) 中斷驅(qū)動方式(c) DMA方式第六章 輸入輸出系統(tǒng)3. 直接存儲器訪問方式直接存儲器訪問方式 1) DMA(Direct Memory Access) 方式的引入方式的引入 該方式的特點(diǎn)是: 數(shù)據(jù)傳輸?shù)幕締挝皇菙?shù)據(jù)塊; 所傳送的數(shù)據(jù)是從設(shè)備直接送入內(nèi)存的,或者相反; 僅在傳送一個或多個數(shù)據(jù)塊的開始和結(jié)束時,才需CPU干預(yù),整塊數(shù)據(jù)的傳送是在控制器的控制下完成的。6.4.3 對對I/O設(shè)備的控制方式設(shè)備的控制方式 采用中斷驅(qū)動I/O方式時,CPU以字節(jié)為單位進(jìn)行干預(yù)。第六章 輸入輸出系統(tǒng)2) DMA控
22、制器的組成控制器的組成 DRMARDCCRI/O控制邏輯主機(jī)控制器接口控制器與塊設(shè)備接口count內(nèi)存CPU命令系統(tǒng)總線DMA控制器3. 直接存儲器訪問方式直接存儲器訪問方式 命令/狀態(tài)寄存器 CR; 內(nèi)存地址寄存器 MAR;數(shù)據(jù)寄存器 DR; 數(shù)據(jù)計數(shù)器 DC第六章 輸入輸出系統(tǒng)3) DMA工作過程工作過程 圖圖 6-15 DMA方式的工作流程方式的工作流程 設(shè)置AR和DC初值啟動DMA傳送命令挪用存儲器周期傳送數(shù)據(jù)字存儲器地址增1字計數(shù)寄存器減1DC0?請求中斷在繼續(xù)執(zhí)行用戶程序的同時,準(zhǔn)備又一次傳送否是3. 直接存儲器訪問方式直接存儲器訪問方式 第六章 輸入輸出系統(tǒng)6.4.3 對對I/O
23、設(shè)備的控制方式設(shè)備的控制方式1) I/O通道控制方式的引入通道控制方式的引入 I/O通道方式是DMA方式的發(fā)展,可實(shí)現(xiàn)CPU、通道和I/O設(shè)備三者的并行操作,更有效地提高整個系統(tǒng)的資源利用率。4. I/O通道控制方式通道控制方式 例如,當(dāng)CPU要完成一組相關(guān)的讀(或?qū)?操作及有關(guān)控制時,只需向I/O通道發(fā)送一條I/O指令,以給出其所要執(zhí)行的通道程序的首址和要訪問的I/O設(shè)備,通道接到該指令后,通過執(zhí)行通道程序便可完成CPU指定的I/O任務(wù)。 第六章 輸入輸出系統(tǒng)操作 PR計數(shù)內(nèi)存地址WRITE 0080813WRITE001401034WRITE01605830WRITE013002000WR
24、ITE002501850WRITE112507204. I/O通道控制方式通道控制方式2) 通道程序通道程序 (1) 操作碼。 (2) 內(nèi)存地址。 (3) 計數(shù)。 (4) 通道程序結(jié)束位P。 (5) 記錄結(jié)束標(biāo)志R。 第六章 輸入輸出系統(tǒng) 為了實(shí)現(xiàn)為了實(shí)現(xiàn)設(shè)備獨(dú)立性設(shè)備獨(dú)立性(Device Independence),在設(shè)備,在設(shè)備驅(qū)動程序之上設(shè)置一層軟件,稱為與設(shè)備無關(guān)的驅(qū)動程序之上設(shè)置一層軟件,稱為與設(shè)備無關(guān)的I/O軟件,軟件,或或設(shè)備獨(dú)立性軟件設(shè)備獨(dú)立性軟件。其基本含義是。其基本含義是: : 應(yīng)用程序獨(dú)立于具應(yīng)用程序獨(dú)立于具體使用的物理設(shè)備。體使用的物理設(shè)備。 為了實(shí)現(xiàn)設(shè)備獨(dú)立性而引入了
25、邏輯設(shè)備和物理設(shè)備這為了實(shí)現(xiàn)設(shè)備獨(dú)立性而引入了邏輯設(shè)備和物理設(shè)備這兩個概念。在應(yīng)用程序中,使用邏輯設(shè)備名稱來請求使兩個概念。在應(yīng)用程序中,使用邏輯設(shè)備名稱來請求使用某類設(shè)備;而系統(tǒng)在實(shí)際執(zhí)行時,還必須使用物理設(shè)用某類設(shè)備;而系統(tǒng)在實(shí)際執(zhí)行時,還必須使用物理設(shè)備名稱。因此,系統(tǒng)須具有將邏輯設(shè)備名稱轉(zhuǎn)換為某物備名稱。因此,系統(tǒng)須具有將邏輯設(shè)備名稱轉(zhuǎn)換為某物理設(shè)備名稱的功能。理設(shè)備名稱的功能。6.5 與與設(shè)備設(shè)備無關(guān)的無關(guān)的I/O軟件軟件第六章 輸入輸出系統(tǒng)設(shè)備驅(qū)動程序的統(tǒng)一接口。一方面,每個設(shè)備驅(qū)動程序與OS之間都有著相同的接口;另一方面,將抽象的設(shè)備名映射到適當(dāng)?shù)尿?qū)動程序上。對設(shè)備進(jìn)行保護(hù),禁止
26、用戶直接訪問設(shè)備,防止無權(quán)訪問的用戶使用;緩沖管理。對字符設(shè)備和塊設(shè)備的緩沖區(qū)進(jìn)行管理,以提高I/O的效率;差錯控制。暫時性錯誤、持久性錯誤對獨(dú)立設(shè)備的分配與回收。獨(dú)立于設(shè)備的邏輯數(shù)據(jù)塊6.5.2 與與設(shè)備設(shè)備無關(guān)的無關(guān)的軟件軟件與設(shè)備無關(guān)的軟件與設(shè)備無關(guān)的軟件執(zhí)行執(zhí)行所有設(shè)備的公有操作:所有設(shè)備的公有操作:第六章 輸入輸出系統(tǒng)6.5.3 設(shè)備分配設(shè)備分配 1. 設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu) 設(shè)備類型 type設(shè)備標(biāo)識符: deviceid設(shè)備狀態(tài):等待/不等待 忙/閑指向控制器表的指針重復(fù)執(zhí)行次數(shù)或時間設(shè)備隊(duì)列的隊(duì)首指針DCT 1DCT 2DCT n設(shè)備控制表集合(c) 系統(tǒng)設(shè)
27、備 表 SDT控制器標(biāo)識符: controllerid控制器狀態(tài):忙/閑與控制器連接的通道表指針控制器隊(duì)列的隊(duì)首指針控制器隊(duì)列的隊(duì)尾指針通道標(biāo)識符: channelid通道狀態(tài):忙/閑與通道連接的控制器表首址通道隊(duì)列的隊(duì)首指針通道隊(duì)列的隊(duì)尾指針(a) 控制器表 COCT(b) 通道表 CHCT表目1表目i設(shè)備類設(shè)備標(biāo)識符DCT驅(qū)動程序入口第六章 輸入輸出系統(tǒng)2. 設(shè)備分配時應(yīng)考慮的因素設(shè)備分配時應(yīng)考慮的因素1) 設(shè)備的固有屬性 獨(dú)占設(shè)備、共享設(shè)備、虛擬設(shè)備6.5.3 設(shè)備分配設(shè)備分配 2) 設(shè)備分配算法 先來先服務(wù)、優(yōu)先級高者優(yōu)先3) 設(shè)備分配中的安全性安全分配方式 :破壞造成死鎖的必要條件之
28、一不安全分配方式 :得到設(shè)備后不阻塞,繼續(xù)運(yùn)行可能造成死鎖第六章 輸入輸出系統(tǒng)1. 邏輯設(shè)備表邏輯設(shè)備表LUT (Logical Unit Table)邏輯設(shè)備表用于將應(yīng)用程序中所使用的邏輯設(shè)備名映射為物理設(shè)備名。在該表的每個表目中包含了三項(xiàng):邏輯設(shè)備名、物理設(shè)備名和設(shè)備驅(qū)動程序的入口地址。 6.5.4 邏輯設(shè)備名到物理設(shè)備名映射的實(shí)現(xiàn)邏輯設(shè)備名到物理設(shè)備名映射的實(shí)現(xiàn)邏輯設(shè)備名物理設(shè)備名驅(qū)動程序入口地址/dev/tty/dev/printer3510242046邏輯設(shè)備名/dev/tty/dev/printer系統(tǒng)設(shè)備表指針35(a)(b)第六章 輸入輸出系統(tǒng)當(dāng)進(jìn)程用邏輯設(shè)備名請求分配I/O設(shè)
29、備時,系統(tǒng)為它分配相應(yīng)的物理設(shè)備,并在LUT上建立一個表目,填上應(yīng)用程序中使用的邏輯設(shè)備名和系統(tǒng)分配的物理設(shè)備名,以及該設(shè)備驅(qū)動程序的入口地址。當(dāng)以后進(jìn)程再利用該邏輯設(shè)備名請求I/O操作時,系統(tǒng)通過查找LUT,便可找到物理設(shè)備和驅(qū)動程序。 系統(tǒng)有兩種方式設(shè)置邏輯設(shè)備表:一種方式是在整個系統(tǒng)中只設(shè)置一張LUT;另一種方式為每個用戶設(shè)置一張LUT。6.5.4 邏輯設(shè)備名到物理設(shè)備名映射的實(shí)現(xiàn)邏輯設(shè)備名到物理設(shè)備名映射的實(shí)現(xiàn)第六章 輸入輸出系統(tǒng)用戶層軟件必須通過一組系統(tǒng)調(diào)用來取得操作系統(tǒng)服務(wù)。在現(xiàn)代的高級語言以及C語言中,通常提供了與各系統(tǒng)調(diào)用一一對應(yīng)的庫函數(shù),用戶程序通過調(diào)用對應(yīng)的庫函數(shù)使用系統(tǒng)調(diào)
30、用。這些庫函數(shù)與調(diào)用程序連接在一起,包含在運(yùn)行時裝入在內(nèi)存的二進(jìn)制程序中,如C語言中的庫函數(shù)write等,顯然這些庫函數(shù)的集合也是I/O系統(tǒng)的組成部分。但在許多現(xiàn)代操作系統(tǒng)中,系統(tǒng)調(diào)用本身已經(jīng)采用C語言編寫,并以函數(shù)形式提供,所以在使用C語言編寫的用戶程序中,可以直接使用這些系統(tǒng)調(diào)用。 6.6 用戶層的用戶層的I/O軟件軟件6.6.1 系統(tǒng)調(diào)用與庫函數(shù)系統(tǒng)調(diào)用與庫函數(shù)第六章 輸入輸出系統(tǒng)6.6.2 SPOOling技術(shù)技術(shù) 1. 假脫機(jī)(假脫機(jī)(SPOOLing)技術(shù))技術(shù) 為了緩和CPU的高速性與I/O設(shè)備低速性間的矛盾而引入了脫機(jī)輸入、脫機(jī)輸出技術(shù)。該技術(shù)是利用專門的外圍控制機(jī),將低速I/
31、O設(shè)備上的數(shù)據(jù)傳送到高速磁盤上;或者相反。這樣,便可在主機(jī)的直接控制下,實(shí)現(xiàn)脫機(jī)輸入、 輸出功能。此時的外圍操作與CPU對數(shù)據(jù)的處理同時進(jìn)行,這種在聯(lián)機(jī)情況下實(shí)現(xiàn)的同時外圍操作稱為SPOOLing(Simultaneaus Periphernal Operating On-Line),或稱為假脫機(jī)操作。 第六章 輸入輸出系統(tǒng)2. SPOOLing系統(tǒng)的組成系統(tǒng)的組成 輸入進(jìn)程SPi輸入進(jìn)程SPo輸入緩沖區(qū)Bi輸出緩沖區(qū)Bo輸入井輸出井磁盤輸入設(shè)備輸出設(shè)備SPOOLing系統(tǒng)主要由四部分構(gòu)成:(1)輸入井和輸出井 在磁盤上開辟出來的兩個存儲區(qū)域;(2)輸入緩沖區(qū)和輸出緩沖區(qū) 在內(nèi)存開辟的兩個緩沖
32、區(qū);(3)輸入進(jìn)程和輸出進(jìn)程;(4)井管理程序。6.6.2 SPOOling技術(shù)技術(shù) 第六章 輸入輸出系統(tǒng)3. SPOOLing系統(tǒng)的特點(diǎn)系統(tǒng)的特點(diǎn) (1) 提高了I/O的速度。對數(shù)據(jù)所執(zhí)行的I/O操作,已從對低速I/O設(shè)備執(zhí)行的I/O操作演變?yōu)閷Υ疟P緩沖區(qū)中數(shù)據(jù)的存取。(2) 將獨(dú)占設(shè)備改造為共享設(shè)備。 (3) 實(shí)現(xiàn)了虛擬設(shè)備功能。 6.6.2 SPOOling技術(shù)技術(shù) 第六章 輸入輸出系統(tǒng)4. 假脫機(jī)打印機(jī)系統(tǒng)假脫機(jī)打印機(jī)系統(tǒng) 假脫機(jī)打印系統(tǒng)有三個部分:磁盤緩沖區(qū)、打印緩沖區(qū)、假脫機(jī)管理進(jìn)程和假脫機(jī)打印進(jìn)程。 當(dāng)用戶進(jìn)程請求打印輸出時,SPOOLing系統(tǒng)并不真正立即把打印機(jī)分配給該用戶進(jìn)
33、程,而完成兩項(xiàng)工作: 在磁盤緩沖區(qū)中為之申請一個空閑盤塊,并將要打印的數(shù)據(jù)送入其中暫存; 為用戶進(jìn)程申請一張空白的用戶請求打印表,并將用戶的打印要求填入其中,再將該表掛到假脫機(jī)文件隊(duì)列上。 6.6.2 SPOOling技術(shù)技術(shù) 第六章 輸入輸出系統(tǒng)6.7 緩沖區(qū)管理緩沖區(qū)管理 6.7.1 緩沖的引入緩沖的引入 (1) 緩和CPU與I/O設(shè)備間速度不匹配的矛盾。 (2) 減少對CPU的中斷頻率,放寬對CPU中斷響應(yīng)時間的限制。1位緩沖9.6 Kb/s8位緩沖寄存器送內(nèi)存9.6 Kb/s8位緩沖寄存器9.6 Kb/s送內(nèi)存(b )(a )(c)(3) 解決數(shù)據(jù)粒度不匹配的問題(4) 提高CPU和I
34、/O設(shè)備之間的并行性第六章 輸入輸出系統(tǒng)6.7.2 單緩沖區(qū)和雙緩沖區(qū)單緩沖區(qū)和雙緩沖區(qū) 1. 單緩沖區(qū)單緩沖區(qū)(Single Buffer) 工作區(qū)處理(C)緩沖區(qū)傳送(M)輸入(T)I/O設(shè)備(a)T1M1C1T2M2C2T3M3C3T4t(b)用戶進(jìn)程第六章 輸入輸出系統(tǒng)2. 雙緩沖區(qū)雙緩沖區(qū)(Double Buffer) 工作區(qū)用戶進(jìn)程緩沖區(qū)1緩沖區(qū)2I/O 設(shè)備T1(緩沖1)M1C1M2C2M3C3T2(緩沖2)T3(緩沖3)M4C4T4(緩沖4)(a)(b)6.7.2 單緩沖區(qū)和雙緩沖區(qū)單緩沖區(qū)和雙緩沖區(qū) 第六章 輸入輸出系統(tǒng)圖 5-13 雙機(jī)通信時緩沖區(qū)的設(shè)置 緩沖區(qū)緩沖區(qū)A機(jī)B
35、機(jī)(a) 單緩沖發(fā)送緩沖區(qū)接收緩沖區(qū)接收緩沖區(qū)發(fā)送緩沖區(qū)A機(jī)B機(jī)(b) 雙緩沖6.7.2 單緩沖區(qū)和雙緩沖區(qū)單緩沖區(qū)和雙緩沖區(qū) 第六章 輸入輸出系統(tǒng)6.7.3 環(huán)形緩沖環(huán)形緩沖 區(qū)區(qū)1. 環(huán)形緩沖區(qū)的組成環(huán)形緩沖區(qū)的組成 圖 環(huán)形緩沖區(qū) RGGGRG165423NextiNextgRGGGRC165423NextiNextgcurrent第六章 輸入輸出系統(tǒng)2. 環(huán)形緩沖區(qū)的使用環(huán)形緩沖區(qū)的使用(1) Getbuf過程。(2) Releasebuf過程。 6.7.3 環(huán)形緩沖環(huán)形緩沖 區(qū)區(qū)3. 進(jìn)程之間的同步問題進(jìn)程之間的同步問題(1) Nexti指針追趕上Nextg指針。(2) Nextg指
36、針追趕上Nexti指針。 第六章 輸入輸出系統(tǒng)6.7.4 緩沖池緩沖池(Buffer Pool) 1. 緩沖池的組成緩沖池的組成 對于既可用于輸入又可用于輸出的公用緩沖池,其中至少應(yīng)含有以下三種類型的緩沖區(qū): 空(閑)緩沖區(qū); 裝滿輸入數(shù)據(jù)的緩沖區(qū); 裝滿輸出數(shù)據(jù)的緩沖區(qū)。 為了管理上的方便,可將相同類型的緩沖區(qū)鏈成一個隊(duì)列,于是可形成以下三個隊(duì)列: (1) 空緩沖隊(duì)列 emq。 (2) 輸入隊(duì)列 inq。 (3) 輸出隊(duì)列 outq。 第六章 輸入輸出系統(tǒng)2. Getbuf過程和過程和Putbuf過程過程 Procedure Getbuf(type) Wait(RS(type); Wait(
37、MS(type); B(number)=Takebuf(type); Signal(MS(type); 6.7.4 緩沖池緩沖池(Buffer Pool) void Putbuf(type, number) Wait(MS(type); Addbuf(type, number); Signal(MS(type); Signal(RS(type); 第六章 輸入輸出系統(tǒng)3. 緩沖區(qū)的工作方式緩沖區(qū)的工作方式 圖 5-15 緩沖區(qū)的工作方式 hinsoutsinhout收容輸入提取輸出用戶程序提取輸入收容輸出緩沖池6.7.4 緩沖池緩沖池(Buffer Pool) 收容輸入:Getbuf(emq)
38、-Putbuf(inq ,hin)提取輸入:Getbuf(inq)-Putbuf(emq ,sin)提取輸出:Getbuf(outq)-Putbuf(emq ,sout)收容輸出:Getbuf(emq)-Putbuf(outq ,hout)第六章 輸入輸出系統(tǒng)思考一 I/O軟件一般分為用戶層軟件、設(shè)備獨(dú)立性軟件、設(shè)備驅(qū)動程序和終端處理程序這四個層次。請說明下列工作分別是在哪一層完成的?(1)向設(shè)備寄存器寫命令。(2)檢查用戶是否有權(quán)使用設(shè)備。(3)將二進(jìn)制整數(shù)轉(zhuǎn)換成ASCII碼的格式打印。(4)緩沖管理。12.1 S第六章 輸入輸出系統(tǒng)6.8 磁盤存儲器的性能和調(diào)度磁盤存儲器的性能和調(diào)度 磁盤
39、存儲器是計算機(jī)系統(tǒng)中最重要的存儲設(shè)備。改善磁盤系統(tǒng)性能的途徑:(1)通過選擇好的磁盤調(diào)度算法,以減少磁盤的尋道時間;(2)提高磁盤I/O速度,以提高對文件的訪問速度;(3)采取冗余技術(shù),提高磁盤系統(tǒng)的可靠性。第六章 輸入輸出系統(tǒng)6.8.1 磁盤性能簡述磁盤性能簡述 1. 數(shù)據(jù)的組織和格式數(shù)據(jù)的組織和格式Gap102031292293Field GapField GapGap FieldGap FieldGap17741515201774151520IDDataIDDataGap1292293Field GapField1774151520IDDataSectorPhysical Sector
40、0Physical Sector 1Physical Sector 29BytesSynchByteTrack#Head#Sector#Bytes 1211CRC3SynchByteDataCRC15122600 Bytes/SectorGap圖 5-22 磁盤的格式化 第六章 輸入輸出系統(tǒng)2. 磁盤的類型磁盤的類型 1) 固定頭磁盤 這種磁盤在每條磁道上都有一讀/寫磁頭,所有的磁頭都被裝在一剛性磁臂中。通過這些磁頭可訪問所有各磁道,并進(jìn)行并行讀/寫,有效地提高了磁盤的I/O速度。 這種結(jié)構(gòu)的磁盤主要用于大容量磁盤上。 2) 移動頭磁盤 每一個盤面僅配有一個磁頭,也被裝入磁臂中。為能訪問該盤面上的所有磁道,該磁頭必須能移動以進(jìn)行尋道
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 職業(yè)健康促進(jìn)公平性與可持續(xù)發(fā)展策略-1
- 職業(yè)健康與員工職業(yè)發(fā)展路徑的醫(yī)學(xué)倫理考量
- 西安2025年陜西西安信息職業(yè)大學(xué)教職工招聘筆試歷年參考題庫附帶答案詳解
- 肇慶2025年廣東肇慶市招聘村助理204人筆試歷年參考題庫附帶答案詳解
- 玉溪2025年云南玉溪易門縣面向縣外選調(diào)教師筆試歷年參考題庫附帶答案詳解
- 深圳廣東深圳市第七高級中學(xué)招聘專任教師及教輔人員筆試歷年參考題庫附帶答案詳解
- 河源2025年秋季廣東河源紫金縣招聘教師218人筆試歷年參考題庫附帶答案詳解
- 柳州2025年廣西柳州市魚峰區(qū)招聘中小學(xué)教師8人筆試歷年參考題庫附帶答案詳解
- 新鄉(xiāng)2025年河南新鄉(xiāng)市市直部分事業(yè)單位招聘教師256人筆試歷年參考題庫附帶答案詳解
- 徐州2025年江蘇徐州沛縣職業(yè)教育學(xué)校招聘編制教師20人筆試歷年參考題庫附帶答案詳解
- 護(hù)理翻身叩背課件
- 施工合作協(xié)議書
- 630KVA箱變安裝工程施工設(shè)計方案
- 山西省金科新未來2024-2025學(xué)年高一上學(xué)期期末考試化學(xué)試題(含答案)
- 第四屆全國儀器儀表行業(yè)職業(yè)技能競賽-無人機(jī)裝調(diào)檢修工(儀器儀表檢測)理論考試題庫(含答案)
- 國家職業(yè)技術(shù)技能標(biāo)準(zhǔn) 4-10-01-05 養(yǎng)老護(hù)理員 人社廳發(fā)201992號
- 急性梗阻性化膿性膽管炎護(hù)理
- 2024深海礦產(chǎn)資源開采系統(tǒng)技術(shù)指南
- 2022通達(dá)經(jīng)營性物業(yè)貸調(diào)查報告
- 立式氣液分離器計算
- 財務(wù)每日工作匯報表格
評論
0/150
提交評論