操作系統(tǒng)原理-第四章-設(shè)備管理_第1頁(yè)
操作系統(tǒng)原理-第四章-設(shè)備管理_第2頁(yè)
操作系統(tǒng)原理-第四章-設(shè)備管理_第3頁(yè)
操作系統(tǒng)原理-第四章-設(shè)備管理_第4頁(yè)
操作系統(tǒng)原理-第四章-設(shè)備管理_第5頁(yè)
已閱讀5頁(yè),還剩70頁(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)介

操作系統(tǒng)原理-第四章-設(shè)備管理第一頁(yè),共75頁(yè)。4.1設(shè)備管理概述

I/O設(shè)備是計(jì)算機(jī)系統(tǒng)的重要資源,用戶無(wú)權(quán)直接使用。設(shè)備管理的一個(gè)重要任務(wù):便是按照一定的算法在各進(jìn)程間調(diào)度和分配設(shè)備。

另外,設(shè)備管理還要按照用戶要求啟動(dòng)具體設(shè)備,完成數(shù)據(jù)傳輸操作,并且處理設(shè)備的中斷。還有如何利用虛擬技術(shù)使獨(dú)享設(shè)備“變?yōu)椤惫蚕碓O(shè)備,使一臺(tái)物理設(shè)備“變?yōu)椤倍嗯_(tái)邏輯設(shè)備。第二頁(yè),共75頁(yè)。一、設(shè)備管理的分類

按從屬關(guān)系分類(1)系統(tǒng)設(shè)備:指在操作系統(tǒng)生成時(shí)已經(jīng)登記在系統(tǒng)中的標(biāo)準(zhǔn)設(shè)備。如鍵盤、顯示器、打印機(jī)等。(2)用戶設(shè)備:指操作系統(tǒng)生成時(shí)未登記入系統(tǒng)的非標(biāo)準(zhǔn)設(shè)備。如鼠標(biāo)、繪圖儀、掃描儀等。4.1.1設(shè)備的分類第三頁(yè),共75頁(yè)。按傳輸速率分類(1)低速設(shè)備:指?jìng)鬏斔俾蕿槊棵腌妿讉€(gè)字符至數(shù)百個(gè)字節(jié)的設(shè)備,如鍵盤、鼠標(biāo)、語(yǔ)音輸入等。(2)中速設(shè)備:指?jìng)鬏斔俾蕿槊棵腌姅?shù)千個(gè)字節(jié)至數(shù)萬(wàn)個(gè)字節(jié)的設(shè)備,如針式打印機(jī)、激光打印機(jī)等。(3)高速設(shè)備:指?jìng)鬏斔俾蕿閿?shù)兆字節(jié)的設(shè)備,如磁帶機(jī)、磁盤機(jī)、光盤機(jī)等。設(shè)備的分類(續(xù)1)第四頁(yè),共75頁(yè)。按使用特性分類(1)存儲(chǔ)設(shè)備:計(jì)算機(jī)用來(lái)保存各種信息的非易失性設(shè)備,如磁盤、磁帶等;(2)I/O設(shè)備:向CPU傳輸信息或輸出CPU加工處理信息的設(shè)備,如鍵盤,CRT等。設(shè)備的分類(續(xù)2)按信息交換單位分類(1)字符設(shè)備:處理信息的基本單位是字符的設(shè)備,如鍵盤、打印機(jī)、顯示器等;(2)塊設(shè)備:處理信息的基本單位是字符塊的設(shè)備,一般塊的大小為512B~4KB,如磁盤、磁帶等。

第五頁(yè),共75頁(yè)。按設(shè)備共享屬性分類(1)獨(dú)占設(shè)備:指在一段時(shí)間內(nèi)只允許一個(gè)用戶(進(jìn)程)訪問(wèn)的設(shè)備,大多數(shù)低速的I/O設(shè)備,如打印機(jī)、顯示器等。獨(dú)占設(shè)備屬于臨界資源,多個(gè)并發(fā)進(jìn)程必須互斥地訪問(wèn)獨(dú)占設(shè)備。(2)共享設(shè)備:指在一段時(shí)間內(nèi)允許多個(gè)進(jìn)程同時(shí)訪問(wèn)的設(shè)備。共享設(shè)備必須是可尋址的和可隨機(jī)訪問(wèn)的設(shè)備,典型的共享設(shè)備是磁盤。(3)虛擬設(shè)備:指通過(guò)虛擬技術(shù)將一臺(tái)獨(dú)占設(shè)備變換為若干臺(tái)供多個(gè)用戶(進(jìn)程)共享的邏輯設(shè)備。一般可以利用假脫機(jī)(SPOOLing)技術(shù)實(shí)現(xiàn)虛擬設(shè)備。設(shè)備的分類(續(xù)3)第六頁(yè),共75頁(yè)。(1)提高I/O設(shè)備和CPU的利用率:應(yīng)盡量提高CPU與I/O設(shè)備之間的并行操作程度,主要利用的技術(shù)有:中斷技術(shù)、DMA技術(shù)、通道技術(shù)和緩沖技術(shù)。(2)提高I/O速度:除上述技術(shù)外,還常用虛擬設(shè)備技術(shù)(3)為用戶提供方便、統(tǒng)一的界面:方便,是指用戶能獨(dú)立于具體設(shè)備的復(fù)雜物理特性之外而方便使用設(shè)備。統(tǒng)一,是指對(duì)不同的設(shè)備盡量使用統(tǒng)一的操作方式。這要求用戶操作的是簡(jiǎn)便的邏輯設(shè)備,而具體的I/O物理設(shè)備由操作系統(tǒng)去實(shí)現(xiàn),這種性能常常被稱為設(shè)備的獨(dú)立性。Linux中,用戶通過(guò)訪問(wèn)設(shè)備文件(如/dev/sdc)來(lái)訪問(wèn)各種設(shè)備;而內(nèi)核中,對(duì)字符設(shè)備定義了統(tǒng)一驅(qū)動(dòng)接口,對(duì)塊設(shè)備定義了統(tǒng)一驅(qū)動(dòng)接口。4.1.2設(shè)備管理的目標(biāo)第七頁(yè),共75頁(yè)。4.1.3設(shè)備管理的功能(1)設(shè)備分配:按照設(shè)備類型和相應(yīng)的分配算法決定將I/O設(shè)備分配給哪一要求使用該設(shè)備的進(jìn)程。凡未分配到所需設(shè)備的進(jìn)程被放入一個(gè)等待隊(duì)列。(2)設(shè)備處理:設(shè)備處理程序?qū)崿F(xiàn)CPU和設(shè)備控制器之間的通信。即當(dāng)CPU向設(shè)備控制器發(fā)出I/O指令時(shí),設(shè)備處理程序應(yīng)啟動(dòng)設(shè)備進(jìn)行I/O操作,并能對(duì)設(shè)備發(fā)來(lái)的中斷請(qǐng)求作出及時(shí)的響應(yīng)和處理。(3)實(shí)現(xiàn)其他功能:包括對(duì)緩沖區(qū)的管理功能及實(shí)現(xiàn)設(shè)備獨(dú)立性(又稱設(shè)備的無(wú)關(guān)性)。

第八頁(yè),共75頁(yè)。1.邏輯I/O:抽象命令、網(wǎng)絡(luò)協(xié)議棧、文件邏輯結(jié)構(gòu)控制2.設(shè)備I/O:用戶命令到設(shè)備操作序列轉(zhuǎn)換,I/O緩沖3.調(diào)度和控制:設(shè)備驅(qū)動(dòng)程序并發(fā)I/O訪問(wèn)調(diào)度設(shè)備控制與狀態(tài)維護(hù)設(shè)備中斷處理用戶進(jìn)程硬件4.1.4設(shè)備管理結(jié)構(gòu)設(shè)備無(wú)關(guān)層設(shè)備有關(guān)層使用C庫(kù)函數(shù)fread系統(tǒng)調(diào)用read如緩存中有:則直接返回,否則,轉(zhuǎn)化為對(duì)硬盤某些塊的I/O請(qǐng)求調(diào)用塊設(shè)備驅(qū)動(dòng)程序接口make_request處理、調(diào)度I/O請(qǐng)求,并將I/O請(qǐng)求轉(zhuǎn)換為對(duì)硬盤地址的訪問(wèn)命令,并響應(yīng)中斷請(qǐng)求,處理返回?cái)?shù)據(jù)硬盤訪問(wèn)命令第九頁(yè),共75頁(yè)。4.1.5設(shè)備控制器和I/O通道CPU通過(guò)設(shè)備控制器與I/O設(shè)備通信通道:專門負(fù)責(zé)I/O工作的處理機(jī);一般在大中型計(jì)算機(jī)中設(shè)置有通道第十頁(yè),共75頁(yè)。4.2I/O控制方式

計(jì)算機(jī)外設(shè)與內(nèi)存之間的信息傳送稱為輸入/輸出操作。其控制方式主要有4個(gè)發(fā)展階段:程序輪詢I/O控制方式中斷I/O控制方式DMAI/O控制方式通道I/O控制方式減少CPU的I/O控制事務(wù);提高CPU與I/O設(shè)備的并行程度第十一頁(yè),共75頁(yè)。1、程序直接控制方式優(yōu)點(diǎn):簡(jiǎn)單。缺點(diǎn):浪費(fèi)CPU資源,效率低下。第十二頁(yè),共75頁(yè)。2、中斷控制方式第十三頁(yè),共75頁(yè)。3、DMA控制方式第十四頁(yè),共75頁(yè)。4、通道控制方式(I/O處理機(jī))(1)CPU啟動(dòng)通道,告知“通道程序”的首地址;(2)(3):通道根據(jù)“通道程序”中的指令,執(zhí)行I/O,交換數(shù)據(jù)(4)通道執(zhí)行完“通道程序”的指令后,發(fā)出中斷;操作PR計(jì)數(shù)內(nèi)存地址WRITE0080813WRITE001401034WRITE01605830WRITE013002000WRITE002501850WRITE11250720第十五頁(yè),共75頁(yè)。三種通道類型字節(jié)多路通道以字節(jié)為單位傳送信息;分時(shí)輪流執(zhí)行多個(gè)通道程序,當(dāng)一個(gè)設(shè)備傳輸一個(gè)字節(jié)后,轉(zhuǎn)去執(zhí)行另一個(gè)通道程序;適于連接像打印機(jī)、終端那樣的字符類低速設(shè)備;選擇通道以塊為單位傳送信息;每次執(zhí)行一個(gè)通道程序,當(dāng)該通道程序執(zhí)行完畢后,才選擇另一臺(tái)設(shè)備,為其服務(wù);適合于連接優(yōu)先級(jí)高的磁盤等高速設(shè)備;數(shù)組多路通道以塊為單位傳送信息,分時(shí)輪流執(zhí)行多個(gè)通道程序;當(dāng)一個(gè)設(shè)備傳輸一塊數(shù)據(jù)后,轉(zhuǎn)去執(zhí)行另一個(gè)通道程序;適用于連接多臺(tái)像磁帶機(jī)那樣的高速設(shè)備。第十六頁(yè),共75頁(yè)。4.3中斷技術(shù)4.3.1

中斷的基本概念中斷是指計(jì)算機(jī)在執(zhí)行期間,系統(tǒng)內(nèi)發(fā)生了某一急需處理的事件,暫時(shí)中止CPU上現(xiàn)行程序的運(yùn)行,轉(zhuǎn)去執(zhí)行相應(yīng)的事件處理程序,待處理完畢后又返回到剛才暫停程序的被中斷處繼續(xù)執(zhí)行的過(guò)程。

中斷是操作系統(tǒng)實(shí)現(xiàn)并發(fā)性的基礎(chǔ)之一。

以下是需要打斷處理器正常工作的典型事件:

?

請(qǐng)求系統(tǒng)服務(wù)

?

實(shí)現(xiàn)并行工作

?

處理突發(fā)事件

?

滿足實(shí)時(shí)要求第十七頁(yè),共75頁(yè)。1、中斷分類中斷的分類角度很多,比如,IBM中大型機(jī)操作系統(tǒng),便按照中斷事件的性質(zhì)和激活的手段,將中斷分成以下兩類:?

強(qiáng)迫性中斷事件這不是正在運(yùn)行的程序所期待的,而是由于某種事故或外部請(qǐng)求信息所引起的,具體分為:機(jī)器故障中斷事件,程序性中斷事件,外部中斷事件,輸入輸出中斷事件。

?

自愿性中斷事件這是正在運(yùn)行的程序所期待的事件。比如,其對(duì)操作系統(tǒng)有某種需求,一旦機(jī)器執(zhí)行到一條訪管指令時(shí),便自愿停止現(xiàn)行程序的執(zhí)行而轉(zhuǎn)入訪管中斷處理程序處理。4.3.2中斷分類與優(yōu)先級(jí)第十八頁(yè),共75頁(yè)。而Windows2000/XP則按照中斷信號(hào)的來(lái)源,把中斷分為外中斷和內(nèi)中斷兩類:

?外中斷(又稱中斷):指來(lái)自處理器和主存之外的中斷。包括:電源故障中斷、時(shí)鐘中斷、控制臺(tái)中斷、它機(jī)中斷和I/O中斷等。

?內(nèi)中斷(又稱異?;蛳萑?:指來(lái)自處理器和主存內(nèi)部的中斷。包括:通路校驗(yàn)錯(cuò)、主存奇偶錯(cuò)、非法操作碼、地址越界、頁(yè)面失效、調(diào)試指令、訪管中斷、算術(shù)操作溢出等各種程序性中斷。內(nèi)中斷不能被屏蔽。中斷分類(續(xù))第十九頁(yè),共75頁(yè)。2、中斷優(yōu)先級(jí)是指中斷裝置響應(yīng)中斷的次序。當(dāng)系統(tǒng)中同時(shí)發(fā)生多個(gè)中斷時(shí),先處理優(yōu)先級(jí)高的中斷。一般情況下,中斷優(yōu)先級(jí)的順序從高到低為:機(jī)器故障中斷、訪管中斷、程序性中斷、外部中斷和I/O中斷第二十頁(yè),共75頁(yè)。4.3.3中斷處理過(guò)程設(shè)備控制器/系統(tǒng)硬件發(fā)出中斷請(qǐng)求處理器結(jié)束當(dāng)前指令的執(zhí)行處理器發(fā)出中斷認(rèn)可(響應(yīng))信號(hào)處理器將PSW和PC壓入系統(tǒng)堆棧處理器裝入中斷程序入口地址到PC執(zhí)行中斷程序取回處理器狀態(tài)信息(恢復(fù)現(xiàn)場(chǎng))恢復(fù)中斷前的PSW和PC處理程序相關(guān)的狀態(tài)信息硬件軟件第二十一頁(yè),共75頁(yè)。4.4緩沖技術(shù)

1、緩沖技術(shù)的基本思想在CPU和外設(shè)之間設(shè)立緩沖區(qū),用以暫存CPU與外設(shè)之間交換的數(shù)據(jù),從而緩和CPU與外設(shè)速度不匹配所產(chǎn)生的矛盾。凡是數(shù)據(jù)到達(dá)和離去速度不匹配的地方均可采用緩沖技術(shù)。CPU與內(nèi)存之間也需要設(shè)置緩沖,只不過(guò)設(shè)在cache里。在CPU和外設(shè)交換數(shù)據(jù)時(shí),經(jīng)常會(huì)出現(xiàn)數(shù)據(jù)寫入和讀取速度不匹配的情況,由此引入了緩沖技術(shù)。第二十二頁(yè),共75頁(yè)。2、引入緩沖的目的(1)改善CPU與I/O設(shè)備之間速度不匹配的矛盾避免高速的CPU等待慢速的I/O設(shè)備(2)減少對(duì)CPU的中斷頻率,放寬對(duì)中斷響應(yīng)時(shí)間的限制I/O設(shè)備輸入數(shù)據(jù)時(shí),裝滿緩沖區(qū)才產(chǎn)生一次中斷(3)提高CPU與I/O設(shè)備之間的并行性提高系統(tǒng)吞吐率和設(shè)備利用率第二十三頁(yè),共75頁(yè)。3、緩沖的分類及使用緩沖分為硬件緩沖和軟件緩沖:硬件緩沖:設(shè)置專用寄存器用于緩沖,如Cache軟件緩沖:在內(nèi)存中劃出若干個(gè)單元作為緩沖區(qū)按從屬關(guān)系分類:分為專用緩沖區(qū)和通用緩沖區(qū)按緩沖區(qū)個(gè)數(shù)分類:?jiǎn)尉彌_、雙緩沖、環(huán)形緩沖(這三個(gè)均屬專用緩沖區(qū))和緩沖池(屬通用緩沖區(qū))緩沖操作主要由getbuf()和putbuf()過(guò)程實(shí)現(xiàn),它們之間有互斥及同步約束。第二十四頁(yè),共75頁(yè)。1)單緩沖只設(shè)置一個(gè)緩沖,CPU和外設(shè)輪流使用CPU設(shè)備與CPU對(duì)緩沖區(qū)的操作是串行的第二十五頁(yè),共75頁(yè)。2)雙緩沖可以提高CPU與設(shè)備的并行操作程度,適合于外設(shè)速度較高的情況。第二十六頁(yè),共75頁(yè)。3)環(huán)形緩沖R:空緩沖區(qū),G:滿緩沖區(qū),C:正在使用的緩沖區(qū)Nexti:指向第一個(gè)可輸入數(shù)據(jù)的空緩沖區(qū)Nextg:指向第一個(gè)裝滿數(shù)據(jù)的緩沖區(qū)Current:指向當(dāng)前正在使用的緩沖區(qū)第二十七頁(yè),共75頁(yè)。4)緩沖池由多個(gè)大小相等的緩沖區(qū)組成,緩沖池是公用資源,由多個(gè)進(jìn)程共享。緩沖池空緩沖隊(duì)列輸入隊(duì)列(裝滿輸入數(shù)據(jù))輸出隊(duì)列(裝滿輸出數(shù)據(jù))第二十八頁(yè),共75頁(yè)。4)緩沖池(續(xù))hin:收容輸入的工作緩沖區(qū)sin:提取輸入的工作緩沖區(qū)sout:提取輸出的工作緩沖區(qū)hout:收容輸出的工作緩沖區(qū)例:當(dāng)I/O設(shè)備需要輸入數(shù)據(jù)時(shí),從空緩沖隊(duì)列中取出一個(gè)空緩沖區(qū)作為hin,輸入數(shù)據(jù),裝滿后將其掛接到輸入隊(duì)列第二十九頁(yè),共75頁(yè)。緩沖的使用:Getbuf及PutbufGetbuf(type):

P(type_n);P(type_mutex);

從type緩沖隊(duì)列首摘下一緩沖區(qū)V(type_mutex);Putbuf(type,i):P(type_mutex);

將i指示的緩沖區(qū)掛到type緩沖隊(duì)列V(type_mutex);V(type_n);type:緩沖隊(duì)列類型,i:緩沖隊(duì)列中的緩沖區(qū)type_n:type隊(duì)列的資源信號(hào)量,type_mutex:該隊(duì)列的互斥信號(hào)量輸入數(shù)據(jù):hin=Getbuf(emq)hin裝滿Putbuf(inq,hin)提取輸入:sin=Getbuf(inq)sin用完P(guān)utbuf(emq,sin)第三十頁(yè),共75頁(yè)。4.5設(shè)備分配及設(shè)備處理程序設(shè)備獨(dú)立性:又稱設(shè)備無(wú)關(guān)性;設(shè)備分配:分配策略、分配算法、分配的安全性設(shè)備處理:處理方式、設(shè)備驅(qū)動(dòng)程序工作過(guò)程第三十一頁(yè),共75頁(yè)。1.設(shè)備獨(dú)立性設(shè)備獨(dú)立性:用戶程序所用設(shè)備與物理設(shè)備無(wú)關(guān)的特性,也稱設(shè)備無(wú)關(guān)性。應(yīng)用程序中用戶使用邏輯設(shè)備名請(qǐng)求設(shè)備,系統(tǒng)實(shí)際執(zhí)行時(shí)使用物理設(shè)備;系統(tǒng)將邏輯設(shè)備名轉(zhuǎn)換為物理設(shè)備名;設(shè)備獨(dú)立性帶來(lái)的好處設(shè)備分配靈活:若用戶使用物理設(shè)備名,只能對(duì)應(yīng)一臺(tái)設(shè)備;但邏輯設(shè)備名可對(duì)應(yīng)多臺(tái)同類設(shè)備。易于實(shí)現(xiàn)I/O重定向:指用于I/O操作的設(shè)備可簡(jiǎn)單地進(jìn)行更換(即重定向),不必改變應(yīng)用程序。第三十二頁(yè),共75頁(yè)。邏輯設(shè)備名到物理設(shè)備名的映射邏輯設(shè)備表:實(shí)現(xiàn)邏輯設(shè)備名到物理設(shè)備名的映射。LUT的設(shè)置單用戶系統(tǒng)中,整個(gè)系統(tǒng)一張LUT(不允許有相同的邏輯設(shè)備名),如下圖(a)多用戶系統(tǒng)中,為每個(gè)用戶設(shè)置一張LUT(放在PCB中),如下圖(b)。第三十三頁(yè),共75頁(yè)。2.設(shè)備分配當(dāng)某進(jìn)程向系統(tǒng)提出I/O請(qǐng)求時(shí),設(shè)備分配程序按一定策略分配設(shè)備、控制器和通道,形成一條數(shù)據(jù)傳輸通路,以供主機(jī)和設(shè)備間信息交換。分配策略分配算法分配的安全性數(shù)據(jù)結(jié)構(gòu)第三十四頁(yè),共75頁(yè)。設(shè)備分配(續(xù))1)分配策略:根據(jù)設(shè)備共享屬性進(jìn)行分配

①獨(dú)占設(shè)備的分配

把獨(dú)占設(shè)備固定地分配給一個(gè)進(jìn)程,直至該進(jìn)程完成I/O操作并且釋放它為止。

②共享分配

由若干進(jìn)程共用同一設(shè)備,但對(duì)設(shè)備的訪問(wèn)需要進(jìn)行合理的調(diào)度。

③虛擬分配

利用虛擬技術(shù)實(shí)現(xiàn)獨(dú)占設(shè)備的共享分配,典型如SPOOLing技術(shù)。第三十五頁(yè),共75頁(yè)。設(shè)備分配(續(xù))2)分配算法:

①先來(lái)先服務(wù)

②優(yōu)先級(jí)高者優(yōu)先

3)設(shè)備分配的安全性:應(yīng)保證不死鎖

靜態(tài)分配:用戶作業(yè)開始之前,系統(tǒng)一次性分配所有設(shè)備、控制器、通道。無(wú)死鎖、效率低動(dòng)態(tài)分配:進(jìn)程執(zhí)行過(guò)程中根據(jù)需要進(jìn)行分配。效率高,可能引起死鎖第三十六頁(yè),共75頁(yè)。設(shè)備分配(續(xù))4)設(shè)備分配數(shù)據(jù)結(jié)構(gòu),主要有四種表:設(shè)備控制表DCT(DeviceControlTable)

控制器控制表

COCT(COntrollerControlTable)

通道表CHCT(CHannelControlTable)

系統(tǒng)設(shè)備表SDT(SystemDeviceTable)

第三十七頁(yè),共75頁(yè)。設(shè)備控制表DCT(一個(gè)設(shè)備配置一張)用于反映設(shè)備的特性、設(shè)備和控制器的連接情況。設(shè)備分配(續(xù))第三十八頁(yè),共75頁(yè)。設(shè)備分配(續(xù))控制器控制表COCT(一個(gè)控制器一個(gè))

反映I/O控制器的使用狀態(tài)及和通道的連接情況。通道控制表CHCT(一個(gè)通道一個(gè))用于記錄本通道情況。系統(tǒng)設(shè)備表SDT(整個(gè)系統(tǒng)設(shè)置一張)記錄已經(jīng)連接到系統(tǒng)中全部物理設(shè)備的情況,并為每個(gè)設(shè)備設(shè)一個(gè)表目。第三十九頁(yè),共75頁(yè)。3.設(shè)備處理——即設(shè)備驅(qū)動(dòng)系統(tǒng)為每類設(shè)備編制設(shè)備驅(qū)動(dòng)程序以控制I/O傳輸;任務(wù):主要負(fù)責(zé)接收和分析來(lái)自上層的設(shè)備無(wú)關(guān)的I/O請(qǐng)求,再把它轉(zhuǎn)換為具體要求,發(fā)送給設(shè)備控制器,啟動(dòng)設(shè)備執(zhí)行I/O操作。設(shè)備驅(qū)動(dòng)程序的處理過(guò)程:(1)將抽象I/O請(qǐng)求轉(zhuǎn)為具體要求(2)檢查I/O請(qǐng)求的合法性(3)讀出和檢查設(shè)備的狀態(tài)(4)傳送必要的參數(shù),預(yù)置設(shè)備的初始狀態(tài)(5)設(shè)置設(shè)備的工作方式(在有通道系統(tǒng)中,構(gòu)造通道程序)(6)啟動(dòng)設(shè)備進(jìn)行I/O操作(7)響應(yīng)來(lái)自設(shè)備的中斷準(zhǔn)備工作第四十頁(yè),共75頁(yè)。設(shè)備驅(qū)動(dòng)程序所處的位置第四十一頁(yè),共75頁(yè)。第四十二頁(yè),共75頁(yè)。4.6SPOOLing系統(tǒng)1、SPOOLing的引入所有字符設(shè)備都是獨(dú)占設(shè)備并屬于慢速設(shè)備。當(dāng)一個(gè)進(jìn)程占有并使用該類獨(dú)占設(shè)備時(shí),其他進(jìn)程只能長(zhǎng)時(shí)間阻塞等待該進(jìn)程釋放該資源。降低了系統(tǒng)的并發(fā)能力。另一方面,分配到字符設(shè)備的進(jìn)程,在其整個(gè)運(yùn)行期間,往往占有這些設(shè)備,卻并不是經(jīng)常使用這些設(shè)備,因而使這些設(shè)備的利用率很低。SPOOLing技術(shù)借鑒“脫機(jī)I/O”思想及緩沖技術(shù)將獨(dú)占設(shè)備變成可共享的虛擬設(shè)備,來(lái)解決以上問(wèn)題。第四十三頁(yè),共75頁(yè)。讀卡機(jī)外圍機(jī)1401磁帶磁帶磁帶外圍機(jī)主機(jī)7094磁帶打印機(jī)上世紀(jì)50年代末批處理系統(tǒng)中,程序和數(shù)據(jù)的I/O是在外圍機(jī)的控制下完成的,即在脫離主機(jī)的情況下進(jìn)行,故稱為脫機(jī)I/O方式。特點(diǎn)是:手工干預(yù)多,時(shí)間長(zhǎng)。上世紀(jì)60年代中期,當(dāng)進(jìn)程取代外圍機(jī),后即有了假脫機(jī)I/O方式。脫機(jī)I/O示意圖第四十四頁(yè),共75頁(yè)。2、SPOOLing的核心思想及定義應(yīng)用程序A應(yīng)用程序B設(shè)備SPOOLing程序虛擬I/O實(shí)際I/O核心思想:SPOOLing使用大容量塊設(shè)備(磁盤)來(lái)模擬獨(dú)占設(shè)備的操作,使一臺(tái)獨(dú)占設(shè)備變成多臺(tái)可并發(fā)使用的虛擬設(shè)備。定義:spooling系統(tǒng)是OS中采用的一項(xiàng)可以把獨(dú)享設(shè)備轉(zhuǎn)變成具有共享特征的虛擬設(shè)備的技術(shù),也叫假脫機(jī)I/O技術(shù),或虛擬設(shè)備技術(shù)。第四十五頁(yè),共75頁(yè)。3、SPOOLing系統(tǒng)的組成示意預(yù)輸入程序作業(yè)1信息…作業(yè)n信息輸入井作業(yè)1結(jié)果…作業(yè)n結(jié)果輸出井緩輸出程序井管理程序運(yùn)行作業(yè)輸入設(shè)備輸出設(shè)備作業(yè)調(diào)度程序磁盤第四十六頁(yè),共75頁(yè)。SPOOLing系統(tǒng)的組成說(shuō)明(1)輸入井和輸出井在磁盤上開辟出來(lái)的兩個(gè)專用的存儲(chǔ)區(qū)域。分別用于收容從輸入設(shè)備輸入的數(shù)據(jù)和用戶程序的輸出數(shù)據(jù)。輸入井和輸出井可分別看作是對(duì)讀卡機(jī)和打印機(jī)的虛擬或者模擬。(2)預(yù)輸入進(jìn)程模擬脫機(jī)輸入時(shí)的外圍控制機(jī),將用戶要求的數(shù)據(jù)從輸入機(jī)送到輸入井。當(dāng)CPU需要輸入數(shù)據(jù)時(shí),直接從輸入井讀入內(nèi)存。(3)緩輸出進(jìn)程模擬脫機(jī)輸出時(shí)的外圍控制機(jī),把用戶要求輸出的數(shù)據(jù),先從內(nèi)存送到輸出井,待輸出設(shè)備空閑時(shí),再將輸出井中的數(shù)據(jù)送到輸出設(shè)備上。第四十七頁(yè),共75頁(yè)。SPOOLing應(yīng)用舉例(1)

--打印機(jī)的SPOOLing守護(hù)進(jìn)程(daemon)假若進(jìn)程打開了打印機(jī)特殊文件后幾小時(shí)內(nèi)無(wú)所事事,則其他進(jìn)程什么都打印不了!解決方案:創(chuàng)建守護(hù)進(jìn)程(daemon)、SPOOLing打印目錄進(jìn)程首先生成要打印的文件,放入SPOOLing目錄守護(hù)進(jìn)程:唯一獲準(zhǔn)使用打印機(jī)特殊文件的進(jìn)程。負(fù)責(zé)在打印機(jī)空閑時(shí)打印SPOOLing目錄里的文件。通過(guò)禁止用戶對(duì)特殊文件的直接使用,解決了上述打印機(jī)空占問(wèn)題,提高了其使用效率。第四十八頁(yè),共75頁(yè)。SPOOLing應(yīng)用舉例(2)

--網(wǎng)絡(luò)的SPOOLing守護(hù)進(jìn)程SPOOLing技術(shù)今天仍被廣泛使用:網(wǎng)絡(luò)文件傳送先把文件送到網(wǎng)絡(luò)SPOOLing目錄,然后網(wǎng)絡(luò)守護(hù)進(jìn)程把它取出并傳遞到目標(biāo)地址。Internet電子郵件系統(tǒng)在因特網(wǎng)上發(fā)Email時(shí),電子郵件發(fā)送程序send先將待發(fā)信件存入SPOOLing電子郵件目錄下,供以后傳輸。注意:SPOOLing只提高設(shè)備利用率,縮短用戶程序執(zhí)行時(shí)間,并不提高CPU利用率。第四十九頁(yè),共75頁(yè)。采用SPOOLing技術(shù)的好處提高了I/O的速度,加快了作業(yè)的運(yùn)行。將獨(dú)占設(shè)備改造為共享設(shè)備,提高了I/O設(shè)備的利用率。系統(tǒng)不給進(jìn)程分配獨(dú)占設(shè)備,只分配輸入/輸出井和建立I/O請(qǐng)求表。實(shí)現(xiàn)了虛擬設(shè)備功能。SPOOLing系統(tǒng)實(shí)現(xiàn)了將一臺(tái)獨(dú)占設(shè)備變換為若干臺(tái)邏輯設(shè)備的功能。第五十頁(yè),共75頁(yè)。4.7磁盤設(shè)備管理磁盤結(jié)構(gòu)磁盤編址磁盤訪問(wèn)時(shí)間磁盤調(diào)度算法第五十一頁(yè),共75頁(yè)。磁盤一般分為固定頭磁盤和移動(dòng)頭磁盤兩大類:固定頭磁盤:指盤面上每條磁道都有一個(gè)讀/寫頭的磁盤。固定頭磁盤各磁頭可并行讀寫,但成本較高,主要用在大型機(jī)中。移動(dòng)頭磁盤:指每個(gè)盤面只有一個(gè)讀/寫磁頭的磁盤。每次讀寫須先移動(dòng)磁頭到目標(biāo)磁道上,這稱為尋道操作。目前,個(gè)人計(jì)算機(jī)中的硬盤(Winchester盤)和軟盤都是移動(dòng)頭磁盤。4.7.1磁盤結(jié)構(gòu)第五十二頁(yè),共75頁(yè)。硬盤(Winchester盤)結(jié)構(gòu)第五十三頁(yè),共75頁(yè)。硬盤通常由多個(gè)盤片構(gòu)成,盤片安裝在一個(gè)高速旋轉(zhuǎn)的樞軸上盤片的轉(zhuǎn)速為5400RPM、7200RPM等硬盤(Winchester盤)結(jié)構(gòu)(續(xù))對(duì)盤片的讀寫通過(guò)磁頭(讀/寫頭)完成,讀寫頭安裝在移動(dòng)臂上,移動(dòng)臂可沿磁盤半徑方向移動(dòng)。第五十四頁(yè),共75頁(yè)。樞軸盤片磁臂磁頭磁臂移動(dòng)方向移動(dòng)頭硬盤結(jié)構(gòu)示意圖第五十五頁(yè),共75頁(yè)。盤面及磁道磁道/tracks每個(gè)面劃分同心圓,稱為tracks/磁道第五十六頁(yè),共75頁(yè)。Tracks被進(jìn)一步劃分為sector/扇區(qū)每個(gè)扇區(qū)存放相同數(shù)量的信息,稱為“物理塊”。塊(扇區(qū))是磁盤上信息讀寫的最小單位。硬盤扇區(qū)大小一般為512B,CD-ROM塊的大小一般為2048B在每個(gè)磁道上,對(duì)扇區(qū)進(jìn)行編號(hào)。sector/扇區(qū)sector/扇區(qū)第五十七頁(yè),共75頁(yè)。Cylinders柱面隨著磁臂的移動(dòng),各盤面所有的讀/寫頭同時(shí)移動(dòng),并定位同樣的垂直位置的磁道上;這些相同半徑的圓形磁道形成了一個(gè)柱面柱面扇區(qū)磁頭磁臂磁道第五十八頁(yè),共75頁(yè)。磁盤編址物理三地址:(柱面號(hào)、磁頭號(hào)、扇區(qū)號(hào))三元組地址結(jié)構(gòu),唯一定位一個(gè)物理塊。柱面號(hào):從外到里,0,1,2

….磁頭號(hào):從上到下,0,1,2….扇區(qū)號(hào):在每個(gè)磁道上單獨(dú)編號(hào),0,1,2….磁盤塊編號(hào)從0號(hào)柱面、0號(hào)磁頭、0號(hào)扇區(qū)開始編號(hào)0號(hào)柱面:0號(hào)磁頭的所有扇區(qū),然后是1號(hào)磁頭的所有扇區(qū),……1號(hào)柱面,2號(hào)柱面……數(shù)據(jù)存儲(chǔ)按塊號(hào)從小到大存儲(chǔ),即先存滿一個(gè)柱面,然后下一個(gè)柱面….外部按磁盤塊號(hào)訪問(wèn),但真正訪問(wèn)磁盤時(shí),需轉(zhuǎn)換為(柱面號(hào)、磁頭號(hào)、扇區(qū)號(hào))三元組地址結(jié)構(gòu)(由驅(qū)動(dòng)程序完成轉(zhuǎn)換)。第五十九頁(yè),共75頁(yè)。Linux系統(tǒng)中的磁盤信息示例第六十頁(yè),共75頁(yè)。初期IBMPC軟盤和當(dāng)今WesternDigital的WD18300硬盤的磁盤參數(shù)第六十一頁(yè),共75頁(yè)。磁盤塊號(hào)及其物理三地址之間的轉(zhuǎn)換(1)已知塊號(hào),則磁盤物理三地址:

柱面號(hào)=[塊號(hào)/(磁頭數(shù)×扇區(qū)數(shù))]

磁頭號(hào)=[(塊號(hào)mod(磁頭數(shù)×扇區(qū)數(shù)))/扇區(qū)數(shù)]

扇區(qū)號(hào)=(塊號(hào)mod(磁頭數(shù)×扇區(qū)數(shù)))mod扇區(qū)數(shù)(2)已知磁盤塊物理地址,則磁盤塊號(hào):塊號(hào)=柱面號(hào)×(磁頭數(shù)×扇區(qū)數(shù))+磁頭號(hào)×扇區(qū)數(shù)+扇區(qū)號(hào)第六十二頁(yè),共75頁(yè)。設(shè)磁盤組共有n個(gè)柱面,編號(hào)順序?yàn)?、1、2、…、n-1;共有m個(gè)磁頭,編號(hào)順序?yàn)?、1、2、…、m-1;每個(gè)磁道內(nèi)的k個(gè)信息塊(扇區(qū))從1開始編號(hào),依次為1、2、…、k?,F(xiàn)用x表示邏輯磁盤塊號(hào),用a,b,c分別表示任一邏輯磁盤塊的柱面號(hào)、磁頭號(hào)、磁道內(nèi)塊號(hào)(扇區(qū)號(hào)),則x與a,b,c可通過(guò)如下公式進(jìn)行轉(zhuǎn)換:x=k*m*a+k*b+c(注意:這里x也是從1開始編號(hào))a=(x-1)DIV(k*m)b=((x-1)MOD(k*m))DIVkc=((x-1)MOD(k*m))MODk+1

例4.1第六十三頁(yè),共75頁(yè)。4.7.2磁盤的訪問(wèn)時(shí)間磁盤設(shè)備在工作時(shí),盤片以恒定速率旋轉(zhuǎn)。讀寫時(shí),磁頭首先移動(dòng)到所要求的磁道上,并等待所要求的扇區(qū)的開始位置旋轉(zhuǎn)到磁頭下,然后再開始讀寫數(shù)據(jù)。第六十四頁(yè),共75頁(yè)。磁盤的訪問(wèn)時(shí)間(續(xù))磁盤訪問(wèn)時(shí)間=尋道時(shí)間

+

旋轉(zhuǎn)延遲時(shí)間

+

傳輸時(shí)間

尋道時(shí)間:把磁臂(磁頭)徑向移動(dòng)到指定磁道或柱面上所經(jīng)歷的時(shí)間,包含啟動(dòng)磁臂和磁頭移動(dòng)n條磁道或柱面所花費(fèi)的時(shí)間。旋轉(zhuǎn)延遲時(shí)間:指定扇區(qū)旋轉(zhuǎn)移動(dòng)到磁頭下面所經(jīng)歷的時(shí)間。與盤面的旋轉(zhuǎn)速度有關(guān)。例如,轉(zhuǎn)速為v,則平均旋轉(zhuǎn)延遲時(shí)間為1/(2v),5400rpm平均旋轉(zhuǎn)延遲5.55ms;7200轉(zhuǎn):4.16ms傳輸時(shí)間:把數(shù)據(jù)從磁盤讀出或向磁盤寫入數(shù)據(jù)所經(jīng)歷的時(shí)間。與旋轉(zhuǎn)速度和一次讀寫的數(shù)據(jù)量有關(guān)。磁盤訪問(wèn)時(shí)間=T尋道+T旋轉(zhuǎn)+T傳輸=Ts+1/(2r)+b/(rN)

r為磁盤旋轉(zhuǎn)速度,N為一條磁道上的扇區(qū)數(shù),b為讀取的扇區(qū)數(shù)T尋道所占比例最大,約70%。傳輸時(shí)間所占比例最小第六十五頁(yè),共75頁(yè)。4.7.3磁盤調(diào)度算法來(lái)自不同進(jìn)程的磁盤I/O請(qǐng)求構(gòu)成了一個(gè)隨機(jī)分布的請(qǐng)求隊(duì)列。磁盤I/O調(diào)度的主要目標(biāo)是減少請(qǐng)求隊(duì)列中對(duì)應(yīng)的平均柱面定位時(shí)間(即尋道時(shí)間)常用的磁盤調(diào)度算法有:先來(lái)先服務(wù)最短尋道時(shí)間優(yōu)先掃描(SCAN)算法循環(huán)掃描算法第六十六頁(yè),共75頁(yè)。先來(lái)先服務(wù)FCFS算法根據(jù)進(jìn)程請(qǐng)求訪間磁盤的先后次序進(jìn)行調(diào)度。優(yōu)點(diǎn):公平、簡(jiǎn)單,每個(gè)進(jìn)程的請(qǐng)求都能依次得到處理,不會(huì)出現(xiàn)某進(jìn)程的請(qǐng)求長(zhǎng)期得不到滿足的情況缺點(diǎn):由于未對(duì)尋道進(jìn)行優(yōu)化,致使平均尋道時(shí)間可能較長(zhǎng)。從100號(hào)柱面開始要訪問(wèn)的下一個(gè)柱面號(hào)移動(dòng)距離(柱面數(shù))2377376353205171132731911361421901293982082936942518144022平均尋道長(zhǎng)度1596/12=133第六十七頁(yè),共75頁(yè)。最短尋道時(shí)間優(yōu)先SSTF選擇要求訪問(wèn)的磁道與當(dāng)前磁頭所在的磁道距離最近的進(jìn)程。優(yōu)點(diǎn):較好的尋道性能缺點(diǎn):可能出現(xiàn)某進(jìn)程“饑餓”現(xiàn)象。從100號(hào)柱面開始要訪問(wèn)的下一個(gè)柱面號(hào)移動(dòng)距離(柱面數(shù))132321905820515611444021291123619418141437637239822平均尋道長(zhǎng)度700/12=58.3第六十八頁(yè),共75頁(yè)。掃描算法(SCAN)--電梯算法不僅考慮欲訪問(wèn)的磁道與當(dāng)前磁道間的距離,更優(yōu)先考慮的是磁頭當(dāng)前的移動(dòng)方向。即:選擇其要求的磁道與當(dāng)前磁頭移動(dòng)方向一致,且最近的進(jìn)程。直到原方向上無(wú)進(jìn)程需求時(shí),才改變方向。優(yōu)點(diǎn):既能獲得較好的尋道性能,又能避免“饑餓”現(xiàn)象;缺點(diǎn):當(dāng)磁頭剛從里向外移動(dòng)而越過(guò)了某一磁道時(shí),恰好又有一進(jìn)程請(qǐng)求訪問(wèn)此磁道,這時(shí),該進(jìn)程必須等待,磁頭走一個(gè)來(lái)回,才處理該進(jìn)程的請(qǐng)求,致使該進(jìn)程的請(qǐng)求被大大地推遲。若掃描一次時(shí)間為T,則最壞情況下,尋道時(shí)

溫馨提示

  • 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ù)覽,若沒有圖紙預(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)論