版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、第七章 設(shè)備管理,概述 I/O硬件特點 I/O軟件的組成 有關(guān)技術(shù) 設(shè)備處理,I/O管理示意,應(yīng)用程序,文件管理,設(shè)備驅(qū)動程序,控制寄存器,數(shù)據(jù)寄存器,狀態(tài)寄存器,設(shè)備控制器,應(yīng)用編程接口,硬件接口,一、概述,1、I/O的特點 CPU與I/O的速度差別大 盡量使兩者交疊運行 減少由于速度差異造成的整體性能開銷 (1)I/O性能經(jīng)常成為系統(tǒng)性能的瓶頸 (2)操作系統(tǒng)龐大復(fù)雜的原因之一: 資源多、雜,并發(fā),均來自I/O 外設(shè)種類繁多,結(jié)構(gòu)各異 輸入輸出數(shù)據(jù)信號類型不同 速度差異很大 (3)與其他功能聯(lián)系密切,特別是文件系統(tǒng),(1)按功能特性分 存儲型設(shè)備 輸入輸出型設(shè)備(交互型設(shè)備) 數(shù)據(jù)通信設(shè)備
2、,2、設(shè)備的分類,(2)按數(shù)據(jù)組織分 塊設(shè)備 以數(shù)據(jù)塊為單位存儲、傳輸信息 傳輸速率較高、可尋址(隨機讀寫) 字符設(shè)備 以字符為單位存儲、傳輸信息 傳輸速率高、不可尋址,設(shè)備的分類(續(xù)1),(3)按資源分配角度分 獨占設(shè)備 在一段時間內(nèi)只能有一個進程使用的設(shè)備,一般為低速I/O設(shè)備(如打印機,磁帶等) 共享設(shè)備 在一段時間內(nèi)可有多個進程共同使用的設(shè)備,多個進程以交叉的方式來使用設(shè)備,其資源利用率高(如硬盤),設(shè)備的分類(續(xù)2),虛設(shè)備 在一類設(shè)備上模擬另一類設(shè)備,常用共享設(shè)備模擬獨占設(shè)備,用高速設(shè)備模擬低速設(shè)備,被模擬的設(shè)備稱為虛設(shè)備 目的:將慢速的獨占設(shè)備改造成多個用戶可共享的設(shè)備,提高設(shè)備
3、的利用率 (實例:SPOOLing技術(shù),利用虛設(shè)備技術(shù) 用硬盤模擬輸入輸出設(shè)備),設(shè)備的分類(續(xù)3),SPOOLing技術(shù) 為解決獨立設(shè)備數(shù)量少,速度慢,不能滿足眾多進程的要求,而且在進程獨占設(shè)備期間,設(shè)備利用率比較低而提出的一種設(shè)備管理技術(shù) 另一種資源轉(zhuǎn)換技術(shù),設(shè)備的分類(續(xù)4),(1)按照用戶的請求,控制設(shè)備的各種操作,完成I/O設(shè)備與內(nèi)存之間的數(shù)據(jù)交換,最終完成用戶的I/O請求 設(shè)備分配與回收 記錄設(shè)備的狀態(tài) 根據(jù)用戶的請求和設(shè)備的類型,采用一定的分配算法,選擇一條數(shù)據(jù)通路 執(zhí)行設(shè)備驅(qū)動程序,實現(xiàn)真正的I/O操作 設(shè)備中斷處理:處理外部設(shè)備的中斷 緩沖區(qū)管理:管理I/O緩沖區(qū),3.設(shè)備管
4、理的目標和任務(wù),(2)建立方便、統(tǒng)一的獨立于設(shè)備的接口 方便性:向用戶提供使用外部設(shè)備的方便接口,使用戶編程時不考慮設(shè)備的復(fù)雜物理特性 統(tǒng)一性:對不同的設(shè)備采取統(tǒng)一的操作方式,在用戶程序中使用的是邏輯設(shè)備 邏輯設(shè)備與物理設(shè)備、屏蔽硬件細節(jié)(設(shè)備的物理細節(jié),錯誤處理,不同I/O的差異性),設(shè)備管理的目標和任務(wù)(續(xù)1),設(shè)備獨立性(設(shè)備無關(guān)性),目的: 提高操作系統(tǒng)的可適應(yīng)性和可擴展性 從用戶角度:用戶在編制程序時,使用邏輯設(shè)備名,由系統(tǒng)實現(xiàn)從邏輯設(shè)備到物理設(shè)備(實際設(shè)備)的轉(zhuǎn)換,并實施I/O操作 從系統(tǒng)角度:設(shè)計并實現(xiàn)IO軟件時,除了直接與設(shè)備打交道的低層軟件之外,其他部分的軟件不依賴于硬件,好
5、處: 設(shè)備分配時的靈活性 易于實現(xiàn)I/O重定向,(3)充分利用各種技術(shù)(通道,中斷,緩沖,異步I/O等)提高CPU與設(shè)備、設(shè)備與設(shè)備之間的并行工作能力,充分利用資源,提高資源利用率 并行性 均衡性(使設(shè)備充分忙碌),設(shè)備管理的目標和任務(wù)(續(xù)3),(4)保護 設(shè)備傳送或管理的數(shù)據(jù)應(yīng)該是安全的、不被破壞的、保密的,設(shè)備管理的目標和任務(wù)(續(xù)4),1.設(shè)備組成 IO設(shè)備一般由機械和電子兩部分組成 把這兩部分分開處理,以提供更加模塊化,更加通用的設(shè)計,二、I/O硬件特點,設(shè)備組成(續(xù)1),(1)物理設(shè)備 機械部分是設(shè)備本身(物理裝置) (2)設(shè)備控制器 電子部分叫做設(shè)備控制器或適配器 完成設(shè)備與主機間的
6、連接和通信 在小型和微型機中,它常采用印刷電路卡插入計算機主板上的總線插槽 通過若干接口寄存器或接口緩沖區(qū)與CPU通信,設(shè)備組成(續(xù)2),電子部分完成的工作 (端口)地址譯碼 按照主機與設(shè)備之間約定的格式和過程 接受計算機發(fā)來的數(shù)據(jù)和控制信號 向主機發(fā)送數(shù)據(jù)和狀態(tài)信號 將計算機的數(shù)字信號轉(zhuǎn)換成機械部分能識別的模擬信號,或反之 實現(xiàn)設(shè)備內(nèi)部硬件緩沖、數(shù)據(jù)加工等提高性能或增強功能,2.設(shè)備接口,操作系統(tǒng)將命令寫入控制器的接口寄存器(或接口緩沖區(qū))中,以實現(xiàn)輸入輸出,并從接口寄存器讀取狀態(tài)信息或結(jié)果信息 例如:IBM PC的軟盤控制器可接收15條命令,READ、WRITE、FORMAT、SEEK、R
7、ECALIBRATE,命令可以帶參數(shù),它們被一起送入控制器的寄存器中 當控制器接受一條命令后,可獨立于CPU完成指定操作,CPU可以轉(zhuǎn)去執(zhí)行其它運算。命令完成時,控制器產(chǎn)生一個中斷,CPU響應(yīng)中斷,控制轉(zhuǎn)給操作系統(tǒng)。CPU通過讀控制器寄存器中的信息,獲得操作結(jié)果和設(shè)備狀態(tài),控制器與設(shè)備之間的接口常常是一個低級接口。例如磁盤,可以按每個磁道8扇區(qū),每個扇區(qū)512個字節(jié)進行格式化。然而,實際從驅(qū)動器出來的卻是一連串的位流,以一個頭標(preamble)開始,然后是一個扇區(qū)的4096位(5128),最后是檢查和或錯誤校驗碼(ErrorC一C:ECC)。頭標是在對磁盤格式化時寫上的,它包括柱面和扇區(qū)數(shù)
8、,扇區(qū)的大小和類似的一些數(shù)據(jù) 控制器的任務(wù)是把串行的位流轉(zhuǎn)換為字節(jié)塊,并進行必要的錯誤修正。首先,控制器按位進行組裝,然后存入控制器內(nèi)部的緩沖區(qū)中形成以字節(jié)為單位的塊。在對塊驗證檢查和并證明無錯誤時,再將它復(fù)制到內(nèi)存中,設(shè)備接口(續(xù)1),接口電路中:多個寄存器 每個寄存器有唯一的一個地址,該地址稱為I/O端口地址 I/O指令形式與I/O地址是相互關(guān)聯(lián)的 主要有兩種形式: 內(nèi)存映像編址(內(nèi)存映像I/O模式) I/O獨立編址(I/O專用指令),3.I/O端口地址,存儲映像編址,分配給系統(tǒng)中所有端口的地址空間與內(nèi)存的地址空間統(tǒng)一編址 主機把I/O端口看作一個存儲單元,對I/O的讀寫操作等同于對存儲器
9、的操作 優(yōu)點 凡是可對存儲器操作的指令都可對I/O端口操作 不需要專門的I/O指令 I/O端口可占有較大的地址空間 缺點:占用內(nèi)存空間,I/O獨立編址,分配給系統(tǒng)中所有端口的地址空間是完全獨立的,與內(nèi)存的地址空間沒有關(guān)系 主機使用專門的I/O指令對端口進行操作 優(yōu)點 外部設(shè)備不占用內(nèi)存的地址空間 程序設(shè)計時,易于區(qū)分是對內(nèi)存操作還是對I/O端口操作 缺點:對I/O端口操作的指令類型少,操作不靈活 例子:8086/8088,分配給I/O端口的地址空間64K,0000H0FFFFH,只能用IN和OUT指令對其進行讀寫操作,1、直接I/O(輪詢) 由CPU負責在機器內(nèi)存與設(shè)備控制器數(shù)據(jù)寄存器之間進行
10、數(shù)據(jù)傳送 2、中斷驅(qū)動I/O 為了減少設(shè)備驅(qū)動程序不斷地詢問控制器狀態(tài)寄存器的開銷 當I/O操作結(jié)束后,由設(shè)備控制器主動通知設(shè)備驅(qū)動程序 3、DMA 4、通道,4.I/O控制方式,I/O控制方式(續(xù)1),設(shè)備驅(qū)動程序,控制寄存器,數(shù)據(jù)寄存器,狀態(tài)寄存器,設(shè)備控制器,從設(shè)備上讀數(shù)據(jù) ,數(shù)據(jù),應(yīng)用程序,系統(tǒng)接口,硬件接口,I/O控制方式(續(xù)2),設(shè)備驅(qū)動程序,控制寄存器,數(shù)據(jù)寄存器,狀態(tài)寄存器,設(shè)備控制器,從設(shè)備上讀數(shù)據(jù) ,數(shù)據(jù),應(yīng)用程序,設(shè)備處理程序,中斷處理程序,設(shè)備狀態(tài)表,IO軟件設(shè)計的基本思想分層 把軟件組織成為一系列的層 較低層軟件考慮硬件的特性,并向較高層軟件提供接口 較高層軟件不依賴
11、于硬件,并向用戶提供一個友好的、清晰的、簡單的、功能更強的接口,三、I/O軟件的組成,1.IO軟件的層次,I/O軟件各層的功能,(1)用戶進程層執(zhí)行輸入輸出系統(tǒng)調(diào)用,對IO數(shù)據(jù)進行格式化,為假脫機輸入輸出作準備 (2)獨立于設(shè)備的軟件實現(xiàn)設(shè)備的命名、設(shè)備的保護、成塊處理、緩沖技術(shù)和設(shè)備分配 (3)設(shè)備驅(qū)動程序設(shè)置設(shè)備寄存器、檢查設(shè)備的執(zhí)行狀態(tài) (4)中斷處理程序負責IO完成時,喚醒設(shè)備驅(qū)動程序進程,進行中斷處理 (5)硬件層實現(xiàn)物理IO的操作,2.設(shè)備驅(qū)動程序,與設(shè)備密切相關(guān)的代碼放在設(shè)備驅(qū)動程序中,每個設(shè)備驅(qū)動程序處理一種設(shè)備類型 每一個控制器都設(shè)有一個或多個設(shè)備寄存器,用來存放向設(shè)備發(fā)送的
12、命令和參數(shù)。設(shè)備驅(qū)動程序負責釋放這些命令,并監(jiān)督它們正確執(zhí)行,設(shè)備驅(qū)動程序(續(xù)1),一般,設(shè)備驅(qū)動程序的任務(wù)是接收來自與設(shè)備無關(guān)的上層軟件的抽象請求,并執(zhí)行這個請求 在設(shè)備驅(qū)動程序的進程釋放一條或多條命令后,系統(tǒng)有兩種處理方式,多數(shù)情況下,執(zhí)行設(shè)備驅(qū)動程序的進程必須等待命令完成,這樣,在命令開始執(zhí)行后,它阻塞自已,直到中斷處理時將它解除阻塞為止。而在其它情況下,命令執(zhí)行不必延遲就很快完成,3.設(shè)備獨立的軟件,雖然IO軟件中一部分是設(shè)備專用的,但大部分軟件是與設(shè)備無關(guān)的。設(shè)備驅(qū)動程序與設(shè)備獨立軟件之間的確切界限是依賴于具體系統(tǒng)的,設(shè)備獨立的軟件(續(xù)1),設(shè)備獨立的軟件(續(xù)2),1.獨立于設(shè)備的軟
13、件的基本任務(wù)是實現(xiàn)所有設(shè)備都需要的功能,并且向用戶級軟件提供一個統(tǒng)一的接口 2.如何給文件和設(shè)備這樣的對象命名是操作系統(tǒng)中的一個主要課題。獨立于設(shè)備的軟件負責把設(shè)備的符號名映射到正確的設(shè)備驅(qū)動上 3.設(shè)備保護 系統(tǒng)如何防止無權(quán)存取設(shè)備的用戶存取設(shè)備呢?,設(shè)備獨立的軟件(續(xù)3),4.不同的磁盤可以采用不同的扇區(qū)尺寸。向較高層軟件掩蓋這一事實并提供大小統(tǒng)一的塊尺寸,這正是設(shè)備獨立軟件的一個任務(wù)。它可將若干扇區(qū)合成一個邏輯塊。這樣,較高層的軟件只與抽象設(shè)備打交道,獨立于物理扇區(qū)的尺寸而使用等長的邏輯塊 5.緩沖技術(shù) 6.設(shè)備分配 7.出錯處理,4.用戶空間的IO軟件,盡管大部分IO軟件都包含在操作系
14、統(tǒng)中,但仍有一小部分是由與用戶程序連接在一起的庫過程,甚至完全由運行于核外的程序構(gòu)成。系統(tǒng)調(diào)用,包括IO系統(tǒng)調(diào)用,通常由庫過程實現(xiàn) 這些過程所做的工作只是將系統(tǒng)調(diào)用時所用的參數(shù)放在合適的位置,由其它的IO過程實際實現(xiàn)真正的操作,四、設(shè)備相關(guān)技術(shù),1.Spooling(虛擬設(shè)備)技術(shù) 一個虛擬設(shè)備 一個資源轉(zhuǎn)換技術(shù) (用空間,如輸入,輸出等換取CPU時間) 解決問題: 在進程所需物理設(shè)備不存在或被占用時使用該設(shè)備,假若進程打開打印機特殊文件后幾小時內(nèi)無所事事,其他進程什么都打印不了! 解決方案: 創(chuàng)建值班(精靈)進程(daemon)、SPOOLing目錄 進程首先生成要打印的文件,放入SPOOL
15、ing目錄 值班進程:唯一獲準使用打印機特殊文件的進程 用以打印SPOOLing目錄里的文件 通過禁止對特殊文件的直接使用、提高了使用效率,打印機的SPOOLing值班進程,網(wǎng)絡(luò)的SPOOLing值班進程,SPOOLing技術(shù)今天仍被廣泛使用 網(wǎng)絡(luò)文件傳送 先把文件送到網(wǎng)絡(luò)SPOOLing目錄,然后網(wǎng)絡(luò)值班進程把它取出并傳遞到目標地址 Internet電子郵件系統(tǒng) 為了寄郵,調(diào)用電子郵件程序 待發(fā)信存在SPOOLing中供以后傳輸 注意:SPOOLing只提高設(shè)備利用率,縮短用戶程序執(zhí)行時間,并不提高CPU利用率,(1)定義:通道是獨立于CPU的專門負責數(shù)據(jù)輸入/輸出傳輸工作的處理機,對外部設(shè)
16、備實現(xiàn)統(tǒng)一管理,代替CPU對輸入/輸出操作進行控制,從而使輸入,輸出操作可與CPU并行操作。 可以執(zhí)行通道程序 (2)引入通道的目的 為了使CPU從I/O事務(wù)中解脫出來,同時為了提高CPU與設(shè)備,設(shè)備與設(shè)備之間的并行工作能力,2.通道技術(shù),字節(jié)多路通道 字節(jié)多路通道以字節(jié)為單位傳輸信息,它可以分時地執(zhí)行多個通道程序。當一個通道程序控制某臺設(shè)備傳送一個字節(jié)后,通道硬件就控制轉(zhuǎn)去執(zhí)行另一個通道程序,控制另一臺設(shè)備傳送信息 主要連接以字節(jié)為單位的低速I/O設(shè)備,如打印機,終端 以字節(jié)為單位交叉?zhèn)鬏?,當一臺傳送一個字節(jié)后,立即轉(zhuǎn)去為另一臺傳送字節(jié),(3)分類,分類(續(xù)1),選擇通道 選擇通道是以成組方
17、式工作的,即每次傳送一批數(shù)據(jù),故傳送速度很高。選擇通道在一段時間內(nèi)只能執(zhí)行一個通道程序,只允許一臺設(shè)備進行數(shù)據(jù)傳輸,分類(續(xù)2),當這臺設(shè)備數(shù)據(jù)傳輸完成后,再選擇與通道連接的另一臺設(shè)備,執(zhí)行相應(yīng)的通道程序 主要連接磁盤,磁帶等高速I/O設(shè)備,選擇通道,分類(續(xù)3),成組多路通道 它結(jié)合了選擇通道傳送速度高和字節(jié)多路通道能進行分時并行操作的優(yōu)點。它先為一臺設(shè)備執(zhí)行一條通道指令,然后自動轉(zhuǎn)接,為另一臺設(shè)備執(zhí)行一條通道指令 主要連接高速設(shè)備 這樣,對于連接多臺磁盤機的數(shù)組多路通道,它可以啟動它們同時執(zhí)行移臂定位操作,然后,按序交叉地傳輸一批批數(shù)據(jù)。數(shù)據(jù)多路通道實際上是對通道程序采用多道程序設(shè)計的硬件
18、實現(xiàn),(4)硬件連接結(jié)構(gòu),通道:執(zhí)行通道程序,向控制器發(fā)出命令,并具有向CPU發(fā)中斷信號的功能。 一旦CPU發(fā)出指令,啟動通道,則通道獨立于CPU工作。一個通道可連接多個控制器,一個控制器可連接多個設(shè)備,形成樹形交叉連接 主要目的是啟動外設(shè)時: 提高了控制器效率 提高可靠性 提高并行度,通道連接,交叉連接,(5)通道工作原理 通道相當于一個功能簡單的處理機,包含通道指令(空操作,讀操作,寫操作,控制,轉(zhuǎn)移操作),并可執(zhí)行用這些指令編寫的通道程序,通道工作原理,通道運算控制部件 通道地址字 CAW: 記錄通道程序在內(nèi)存中的地址 通道命令字 CCW: 保存正在執(zhí)行的通道指令 通道狀態(tài)字 CSW:
19、存放通道執(zhí)行后的返回結(jié)果 通道數(shù)據(jù)字 CDW:存放傳輸數(shù)據(jù) 通道和CPU共用內(nèi)存,通過周期竊取方式取得,通道工作原理(續(xù)1),通道命令及格式 用于I/O操作的命令主要有兩種: I/O指令:啟動通道程序 通道命令:對I/O操作進行控制 讀、反讀、寫、測試設(shè)備狀態(tài)的數(shù)據(jù)傳輸命令、用于設(shè)備控制的命令(磁帶反繞、換頁)、實現(xiàn)通道程序內(nèi)部控制的轉(zhuǎn)移命令,通道工作原理(續(xù)2),命令格式一般包括:操作碼、數(shù)據(jù)傳輸內(nèi)存地址、特征位、計數(shù)器 編制一個通道程序,從磁帶機上讀入200字節(jié)的信息,送入內(nèi)存(1000)16 開始的單元。 通道命令碼:“07”反繞 “02”讀 CCW1 X “07” * X “40” 1
20、; CCW2 X “02” 1000 X “00” 200;,通道工作原理(續(xù)3),工作原理 CPU:執(zhí)行用戶程序,當遇到I/O請求時,可根據(jù)該請求生成通道程序放入內(nèi)存(也可事先編好放入內(nèi)存),并將該通道程序的首地址放入CAW中;之后執(zhí)行“啟動I/O”指令,啟動通道工作,通道工作原理(續(xù)4),通道:接收到“啟動I/O”指令后,從CAW中取出通道程序的首地址,并根據(jù)首地址取出第一條指令放入CCW中,同時向CPU發(fā)回答信號,使CPU可繼續(xù)執(zhí)行其他程序,而通道則開始執(zhí)行通道程序,完成傳輸工作,通道工作原理(續(xù)5),(通道程序完成實際I/O,啟動I/O設(shè)備,執(zhí)行完畢后,如果還有下一條指令,則繼續(xù)執(zhí)行,
21、 否則表示傳輸完成) 當通道傳輸完成最后一條指令時,向CPU發(fā)I/O中斷,并且通道停止工作。CPU接收中斷信號,從CSW中取得有關(guān)信息,決定下一步做什么,通道工作原理(續(xù)6),通道的發(fā)展,新的通道思想綜合了許多新的技術(shù) 在個人計算機中,芯片組中專門I/O處理的芯片,稱為IOP(IO Processor),發(fā)揮通道的作用 IBM 390 中,沿用了輸入輸出通道概念 IBM于1998年推出光纖通道技術(shù)(稱為FICON),可通過 FICON 連接多達127個大容量I/O設(shè)備。傳輸速度是333MHzs,未來將達到1GHzs。 光纖通道技術(shù)具有數(shù)據(jù)傳輸速率高、傳輸距離遠,可簡化大型存儲系統(tǒng)設(shè)計的優(yōu)點 在
22、大容量高速存儲,如大型數(shù)據(jù)庫、多媒體、數(shù)字影像等應(yīng)用領(lǐng)域,有廣泛前景,3.DMA技術(shù),不用DMA時,磁盤如何讀: 首先,控制器從磁盤驅(qū)動器串行地一位一位地讀一個塊,直到將整塊信息放入控制器的內(nèi)部緩沖區(qū)中 其次,它做和校驗計算,以核實沒有讀錯誤發(fā)生 然后控制器產(chǎn)生一個中斷。CPU響應(yīng)中斷,控制轉(zhuǎn)給操作系統(tǒng)。當操作系統(tǒng)開始運行時,它重復(fù)地從控制器緩沖區(qū)中一次一個字節(jié)或一個字地讀這個磁盤塊的信息,并將其送入內(nèi)存中,DMA技術(shù),數(shù)據(jù)在內(nèi)存與I/O設(shè)備間的直接成塊傳送 CPU在開始時向設(shè)備發(fā)“傳送一塊”命令,結(jié)束時進行相應(yīng)處理,實際操作由DMA硬件直接完成 DMA的功能可以以獨立的DMA部件在系統(tǒng)I/O
23、總線上完成,也可整合到I/O部件中完成 DMA通過系統(tǒng)總線代替CPU管理數(shù)據(jù)的存入或取出 當CPU不需要系統(tǒng)總線時可以使用總線 DMA可以強迫CPU暫時延遲其他操作,獲取一個總線周期(周期竊?。?不需要CPU介入,因而減輕了CPU負擔,控制器按照指定存儲器地址,把第一個字節(jié)送入內(nèi)存 然后,按指定字節(jié)數(shù)進行數(shù)據(jù)傳送 每當傳送一個字節(jié)后,字節(jié)計數(shù)器值減1,直到字節(jié)計數(shù)器等于0 此時,控制器引發(fā)中斷,通知操作系統(tǒng),操作完成,CPU提供 待讀取塊的磁盤地址 目標存儲地址 待讀取字節(jié)數(shù) 整塊數(shù)據(jù)讀進緩沖區(qū) 核準校驗,DMA工作示例 (以硬盤為例),(1)緩沖技術(shù)的引入 最早引入:CPU與I/O設(shè)備之間
24、凡是數(shù)據(jù)到達和離去速度不匹配的地方均可采用緩沖技術(shù) 目的: 緩解CPU與I/O設(shè)備之間速度不匹配的矛盾 提高CPU與I/O設(shè)備之間的并行性 減少了I/O設(shè)備對CPU的中斷請求次數(shù),放寬CPU對中斷響應(yīng)時間的要求,4. 緩沖技術(shù),(2)緩沖區(qū)設(shè)置 硬緩沖: 在設(shè)備中設(shè)置緩沖區(qū),由硬件實現(xiàn) 軟緩沖: 在內(nèi)存中開辟一個空間,用作緩沖區(qū),緩沖技術(shù)(續(xù)1),(3)緩沖區(qū)管理 單緩沖 當用戶進程發(fā)出I/O請求時,操作系統(tǒng)在內(nèi)存的系統(tǒng)空間為該操作分配一個緩沖區(qū),可以實現(xiàn)預(yù)讀和滯后寫 雙緩沖 可以實現(xiàn)用戶數(shù)據(jù)區(qū)緩沖區(qū)之間交換數(shù)據(jù)和緩沖區(qū)外設(shè)之間交換數(shù)據(jù)的并行,緩沖技術(shù)(續(xù)2),緩沖池: 又稱循環(huán)緩沖 多個緩沖
25、區(qū)連接起來統(tǒng)一管理 引入系統(tǒng)緩沖池,采用有限緩沖區(qū)的生產(chǎn)者/消費者模型對緩沖池中的緩沖區(qū)進行循環(huán)使用 常采用多緩沖管理 緩沖區(qū)結(jié)合預(yù)讀和滯后寫技術(shù)對具有重復(fù)性及陣發(fā)性I/O進程、提高I/O速度很有幫助,緩沖技術(shù)(續(xù)3),(4)例子 終端輸入軟件中的鍵盤驅(qū)動程序 任務(wù)之一:收集字符 兩種常見的字符緩沖方法: 公共緩沖池(驅(qū)動程序中) 終端數(shù)據(jù)結(jié)構(gòu)緩沖,緩沖技術(shù)(續(xù)4),緩沖技術(shù)(續(xù)5),緩沖技術(shù)(續(xù)6),(5)UNIX的緩沖技術(shù) 采用緩沖池技術(shù),來平滑和加快文件信息從內(nèi)存到磁盤的傳輸 并充分利用以前從磁盤讀入已傳入用戶區(qū)、但仍在緩沖區(qū)的數(shù)據(jù) 即:當從磁盤上讀數(shù)據(jù)時,如果數(shù)據(jù)已經(jīng)在緩沖區(qū)中,則系統(tǒng)
26、直接從緩沖區(qū)中讀出,而不必從盤上讀;當數(shù)據(jù)不在緩沖區(qū)時,系統(tǒng)首先把數(shù)據(jù)從磁盤傳送到緩沖區(qū),再從緩沖區(qū)讀出 好處:盡可能減少磁盤I/O的次數(shù),提高系統(tǒng)運行的速度,緩沖技術(shù)(續(xù)7),UNIX System 由200個緩沖區(qū)組成的緩沖池 每個緩沖區(qū)的長度可以是512字節(jié)或1024字節(jié) 每個緩沖區(qū)由兩部分組成: 緩沖數(shù)據(jù)區(qū):存放數(shù)據(jù)的區(qū)域 緩沖控制塊或緩沖首部:用于控制的區(qū)域 系統(tǒng)通過緩沖控制塊來實現(xiàn)對緩沖區(qū)的管理,緩沖技術(shù)(續(xù)8),說明: 邏輯設(shè)備號和盤塊號分別標志出文件系統(tǒng)和數(shù)據(jù)所在的盤塊號,是緩沖區(qū)的唯一標志 狀態(tài)項指明了該緩沖區(qū)當前的狀態(tài):忙閑、上鎖開鎖、是否延遲寫、數(shù)據(jù)有效性等 兩組指針(a
27、v和b)用于對緩沖池的分配管理,緩沖技術(shù)(續(xù)9),緩沖池結(jié)構(gòu): 空閑緩沖區(qū)隊列(空閑av隊列) 隊列頭部為bfreelist 系統(tǒng)初始化時,所有緩沖區(qū)按序號大小掛在空閑av隊列上,當申請一個緩沖區(qū)時,從空閑av隊列隊首取下一個緩沖區(qū),而釋放一個緩沖區(qū)時將其掛入空閑av隊列隊尾,緩沖技術(shù)(續(xù)10),散列隊列(設(shè)備緩沖隊列、設(shè)備b鏈) 鏈接所有分配給各類設(shè)備使用的緩沖區(qū) buf用b雙向鏈,可以有64個隊列,每個隊列頭部有頭標 設(shè)備為b_dev上的邏輯塊b在散列隊列的頭標為: i=(b_dev+b) mod 64 設(shè)備IO請求隊列:buf用av單向鏈 空設(shè)備隊列:buf用b雙向鏈,隊列頭部為bfre
28、elist,緩沖技術(shù)(續(xù)11),每個buf同時在av鏈和b鏈: 開始:在空閑av鏈和空設(shè)備隊列 開始IO請求:在設(shè)備IO請求隊列和散列隊列 IO完成:在空閑av鏈和散列隊列 后續(xù)IO請求:在設(shè)備IO請求隊列和散列隊列,在散列隊列改變隊列,緩沖技術(shù)(續(xù)12),當進程想從指定的盤塊讀取數(shù)據(jù)時,系統(tǒng)根據(jù)盤塊號從散列隊列中查找,如找到緩沖區(qū),則將該緩沖區(qū)狀態(tài)標記為“忙”,并從空閑av隊列中取下,接著完成從緩沖區(qū)到內(nèi)存用戶區(qū)的數(shù)據(jù)傳送。如果在散列隊列中未找到時,則從空閑av隊列隊首摘取一個緩沖區(qū),插入設(shè)備I/O請求隊列;并從原散列隊列中取下,插入由讀入信息盤塊號確定的新的散列隊列中。當數(shù)據(jù)從磁盤塊讀入到
29、緩沖區(qū)后,緩沖區(qū)從設(shè)備I/O請求隊列取下。當系統(tǒng)完成從緩沖區(qū)到內(nèi)存用戶區(qū)的數(shù)據(jù)傳送后,要把緩沖區(qū)釋放,鏈入空閑av隊列隊尾,緩沖技術(shù)(續(xù)13),當數(shù)據(jù)從磁盤塊讀入到緩沖區(qū),并傳送到內(nèi)存用戶區(qū)后,該緩沖區(qū)一直保留在原散列隊列中,即它的數(shù)據(jù)一直有效。如它又要被使用,則又要從空閑av隊列鏈中取下,使用完后插入到空閑av隊列隊尾。如它一直未使用,則該緩沖區(qū)從空閑av隊列隊尾慢慢升到隊首,最后被重新分配,舊的盤塊數(shù)據(jù)才被置換 系統(tǒng)對緩沖區(qū)的分配是采用近似LRU算法。,1. 設(shè)備的分配與回收 當某進程向系統(tǒng)提出I/O請求時,設(shè)備分配程序按一定策略分配設(shè)備、控制器和通道,形成一條數(shù)據(jù)傳輸通路,以供主機和設(shè)備
30、間信息交換,五、設(shè)備管理,(1)設(shè)備管理有關(guān)的數(shù)據(jù)結(jié)構(gòu) 描述設(shè)備、控制器等部件的表格:系統(tǒng)中常常為每一個部件、每一臺設(shè)備分別設(shè)置一張表格,常稱為設(shè)備表或部件控制塊。這類表格具體描述設(shè)備的類型、標識符、狀態(tài),以及當前使用者的進程標識符等 建立同類資源的隊列:系統(tǒng)為了方便對I/O設(shè)備的分配管理,通常在設(shè)備表的基礎(chǔ)上通過指針將相同物理屬性的設(shè)備連成隊列(稱設(shè)備隊列) 面向進程I/O請求的動態(tài)數(shù)據(jù)結(jié)構(gòu):每當進程發(fā)出I/O請求時,系統(tǒng)建立一張表格(稱I/O請求包),將此次I/O請求的參數(shù)填入表中,同時也將該I/O有關(guān)的系統(tǒng)緩沖區(qū)地址等信息填入表中。I/O請求包隨著I/O的完成而被刪除 建立I/O隊列:如
31、請求包隊列,設(shè)備分配與回收(續(xù)2),(2)設(shè)備有關(guān)的數(shù)據(jù)結(jié)構(gòu) 設(shè)備控制塊DCB(設(shè)備控制表DCT) 控制器控制塊COCB(控制器控制表COCT) 通道控制塊CHCB(通道控制表CHCT) 系統(tǒng)設(shè)備表SDT 根據(jù)用戶請求的I/O設(shè)備的邏輯名,查找邏輯設(shè)備和物理設(shè)備的映射表;以物理設(shè)備為索引,查找SDT,找到該設(shè)備所連接的DCT;繼續(xù)查找與該設(shè)備連接的COCT和CHCT,就找到了一條通路,設(shè)備分配與回收(續(xù)3),獨占設(shè)備的分配 在申請設(shè)備時,如果設(shè)備空閑,就將其獨占,不再允許其他進程申請使用,一直等到該設(shè)備被釋放,才允許被其他進程申請使用 考慮效率問題,并避免由于不合理的分配策略造成死鎖 靜態(tài)分配
32、: 在進程運行前, 完成設(shè)備分配;運行結(jié)束時,收回設(shè)備 缺點:設(shè)備利用率低 動態(tài)分配: 在進程運行過程中,當用戶提出設(shè)備要求時,進行分配,一旦停止使用立即收回 優(yōu)點:效率好;缺點:分配策略不好時, 產(chǎn)生死鎖,2.設(shè)備分配策略,分時式共享設(shè)備分配 所謂分時式共享就是以一次I/O為單位分時使用設(shè)備,不同進程的I/O操作請求以排隊方式分時地占用設(shè)備進行I/O 由于同時有多個進程同時訪問,且訪問頻繁,就會影響整個設(shè)備使用效率,影響系統(tǒng)效率。因此要考慮多個訪問請求到達時服務(wù)的順序,使平均服務(wù)時間越短越好,設(shè)備分配策略(續(xù)1),以SPOOLing方式使用外設(shè) SPOOLing 技術(shù)是在批處理操作系統(tǒng)時代引
33、入的,即所謂假脫機輸入/輸出技術(shù)。把這種技術(shù)用于對設(shè)備的使用實質(zhì)就是對輸入輸出操作成批處理。 例如:所有輸出數(shù)據(jù)已經(jīng)寫到文件當中,并排到打印輸出隊列,打印進程申請占用打印機后,成批讀出文件中數(shù)據(jù),并送打印機打印出去,設(shè)備分配策略(續(xù)2),為了控制I/O傳輸,系統(tǒng)為每類設(shè)備編制設(shè)備驅(qū)動程序 任務(wù):主要負責接收和分析從設(shè)備分配轉(zhuǎn)來的信息,并根據(jù)設(shè)備分配的結(jié)果,結(jié)合具體物理設(shè)備特性完成以下具體工作,3.設(shè)備驅(qū)動程序,(1) 接受來自上層、與設(shè)備無關(guān)軟件的抽象I/O請求,將該請求排在請求隊列末尾,檢查I/O請求的合法性 (2)執(zhí)行特定的緩沖區(qū)策略:根據(jù)請求傳輸?shù)臄?shù)據(jù)量,組織I/O緩沖隊列,利用I/O緩沖對數(shù)據(jù)進行加工,包括數(shù)據(jù)格式處理和編碼轉(zhuǎn)換 (3)對各種可能的有關(guān)設(shè)備排隊、掛起、喚醒等操作進行處理 (4)向有關(guān)的輸入輸出設(shè)備的各種控制器發(fā)出控制命
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 郵政面試題解答技巧及答案
- 興禾電工面試題及答案
- 園林綠植養(yǎng)護從業(yè)者專業(yè)技能測試題集
- 高中物理實驗中數(shù)字素養(yǎng)培養(yǎng)的學科背景策略分析教學研究課題報告
- 2025年CFA考試真題試卷及解析
- 數(shù)據(jù)科學企業(yè)研究經(jīng)理應(yīng)聘題目解析
- 版權(quán)合同相關(guān)法律法規(guī)考試題庫含答案
- 廣告創(chuàng)意策劃崗位面試題庫
- 2025福建省高速公路集團有限公司夏季招聘50人筆試參考題庫附帶答案詳解(3卷合一版)
- 2025福建廈門禾豐房屋征遷服務(wù)有限公司招聘2人筆試參考題庫附帶答案詳解(3卷)
- 實施指南(2025)《HGT 6114-2022 廢酸中重金屬快速檢測方法 能量 - 色散 X 射線熒光光譜法》
- 廚師廚工考試題及答案
- 理化檢測知識培訓課件
- 2025領(lǐng)導(dǎo)干部政治理論知識網(wǎng)絡(luò)培訓題庫及參考答案
- 醫(yī)院醫(yī)療質(zhì)量同質(zhì)化管理辦法
- GB/T 31526-2025電子商務(wù)平臺服務(wù)質(zhì)量評價
- 智能管道泄漏檢測技術(shù)可行性分析報告
- AGV小車安全培訓課件
- 客流統(tǒng)計施工方案
- T∕CSTM 00348-2021 粉末冶金高速工具鋼
- 2025年《鐵道概論》考試復(fù)習題庫(含答案)
評論
0/150
提交評論