第五章設(shè)備管理_第1頁(yè)
第五章設(shè)備管理_第2頁(yè)
第五章設(shè)備管理_第3頁(yè)
第五章設(shè)備管理_第4頁(yè)
第五章設(shè)備管理_第5頁(yè)
已閱讀5頁(yè),還剩134頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

2023/2/6第五章設(shè)備管理1I/O系統(tǒng)是計(jì)算機(jī)系統(tǒng)的一個(gè)重要組成部分。其包括有用于實(shí)現(xiàn)信息輸入、輸出和存儲(chǔ)功能的設(shè)備和相應(yīng)的設(shè)備控制器,在有的大、中型機(jī)中,還有I/O通道或I/O處理機(jī)。設(shè)備管理的對(duì)象主要是I/O設(shè)備,還可能涉及設(shè)備控制器和I/O通道。設(shè)備管理的基本任務(wù)是完成用戶提出的I/O請(qǐng)求,提高I/O速率以及提高I/O設(shè)備的利用率。設(shè)備管理的主要功能有:緩沖區(qū)的管理、設(shè)備分配、設(shè)備處理、虛擬設(shè)備及實(shí)現(xiàn)設(shè)備獨(dú)立性等。I/O設(shè)備不僅種類繁多,而且它們的特性和操作方式相差很大,使得設(shè)備管理成為操作系統(tǒng)中最繁雜且與硬件最緊密相關(guān)的部分。第五章設(shè)備管理2023/2/6第五章設(shè)備管理2I/O設(shè)備管理系統(tǒng)結(jié)構(gòu)圖設(shè)備管理概述操作系統(tǒng)I/O硬件管理I/O軟件管理上層用戶程序(應(yīng)用層)設(shè)備控制器控制寄存器底層硬件設(shè)備(物理層)中斷處理程序設(shè)備驅(qū)動(dòng)程序設(shè)備獨(dú)立性軟件用戶層軟件狀態(tài)寄存器數(shù)據(jù)寄存器2023/2/6第五章設(shè)備管理3第五章設(shè)備管理5.1I/O系統(tǒng)5.2I/O控制方式5.3緩沖管理5.4I/O軟件5.5設(shè)備分配5.6磁盤存儲(chǔ)器管理2023/2/6第五章設(shè)備管理45.1I/O系統(tǒng)5.1.1I/O設(shè)備5.1.2設(shè)備控制器5.1.3I/O通道5.1.4總線系統(tǒng)2023/2/6第五章設(shè)備管理5I/O設(shè)備的特點(diǎn)分析操作系統(tǒng)需要管理的最復(fù)雜的資源——I/O設(shè)備I/O設(shè)備種類繁多,工作模式各不相同I/O設(shè)備數(shù)據(jù)多樣,處理方式各不相同I/O設(shè)備性能參差,運(yùn)行控制多種多樣最容易成為計(jì)算機(jī)系統(tǒng)的瓶頸——I/O設(shè)備很多I/O設(shè)備使用機(jī)械操作,導(dǎo)致其速度較CPU相差很大進(jìn)程運(yùn)行中的輸入輸出操作可能造成系統(tǒng)運(yùn)行的性能瓶頸I/O管理:如何最大限度保證I/O設(shè)備與CPU的并行工作最實(shí)用、最體現(xiàn)操作系統(tǒng)特色的工作——I/O管理兼容性:操作系統(tǒng)最難以完成的使命標(biāo)準(zhǔn)化:IT技術(shù)迅速普及發(fā)展的本質(zhì)高性能:I/O設(shè)備發(fā)展的主要目標(biāo)I/O硬件管理2023/2/6第五章設(shè)備管理6設(shè)備的分類1.按使用特性分:存儲(chǔ)設(shè)備:磁帶、磁盤、磁鼓等輸入輸出設(shè)備:輸入設(shè)備(鍵盤、鼠標(biāo)、掃描儀、視頻攝像、各類傳感器等)、輸出設(shè)備(打印機(jī)、顯示器、繪圖儀、數(shù)字視頻顯示設(shè)備、音響輸出設(shè)備等)和交互式設(shè)備(集成上述兩類設(shè)備,利用輸入設(shè)備接受用戶命令,并通過輸出設(shè)備同步顯示用戶命令及命令執(zhí)行的結(jié)果)2.按信息交換的單位分:塊設(shè)備:以數(shù)據(jù)塊為單位存儲(chǔ)、傳輸信息,如磁盤、磁帶等字符設(shè)備:以字符為單位存儲(chǔ)、傳輸信息,如鍵盤、終端、打印機(jī)等2023/2/6第五章設(shè)備管理7設(shè)備的分類3.按設(shè)備的共享屬性分

獨(dú)占設(shè)備:在一段時(shí)間內(nèi)只能有一個(gè)進(jìn)程使用的設(shè)備,即臨界資源。多個(gè)并發(fā)進(jìn)程,應(yīng)互斥地訪問這類設(shè)備。這類設(shè)備如果分配不當(dāng),可能會(huì)造成死鎖。如打印機(jī)、磁帶等

共享設(shè)備:在一段時(shí)間內(nèi)可有多個(gè)進(jìn)程共同使用的設(shè)備,多個(gè)進(jìn)程以交叉的方式來使用設(shè)備,其資源利用率高。如硬盤

虛擬設(shè)備:嚴(yán)格來講,虛擬設(shè)備是一種設(shè)備管理的技術(shù)。通過虛擬技術(shù)將一臺(tái)獨(dú)占設(shè)備變換為若干臺(tái)邏輯設(shè)備,共若干個(gè)用戶(進(jìn)程)同時(shí)使用。2023/2/6第五章設(shè)備管理8設(shè)備的分類4.按數(shù)據(jù)傳輸率分高速設(shè)備:磁帶、磁盤、光盤等。傳輸速率:數(shù)百個(gè)千字節(jié)-千兆字節(jié)/S中速設(shè)備:行式打印機(jī)、激光打印機(jī)等。傳輸速率:數(shù)千個(gè)字節(jié)-數(shù)十萬個(gè)字節(jié)/S低速設(shè)備:鍵盤、鼠標(biāo)、語(yǔ)音輸入和輸出設(shè)備等。傳輸速率:幾個(gè)字節(jié)-數(shù)百個(gè)字節(jié)/S2023/2/6第五章設(shè)備管理9設(shè)備與控制器之間的接口通常設(shè)備不直接與CPU進(jìn)行通信,而是與設(shè)備控制器通信,因此在I/O設(shè)備中應(yīng)含有與設(shè)備控制器間的接口,在該接口中有三類信號(hào),各對(duì)應(yīng)一條信號(hào)線。緩沖轉(zhuǎn)換器控制邏輯I/O設(shè)備信號(hào)數(shù)據(jù)數(shù)據(jù)信號(hào)線狀態(tài)信號(hào)線控制信號(hào)線至設(shè)備控制器2023/2/6第五章設(shè)備管理10

數(shù)據(jù)信號(hào)線:用于在設(shè)備和設(shè)備控制器之間傳送數(shù)據(jù)信號(hào)。對(duì)輸入設(shè)備而言,外界輸入的信號(hào)經(jīng)轉(zhuǎn)換器轉(zhuǎn)換后,先送入緩沖器中,當(dāng)數(shù)據(jù)量達(dá)到一定比特?cái)?shù)后,再?gòu)木彌_器通過一組數(shù)據(jù)信號(hào)線傳送給設(shè)備控制器。對(duì)輸出設(shè)備而言,則是將從設(shè)備控制器經(jīng)過數(shù)據(jù)信號(hào)線傳送來的一批數(shù)據(jù)先暫存于緩沖器中,經(jīng)轉(zhuǎn)換器作適當(dāng)轉(zhuǎn)換后,再逐個(gè)字符地輸出。

控制信號(hào)線:作為設(shè)備控制器向I/O設(shè)備發(fā)送控制信號(hào)時(shí)的通路。該信號(hào)規(guī)定了設(shè)備將要執(zhí)行的操作,如讀操作(由設(shè)備向控制器傳送數(shù)據(jù))或?qū)懖僮鳎◤目刂破鹘邮諗?shù)據(jù)),或執(zhí)行磁頭移動(dòng)等操作。

狀態(tài)信號(hào)線:用于傳送指示設(shè)備當(dāng)前狀態(tài)的信號(hào)。設(shè)備的當(dāng)前狀態(tài)有正在讀(或?qū)懀?;設(shè)備已讀(寫)完成,并準(zhǔn)備好新的數(shù)據(jù)傳送。緩沖轉(zhuǎn)換器控制邏輯I/O設(shè)備信號(hào)數(shù)據(jù)數(shù)據(jù)信號(hào)線狀態(tài)信號(hào)線控制信號(hào)線至設(shè)備控制器2023/2/6第五章設(shè)備管理11設(shè)備控制器

設(shè)備控制器其主要職責(zé)是控制一個(gè)或多個(gè)I/O設(shè)備,以實(shí)現(xiàn)I/O設(shè)備和計(jì)算機(jī)之間的數(shù)據(jù)交換。它是CPU與I/O設(shè)備之間的接口,它接收從CPU發(fā)來的命令,并去控制設(shè)備工作,使CPU從繁雜的設(shè)備控制事務(wù)中解脫出來??煞殖蓛深悾河糜诳刂谱址O(shè)備的控制器和用于控制塊設(shè)備的控制器。有的控制器還可以處理兩個(gè)、四個(gè)或八個(gè)同類設(shè)備。2023/2/6第五章設(shè)備管理12設(shè)備控制器的基本功能接受和識(shí)別命令:CPU可以向控制器發(fā)送多種不同的命令,設(shè)備控制器應(yīng)能接收并識(shí)別這些命令。因此應(yīng)具有相應(yīng)的控制寄存器。數(shù)據(jù)交換:實(shí)現(xiàn)CPU與控制器之間、控制器與設(shè)備之間的數(shù)據(jù)交換。須設(shè)置數(shù)據(jù)寄存器。標(biāo)識(shí)和報(bào)告設(shè)備狀態(tài):控制器應(yīng)記下設(shè)備的狀態(tài)供CPU了解。應(yīng)設(shè)置狀態(tài)寄存器。地址識(shí)別:系統(tǒng)中每個(gè)設(shè)備都有一個(gè)地址,設(shè)備控制器必須能夠識(shí)別它所控制的每個(gè)設(shè)備的地址。應(yīng)配置地址譯碼器。數(shù)據(jù)緩沖:因I/O設(shè)備的速率低而CPU和內(nèi)存的速率很高,故在設(shè)備控制器中必須設(shè)置一緩沖器。差錯(cuò)控制:對(duì)由I/O設(shè)備傳來的數(shù)據(jù)進(jìn)行差錯(cuò)檢測(cè)。2023/2/6第五章設(shè)備管理13設(shè)備控制器的組成設(shè)備控制器與處理機(jī)的接口:用于實(shí)現(xiàn)CPU與設(shè)備控制器之間的通信。共有三類信號(hào)線:數(shù)據(jù)線、地址線和控制線。設(shè)備控制器與設(shè)備的接口:在一個(gè)設(shè)備控制器上,可以連接一個(gè)或多個(gè)設(shè)備,控制器中便有一個(gè)或多個(gè)設(shè)備接口,一個(gè)接口連接一臺(tái)設(shè)備。在每個(gè)接口中都存在數(shù)據(jù)、控制和狀態(tài)三種類型的信號(hào)。I/O邏輯:用于實(shí)現(xiàn)對(duì)設(shè)備的控制。它通過一組控制線與處理機(jī)交互,處理機(jī)利用該邏輯向控制器發(fā)送I/O命令;I/O邏輯對(duì)收到的命令進(jìn)行譯碼。2023/2/6第五章設(shè)備管理14設(shè)備控制器的組成數(shù)據(jù)寄存器控制/狀態(tài)寄存器I/O邏輯控制器與設(shè)備接口1控制器與設(shè)備接口i數(shù)據(jù)線地址線控制線數(shù)據(jù)數(shù)據(jù)狀態(tài)狀態(tài)控制控制2023/2/6第五章設(shè)備管理15I/O通道

通道是一個(gè)獨(dú)立于CPU的專管輸入輸出控制的處理機(jī)。簡(jiǎn)稱I/O處理機(jī)。它對(duì)外設(shè)實(shí)現(xiàn)統(tǒng)一管理代替CPU對(duì)I/O操作進(jìn)行控制使CPU和外設(shè)可以并行工作引入通道的目的:為了使CPU從I/O事務(wù)中解脫出來同時(shí)為了提高CPU與設(shè)備、設(shè)備與設(shè)備之間的并行度2023/2/6第五章設(shè)備管理16通道與CPU的區(qū)別指令類型單一:通道硬件比較簡(jiǎn)單,其所能執(zhí)行的命令主要局限于與I/O操作有關(guān)的指令;沒有自己的內(nèi)存:通道執(zhí)行的通道程序釋放在主機(jī)的內(nèi)存中的,即通道與CPU共享內(nèi)存。2023/2/6第五章設(shè)備管理17通道類型字節(jié)多路通道:通常按字節(jié)交叉的方式工作,適用于低速IO設(shè)備。數(shù)組選擇通道:按成組方式進(jìn)行數(shù)據(jù)傳輸,適用于高速IO設(shè)備。數(shù)組多路通道:綜合前二個(gè)優(yōu)點(diǎn)(數(shù)據(jù)傳送率和通道利用率都較高)。2023/2/6第五章設(shè)備管理18字節(jié)多路通道字節(jié)多路通道以字節(jié)為單位傳輸信息,它可以分時(shí)地(時(shí)間片輪轉(zhuǎn))執(zhí)行多個(gè)通道程序。當(dāng)一個(gè)通道程序控制某臺(tái)設(shè)備完成一個(gè)字節(jié)的交換后,通道硬件就控制轉(zhuǎn)去執(zhí)行另一個(gè)通道程序,控制另一臺(tái)設(shè)備傳送信息。主要連接以字節(jié)為單位的低速I/O設(shè)備。如打印機(jī),終端。以字節(jié)為單位交叉?zhèn)鬏?,?dāng)一臺(tái)傳送一個(gè)字節(jié)后,立即轉(zhuǎn)去為另一臺(tái)傳送一個(gè)字節(jié)2023/2/6第五章設(shè)備管理192023/2/6第五章設(shè)備管理20

數(shù)組選擇通道數(shù)組選擇通道是以成組方式工作的,即每次傳送一批數(shù)據(jù),故傳送速度很高。數(shù)組選擇通道在一段時(shí)間內(nèi)只能執(zhí)行一個(gè)通道程序,只允許一臺(tái)設(shè)備進(jìn)行數(shù)據(jù)傳輸當(dāng)某臺(tái)設(shè)備占用了通道后,便一直獨(dú)占,即便無數(shù)據(jù)傳輸,通道閑置,也不允許其他設(shè)備使用,直至該設(shè)備傳送完成后釋放該通道。主要連接磁盤,磁帶等高速I/O設(shè)備2023/2/6第五章設(shè)備管理21數(shù)組選擇通道2023/2/6第五章設(shè)備管理22數(shù)組多路通道數(shù)組多路通道結(jié)合了選擇通道傳送速度高和字節(jié)多路通道能進(jìn)行分時(shí)并行操作的優(yōu)點(diǎn)。它先為一臺(tái)設(shè)備執(zhí)行一條通道指令,然后自動(dòng)轉(zhuǎn)接,為另一臺(tái)設(shè)備執(zhí)行一條通道指令主要連接高速設(shè)備對(duì)于連接多臺(tái)磁盤機(jī)的數(shù)組多路通道,它可以啟動(dòng)它們同時(shí)執(zhí)行移臂定位操作,然后,按序交叉地傳輸一批批數(shù)據(jù)。數(shù)據(jù)多路通道實(shí)際上是對(duì)通道程序采用多道程序設(shè)計(jì)的硬件實(shí)現(xiàn)2023/2/6第五章設(shè)備管理23“瓶頸”問題2023/2/6第五章設(shè)備管理24每個(gè)設(shè)備可由多個(gè)通道負(fù)責(zé)2023/2/6第五章設(shè)備管理25通道運(yùn)算控制部件通道地址字

CAW:記錄通道程序在內(nèi)存中的地址通道命令字

CCW:保存正在執(zhí)行的通道指令通道狀態(tài)字

CSW:存放通道執(zhí)行后的返回結(jié)果通道數(shù)據(jù)字

CDW:存放傳輸數(shù)據(jù)

2023/2/6第五章設(shè)備管理26通道工作原理

通道相當(dāng)于一個(gè)功能簡(jiǎn)單的處理機(jī),包含通道指令(空操作,讀操作,寫操作,控制,轉(zhuǎn)移操作),并可執(zhí)行用這些指令編寫的通道程序

CPU:執(zhí)行用戶程序,當(dāng)遇到I/O請(qǐng)求時(shí),可根據(jù)該請(qǐng)求生成通道程序放入內(nèi)存(也可事先編好放入內(nèi)存),并將該通道程序的首地址放入CAW中;之后執(zhí)行“啟動(dòng)I/O”指令,啟動(dòng)通道工作。通道:接收到“啟動(dòng)I/O”指令后,從CAW中取出通道程序的首地址,并根據(jù)首地址取出第一條指令放入CCW中,同時(shí)向CPU發(fā)回答信號(hào),使CPU可繼續(xù)執(zhí)行其他程序,而通道則開始執(zhí)行通道程序,完成傳輸工作。2023/2/6第五章設(shè)備管理27(通道程序完成實(shí)際I/O,啟動(dòng)I/O設(shè)備,執(zhí)行完畢后,如果還有下一條指令,則繼續(xù)執(zhí)行,否則表示傳輸完成)

當(dāng)通道傳輸完成最后一條指令時(shí),向CPU發(fā)I/O中斷,并且通道停止工作。CPU接收中斷信號(hào),從CSW中取得有關(guān)信息,決定下一步做什么通道工作原理2023/2/6第五章設(shè)備管理28通道的發(fā)展新的通道思想綜合了許多新的技術(shù)在個(gè)人計(jì)算機(jī)中,芯片組中專門I/O處理的芯片,稱為IOP(IOProcessor),發(fā)揮通道的作用IBM390中,沿用了輸入輸出通道概念

IBM于1998年推出光纖通道技術(shù)(稱為FICON),可通過FICON連接多達(dá)127個(gè)大容量I/O設(shè)備。傳輸速度是333MHz/s,未來將達(dá)到1GHz/s。光纖通道技術(shù)具有數(shù)據(jù)傳輸速率高、傳輸距離遠(yuǎn),可簡(jiǎn)化大型存儲(chǔ)系統(tǒng)設(shè)計(jì)的優(yōu)點(diǎn)。在大容量高速存儲(chǔ),如大型數(shù)據(jù)庫(kù)、多媒體、數(shù)字影像等應(yīng)用領(lǐng)域,有廣泛前景。2023/2/6第五章設(shè)備管理29總線系統(tǒng)計(jì)算機(jī)系統(tǒng)中的各部件,如CPU、存儲(chǔ)器以及各種I/O設(shè)備之間的聯(lián)系,都是通過總線來實(shí)現(xiàn)的??偩€的性能是用總線的時(shí)鐘頻率、帶寬和相應(yīng)的總線傳輸速率等指標(biāo)來衡量的。隨著計(jì)算機(jī)中CPU和內(nèi)存速率的提高,字長(zhǎng)的增加,以及不斷引入新型設(shè)備,推動(dòng)了總線的不斷發(fā)展,使之由早期的ISA總線發(fā)展為EISA總線、VESA總線,進(jìn)而又變成當(dāng)前廣為流行的PCI總線。2023/2/6第五章設(shè)備管理30ISA和EISA總線ISA(IndustryStandardArchitecture)總線:為1984年推出的80286型微機(jī)而設(shè)計(jì)的總線結(jié)構(gòu)。帶寬為8位,最高傳輸速率為2Mb/s。之后不久又推出了16位的(EISA)總線,其最高傳輸速率為8Mb/s,后又升至16Mb/s,能連接12臺(tái)設(shè)備。EISA(ExtendedISA)總線:20世紀(jì)80年代末期,ISA總線已難于滿足帶寬和傳輸速率的要求,人們開發(fā)出擴(kuò)展ISA(EISA)總線,其帶寬為32位,傳輸速率高達(dá)32Mb/s,可連接12臺(tái)外部設(shè)備。2023/2/6第五章設(shè)備管理31局部總線將多媒體卡、高速LAN網(wǎng)卡、高性能圖形板等,從ISA總線上卸下,再通過局部總線控制器直接接到CPU總線上,使之與高速CPU總線匹配,而打印機(jī)、Modem、CDROM等仍掛在ISA總線上。較有影響的是VESA總線和PCI總線。VESA(VideoElectronicStandardAssociation)總線:帶寬為32位,最高傳輸速率為132Mb/s。在20世紀(jì)90年代初被推出,廣泛應(yīng)用于486微機(jī)中。能連接的設(shè)備數(shù)僅為2-4臺(tái),控制器中無緩沖,不能支持后來出現(xiàn)的Pentium微機(jī)。PCI(PeripheralComponentIntenface)總線:隨著Pentium系列芯片的推出,Intel公司分別在1992年和1995年頒布了PCI總線的V1.0和V2.1規(guī)范,后者支持64位系統(tǒng)。PCI在CPU和外設(shè)間插入一復(fù)雜的管理層,用于協(xié)調(diào)數(shù)據(jù)傳輸和提供一致的接口。在管理層中配有數(shù)據(jù)緩沖,使PCI最多能支持10種外設(shè),最大傳輸速率可達(dá)132Mb/s。PCI既可連接ISA、EISA等總線,又可支持Pentium的64位系統(tǒng),是基于奔騰等新一代微處理器而發(fā)展的總線。2023/2/6第五章設(shè)備管理32設(shè)備管理的任務(wù)設(shè)備管理是對(duì)計(jì)算機(jī)輸入輸出系統(tǒng)的管理,它是操作系統(tǒng)中最復(fù)雜和具有多樣性的部分。其主要任務(wù)是:(1)選擇和分配輸入輸出設(shè)備以便進(jìn)行數(shù)據(jù)傳輸操作。(2)控制輸入輸出設(shè)備和CPU(或內(nèi)存)之間數(shù)據(jù)交換。(3)為用戶提供一個(gè)友好的透明接口,把用戶和設(shè)備硬件特性分開,使得用戶在編制應(yīng)用程序時(shí)不必涉及具體的設(shè)備,系統(tǒng)按用戶的要求控制設(shè)備工作。(4)提高設(shè)備和設(shè)備之間、CPU和設(shè)備之間的并行操作度,以使操作系統(tǒng)獲得最佳效率。2023/2/6第五章設(shè)備管理33設(shè)備管理的功能(1)提供和進(jìn)程管理系統(tǒng)的接口:當(dāng)進(jìn)程要求設(shè)備資源時(shí),該接口將進(jìn)程要求轉(zhuǎn)達(dá)給設(shè)備管理程序;(2)進(jìn)行設(shè)備分配和回收:對(duì)于類型不相同的設(shè)備,采取不同的分配策略,將設(shè)備及其相關(guān)的硬件分配給申請(qǐng)?jiān)O(shè)備的進(jìn)程,對(duì)當(dāng)前不能分配資源的進(jìn)程,應(yīng)將它們排到對(duì)應(yīng)的等待隊(duì)列中,等到以后適當(dāng)時(shí)再重新分配;進(jìn)程使用完設(shè)備后,系統(tǒng)應(yīng)及時(shí)收回,以便能分給別的要用此設(shè)備的進(jìn)程(3)實(shí)現(xiàn)設(shè)備和設(shè)備、設(shè)備和CPU等之間的并行操作:完成設(shè)備和內(nèi)存之間的數(shù)據(jù)傳輸工作。(4)進(jìn)行緩沖區(qū)管理:進(jìn)行緩沖區(qū)的分配、釋放及有關(guān)管理工作。2023/2/6第五章設(shè)備管理345.2I/O控制方式

設(shè)備管理的主要任務(wù)之一是控制設(shè)備與內(nèi)存或CPU之間的數(shù)據(jù)傳送,在多通道程序設(shè)計(jì)環(huán)境下,I/O操作控制能力已經(jīng)成為計(jì)算機(jī)系統(tǒng)綜合處理能力的重要構(gòu)成因素。選擇和衡量控制方式有如下幾條原則:(1)數(shù)據(jù)傳送速度足夠高,能滿足用戶的需要但又不丟失數(shù)據(jù)。(2)系統(tǒng)開銷小,所需的處理控制程序少(3)能充分發(fā)揮硬件資源的能力,使得I/O設(shè)備盡量繁忙,CPU等待時(shí)間少。2023/2/6第五章設(shè)備管理35按照I/O數(shù)據(jù)傳輸控制能力的強(qiáng)弱程度,以及CPU與外設(shè)并行處理程度的不同,通常將外圍設(shè)備和內(nèi)存之間數(shù)據(jù)傳送控制方式分為四類:(1)程序直接控制方式(2)中斷控制方式(3)DMA方式(4)通道控制方式I/O控制方式2023/2/6第五章設(shè)備管理36程序直接控制方式

程序直接控制方式就是由用戶進(jìn)程來直接控制內(nèi)存或CPU和外圍設(shè)備之間的信息傳送。這種方式的控制者是用戶進(jìn)程。由處理器提供I/O相關(guān)指令來實(shí)現(xiàn)

I/O處理單元處理請(qǐng)求并設(shè)置I/O狀態(tài)寄存器相關(guān)位不中斷處理器,也不給處理器警告信息處理器定期輪詢I/O單元的狀態(tài),直到處理完畢

I/O軟件包含直接操縱I/O的指令控制指令:用于激活外設(shè),并告訴它做什么狀態(tài)指令:用于測(cè)試I/O控制中的各種狀態(tài)和條件數(shù)據(jù)傳送指令:用于設(shè)備和主存之間來回傳送數(shù)據(jù)2023/2/6第五章設(shè)備管理372023/2/6第五章設(shè)備管理38程序直接控制方式的工作流程由操作系統(tǒng)的“服務(wù)程序”負(fù)責(zé)將用戶數(shù)據(jù)傳送至打印機(jī)端口服務(wù)程序順序傳送打印數(shù)據(jù),填滿接口緩沖區(qū)后就等待(空循環(huán))每次循環(huán)中都檢查接口緩沖區(qū)是否可用,一旦可用就繼續(xù)傳送數(shù)據(jù)數(shù)據(jù)傳送完成后“服務(wù)程序”結(jié)束,用戶進(jìn)程繼續(xù)運(yùn)行2023/2/6第五章設(shè)備管理39優(yōu)點(diǎn):控制簡(jiǎn)單,不需要多少硬件的支持。缺點(diǎn):(1)CPU和外圍設(shè)備只能串行工作。使得CPU的大量時(shí)間都處于等待和空閑狀態(tài),CPU的利用率大大降低。(2)CPU一段時(shí)間內(nèi)只能和一臺(tái)外圍設(shè)備交換數(shù)據(jù)信息,從而不能實(shí)現(xiàn)設(shè)備之間的并行工作。(3)由于程序直接控制方式靠測(cè)試設(shè)備標(biāo)志觸發(fā)器的狀態(tài)位來控制數(shù)據(jù)傳送,因此無法發(fā)現(xiàn)和處理由于設(shè)備或其它硬件所產(chǎn)生的錯(cuò)誤。適用于CPU執(zhí)行速度慢,而且外圍設(shè)備較少的系統(tǒng)。程序直接控制方式2023/2/6第五章設(shè)備管理40中斷方式

為了解決程序控制I/O方法的主要問題,應(yīng)該讓處理器從輪詢?nèi)蝿?wù)中解放出來,使I/O操作和指令執(zhí)行并行起來具體作法:利用中斷信號(hào),外設(shè)可以將自身操作的狀態(tài)及時(shí)反饋給中央處理CPU,這樣,CPU便可以在發(fā)出一條I/O指令后,轉(zhuǎn)去繼續(xù)完成其他任務(wù)。而對(duì)外設(shè)的I/O工作,則轉(zhuǎn)成了由設(shè)備控制器來指揮完成。當(dāng)I/O操作完成后,外設(shè)控制控制器自動(dòng)向CPU發(fā)出中斷請(qǐng)求信號(hào),CPU接收到I/O中斷信號(hào)后進(jìn)行干預(yù),啟動(dòng)I/O中斷處理程序執(zhí)行。

2023/2/6第五章設(shè)備管理412023/2/6第五章設(shè)備管理42中斷方式的工作流程“打印服務(wù)程序”只將最開始的數(shù)據(jù)傳送至打印機(jī)端口,然后阻塞CPU可繼續(xù)調(diào)度其他進(jìn)程運(yùn)行,不浪費(fèi)CPU時(shí)間一旦打印緩沖區(qū)空后,打印機(jī)端口發(fā)出硬件中斷CPU響應(yīng)中斷,恢復(fù)“打印服務(wù)程序”運(yùn)行,繼續(xù)傳送數(shù)據(jù)2023/2/6第五章設(shè)備管理43中斷方式優(yōu)點(diǎn):CPU的利用率大大提高且能支持多道程序和設(shè)備的并行操作。缺點(diǎn):(1)由于在I/O控制器的數(shù)據(jù)緩沖寄存器裝滿數(shù)據(jù)之后會(huì)發(fā)生中斷,而且數(shù)據(jù)緩沖寄存器通常較小,因此,在一次數(shù)據(jù)傳送過程中發(fā)生的中斷次數(shù)較多,將耗去CPU大量時(shí)間。(2)現(xiàn)代計(jì)算系統(tǒng)通常配備各種各樣外圍設(shè)備,如果這些設(shè)備通過中斷方式進(jìn)行并行操作,則由于中斷次數(shù)的急劇增加而造成CPU無法響應(yīng)中斷和出現(xiàn)數(shù)據(jù)丟失現(xiàn)象。(3)中斷控制方式時(shí),如果外圍設(shè)備的速度也比較高,則可能造成數(shù)據(jù)緩沖寄存器的數(shù)據(jù)由于CPU來不及取走而丟失2023/2/6第五章設(shè)備管理44DMA方式DMA方式又稱直接存儲(chǔ)器訪問(DirectMemoryAccess)方式。其基本思想是在外設(shè)和主存之間開辟直接的數(shù)據(jù)交換通路。DMA方式的特點(diǎn)是:(1)數(shù)據(jù)傳送的基本單位是數(shù)據(jù)塊。(2)所傳送的數(shù)據(jù)是從設(shè)備送內(nèi)存,或者相反。(3)僅在傳送一個(gè)或多個(gè)數(shù)據(jù)塊的開始和結(jié)束時(shí),才需中斷CPU,請(qǐng)求干預(yù),整塊數(shù)據(jù)的傳送是在DMA控制器控制下完成的。2023/2/6第五章設(shè)備管理45DMA控制器的組成2023/2/6第五章設(shè)備管理46為實(shí)現(xiàn)主機(jī)與控制器之間數(shù)據(jù)的直接交換,必須在DMA控制器中設(shè)置四類寄存器:命令/狀態(tài)寄存器(CR):用于接收從CPU發(fā)來的I/O命令,或有關(guān)控制信息,或設(shè)備的狀態(tài)內(nèi)存地址寄存器(MAR):輸入時(shí),存放把數(shù)據(jù)從設(shè)備傳送到內(nèi)存的起始目標(biāo)地址;輸出時(shí),存放由內(nèi)存到設(shè)備的內(nèi)存源地址數(shù)據(jù)寄存器(DR):用于暫存從設(shè)備到內(nèi)存,或從內(nèi)存到設(shè)備的數(shù)據(jù)數(shù)據(jù)計(jì)數(shù)器(DC):存放本次CPU要讀或?qū)懙淖止?jié)數(shù)DMA控制器的組成2023/2/6第五章設(shè)備管理472023/2/6第五章設(shè)備管理48DMA方式的工作流程用戶進(jìn)程發(fā)出系統(tǒng)調(diào)用后進(jìn)入阻塞態(tài),CPU直接設(shè)置DMA端口CPU與DMA并行工作,DMA負(fù)責(zé)將用戶數(shù)據(jù)傳送給打印機(jī)當(dāng)DMA完成所有工作后,向CPU發(fā)出中斷,CPU響應(yīng)后喚醒用戶進(jìn)程優(yōu)點(diǎn):只有一次中斷、DMA與CPU并行提高了系統(tǒng)運(yùn)行效率2023/2/6第五章設(shè)備管理49DMA方式與中斷方式的主要區(qū)別:(1)中斷方式是在數(shù)據(jù)緩沖寄存器滿之后發(fā)中斷要求CPU進(jìn)行中斷處理,而DMA方式則是在所要求轉(zhuǎn)送的數(shù)據(jù)塊全部傳送結(jié)束時(shí)要求CPU進(jìn)行中斷處理。大大減少了CPU進(jìn)行中斷處理的次數(shù)。(2)中斷方式的數(shù)據(jù)傳送是在中斷處理時(shí)由CPU控制完成的,而DMA方式是在DMA控制器的控制下,不經(jīng)過CPU完成的。排除了因并行操作設(shè)備過多時(shí)CPU來不及處理或因速度不匹配而造成數(shù)據(jù)丟失等現(xiàn)象。DMA方式2023/2/6第五章設(shè)備管理50

缺陷:DMA方式對(duì)外圍設(shè)備的管理和操作仍由CPU控制。多個(gè)DMA控制器同時(shí)使用顯然會(huì)引起內(nèi)存地址的沖突并使得控制過程進(jìn)一步復(fù)雜化。多個(gè)DMA控制器的同時(shí)使用也是不經(jīng)濟(jì)的。DMA方式2023/2/6第五章設(shè)備管理51

通道控制方式與DMA方式類似,也是一種以內(nèi)存為中心,實(shí)現(xiàn)設(shè)備和內(nèi)存直接交換數(shù)據(jù)的控制方式。

DMA方式中,數(shù)據(jù)的傳送方向、存放數(shù)據(jù)的內(nèi)存始址以及傳送數(shù)據(jù)的長(zhǎng)度等都由CPU控制,而在通道方式中,這些都由專管輸入輸出的硬件---通道來進(jìn)行控制。

DMA方式時(shí)每臺(tái)設(shè)備至少需要一個(gè)DMA控制器,通道控制方式中一個(gè)通道控制多臺(tái)設(shè)備與內(nèi)存進(jìn)行數(shù)據(jù)交換,從而,通道方式進(jìn)一步減輕了CPU的工作負(fù)擔(dān)和增加了計(jì)算機(jī)系統(tǒng)的并行工作程度。通道控制方式2023/2/6第五章設(shè)備管理52

在通道方式下,CPU只需要發(fā)出啟動(dòng)指令,指出通道相應(yīng)的操作和I/O設(shè)備,該指令就可以啟動(dòng)通道并使該通道從內(nèi)存中調(diào)出相應(yīng)的通道指令執(zhí)行。

通道有自己的通道指令,這些指令受CPU啟動(dòng),并在操作結(jié)束時(shí)向CPU發(fā)中斷信號(hào)。

通道指令一般存放在內(nèi)存。在進(jìn)程要求數(shù)據(jù)時(shí)由系統(tǒng)自動(dòng)生成。通道控制方式2023/2/6第五章設(shè)備管理53每條通道指令應(yīng)包含以下的內(nèi)容:(1)操作碼:它規(guī)定指令所執(zhí)行的操作,如讀、寫等。(2)內(nèi)存地址:標(biāo)明數(shù)據(jù)傳送時(shí)內(nèi)存的首址。(3)計(jì)數(shù):表示傳送數(shù)據(jù)的字節(jié)數(shù)。(4)通道程序結(jié)束位R0,表示通道程序是否結(jié)束。(5)記錄結(jié)束標(biāo)志R1,表示所處理的記錄是否結(jié)束。2023/2/6第五章設(shè)備管理54操作R0R1計(jì)數(shù)內(nèi)存地址WRITE002501850WRITE11250720通道指令把一個(gè)記錄的500個(gè)字符分別寫入從內(nèi)存地址1850開始的250個(gè)存儲(chǔ)單元和從內(nèi)存地址720開始的250個(gè)存儲(chǔ)單元中。2023/2/6第五章設(shè)備管理555.3緩沖管理1.緩沖技術(shù)的引入凡是數(shù)據(jù)到達(dá)和離去速度不匹配的地方均可采用緩沖技術(shù)。緩沖區(qū):有一定容量、暫存信息的存貯裝置。在操作系統(tǒng)中采用緩沖是為了實(shí)現(xiàn)數(shù)據(jù)的I/O操作,以緩解CPU與外部設(shè)備之間速度不匹配的矛盾,提高資源利用率2023/2/6第五章設(shè)備管理562.引入緩沖區(qū)的好處緩和CPU與I/O設(shè)備間速度不匹配的矛盾減少中斷CPU的次數(shù)提高CPU和I/O設(shè)備之間的并行性2023/2/6第五章設(shè)備管理573.引入緩沖區(qū)的缺點(diǎn)在系統(tǒng)區(qū)要設(shè)置相當(dāng)大的緩沖池才能滿足所有的I/O請(qǐng)求。從系統(tǒng)緩沖區(qū)傳送數(shù)據(jù)到調(diào)用進(jìn)程緩沖區(qū)要花費(fèi)額外的時(shí)間,增加了系統(tǒng)的總開銷。2023/2/6第五章設(shè)備管理584.緩沖區(qū)設(shè)置硬緩沖:在設(shè)備中設(shè)置緩沖區(qū),由硬件實(shí)現(xiàn)軟緩沖:在內(nèi)存中開辟一個(gè)空間,用作緩沖區(qū)2023/2/6第五章設(shè)備管理595.緩沖的種類1)單緩沖管理

單緩沖是在系統(tǒng)的CPU與外設(shè)之間只設(shè)立一個(gè)緩沖區(qū),輸入與輸出操作全部經(jīng)該緩沖區(qū)來完成。當(dāng)輸入設(shè)備占用緩沖區(qū)時(shí),輸出設(shè)備必須處于等待狀態(tài);而當(dāng)輸出設(shè)備正在緩沖區(qū)將數(shù)據(jù)取走時(shí),輸入設(shè)備也必須等待,其工作方式是串行完成的。此時(shí),緩沖區(qū)成了可共享的臨界資源,必須互斥占用,不可能實(shí)現(xiàn)并行工作,系統(tǒng)效率低。如下圖:

2023/2/6第五章設(shè)備管理601)單緩沖管理2023/2/6第五章設(shè)備管理61由于單緩沖不能實(shí)現(xiàn)并行處理,為避免單緩沖造成的設(shè)備利用率不高的狀況,可引入雙緩沖技術(shù),為輸入、輸出分配兩個(gè)緩沖區(qū),并讓兩個(gè)緩沖區(qū)交替工作,就可以形成并行操作的方式。當(dāng)輸入或是輸出時(shí),外設(shè)先占用一個(gè)緩沖區(qū),等當(dāng)該緩沖區(qū)滿后,再轉(zhuǎn)去占用另一個(gè)緩沖區(qū),同時(shí)第一個(gè)緩沖區(qū)中的數(shù)據(jù)可被取走,緩沖區(qū)可以釋放,當(dāng)另一個(gè)緩沖區(qū)滿后,設(shè)備又可轉(zhuǎn)過來占用被釋放的緩沖區(qū)。這樣,由于緩沖區(qū)交替被占用,可以使CPU與外設(shè)間的并行度進(jìn)一步提高。如下圖:2)雙緩沖管理2023/2/6第五章設(shè)備管理622)雙緩沖管理2023/2/6第五章設(shè)備管理63

例如:有一批卡片要從卡片機(jī)上讀入,然后再?gòu)拇蛴C(jī)上輸出。系統(tǒng)設(shè)置了兩個(gè)緩沖區(qū)buf1h和buf2,它們用于從卡片機(jī)上接受數(shù)據(jù),恰當(dāng)時(shí)交給打印機(jī)輸出。2)雙緩沖管理2023/2/6第五章設(shè)備管理642)雙緩沖管理

雙緩沖雖然提高了I\O操作的效率,但不可能徹底解決在實(shí)際系統(tǒng)中的并行操作。由于計(jì)算機(jī)中配備有多種外圍設(shè)備,CPU與外設(shè)的速度匹配全部由雙緩沖來承擔(dān)是不能勝任的,為此,必須使用多緩沖或是緩沖池技術(shù)來解決并行操作問題。2023/2/6第五章設(shè)備管理65多個(gè)緩沖按順序構(gòu)成環(huán)形,先進(jìn)先出隊(duì)列的形式,設(shè)頭尾、指針指向同一個(gè)緩沖區(qū)。頭、尾指針讀寫時(shí)不能相互超越。3)循環(huán)緩沖2023/2/6第五章設(shè)備管理66

緩沖池則是將多個(gè)緩沖區(qū)連接成一個(gè)完整的區(qū)域,其中每個(gè)緩沖區(qū)既可以作為輸入又可以作為輸出用。緩沖池為多個(gè)設(shè)備共享,設(shè)備需要時(shí)才接上,用完歸還。緩沖池是臨界資源,由系統(tǒng)進(jìn)行統(tǒng)一分配和管理,必須被互斥使用。4)緩沖池2023/2/6第五章設(shè)備管理67緩沖池的組成緩沖池由多個(gè)緩沖區(qū)組成。一個(gè)緩沖區(qū)由兩部分組成:一是用來標(biāo)識(shí)該緩沖器和用于管理的緩沖首部,另一部分是用于存放數(shù)據(jù)的緩沖體。這兩部分一一對(duì)應(yīng)。對(duì)緩沖池的管理是通過對(duì)每一個(gè)緩沖器的緩沖首部進(jìn)行操作實(shí)現(xiàn)的。設(shè)備號(hào)數(shù)據(jù)塊號(hào)緩沖器號(hào)互斥標(biāo)識(shí)位連接指針緩沖首部2023/2/6第五章設(shè)備管理68系統(tǒng)把各緩沖區(qū)按其使用狀況連成三種隊(duì)列:(1)空白緩沖隊(duì)列em(2)裝滿輸入數(shù)據(jù)的輸入緩沖隊(duì)列in(3)裝滿輸出數(shù)據(jù)的輸出緩沖隊(duì)列out緩沖區(qū)1緩沖區(qū)2….F(em)L(em)緩沖區(qū)1緩沖區(qū)2….F(in)L(in)緩沖區(qū)1緩沖區(qū)2….F(out)L(out)緩沖池的組成2023/2/6第五章設(shè)備管理69Hin緩沖區(qū)1Sin緩沖區(qū)mSout緩沖區(qū)nHout緩沖區(qū)z收容輸入提取輸出提取輸入收容輸出I/O設(shè)備cpu緩沖池系統(tǒng)將緩沖池中的緩沖區(qū)分為四種工作緩沖區(qū)。即:收容輸入緩沖區(qū)、提取輸入緩沖區(qū)、收容輸出緩沖區(qū)、提取輸出緩沖區(qū)。緩沖區(qū)的工作方式2023/2/6第五章設(shè)備管理70緩沖池的管理緩沖池的工作原理如下:系統(tǒng)開始啟動(dòng)時(shí),所有緩沖區(qū)全部排入em隊(duì)列中。當(dāng)有輸入任務(wù)時(shí),收容輸入進(jìn)程執(zhí)行讀數(shù)操作時(shí),自動(dòng)從em隊(duì)列的隊(duì)首取下一空閑緩沖區(qū),將輸入數(shù)據(jù)裝入其中,待裝滿后排入in隊(duì)列尾部。當(dāng)有輸出任務(wù)時(shí),收容輸出進(jìn)程從em隊(duì)列中取下一個(gè)空閑緩沖區(qū),將輸出數(shù)據(jù)裝入,裝滿后排入out隊(duì)列尾部2023/2/6第五章設(shè)備管理714.

當(dāng)系統(tǒng)要從輸入緩沖區(qū)中為用戶進(jìn)程取走數(shù)據(jù)時(shí),由提取輸入進(jìn)程從in隊(duì)列中取出一緩沖區(qū),將其中的數(shù)據(jù)復(fù)制到用戶指定的區(qū)域。并將該緩沖區(qū)排入em隊(duì)列的尾部。5.

當(dāng)系統(tǒng)要從輸出緩沖區(qū)輸出數(shù)據(jù)時(shí),由提取輸出進(jìn)程從out隊(duì)列中取出一緩沖區(qū),將其中的數(shù)據(jù)輸出,并將該緩沖區(qū)排入em隊(duì)列的尾部。緩沖池的管理2023/2/6第五章設(shè)備管理725.4I/O軟件I/O軟件的基本思想是按分層的思想構(gòu)成,低層軟件實(shí)現(xiàn)與硬件相關(guān)的操作,并屏蔽硬件的具體細(xì)節(jié),高層軟件則要向用戶提供一個(gè)友好的、清晰的、簡(jiǎn)單的、功能更強(qiáng)的接口每一層具有一個(gè)要執(zhí)行的定義明確的功能和一個(gè)與鄰近層次定義明確的接口,但各層的功能與接口隨系統(tǒng)的不同而異。2023/2/6第五章設(shè)備管理73I/O軟件的設(shè)計(jì)目標(biāo)設(shè)備獨(dú)立性:在設(shè)計(jì)I/O軟件時(shí)的一個(gè)關(guān)鍵概念是設(shè)備獨(dú)立性。用戶在編寫使用軟盤或硬盤上文件的程序時(shí),無需為不同的設(shè)備類型而修改程序就可以使用統(tǒng)一命名:與設(shè)備獨(dú)立性密切相關(guān)的是統(tǒng)一命名這一目標(biāo)。一個(gè)文件或一個(gè)設(shè)備的名字只應(yīng)是一個(gè)簡(jiǎn)單的字符串或一個(gè)整數(shù),不應(yīng)依賴于具體設(shè)備出錯(cuò)處理:出錯(cuò)處理是I/O軟件的另一個(gè)目標(biāo)。一般來說,數(shù)據(jù)傳輸中的錯(cuò)誤應(yīng)盡可能地在接近硬件層上處理2023/2/6第五章設(shè)備管理74I/O軟件的設(shè)計(jì)目標(biāo)緩沖技術(shù):不同類型的設(shè)備,其緩沖區(qū)的大小是不一樣的;同類型的設(shè)備,其緩沖區(qū)的大小也存在差異,I/O軟件應(yīng)屏蔽這種差異,向高層軟件提供同一大小的數(shù)據(jù)塊或字符單元,使高層軟件能夠只與邏輯塊大小一致的抽象設(shè)備進(jìn)行交互。設(shè)備的分配與釋放:對(duì)于獨(dú)占設(shè)備和共享設(shè)備帶來的問題,I/O軟件必須能同時(shí)進(jìn)行妥善的解決。I/O控制方式:針對(duì)具有不同傳輸速率的設(shè)備,綜合系統(tǒng)效率和系統(tǒng)代價(jià)等因素,合理選擇I/O控制方式(如打印機(jī)采用中斷驅(qū)動(dòng)方式,磁盤采用DMA控制方式),為方便用戶,I/O軟件也應(yīng)屏蔽這種差異,向高層軟件提供統(tǒng)一的操作接口。2023/2/6第五章設(shè)備管理75I/O軟件的層次及功能I/O軟件涉及的面非常寬,往下與硬件有著密切的關(guān)系,往上又與用戶直接交互,它與進(jìn)程管理、存儲(chǔ)器管理、文件管理等都存在著一定的聯(lián)系,即它們都可能需要I/O軟件來實(shí)現(xiàn)I/O操作。為使十分復(fù)雜的I/O軟件具有清晰的結(jié)構(gòu),更好的可移植性和易適應(yīng)性,I/O軟件采用層次式結(jié)構(gòu),將系統(tǒng)中的設(shè)備操作和管理軟件分為若干層次,每一層都利用其下層提供的服務(wù),完成輸入、輸出功能中的某些子功能,并屏蔽這些功能實(shí)現(xiàn)的細(xì)節(jié),向高層提供服務(wù)。2023/2/6第五章設(shè)備管理762023/2/6第五章設(shè)備管理77I/O軟件的層次及功能用戶層軟件:實(shí)現(xiàn)與用戶交互的接口,用戶可直接調(diào)用在用戶層提供的、與I/O操作有關(guān)的庫(kù)函數(shù),對(duì)設(shè)備進(jìn)行操作。設(shè)備獨(dú)立性軟件:負(fù)責(zé)實(shí)現(xiàn)與設(shè)備驅(qū)動(dòng)器的統(tǒng)一接口、設(shè)備命名、設(shè)備的保護(hù)以及設(shè)備的分配與釋放等,同時(shí)為設(shè)備管理和數(shù)據(jù)傳送提供必要的存儲(chǔ)空間。設(shè)備驅(qū)動(dòng)程序:負(fù)責(zé)具體實(shí)現(xiàn)系統(tǒng)對(duì)設(shè)備發(fā)出的操作指令,驅(qū)動(dòng)I/O設(shè)備工作。中斷處理程序:用于保存被中斷程序的CPU環(huán)境,轉(zhuǎn)入相應(yīng)的中斷處理程序進(jìn)行處理,處理完后再恢復(fù)被中斷進(jìn)程的現(xiàn)場(chǎng)后返回到被中斷進(jìn)程。2023/2/6第五章設(shè)備管理78中斷處理程序每個(gè)進(jìn)程在啟動(dòng)一個(gè)I/O操作后阻塞,直到I/O操作完成,設(shè)備控制器便向CPU發(fā)送一個(gè)中斷請(qǐng)求,CPU響應(yīng)后便轉(zhuǎn)向中斷處理程序,中斷處理程序執(zhí)行相應(yīng)的處理,處理完后解除相應(yīng)進(jìn)程的阻塞狀態(tài)。2023/2/6第五章設(shè)備管理79中斷處理程序的處理過程1.喚醒被阻塞的驅(qū)動(dòng)程序進(jìn)程2.保護(hù)被中斷進(jìn)程的現(xiàn)場(chǎng)3.分析中斷原因、轉(zhuǎn)入相應(yīng)的設(shè)備中斷處理程序4.進(jìn)行中斷處理5.恢復(fù)被中斷進(jìn)程的現(xiàn)場(chǎng)2023/2/6第五章設(shè)備管理80設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序的功能:接受由設(shè)備獨(dú)立性軟件發(fā)來的命令和參數(shù),并將命令中的抽象要求轉(zhuǎn)換為具體要求。檢查用戶I/O請(qǐng)求的合法性,了解I/O設(shè)備的狀態(tài),傳遞有關(guān)參數(shù),設(shè)置設(shè)備的工作方式。發(fā)出I/O命令。若設(shè)備空閑,立即啟動(dòng)I/O設(shè)備完成指定的I/O操作;若設(shè)備處于忙碌狀態(tài),則將請(qǐng)求掛在設(shè)備隊(duì)列上等待。及時(shí)響應(yīng)由控制器或通道發(fā)來的中斷請(qǐng)求,并根據(jù)中斷類型調(diào)用相應(yīng)的中斷處理程序進(jìn)行處理。對(duì)于設(shè)置有通道的計(jì)算機(jī)系統(tǒng),驅(qū)動(dòng)程序還應(yīng)根據(jù)用戶的I/O請(qǐng)求,自動(dòng)地構(gòu)成通道程序。2023/2/6第五章設(shè)備管理81設(shè)備驅(qū)動(dòng)程序的特點(diǎn)

(1)驅(qū)動(dòng)程序主要是指在請(qǐng)求I/O的進(jìn)程與設(shè)備控制器之間的一個(gè)通信和轉(zhuǎn)換程序。

(2)驅(qū)動(dòng)程序與設(shè)備控制器和I/O設(shè)備的硬件特性緊密相關(guān),因而對(duì)不同類型的設(shè)備應(yīng)配置不同的驅(qū)動(dòng)程序。

(3)驅(qū)動(dòng)程序與I/O設(shè)備所采用的I/O控制方式緊密相關(guān)。

(4)由于驅(qū)動(dòng)程序與硬件緊密相關(guān),因而其中的一部分必須用匯編語(yǔ)言書寫。2023/2/6第五章設(shè)備管理82設(shè)備驅(qū)動(dòng)程序的處理過程將抽象要求轉(zhuǎn)換為具體要求檢查I/O請(qǐng)求的合法性讀出和檢查設(shè)備的狀態(tài)傳送必要的參數(shù)設(shè)置工作方式啟動(dòng)I/O設(shè)備2023/2/6第五章設(shè)備管理83設(shè)備獨(dú)立性軟件設(shè)備獨(dú)立性:也稱設(shè)備無關(guān)性。其基本含義是:應(yīng)用程序獨(dú)立于具體使用的物理設(shè)備。為實(shí)現(xiàn)設(shè)備獨(dú)立性引入了邏輯設(shè)備和物理設(shè)備這兩個(gè)概念。在應(yīng)用程序中,使用邏輯設(shè)備名來請(qǐng)求使用某類設(shè)備;而系統(tǒng)在實(shí)際執(zhí)行時(shí),使用的是物理設(shè)備名。2023/2/6第五章設(shè)備管理84設(shè)備獨(dú)立性軟件的主要功能執(zhí)行所有設(shè)備的共有操作:對(duì)獨(dú)立設(shè)備的分配與回收將邏輯設(shè)備名映射為物理設(shè)備名,進(jìn)一步找到相應(yīng)物理設(shè)備的驅(qū)動(dòng)程序;對(duì)設(shè)備進(jìn)行保護(hù),禁止用戶直接訪問設(shè)備;緩沖管理差錯(cuò)控制,處理設(shè)備驅(qū)動(dòng)程序無法處理的錯(cuò)誤;提供獨(dú)立于設(shè)備的邏輯塊向用戶層(或文件層)軟件提供統(tǒng)一接口2023/2/6第五章設(shè)備管理85邏輯設(shè)備名到物理設(shè)備名映射的實(shí)現(xiàn)為了實(shí)現(xiàn)與設(shè)備的無關(guān)性,系統(tǒng)中必須有一張聯(lián)系邏輯設(shè)備名稱和物理設(shè)備名稱的映射表(LUT表)邏輯設(shè)備名物理設(shè)備名驅(qū)動(dòng)程序地址/dev/tty31024/dev/printer52046…………

當(dāng)進(jìn)程用邏輯設(shè)備名請(qǐng)求分配I/O設(shè)備時(shí),系統(tǒng)為它分配相應(yīng)的物理設(shè)備,并在LUT上建立一個(gè)表目,填上應(yīng)用程序中使用的邏輯設(shè)備名和系統(tǒng)分配的物理設(shè)備名,以及該設(shè)備驅(qū)動(dòng)程序的入口地址。當(dāng)以后進(jìn)程再利用該邏輯設(shè)備名請(qǐng)求I/O操作時(shí),系統(tǒng)通過查找LUT,便可找到物理設(shè)備和驅(qū)動(dòng)程序。2023/2/6第五章設(shè)備管理86用戶層的I/O軟件大部分I/O軟件都包含在操作系統(tǒng)中,但仍有一小部分在用戶層,包括與用戶程序連接在一起的庫(kù)過程,以及完全運(yùn)行于內(nèi)核外的一些程序。用戶層軟件必須通過一組系統(tǒng)調(diào)用來取得操作系統(tǒng)的服務(wù)。2023/2/6第五章設(shè)備管理875.5設(shè)備分配

當(dāng)某進(jìn)程向系統(tǒng)提出I/O請(qǐng)求時(shí),設(shè)備分配程序按一定策略分配設(shè)備、控制器和通道,形成一條數(shù)據(jù)傳輸通路,以供主機(jī)和設(shè)備間信息交換。如果申請(qǐng)進(jìn)程得不到它所申請(qǐng)的資源,將被放入資源等待隊(duì)列中,直到所需資源被釋放。2023/2/6第五章設(shè)備管理88設(shè)備分配用數(shù)據(jù)結(jié)構(gòu)在多通路的IO系統(tǒng)中,為了滿足一個(gè)IO請(qǐng)求,不僅僅是分配一個(gè)IO設(shè)備的問題,還應(yīng)分配相應(yīng)的控制器和通道,以確保CPU與IO設(shè)備之間能進(jìn)行通信,在存儲(chǔ)器與I/O設(shè)備之間能進(jìn)行數(shù)據(jù)的直接存取。設(shè)備管理程序?qū)Γ桑显O(shè)備進(jìn)行分配和控制是借助于一些表格;表格中記錄了對(duì)IO設(shè)備控制所需之信息。它們是設(shè)備管理程序?qū)崿F(xiàn)管理功能的數(shù)據(jù)結(jié)構(gòu)。2023/2/6第五章設(shè)備管理89設(shè)備控制表(DCT)每個(gè)設(shè)備一個(gè)系統(tǒng)設(shè)備表(SDT)整個(gè)系統(tǒng)一個(gè)控制器表(COCT)每個(gè)控制器一個(gè)通道控制表(CHCT)每個(gè)通道一個(gè)設(shè)備分配用數(shù)據(jù)結(jié)構(gòu)設(shè)備的分配和管理通過下列數(shù)據(jù)結(jié)構(gòu)進(jìn)行:2023/2/6第五章設(shè)備管理901)設(shè)備控制表DCT反映設(shè)備的特性、設(shè)備和I/O控制器的連接情況。在系統(tǒng)生成時(shí)或在該設(shè)備和系統(tǒng)連接時(shí)創(chuàng)建,包括以下內(nèi)容:(1)設(shè)備標(biāo)識(shí)符,用來區(qū)別設(shè)備。(2)設(shè)備類型,反映設(shè)備的特性,例如是終端設(shè)備、塊設(shè)備或字符設(shè)備等。(3)設(shè)備地址或設(shè)備號(hào),每個(gè)設(shè)備都有相應(yīng)的地址或設(shè)備號(hào)。(4)設(shè)備狀態(tài),指明設(shè)備是處于工作、空閑、出錯(cuò)等狀態(tài)。(5)等待隊(duì)列指針,等待使用該設(shè)備的進(jìn)程組成等待隊(duì)列,其隊(duì)首和隊(duì)尾指針存放在DCT中。(6)I/O控制器指針,該指針指向該設(shè)備連接的控制器。2023/2/6第五章設(shè)備管理912)系統(tǒng)設(shè)備表SDT系統(tǒng)設(shè)備表SDT整個(gè)系統(tǒng)一張,它記錄已被連接到系統(tǒng)中的所有物理設(shè)備的情況,并為每個(gè)物理設(shè)備設(shè)一表項(xiàng)。SDT的每個(gè)表項(xiàng)包括的內(nèi)容有:(1)DCT指針,該指針指向有關(guān)設(shè)備的設(shè)備控制表。(2)正在使用設(shè)備的進(jìn)程標(biāo)識(shí)。(3)設(shè)備類型和設(shè)備標(biāo)識(shí)符,與DCT中意義相同。2023/2/6第五章設(shè)備管理923)控制器表COCT

每個(gè)控制器一張,它反映I/O控制器的使用狀態(tài)以及和通道的連接情況等(在DMA方式時(shí),沒有該表項(xiàng))4)通道控制表CHCT

該表只在通道控制方式的系統(tǒng)中存在,也是每個(gè)通道一張。CHCT包括通道標(biāo)識(shí)符、通道忙/閑標(biāo)識(shí)、等待獲得該通道的進(jìn)程等待隊(duì)列的隊(duì)首指針和隊(duì)尾指針。2023/2/6第五章設(shè)備管理93設(shè)備分配方式

設(shè)備的分配方式主要有兩種:靜態(tài)分配與動(dòng)態(tài)分配。靜態(tài)分配方式是在用戶作業(yè)執(zhí)行之前,根據(jù)作業(yè)需求,系統(tǒng)一次性分配該作業(yè)所需的全部設(shè)備、控制器和通道,且一旦分配后,它們就一直被該作業(yè)所占用,直到當(dāng)作業(yè)撤離時(shí),再由系統(tǒng)收回。靜態(tài)分配方式不會(huì)引起死鎖,設(shè)備的使用率低。2023/2/6第五章設(shè)備管理94設(shè)備分配方式

動(dòng)態(tài)分配在進(jìn)程執(zhí)行過程中根據(jù)執(zhí)行需要進(jìn)行當(dāng)進(jìn)程需要設(shè)備時(shí),通過系統(tǒng)調(diào)用命令向系統(tǒng)提出設(shè)備要求,由系統(tǒng)按照事先規(guī)定的策略給進(jìn)程分配所需的設(shè)備、I/O控制器和通道,一旦用完后,立即釋放。動(dòng)態(tài)分配方式有利于提高設(shè)備的利用率,但若分配算法使用不當(dāng),可能造成死鎖。2023/2/6第五章設(shè)備管理95設(shè)備分配時(shí)應(yīng)考慮的因素

由于在多道程序系統(tǒng)中,進(jìn)程數(shù)多于資源數(shù),引起資源的競(jìng)爭(zhēng)。因此,要有一套合理的分配原則考慮的因素:*I/O設(shè)備的固有屬性*I/O設(shè)備的分配算法*設(shè)備分配的安全性*與設(shè)備的無關(guān)性2023/2/6第五章設(shè)備管理96設(shè)備的固有屬性設(shè)備的固有屬性可分成三種:獨(dú)占性:一段時(shí)間內(nèi)只允許一個(gè)進(jìn)程獨(dú)占;共享性:允許許多進(jìn)程同時(shí)共享;可虛擬設(shè)備:本身是獨(dú)占設(shè)備,經(jīng)過某種技術(shù)處理,可以把它改造成虛擬設(shè)備。不同的設(shè)備應(yīng)采取不同的分配策略2023/2/6第五章設(shè)備管理97獨(dú)占、共享、可虛擬分配策略獨(dú)占設(shè)備:將一個(gè)設(shè)備分配給某進(jìn)程后便由該進(jìn)程獨(dú)占,直到該進(jìn)程完成或釋放后,其它進(jìn)程方能使用。缺點(diǎn):設(shè)備利用率低,可能引起死鎖。共享設(shè)備:如磁盤、磁鼓之類的外存儲(chǔ)器,可同時(shí)分配給多個(gè)進(jìn)程使用,但須對(duì)這些進(jìn)程訪問該設(shè)備的先后次序進(jìn)行合理的調(diào)度??商摂M設(shè)備:可虛擬的設(shè)備是指一臺(tái)物理設(shè)備在采用虛擬技術(shù)以后,可變成多臺(tái)邏輯上的所謂虛擬設(shè)備,因此,一臺(tái)可虛擬設(shè)備是可共享的設(shè)備,可以將它同時(shí)分配給多個(gè)進(jìn)程使用,并對(duì)這些訪問該(物理)設(shè)備的先后次序進(jìn)行控制。2023/2/6第五章設(shè)備管理98設(shè)備分配算法通常只采用兩種分配算法:先來先服務(wù):根據(jù)諸進(jìn)程對(duì)某個(gè)設(shè)備提出請(qǐng)求的先后次序,將這些進(jìn)程排成一個(gè)設(shè)備請(qǐng)求隊(duì)列,設(shè)備分配程序總是把設(shè)備首先分配給隊(duì)首進(jìn)程。優(yōu)先級(jí)高者優(yōu)先:將優(yōu)先權(quán)高的進(jìn)程排在設(shè)備隊(duì)列前面,對(duì)于優(yōu)先級(jí)相同的I/O請(qǐng)求,則按先來先服務(wù)原則排隊(duì)。2023/2/6第五章設(shè)備管理99設(shè)備分配中的安全性從進(jìn)程運(yùn)行的安全性考慮,設(shè)備分配有兩種方式:安全分配方式:每當(dāng)進(jìn)程發(fā)出I/O請(qǐng)求后,便進(jìn)入阻塞狀態(tài),直到其I/O操作完成時(shí)才被喚醒。優(yōu)點(diǎn):破壞了“請(qǐng)求和保持”條件,使設(shè)備分配是安全的。缺點(diǎn):CPU與I/O設(shè)備是串行工作的。不安全分配方式:進(jìn)程在發(fā)出I/O請(qǐng)求后仍繼續(xù)運(yùn)行,需要時(shí)又發(fā)出第二個(gè)、第三個(gè)請(qǐng)求等,僅當(dāng)進(jìn)程所請(qǐng)求的設(shè)備已被另一進(jìn)程占用時(shí),請(qǐng)求進(jìn)程才進(jìn)入阻塞狀態(tài)。優(yōu)點(diǎn):一個(gè)進(jìn)程可同時(shí)操作多個(gè)設(shè)備,是進(jìn)程推進(jìn)迅速。缺點(diǎn):分配不安全,可能造成死鎖,因此設(shè)備分配程序應(yīng)具有安全性計(jì)算的功能。2023/2/6第五章設(shè)備管理100獨(dú)占設(shè)備的分配1.基本的設(shè)備分配程序當(dāng)某進(jìn)程提出了I/O請(qǐng)求后,分配程序可按下述步驟進(jìn)行設(shè)備分配:1)分配設(shè)備:根據(jù)請(qǐng)求中的物理設(shè)備名,查找系統(tǒng)設(shè)備表(SDT),從中找出該設(shè)備的DCT,再根據(jù)DCT中的設(shè)備狀態(tài)字段,可知該設(shè)備是否正忙。若忙,則將請(qǐng)求進(jìn)程的PCB掛在設(shè)備隊(duì)列上;否則,計(jì)算本次設(shè)備分配的安全性,若安全,則將設(shè)備分配給請(qǐng)求進(jìn)程;若不安全,將其PCB插入設(shè)備等待隊(duì)列。2023/2/6第五章設(shè)備管理1011.基本的設(shè)備分配程序2)分配控制器:分配了設(shè)備后,到其DCT中找出與該設(shè)備連接的控制器的COCT,從COCT的狀態(tài)字段中可知該控制器是否忙碌。若忙,則將請(qǐng)求進(jìn)程的PCB掛在該控制器的等待隊(duì)列上;否則,將控制器分配給進(jìn)程。3)分配通道:在COCT中可找到與控制器相連的通道的CHCT,再根據(jù)CHCT內(nèi)的狀態(tài)信息,可知該通道是否忙碌。若忙,則將請(qǐng)求進(jìn)程掛在該通道的等待隊(duì)列上;否則,將該通道分配給進(jìn)程。只有在設(shè)備、控制器和通道三者都分配成功時(shí),這次的設(shè)備分配才算成功,然后,便可啟動(dòng)該I/O設(shè)備進(jìn)行數(shù)據(jù)傳送。2023/2/6第五章設(shè)備管理102

設(shè)備分配算法流程2023/2/6第五章設(shè)備管理1031.基本的設(shè)備分配程序特點(diǎn):進(jìn)程是以物理設(shè)備名來提出I/O請(qǐng)求的;采用的是單通路的I/O系統(tǒng)結(jié)構(gòu),容易產(chǎn)生“瓶頸”現(xiàn)象。2023/2/6第五章設(shè)備管理1042.設(shè)備分配程序的改進(jìn)增加設(shè)備的獨(dú)立性:進(jìn)程使用邏輯設(shè)備名請(qǐng)求I/O。這樣,系統(tǒng)首先從SDT中找出第一個(gè)該類設(shè)備的DCT。若該設(shè)備忙,則查找第二個(gè)該類設(shè)備的DCT,僅當(dāng)所有該類設(shè)備都忙時(shí),才把進(jìn)程掛在該類設(shè)備的等待隊(duì)列上;而只要有一個(gè)該類設(shè)備可用,系統(tǒng)便可進(jìn)一步計(jì)算設(shè)備分配的安全性??紤]多通路情況:為防止在I/O系統(tǒng)中出現(xiàn)“瓶頸”現(xiàn)象,通常采用多通路的I/O系統(tǒng)結(jié)構(gòu)。此時(shí)對(duì)控制器和通道的分配要經(jīng)過幾次反復(fù),若設(shè)備(控制器)所連接的第一個(gè)控制器(通道)忙時(shí),應(yīng)查看其所連接的第二個(gè)控制器(通道),僅當(dāng)所有的控制器(通道)都忙時(shí),此次控制器(通道)的分配才算失敗,才把進(jìn)程掛在控制器(通道)的等待隊(duì)列上。2023/2/6第五章設(shè)備管理105SPOOLing技術(shù)SPOOLing(SimultaneousPeripheralOperationOnLine)技術(shù)也稱為虛擬設(shè)備技術(shù)或假脫機(jī)操作,可把獨(dú)占設(shè)備轉(zhuǎn)變成具有共享特征的虛擬設(shè)備,從而提高設(shè)備利用率。2023/2/6第五章設(shè)備管理106脫機(jī)輸入、輸出為緩和CPU的高速性與I/O設(shè)備低速性間的矛盾而引入了脫機(jī)輸入、輸出技術(shù)。利用低檔個(gè)人計(jì)算機(jī)作為外圍處理機(jī)進(jìn)行處理低檔PC機(jī)后援存儲(chǔ)器后援存儲(chǔ)器主機(jī)高速外設(shè)外圍設(shè)備2023/2/6第五章設(shè)備管理107SPOOLing技術(shù)是對(duì)脫機(jī)輸入、輸出系統(tǒng)的模擬:用一道程序模擬脫機(jī)輸入時(shí)外圍控制機(jī)的功能,把低速I/O設(shè)備上的數(shù)據(jù)傳送到高速磁盤上;再用另一道程序來模擬脫機(jī)輸出時(shí)外圍機(jī)的功能,把數(shù)據(jù)從磁盤傳送到低速的輸出設(shè)備上。這樣,便可在主機(jī)的直接控制下,實(shí)現(xiàn)脫機(jī)輸入、輸出功能。此時(shí)的外圍操作與CPU對(duì)數(shù)據(jù)的處理同時(shí)進(jìn)行。SPOOLing2023/2/6第五章設(shè)備管理108SPOOLING系統(tǒng)的組成輸入井和輸出井:磁盤上開辟的兩個(gè)大存儲(chǔ)空間。輸入井用于暫存I/O設(shè)備的輸入數(shù)據(jù);輸出井用于暫存用戶程序的輸出數(shù)據(jù)。輸入緩沖區(qū)和輸出緩沖區(qū):為緩和CPU和磁盤之間速度不匹配的矛盾,在內(nèi)存中開辟的兩個(gè)緩沖區(qū)。輸入緩沖區(qū)用于暫存由輸入設(shè)備送來的數(shù)據(jù),以后再傳送到輸入井;輸出緩沖區(qū)用于暫存從輸出井送來的數(shù)據(jù),以后再傳送給輸出設(shè)備。輸入管理模塊、輸出管理模塊2023/2/6第五章設(shè)備管理109輸入管理模塊輸入裝置輸入裝置

通道

輸入井輸出井

通道輸出裝置輸出裝置

通道輸出管理模塊

主機(jī)系統(tǒng)外存SPOOLING系統(tǒng)2023/2/6第五章設(shè)備管理110

系統(tǒng)的輸入模塊包含兩個(gè)獨(dú)立的過程,一個(gè)過程負(fù)責(zé)從外部設(shè)備把信息讀入緩沖區(qū);另一個(gè)過程是寫過程,負(fù)責(zé)把緩沖區(qū)中的信息送到外存輸入井中。在系統(tǒng)輸入模塊收到作業(yè)輸入請(qǐng)求后,輸入管理模塊中的讀過程負(fù)責(zé)將信息從輸入裝置讀入緩沖區(qū)。當(dāng)緩沖區(qū)滿時(shí),由寫過程將信息從緩沖區(qū)寫到外存的輸入井中。讀過程和寫過程反復(fù)循環(huán),直到一個(gè)作業(yè)輸入完畢。當(dāng)讀過程讀到硬件結(jié)束標(biāo)志后,系統(tǒng)再次驅(qū)動(dòng)寫過程把最后一批信息寫入外存并調(diào)用中斷處理程序結(jié)束該次輸入。SPOOLING系統(tǒng)輸入過程2023/2/6第五章設(shè)備管理111共享打印機(jī)打印機(jī)屬于獨(dú)占設(shè)備,利用SPOOLING技術(shù),可將之改造為一臺(tái)可供多個(gè)用戶共享的設(shè)備。當(dāng)用戶進(jìn)程請(qǐng)求打印輸出時(shí),SPOOLING系統(tǒng)同意為它打印,但并不真正立即把打印機(jī)分配給該用戶進(jìn)程,而只為它做兩件事:①由輸出進(jìn)程在輸出井中為之申請(qǐng)一個(gè)空閑磁盤塊區(qū),并將要打印的數(shù)據(jù)送入其中;②輸出進(jìn)程為用戶進(jìn)程申請(qǐng)一張空白的用戶請(qǐng)求打印表,并將用戶的打印請(qǐng)求填入其中,再將該表掛到請(qǐng)求打印隊(duì)列上。若還有進(jìn)程要求打印,系統(tǒng)也按此處理。若打印機(jī)空閑,輸出進(jìn)程將從請(qǐng)求打印隊(duì)列的隊(duì)首取出一請(qǐng)求打印表,根據(jù)表中的要求將要打印的數(shù)據(jù),從輸出井傳送到內(nèi)存緩沖區(qū),再由打印機(jī)進(jìn)行打印。打印完后,若還有其他等待打印的請(qǐng)求表,則輸出進(jìn)程又取出下一請(qǐng)求,并根據(jù)其中要求進(jìn)行打印,如此下去,直到請(qǐng)求打印隊(duì)列為空,輸出進(jìn)程才將自己阻塞起來,當(dāng)下次再有打印請(qǐng)求時(shí),輸出進(jìn)程才被喚醒。2023/2/6第五章設(shè)備管理112SPOOLING系統(tǒng)的特點(diǎn)提高了I/O速度:對(duì)數(shù)據(jù)所進(jìn)行的I/O操作,已從對(duì)低速I/O設(shè)備進(jìn)行的I/O操作,演變?yōu)閷?duì)輸入井或輸出井中數(shù)據(jù)的存取,提高了I/O速度,緩和了CPU與低速I/O設(shè)備之間速度不匹配的矛盾。將獨(dú)占設(shè)備改造為共享設(shè)備實(shí)現(xiàn)了虛擬設(shè)備功能:宏觀上,多個(gè)進(jìn)程在同時(shí)使用一臺(tái)獨(dú)占設(shè)備,對(duì)于每一個(gè)進(jìn)程而言,都會(huì)認(rèn)為自己獨(dú)占了一個(gè)設(shè)備,而該設(shè)備只是邏輯上的設(shè)備。2023/2/6第五章設(shè)備管理1135.6磁盤存儲(chǔ)器管理為文件分配存儲(chǔ)空間合理地組織文件的存儲(chǔ)方式,以提高訪問速度提高磁盤存儲(chǔ)空間地利用率提高磁盤I/O速度,改善文件性能確保文件系統(tǒng)的可靠性(備份)磁盤存儲(chǔ)器管理的主要任務(wù):2023/2/6第五章設(shè)備管理114磁盤訪問時(shí)間的構(gòu)成磁盤的物理構(gòu)造如圖,決定了磁盤的一次I/O操作物理記錄的位置必須由柱面號(hào),磁頭號(hào)(盤面號(hào)),扇區(qū)號(hào)三個(gè)參數(shù)共同確定。如何確定這三個(gè)參數(shù)是磁盤訪問成功的關(guān)鍵。2023/2/6第五章設(shè)備管理115

找柱面,實(shí)質(zhì)上是由磁臂帶動(dòng)磁頭沿半徑方向平行移動(dòng)到指定柱面的工作。在磁盤中,每個(gè)盤面都對(duì)應(yīng)一個(gè)磁頭,所有磁頭都被固定在唯一的磁臂上,一旦柱面被找到,所有磁頭指向的都是同一柱面。系統(tǒng)中找柱面的操作被稱為尋道操作,所花費(fèi)的移臂時(shí)間稱為尋道時(shí)間。該時(shí)間是啟動(dòng)磁臂的時(shí)間s與磁頭移動(dòng)n條磁道所花費(fèi)的時(shí)間之和,即Ts=m×n+s

其中,m是一常數(shù),與磁盤驅(qū)動(dòng)器的速度有關(guān),對(duì)一般磁盤,m=0.2;對(duì)高速磁盤,m≤0.1。磁臂的啟動(dòng)時(shí)間約為2ms。這樣,對(duì)一般的溫盤,其尋道時(shí)間將隨尋道距離的增加而增大,大體上是5-30ms。1)尋道時(shí)間Ts2023/2/6第五章設(shè)備管理1162)旋轉(zhuǎn)延遲時(shí)間Tτ

柱面找出后,磁頭并不與磁道接觸,而要等想訪問的扇區(qū)轉(zhuǎn)到磁頭所在位置時(shí),磁頭才與扇區(qū)接觸,完成對(duì)物理記錄的讀/寫操作。扇區(qū)轉(zhuǎn)動(dòng)到磁頭位置的時(shí)間稱為旋轉(zhuǎn)延遲時(shí)間。

對(duì)于硬盤,旋轉(zhuǎn)速度若為15000r/min,每轉(zhuǎn)需時(shí)4ms,平均旋轉(zhuǎn)延遲時(shí)間Tτ為2ms;對(duì)于軟盤,其旋轉(zhuǎn)速度為300r/min或600r/min,這樣,平均Tτ為50-100ms。2023/2/6第五章設(shè)備管理1173)傳輸時(shí)間Tt

磁頭將扇區(qū)的信息讀到主存或是將主存的信息寫入扇區(qū)都需要時(shí)間,這個(gè)時(shí)間稱為傳輸時(shí)間。

Tt的大小與每次所讀/寫的字節(jié)數(shù)b和旋轉(zhuǎn)速度有關(guān):

其中,r為磁盤每秒鐘的轉(zhuǎn)數(shù);N為一條磁道上的字節(jié)數(shù)。當(dāng)一次讀/寫的字節(jié)數(shù)相當(dāng)于半條磁道上的字節(jié)數(shù)時(shí),Tt與Tτ相同,因此,可將訪問時(shí)間Ta表示為:2023/2/6第五章設(shè)備管理118由查找時(shí)間、旋轉(zhuǎn)延遲時(shí)間、傳輸時(shí)間三部分之和構(gòu)成了一次磁盤的I/O訪問時(shí)間。要使磁盤利用率高,應(yīng)盡量減少每次I/O操作的訪問時(shí)間,增加單位時(shí)間內(nèi)的I/O操作吞吐量。系統(tǒng)應(yīng)采用一定的管理對(duì)策,決定出當(dāng)有多個(gè)訪問請(qǐng)求發(fā)生時(shí),讓哪個(gè)訪問者被先訪問?這個(gè)管理對(duì)策被稱為“驅(qū)動(dòng)調(diào)度”。2023/2/6第五章設(shè)備管理119具體的磁盤驅(qū)動(dòng)調(diào)度算法分為兩部分:“移臂調(diào)度”:控制的是尋道操作的先后次序;“旋轉(zhuǎn)調(diào)度”:控制的是哪個(gè)扇區(qū)先被訪問的問題。磁盤工作時(shí),應(yīng)先完成“移臂調(diào)度”,然后再進(jìn)行“旋轉(zhuǎn)調(diào)度”。2023/2/6第五章設(shè)備管理120移臂調(diào)度1)先來先服務(wù)算法(FCFS)

這是一種最簡(jiǎn)單的移臂調(diào)度算法,它只考慮對(duì)磁盤請(qǐng)求的先后次序,而不考慮訪問的物理位置,所有對(duì)磁盤有I/O請(qǐng)求的進(jìn)程先去等待隊(duì)列中排隊(duì),排在先的先給予服務(wù)。該算法對(duì)于訪問進(jìn)程是平等的,先提I/O請(qǐng)求的進(jìn)程,磁盤先分配給它使用。這種算法當(dāng)訪問請(qǐng)求分布不好時(shí),可能會(huì)造成磁臂反復(fù)來回移動(dòng),增加總的訪問時(shí)間,無法實(shí)現(xiàn)查找優(yōu)化,只適用于訪問請(qǐng)求不太多的情況。

2023/2/6第五章設(shè)備管理1212023/2/6第五章設(shè)備管理1221)先來先服務(wù)算法(FCFS)2023/2/6第五章設(shè)備管理1232)最短尋道時(shí)間優(yōu)先SSTF(ShortestSeekTimeFirst)

這個(gè)算法是FCFS算法的改進(jìn)。它總是選擇請(qǐng)求隊(duì)列中離當(dāng)前磁頭所在柱面最近的下一個(gè)柱面作為即將訪問的對(duì)象,而不管請(qǐng)求訪問者到達(dá)請(qǐng)求隊(duì)列的先后次序。此算法克服了FCFS算法中磁臂大幅度來回移動(dòng)的缺陷,在吞吐量上有所提高。但對(duì)訪問者的服務(wù)機(jī)會(huì)是不均衡的,有時(shí)會(huì)造成內(nèi)/外邊緣磁道上的請(qǐng)求被無限推遲響應(yīng)的現(xiàn)象。2023/2/6第五章設(shè)備管理1242)最短尋道時(shí)間優(yōu)先SSTF

2023/2/6第五章設(shè)備管理1253)掃描(SCAN)算法SSTF算法雖然能獲得較好的尋道性能,但卻可能導(dǎo)致某個(gè)進(jìn)程發(fā)生“饑餓”(Starvation)現(xiàn)象。因?yàn)橹灰粩嘤行逻M(jìn)程的請(qǐng)求到達(dá),且其所要訪問的磁道與磁頭當(dāng)前所在磁道的距離較近,這種新進(jìn)程的I/O請(qǐng)求必須優(yōu)先滿足。對(duì)SSTF算法略加修改后所形成的SCAN算法,即可防止老進(jìn)程出現(xiàn)“饑餓”現(xiàn)象。在SSTF算法中只

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論