計(jì)算機(jī)設(shè)備管理-操作系統(tǒng)_第1頁(yè)
計(jì)算機(jī)設(shè)備管理-操作系統(tǒng)_第2頁(yè)
計(jì)算機(jī)設(shè)備管理-操作系統(tǒng)_第3頁(yè)
計(jì)算機(jī)設(shè)備管理-操作系統(tǒng)_第4頁(yè)
計(jì)算機(jī)設(shè)備管理-操作系統(tǒng)_第5頁(yè)
已閱讀5頁(yè),還剩75頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

第5章設(shè)備管理

操作系統(tǒng)中負(fù)責(zé)I/O設(shè)備管理部分稱為I/O系統(tǒng),完成設(shè)備管理功效,對(duì)OS影響非常大。與處理機(jī)管理、存放器管理親密相關(guān),設(shè)備管理所以經(jīng)常作為操作系統(tǒng)內(nèi)核一部分。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第1頁(yè)設(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)部分。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第2頁(yè)5.1I/O系統(tǒng)概述

I/O系統(tǒng)組成主要包含:I/O設(shè)備、設(shè)備控制器及相關(guān)接口、總線等,大型主機(jī)還包含I/O通道。

計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第3頁(yè)5.1.1I/O設(shè)備

1、I/O設(shè)備類型(1)

按傳輸速率分類低速:鍵盤、鼠標(biāo)、語(yǔ)音輸入輸出設(shè)備。中速:行式打印機(jī)、激光打印機(jī)。高速:磁盤、磁帶、光盤。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第4頁(yè)(2)

按信息交換單位分類(信息組織方式):塊設(shè)備:信息存取以數(shù)據(jù)塊為單位,如磁盤(適合DMA方式)字符設(shè)備:信息存取以字符為單位,如打印機(jī)、交互式終端。(3)

按設(shè)備共享屬性分類:獨(dú)占:如打印機(jī)共享:如磁盤虛擬:經(jīng)過(guò)虛擬技術(shù)將一臺(tái)獨(dú)占設(shè)備變換為若干臺(tái)邏輯設(shè)備,供多個(gè)進(jìn)程同時(shí)使用。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第5頁(yè)2、設(shè)備與控制器之間接口設(shè)備不直接同計(jì)算機(jī)連接,普通是經(jīng)過(guò)專用電纜線連接控制器與設(shè)備。二者傳遞信號(hào)主要是三類:(1)數(shù)據(jù)信號(hào):控制器到設(shè)備(輸出)、設(shè)備到控制器(輸入)(2)控制信號(hào):控制器到設(shè)備(3)狀態(tài)信號(hào):設(shè)備到控制器在小型機(jī)和微型機(jī)中,控制器普通直接做成印刷電路板插入計(jì)算機(jī)(在微機(jī)中習(xí)慣稱為卡,如圖形加速卡,網(wǎng)卡)計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第6頁(yè)5.1.2I/O管理目標(biāo)設(shè)備管理要到達(dá)主要目標(biāo)是:1.提供統(tǒng)一界面、方便用戶使用使用邏輯操作和邏輯設(shè)備名掩蓋設(shè)備物理細(xì)節(jié)。程序?qū)υO(shè)備獨(dú)立性:在源程序和目標(biāo)程序中都使用設(shè)備符號(hào)名(邏輯設(shè)備名);提供設(shè)備管理與文件系統(tǒng)統(tǒng)一接口;向程序提供設(shè)備重定向功效。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第7頁(yè)2.發(fā)揮系統(tǒng)并行性,提升I/O設(shè)備使用效率。采取各種軟硬結(jié)合技術(shù)使設(shè)備、CPU、用戶程序、人這四者到達(dá)最高程度并行采取技術(shù)有:中止技術(shù)、緩沖技術(shù)、設(shè)備共享和假脫機(jī)技術(shù)。3.實(shí)現(xiàn)設(shè)備正確、安全使用——設(shè)備保護(hù)技術(shù):掩蓋細(xì)節(jié)高級(jí)接口;命名與權(quán)限管理;只有特權(quán)指令才能使用設(shè)備硬件接口。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第8頁(yè)5.1.3I/O管理功效

1.緩沖區(qū)管理計(jì)算機(jī)系統(tǒng)中各個(gè)部件速度差異很大。中央處理機(jī)速度以納秒計(jì),外部設(shè)備處理速度則以毫秒甚至秒計(jì)。在不同時(shí)刻,系統(tǒng)各部分負(fù)荷也常常很不均衡。為充分發(fā)揮并行性,引入緩沖技術(shù)。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第9頁(yè)

2.外圍設(shè)備分配按照設(shè)備類型(獨(dú)享、共享或虛擬)和系統(tǒng)中所采用分配算法,決定把一個(gè)I/O設(shè)備分配給哪一個(gè)要求該類設(shè)備進(jìn)程。在大、中系統(tǒng)中,分配設(shè)備同時(shí),還應(yīng)分配相應(yīng)控制器和通道,以保證I/O設(shè)備與CPU之間有傳遞信息通路;凡未分配到所需設(shè)備或控制器或通道進(jìn)程,應(yīng)放入相應(yīng)等待隊(duì)列。設(shè)備分配程序就是用來(lái)實(shí)現(xiàn)這一功能。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第10頁(yè)3.設(shè)備處理設(shè)備處理程序又叫設(shè)備驅(qū)動(dòng)程序。4.虛擬設(shè)備及實(shí)現(xiàn)設(shè)備獨(dú)立性計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第11頁(yè)5.1.4I/O應(yīng)用接口I/O系統(tǒng)必須采取某種技術(shù)使I/O設(shè)備能夠按統(tǒng)一標(biāo)準(zhǔn)方式對(duì)待。采取方式有:抽象、包裝與軟件分層能夠從不一樣I/O設(shè)備中抽象出一些通用類型。每個(gè)通用類型都能夠經(jīng)過(guò)一組標(biāo)準(zhǔn)函數(shù)(即接口)來(lái)訪問(wèn)。詳細(xì)差異被內(nèi)核模塊(設(shè)備驅(qū)動(dòng)程序)所封裝。不一樣設(shè)備有自己驅(qū)動(dòng)程序,但提供了一組標(biāo)準(zhǔn)接口。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第12頁(yè)設(shè)備驅(qū)動(dòng)程序?qū)訛閮?nèi)核I/O子系統(tǒng)隱藏設(shè)備控制器之間差異,從而簡(jiǎn)化了OS開發(fā)人員任務(wù),也有利于硬件制造商。每種OS都有自己設(shè)備驅(qū)動(dòng)程序接口。故一個(gè)特定設(shè)備可能有各種設(shè)備驅(qū)動(dòng)程序。而I/O系統(tǒng)調(diào)用又為上層應(yīng)用程序包裝了硬件細(xì)節(jié)。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第13頁(yè)5.1.5設(shè)備管理總體結(jié)構(gòu)計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第14頁(yè)劃分為四層:①設(shè)備中止處理程序;中止處理程序是設(shè)備驅(qū)動(dòng)程序中一部分②設(shè)備驅(qū)動(dòng)程序;③與設(shè)備無(wú)關(guān)操作系統(tǒng)軟件(設(shè)備無(wú)關(guān)層)負(fù)責(zé)將邏輯設(shè)備名轉(zhuǎn)換為物理設(shè)備名,實(shí)現(xiàn)設(shè)備分配和回收,進(jìn)行緩沖區(qū)管理。④用戶級(jí)軟件(指用戶空間I/O軟件)用戶與設(shè)備管理模塊接口,負(fù)責(zé)解釋用戶應(yīng)用請(qǐng)求,并將這種請(qǐng)求轉(zhuǎn)化為詳細(xì)輸入/輸出操作。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第15頁(yè)相關(guān)層(較低層)用于將硬件特征與無(wú)關(guān)層(較高層)隔離開,而無(wú)關(guān)層(較高層)則參加向用戶提供一個(gè)友好、清楚而規(guī)范接口。從功效上看,無(wú)關(guān)層是I/O管理主要部分,從代碼量看,驅(qū)動(dòng)層是I/O管理主要部分。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第16頁(yè)計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第17頁(yè)內(nèi)核I/O結(jié)構(gòu)計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第18頁(yè)LifeCycleofAnI/ORequest計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第19頁(yè)5.1.6I/O控制方式問(wèn)詢方式,又稱程序直接控制方式。中止方式DMA方式通道技術(shù)計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第20頁(yè)5.2內(nèi)核I/O子系統(tǒng)內(nèi)核I/O子系統(tǒng)是建立在硬件和設(shè)備驅(qū)動(dòng)程序之上。提供與I/O相關(guān)服務(wù),如調(diào)度、緩沖、高速緩沖、假脫機(jī)、錯(cuò)誤處理等。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第21頁(yè)5.2.1I/O調(diào)度I/O調(diào)度是指OS依據(jù)一定算法按照一定次序?yàn)橄到y(tǒng)中I/O請(qǐng)求提供服務(wù)。從而改進(jìn)系統(tǒng)性能,使進(jìn)程公平地共享設(shè)備。OS經(jīng)過(guò)為每個(gè)設(shè)備維護(hù)一個(gè)請(qǐng)求隊(duì)列來(lái)實(shí)現(xiàn)調(diào)度。I/O調(diào)度依據(jù)需要重新安排隊(duì)列次序以改進(jìn)系統(tǒng)總體效率和應(yīng)用程序平均響應(yīng)時(shí)間。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第22頁(yè)5.2.2

緩沖管理

緩沖區(qū)是用來(lái)保留在兩個(gè)設(shè)備之間或在設(shè)備和應(yīng)用程序之間所傳輸數(shù)據(jù)內(nèi)存區(qū)域。1.引入緩沖區(qū)原因(1)處理數(shù)據(jù)生產(chǎn)者和消費(fèi)者速度不匹配。如從調(diào)制解調(diào)器上收到文件并保留到硬盤上。(2)協(xié)調(diào)傳輸數(shù)據(jù)大小不一致設(shè)備。如計(jì)算機(jī)網(wǎng)絡(luò)上,發(fā)送方消息被分成若干包,接收方在緩沖區(qū)中重組數(shù)據(jù)。(3)降低對(duì)CPU中止頻率(4)提升CPU和I/O設(shè)備之間并行性計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第23頁(yè)2.單緩沖(singlebuffer):當(dāng)用戶進(jìn)程發(fā)出I/O請(qǐng)求時(shí),OS便在主存中為之分配一個(gè)緩沖區(qū)。一個(gè)緩沖區(qū),CPU和外設(shè)輪番使用,一方處理完之后接著等候?qū)Ψ教幚怼?/p>

計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第24頁(yè)3.雙緩沖(doublebuffer):為了加緊輸入和輸出速度,引入雙緩沖區(qū)。設(shè)備輸入時(shí),先將數(shù)據(jù)送入第一緩沖區(qū),裝滿后再轉(zhuǎn)向第二緩沖區(qū)。此時(shí)OS能夠從第一緩沖區(qū)移出數(shù)據(jù),送入用戶進(jìn)程所在內(nèi)存。兩個(gè)緩沖區(qū),CPU和外設(shè)都能夠連續(xù)處理而無(wú)需等候?qū)Ψ?。要求CPU和外設(shè)速度相近。

計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第25頁(yè)4.循環(huán)緩沖

環(huán)形緩沖(circularbuffer):多個(gè)緩沖區(qū),CPU和外設(shè)處理速度能夠相差較大??蓞⒁姟吧a(chǎn)者-消費(fèi)者問(wèn)題”,以上緩沖區(qū)僅適合用于特定I/O進(jìn)程和計(jì)算進(jìn)程,屬于專用緩沖區(qū)。系統(tǒng)較大時(shí),會(huì)有多個(gè)專用緩沖區(qū),消耗大量?jī)?nèi)存空間,利用率低,當(dāng)前廣泛使用公用緩沖池,池中設(shè)置了多個(gè)供若干進(jìn)程共享緩沖區(qū)。

計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第26頁(yè)5.緩沖池(1)緩沖池組成既可用于輸入,又可用于輸出,緩沖池中有三類緩沖區(qū):①

空閑緩沖區(qū)隊(duì)列emq②輸入緩沖區(qū)隊(duì)列inq:由裝滿輸入數(shù)據(jù)緩沖區(qū)鏈成隊(duì)列。③輸出緩沖區(qū)隊(duì)列outq:由裝滿輸出數(shù)據(jù)緩沖區(qū)鏈成隊(duì)列。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第27頁(yè)計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第28頁(yè)(2)

對(duì)緩沖池操作:①收容輸入——設(shè)備輸入數(shù)據(jù)②提取輸入——計(jì)算進(jìn)程讀入數(shù)據(jù)③收容輸出——計(jì)算進(jìn)程輸出數(shù)據(jù)④提取輸出——向設(shè)備輸出數(shù)據(jù)。上述操作訪問(wèn)各個(gè)緩沖區(qū)隊(duì)列時(shí),需要進(jìn)行對(duì)應(yīng)互斥操作。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第29頁(yè)5.2.3

設(shè)備分配與回收當(dāng)進(jìn)程向系統(tǒng)提出I/O請(qǐng)求時(shí),只要是可能和安全,設(shè)備分配程序便按照一定策略把設(shè)備分配給請(qǐng)求進(jìn)程。有系統(tǒng)中還要分配對(duì)應(yīng)控制器和通道。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第30頁(yè)1

設(shè)備分配中數(shù)據(jù)結(jié)構(gòu)

(1)設(shè)備控制表(DCT,DeviceControlTable)每個(gè)設(shè)備一張,描述設(shè)備特征和狀態(tài)。反應(yīng)設(shè)備特征、設(shè)備和控制器連接情況。DCT內(nèi)容主要包含:設(shè)備標(biāo)識(shí):用來(lái)區(qū)分不一樣設(shè)備;設(shè)備類型:反應(yīng)設(shè)備特征;如:塊設(shè)備或字符設(shè)備;設(shè)備配置:I/O地址等;計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第31頁(yè)設(shè)備狀態(tài):忙/閑,等候/不等候;(若與設(shè)備鏈接控制器或通道忙,則等候)等候隊(duì)列:等候使用該設(shè)備進(jìn)程隊(duì)列;

與設(shè)備連接控制器表指針。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第32頁(yè)(2)系統(tǒng)設(shè)備表(SDT,SystemDeviceTable)系統(tǒng)內(nèi)一張,反應(yīng)系統(tǒng)中設(shè)備資源狀態(tài),統(tǒng)計(jì)全部設(shè)備狀態(tài)及其設(shè)備控制表入口。SDT表項(xiàng)主要組成:DCT指針:指向?qū)?yīng)設(shè)備DCT;設(shè)備使用進(jìn)程標(biāo)識(shí):正在使用該設(shè)備進(jìn)程標(biāo)識(shí);DCT信息:為引用方便而保留DCT信息,如:設(shè)備標(biāo)識(shí)、設(shè)備類型等;計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第33頁(yè)(3)控制器控制表(COCT,COntrollerControlTable)每個(gè)設(shè)備控制器一張,描述I/O控制器配置和狀態(tài)。如DMA控制器所占用中止號(hào)、DMA數(shù)據(jù)通道分配。(4)通道控制表(CHCT,CHannelControlTable)每個(gè)通道一張,描述通道工作狀態(tài)??刂破鳂?biāo)識(shí)符控制器狀態(tài):忙/空閑與控制器連接通道指針等候控制器進(jìn)程隊(duì)列指針計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第34頁(yè)系統(tǒng)設(shè)備表設(shè)備控制表控制器控制表1通道控制表設(shè)備控制表1控制器控制表2控制器控制表n設(shè)備控制表npcbpcbpcbpcb(5)表格之間關(guān)系pcbpcb計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第35頁(yè)2

設(shè)備分配時(shí)應(yīng)考慮原因

設(shè)備分配標(biāo)準(zhǔn)是合理使用外設(shè)(公平和防止死鎖),提升設(shè)備使用率。(1)考慮設(shè)備固有屬性獨(dú)享設(shè)備:打印機(jī)等。進(jìn)程使用完自己釋放,普通不能剝奪;

共享設(shè)備:磁盤、網(wǎng)卡等。多個(gè)進(jìn)程并發(fā)使用,需合理調(diào)度;虛擬設(shè)備:虛擬打印機(jī)等??捎卸鄠€(gè)進(jìn)程使用,但FCFS。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第36頁(yè)(2)設(shè)備分配算法與進(jìn)程調(diào)度類似,但簡(jiǎn)單一些;先來(lái)先服務(wù)(FCFS):按I/O請(qǐng)求先后次序,排成I/O請(qǐng)求命令隊(duì)列;按FCFS分配設(shè)備;基于優(yōu)先級(jí):依據(jù)進(jìn)程優(yōu)先級(jí),指定I/O請(qǐng)求優(yōu)先級(jí),優(yōu)先級(jí)高排在設(shè)備隊(duì)列隊(duì)首;同優(yōu)先級(jí)則FCFS;按優(yōu)先級(jí)高低分配設(shè)備。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第37頁(yè)(3)設(shè)備分配中安全性①安全分配方式進(jìn)程發(fā)出I/O請(qǐng)求后阻塞,完成后喚醒,即進(jìn)程運(yùn)行時(shí)不占有任何設(shè)備資源,擯棄了“請(qǐng)求保持”條件。缺點(diǎn):CPU與I/O設(shè)備是串行工作。②不安全分配方式進(jìn)程發(fā)出I/O請(qǐng)求后仍繼續(xù)運(yùn)行,又可發(fā)出I/O請(qǐng)求,僅當(dāng)進(jìn)程所請(qǐng)求設(shè)備已被另一進(jìn)程占用時(shí),進(jìn)程才進(jìn)入阻塞狀態(tài)。優(yōu)點(diǎn):多個(gè)設(shè)備并行操作;缺點(diǎn):可能造成死鎖。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第38頁(yè)3

設(shè)備獨(dú)立性(1)設(shè)備獨(dú)立性(Deviceindependence)概念設(shè)備獨(dú)立性指除了直接與設(shè)備打交道底層軟件之外,其它部分軟件并不依賴于硬件。能夠提升軟件設(shè)計(jì)效率。為了實(shí)現(xiàn)設(shè)備獨(dú)立性:引入物理設(shè)備、邏輯設(shè)備應(yīng)用程序使用邏輯設(shè)備名調(diào)用設(shè)備;OS實(shí)際執(zhí)行時(shí),使用物理設(shè)備名。OS負(fù)責(zé)將邏輯設(shè)備名轉(zhuǎn)換為物理設(shè)備名。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第39頁(yè)(2)設(shè)備獨(dú)立性帶來(lái)以下好處:①設(shè)備分配時(shí)靈活性進(jìn)程請(qǐng)求設(shè)備時(shí),OS可從一類設(shè)備中選擇空閑分配,不會(huì)因特定設(shè)備忙而阻塞。②實(shí)現(xiàn)I/O重定向I/O重定向:實(shí)現(xiàn)I/O操作設(shè)備能夠更換,而無(wú)須改變應(yīng)用程序。如,調(diào)試程序時(shí)先輸出到屏幕,最終再打印計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第40頁(yè)(3)邏輯設(shè)備名到物理設(shè)備名映射實(shí)現(xiàn)①邏輯設(shè)備表(LUT)當(dāng)進(jìn)程用邏輯設(shè)備名請(qǐng)求I/O設(shè)備時(shí),系統(tǒng)為它分配對(duì)應(yīng)物理設(shè)備,并在LUT中建立一個(gè)表目。②LUT設(shè)置可采取兩種方式整個(gè)系統(tǒng)一張,不能有相同邏輯設(shè)備名。每個(gè)用戶一張,放入PCB中計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第41頁(yè)4.基本設(shè)備分配程序(1)分配設(shè)備(2)分配控制器(3)分配通道系統(tǒng)設(shè)備表設(shè)備控制表控制器控制表1通道控制表設(shè)備控制表1控制器控制表2控制器控制表n設(shè)備控制表npcbpcbpcbpcbpcbpcb計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第42頁(yè)5.2.4SPOOLing技術(shù)

利用假脫機(jī)技術(shù)(SPOOLing,SimultaneousPeripheralOperationOnLine,也稱為虛擬設(shè)備技術(shù))可把獨(dú)享設(shè)備轉(zhuǎn)變成含有共享特征虛擬設(shè)備,從而提升設(shè)備利用率。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第43頁(yè)1、什么是SPOOLing引入:在多道程序系統(tǒng)中,專門利用一道程序(SPOOLing程序)來(lái)完成對(duì)設(shè)備I/O操作。無(wú)需使用外圍I/O處理機(jī)。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第44頁(yè)讓主機(jī)直接控制I/O稱為聯(lián)機(jī)I/O;讓另一臺(tái)“外圍機(jī)”代替主機(jī)控制I/O稱為脫機(jī)I/O。SPOOLing用聯(lián)機(jī)I/O模擬脫機(jī)I/O操作,故稱為“假脫機(jī)”。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第45頁(yè)原理:SPOOLing程序和外設(shè)進(jìn)行數(shù)據(jù)交換,可以稱為“實(shí)際I/O”。一方面,SPOOLing程序預(yù)先從外設(shè)輸入數(shù)據(jù)并加以緩沖(輸入井),在以后需要時(shí)候輸入到應(yīng)用程序;其次,SPOOLing程序接收應(yīng)用程序輸出數(shù)據(jù)并加以緩沖(輸出井),在以后適當(dāng)時(shí)候輸出到外設(shè)。應(yīng)用程序進(jìn)行I/O操作時(shí),只是和SPOOLing程序交換數(shù)據(jù),可以稱為“虛擬I/O”。這時(shí)候虛擬I/O實(shí)際上是SPOOLing程序從緩沖池中讀出數(shù)據(jù)或把數(shù)據(jù)送入緩沖池,而不是跟實(shí)際外設(shè)進(jìn)行I/O操作。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第46頁(yè)2、SPOOLing系統(tǒng)組成(1)輸入井和輸出井:在磁盤上。(2)

輸入緩沖區(qū)和輸出緩沖區(qū):在內(nèi)存。緩解CPU和磁盤速度不匹配矛盾。(3)

輸入進(jìn)程和輸出進(jìn)程:守護(hù)(daemon)進(jìn)程計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第47頁(yè)3、SPOOLing系統(tǒng)特點(diǎn)優(yōu)點(diǎn):高速虛擬I/O操作:應(yīng)用程序虛擬I/O比實(shí)際I/O速度提升,縮短應(yīng)用程序執(zhí)行時(shí)間(盡快完成計(jì)算,并釋放占用計(jì)算機(jī)資源)。實(shí)現(xiàn)對(duì)獨(dú)享設(shè)備共享:SPOOLing系統(tǒng)中,未為任何進(jìn)程分配設(shè)備,是在輸入井和輸出井中為進(jìn)程分配一個(gè)存放區(qū)、建立一張I/O請(qǐng)求表。由SPOOLing程序提供虛擬設(shè)備,使每個(gè)使用獨(dú)占設(shè)備進(jìn)程都認(rèn)為是自己獨(dú)占了一個(gè)設(shè)備。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第48頁(yè)4、舉例:打印機(jī)設(shè)備和可由打印機(jī)管理器管理打印作業(yè)隊(duì)列。如:WindowsNT中,應(yīng)用程序直接向針式打印機(jī)輸出需要15分鐘,而向打印作業(yè)隊(duì)列輸出只需要1分鐘,今后用戶能夠關(guān)閉應(yīng)用程序而轉(zhuǎn)入其它工作,在以后適當(dāng)時(shí)候由打印機(jī)管理器完成15分鐘打印輸出而無(wú)需用戶干預(yù)。又如Internet上USENET電子郵件系統(tǒng),要向某人發(fā)郵件,先調(diào)用一個(gè)稱為send程序,send接到要發(fā)郵件,然后將它送入一個(gè)SPOOLing目錄,待以后發(fā)送。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第49頁(yè)5.2.5犯錯(cuò)處理設(shè)備和I/O傳輸犯錯(cuò)有各種方式:短暫犯錯(cuò)OS能夠填補(bǔ),如磁盤read錯(cuò)能夠重read永久錯(cuò)誤OS就不可能從中恢復(fù)。如磁盤控制器故障。I/O系統(tǒng)調(diào)用通常返回一位調(diào)用狀態(tài)信息,以表示成功或失敗。UNIX系統(tǒng)用一個(gè)全局變量表示犯錯(cuò)代碼,以表示犯錯(cuò)原因。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第50頁(yè)5.3設(shè)備處理

5.3.1設(shè)備驅(qū)動(dòng)程序功效和特點(diǎn)一、設(shè)備驅(qū)動(dòng)程序功效1.

將上層軟件發(fā)來(lái)抽象要求轉(zhuǎn)換為詳細(xì)要求,發(fā)送給設(shè)備控制器。如將盤塊號(hào)轉(zhuǎn)換為磁盤盤面、磁道號(hào)及扇區(qū)號(hào)。2.

檢驗(yàn)用戶I/O請(qǐng)求正當(dāng)性,了解設(shè)備狀態(tài),傳遞相關(guān)參數(shù),設(shè)置設(shè)備工作方式。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第51頁(yè)3.

發(fā)出I/O命令,若設(shè)備空閑則開啟。若設(shè)備忙,則將請(qǐng)求者請(qǐng)求塊掛在設(shè)備隊(duì)列上。4.及時(shí)響應(yīng)通道或控制器發(fā)來(lái)中止請(qǐng)求,調(diào)用對(duì)應(yīng)中止處理程序。5.對(duì)于設(shè)置有通道,自動(dòng)組成通道程序計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第52頁(yè)二、設(shè)備處理方式1.

作為應(yīng)用進(jìn)程一部分執(zhí)行:與程序控制I/O相對(duì)應(yīng),難以對(duì)外設(shè)發(fā)出中止作實(shí)時(shí)響應(yīng);2.

作為系統(tǒng)進(jìn)程執(zhí)行:為每類設(shè)備設(shè)置一個(gè)進(jìn)程;或整個(gè)系統(tǒng)設(shè)置一個(gè)I/O進(jìn)程,負(fù)責(zé)對(duì)各類設(shè)備I/O進(jìn)程管理;也可設(shè)置一個(gè)輸入進(jìn)程和一個(gè)輸出進(jìn)程;3.

不設(shè)進(jìn)程,作為OS關(guān)鍵中設(shè)備驅(qū)動(dòng)程序,供用戶或系統(tǒng)進(jìn)程調(diào)用。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第53頁(yè)三、設(shè)備驅(qū)動(dòng)程序特點(diǎn)1.

設(shè)備驅(qū)動(dòng)程序是在I/O請(qǐng)求進(jìn)程與設(shè)備控制器之間橋梁,中轉(zhuǎn)數(shù)據(jù)和控制。2.

設(shè)備驅(qū)動(dòng)程序與I/O設(shè)備特征、控制方式及硬件親密相關(guān),普通由廠商提供。3.

向上屏蔽設(shè)備細(xì)節(jié):不一樣類型設(shè)備通常其設(shè)備驅(qū)動(dòng)程序接口不一樣,同類設(shè)備接口相同。所以,同類設(shè)備不一樣型號(hào),只要更換設(shè)備驅(qū)動(dòng)程序則可由OS使用。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第54頁(yè)5.3.2設(shè)備驅(qū)動(dòng)程序處理過(guò)程

1.

將抽象要求轉(zhuǎn)化為詳細(xì)要求。2.

檢驗(yàn)I/O請(qǐng)求正當(dāng)性3.

讀出和檢驗(yàn)設(shè)備狀態(tài)4.

傳送參數(shù)5.

設(shè)置工作方式6.

開啟I/O設(shè)備計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第55頁(yè)5.3.3中止處理程序處理過(guò)程

1.

喚醒被阻塞驅(qū)動(dòng)程序進(jìn)程2.

保護(hù)被中止進(jìn)程上下文3.

分析中止原因并轉(zhuǎn)入對(duì)應(yīng)中止處理程序4.

中止處理5.

恢復(fù)被中止進(jìn)程現(xiàn)場(chǎng)計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第56頁(yè)5.4磁盤存放器管理

磁盤存放器:隨機(jī)讀寫共享設(shè)備,可移動(dòng)介質(zhì)特點(diǎn):容量大,速度快。管理要求:合理分配空間、訪問(wèn)效率高,容錯(cuò)能力強(qiáng)。其性能直接影響文件系統(tǒng)性能指標(biāo)。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第57頁(yè)5.4.1磁盤性能簡(jiǎn)述

1、

數(shù)據(jù)組織地址格式:驅(qū)動(dòng)器號(hào)、磁道號(hào)、磁頭號(hào)、扇區(qū)號(hào)2、

磁盤類型(1)固定頭磁盤(2)移動(dòng)頭磁盤3、

磁盤訪問(wèn)時(shí)間(1)尋道時(shí)間:與尋道距離成正比(2)旋轉(zhuǎn)延遲時(shí)間(3)傳輸時(shí)間影響磁盤訪問(wèn)時(shí)間主要參數(shù)是尋道時(shí)間。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第58頁(yè)計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第59頁(yè)5.4.2磁盤調(diào)度提升磁盤I/O速度路徑:(1)

硬件處理(2)

好調(diào)度算法(3)

緩沖區(qū)來(lái)自不一樣進(jìn)程磁盤I/O請(qǐng)求組成一個(gè)隨機(jī)分布請(qǐng)求隊(duì)列。磁盤I/O調(diào)度算法主要目標(biāo)就是降低請(qǐng)求隊(duì)列對(duì)應(yīng)平均柱面定位時(shí)間(尋道時(shí)間)。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第60頁(yè)1、先來(lái)先服務(wù)(FCFS)磁盤I/O執(zhí)行次序?yàn)榇疟PI/O請(qǐng)求先后次序。該算法特點(diǎn)是公平性;在磁盤I/O負(fù)載較輕且每次讀寫多個(gè)連續(xù)扇區(qū)時(shí),性能很好。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第61頁(yè)計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第62頁(yè)2、最短尋道時(shí)間優(yōu)先SSTF(ShortSeekTimeFirst)考慮磁盤I/O請(qǐng)求隊(duì)列中各請(qǐng)求磁頭定位位置,選擇從當(dāng)前磁頭位置出發(fā),移動(dòng)最少磁盤I/O請(qǐng)求。該算法目標(biāo)是使每次磁頭移動(dòng)時(shí)間最少。訪問(wèn)磁道與當(dāng)前磁頭所在位置最近,但不能確保平均尋道時(shí)間最短,但比FIFO算法有更加好性能。進(jìn)程有可能“餓死”。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第63頁(yè)計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第64頁(yè)3、掃描(SCAN)算法:電梯調(diào)度算法。選擇在磁頭前進(jìn)方向上從當(dāng)前位置移動(dòng)最少磁盤I/O請(qǐng)求執(zhí)行,沒(méi)有前進(jìn)方向上請(qǐng)求時(shí)才改變方向。該算法是對(duì)SSTF算法改進(jìn),磁盤I/O很好,且沒(méi)有進(jìn)程會(huì)餓死。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第65頁(yè)計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第66頁(yè)4、循環(huán)掃描算法CSCAN(CircularSCAN):在一個(gè)方向上使用掃描算法,當(dāng)?shù)诌_(dá)邊緣時(shí)直接移動(dòng)到另一沿第一個(gè)位置,即磁頭向一個(gè)方向移動(dòng),到頭后馬上返回。該算法可改進(jìn)掃描算法對(duì)中間磁道偏好。試驗(yàn)表明,該算法在中負(fù)載或重負(fù)載時(shí),磁盤I/O性能比掃描算法好。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第67頁(yè)計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第68頁(yè)以上算法無(wú)法處理磁臂粘著問(wèn)題。5.N-Step-SCAN算法:把磁盤I/O請(qǐng)求隊(duì)列分成長(zhǎng)度為N段,每次使用掃描算法處理這N個(gè)請(qǐng)求,即將請(qǐng)求任務(wù)分成長(zhǎng)度為N若干個(gè)隊(duì)列,隊(duì)列間調(diào)度采取FCFS方式,隊(duì)列內(nèi)部請(qǐng)求以SCAN方式調(diào)度。該算法目標(biāo)是處理磁臂粘著問(wèn)題。當(dāng)N值很大時(shí),該算法靠近于SCAN;而N=1時(shí)該算法變?yōu)镕CFS。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第69頁(yè)6.FSCAN調(diào)度算法將N-Step-SCAN算法中隊(duì)列數(shù)目定為2。把磁盤I/O請(qǐng)求分成兩個(gè)隊(duì)列,交替使用掃描算法處理一個(gè)隊(duì)列,新生成磁盤I/O請(qǐng)求放入另一隊(duì)列中。該算法目標(biāo)與N步掃描算法一致。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第70頁(yè)作業(yè)某磁盤有1000個(gè)柱面(0~999),設(shè)磁頭當(dāng)前位置是756,磁頭正向0磁道運(yùn)動(dòng)。按照FIFO排列磁盤請(qǐng)求隊(duì)列以下:811,348,153,968,407,500畫圖說(shuō)明FCFS、SCAN、SSTF算法完成上述磁盤請(qǐng)求調(diào)度情況,并計(jì)算為滿足上述請(qǐng)求,各算法中磁頭運(yùn)動(dòng)磁道數(shù)。計(jì)算機(jī)設(shè)備管理--操作系統(tǒng)第71頁(yè)5.4.3磁盤高速緩存1.磁盤高速緩存形式指利用內(nèi)存空間暫存從磁盤中讀出盤塊信息。是一組邏輯上屬于磁盤,物理上駐留內(nèi)存盤塊。磁盤高速緩存在內(nèi)存中有兩種形式:大小固定,不受應(yīng)用程序多少影響。全部未利用內(nèi)存

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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)論