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

下載本文檔

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

文檔簡(jiǎn)介

第五章設(shè)備管理第一頁(yè),共七十七頁(yè),2022年,8月28日教學(xué)重點(diǎn):1、通道、DMA2、數(shù)據(jù)傳送控制方式3、設(shè)備驅(qū)動(dòng)程序4、I/O進(jìn)程控制5、設(shè)備分配6、緩沖管理第二頁(yè),共七十七頁(yè),2022年,8月28日操作系統(tǒng)的基本組織結(jié)構(gòu)進(jìn)程與資源管理文件管理存儲(chǔ)管理設(shè)備管理處理機(jī)主存設(shè)備操作系統(tǒng)計(jì)算機(jī)硬件第三頁(yè),共七十七頁(yè),2022年,8月28日§5.1引言設(shè)備管理是直接與設(shè)備接口打交道的操作系統(tǒng)模塊,通常由文件系統(tǒng)調(diào)用。設(shè)備管理完成對(duì)物理設(shè)備的抽象,驅(qū)動(dòng)程序是對(duì)設(shè)備進(jìn)行抽象的具體表現(xiàn),也是上層軟件系統(tǒng)與硬件直接溝通的唯一渠道,驅(qū)動(dòng)程序屏蔽了底層設(shè)備的物理細(xì)節(jié)。第四頁(yè),共七十七頁(yè),2022年,8月28日一、設(shè)備管理的主要任務(wù)(1)設(shè)備的選擇和分配實(shí)現(xiàn)數(shù)據(jù)傳輸(2)控制輸入/輸出-CPU(內(nèi)存)之間交換數(shù)據(jù)(3)提供用戶使用接口(4)提高并行操作度(設(shè)備/設(shè)備、設(shè)備/CPU、進(jìn)程/進(jìn)程)第五頁(yè),共七十七頁(yè),2022年,8月28日二、設(shè)備管理程序提供的功能(1)為進(jìn)程管理提供接口(將進(jìn)程的請(qǐng)求轉(zhuǎn)給設(shè)備管理)(2)實(shí)施設(shè)備分配(按照設(shè)備分類、調(diào)度算法分配設(shè)備、將未分配到的進(jìn)程放入等待隊(duì)列)(3)實(shí)現(xiàn)設(shè)備之間及設(shè)備與CPU間并行操作(DMA、通道)(4)緩沖區(qū)管理(解決速度的不匹配問題,負(fù)責(zé)進(jìn)行緩沖區(qū)的分配/釋放等工作)第六頁(yè),共七十七頁(yè),2022年,8月28日三、設(shè)備管理的兩個(gè)階段(P192)

(1)接收用戶提出的I/O請(qǐng)求階段(2)響應(yīng)設(shè)備中斷請(qǐng)求階段第七頁(yè),共七十七頁(yè),2022年,8月28日輸入/輸出請(qǐng)求設(shè)備驅(qū)動(dòng)程序設(shè)備文件標(biāo)準(zhǔn)設(shè)備接口(read,write,open,close….)與設(shè)備無(wú)關(guān)軟件(文件系統(tǒng))中斷處理程序返回信息顯示器鼠標(biāo)打印機(jī)第八頁(yè),共七十七頁(yè),2022年,8月28日§5.2輸入/輸出硬件一、輸入/輸出設(shè)備電子設(shè)備設(shè)備分類字符設(shè)備特點(diǎn):輸入/輸出時(shí)以字符為單位(顯示器)第九頁(yè),共七十七頁(yè),2022年,8月28日塊設(shè)備:將信息存儲(chǔ)在可尋址的固定大小的數(shù)據(jù)塊中。包括存取控制部分(磁帶機(jī)中的讀寫控制電路、磁頭)和信息載體(磁帶、磁盤片)兩部分。特征:能夠獨(dú)立的讀寫單個(gè)的數(shù)據(jù)塊,又叫存儲(chǔ)設(shè)備1、順序存取設(shè)備(磁帶)2、直接存取設(shè)備(磁盤、磁鼓)3、完全直接存取設(shè)備(半導(dǎo)體只讀存儲(chǔ)器)

第十頁(yè),共七十七頁(yè),2022年,8月28日磁帶磁帶格式磁帶頭部反光片磁帶尾部反光片記錄記錄IRGIRG塊記錄格式記錄1記錄2記錄3記錄4IRGIRG800字節(jié)第十一頁(yè),共七十七頁(yè),2022年,8月28日磁盤`扇區(qū)磁道 單磁盤片表面的劃分旋轉(zhuǎn)方向讀/寫磁頭臂移動(dòng)方向移動(dòng)頭磁盤示意圖第十二頁(yè),共七十七頁(yè),2022年,8月28日磁盤設(shè)備結(jié)構(gòu)第十三頁(yè),共七十七頁(yè),2022年,8月28日二、設(shè)備控制器

機(jī)械部件(設(shè)備本身)I/O設(shè)備電子部件(設(shè)備控制器/適配器)-用于控制字符設(shè)備的控制器-用于控制塊設(shè)備的控制器

第十四頁(yè),共七十七頁(yè),2022年,8月28日1、設(shè)備控制器的作用(1)控制一個(gè)或多個(gè)I/O設(shè)備,以實(shí)現(xiàn)I/O設(shè)備和計(jì)算機(jī)之間的數(shù)據(jù)交換。它是CPU和I/O設(shè)備之間的接口,它接收從CPU發(fā)出的命令,并控制I/O設(shè)備工作。(2)設(shè)備控制器是一個(gè)可編址的設(shè)備,當(dāng)它只控制一個(gè)設(shè)備時(shí),它有惟一的一個(gè)設(shè)備地址;若控制器連接多個(gè)設(shè)備時(shí),則應(yīng)含有多個(gè)設(shè)備地址,使每一個(gè)設(shè)備地址對(duì)應(yīng)一個(gè)設(shè)備。設(shè)備控制器的復(fù)雜性因設(shè)備而異,相差很大。第十五頁(yè),共七十七頁(yè),2022年,8月28日2、設(shè)備控制器主要功能:-接收和識(shí)別命令-數(shù)據(jù)交換-地址識(shí)別-標(biāo)識(shí)和報(bào)告設(shè)備的狀態(tài)-數(shù)據(jù)緩沖-差錯(cuò)控制第十六頁(yè),共七十七頁(yè),2022年,8月28日3、接口(1)控制器和設(shè)備之間采用標(biāo)準(zhǔn)接口;

IDE、SCSI、VGA、USB、RS-232C(2)操作系統(tǒng)直接將數(shù)據(jù)發(fā)送到設(shè)備的控制器中磁盤:從磁盤的驅(qū)動(dòng)中讀出二進(jìn)制比特流,控制器將其轉(zhuǎn)化成字節(jié)塊CRT:從內(nèi)存中讀取字節(jié)流,CRT控制器根據(jù)OS的參數(shù)調(diào)制CRT射線信號(hào),并將結(jié)果顯示在屏幕上第十七頁(yè),共七十七頁(yè),2022年,8月28日三、通道通道:獨(dú)立與CPU的專管輸入/輸出控制的處理機(jī),它控制設(shè)備與內(nèi)存直接進(jìn)行數(shù)據(jù)交換工作方法:有自己的通道指令、由CPU執(zhí)行相應(yīng)的指令(I/O)來(lái)啟動(dòng)通道,說明要執(zhí)行的I/O操作和要訪問的I/O設(shè)備,通道接到命令后啟動(dòng)相應(yīng)的通道程序完成I/O操作,并在操作結(jié)束時(shí)向CPU發(fā)中斷信號(hào)1、字節(jié)多路通道2、數(shù)據(jù)選擇通道3、數(shù)組多路通道第十八頁(yè),共七十七頁(yè),2022年,8月28日I/O控制器I/O控制器I/O控制器I/O控制器I/O控制器I/O控制器I/O控制器字節(jié)多路通道選擇通道成組多路通道磁盤磁盤磁帶磁帶終端終端終端CPU內(nèi)存總線通道方式的數(shù)據(jù)傳送結(jié)構(gòu)第十九頁(yè),共七十七頁(yè),2022年,8月28日四、DMA(存儲(chǔ)器直接存?。┰谕鈬O(shè)備和內(nèi)存之間開辟直接的數(shù)據(jù)交換通路。DMA控制器代替了CPU控制內(nèi)存和設(shè)備進(jìn)行成批的數(shù)據(jù)交換。在數(shù)據(jù)傳送開始時(shí)需CPU啟動(dòng),數(shù)據(jù)傳送結(jié)束時(shí)需發(fā)中斷給CPU。第二十頁(yè),共七十七頁(yè),2022年,8月28日DMA控制器CPU內(nèi)存I/O設(shè)備數(shù)據(jù)中斷位啟動(dòng)位控制狀態(tài)寄存器數(shù)據(jù)緩沖寄存器內(nèi)存地址寄存器傳送字節(jié)數(shù)寄存器DMA方式的傳送結(jié)構(gòu)startintDMA第二十一頁(yè),共七十七頁(yè),2022年,8月28日§5.3輸入/輸出軟件一、輸入輸出軟件作用:把軟件組織為層次結(jié)構(gòu),底層軟件用于屏蔽輸入/輸出硬件的細(xì)節(jié),即實(shí)現(xiàn)上層的設(shè)備無(wú)關(guān)(設(shè)備獨(dú)立性)一個(gè)I/O程序在不用修改的情況下能讀出不同的文件,即使設(shè)備更換,用戶用于進(jìn)行I/O操作的程序也不用改變);高層軟件為用戶提供界面。

第二十二頁(yè),共七十七頁(yè),2022年,8月28日層次結(jié)構(gòu)(為實(shí)現(xiàn)設(shè)備無(wú)關(guān)性):中斷處理程設(shè)備驅(qū)動(dòng)程與設(shè)備無(wú)關(guān)的操作系統(tǒng)用戶層軟件第二十三頁(yè),共七十七頁(yè),2022年,8月28日二、I/O軟件的目標(biāo)1、設(shè)備獨(dú)立性設(shè)計(jì)I/O軟件的一個(gè)最關(guān)鍵目標(biāo)是設(shè)備獨(dú)立性。也就是說,除了直接與設(shè)備打交道的低層軟件之外,其他部分的軟件并不與依賴于硬件(Windows)。2、統(tǒng)一命名統(tǒng)一命名是指在系統(tǒng)中采取預(yù)先設(shè)計(jì)的、統(tǒng)一的邏輯名稱,對(duì)各類設(shè)備進(jìn)行命名,并且應(yīng)用在同設(shè)備有關(guān)的全部軟件模塊中。對(duì)設(shè)備統(tǒng)一命名是與設(shè)備獨(dú)立性密切相關(guān)的。

第二十四頁(yè),共七十七頁(yè),2022年,8月28日通常給I/O設(shè)備命名的做法:用—個(gè)序列字符串或一個(gè)整數(shù)來(lái)表示一個(gè)輸入輸出設(shè)備的名字,這個(gè)統(tǒng)一命名不依賴于設(shè)備,即在一個(gè)設(shè)備的名稱之下,其對(duì)應(yīng)的物理設(shè)備可能發(fā)生了變化,但它并不在該名稱上體現(xiàn),因此用戶并不知曉。第二十五頁(yè),共七十七頁(yè),2022年,8月28日進(jìn)行I/O調(diào)用:格式化I/O執(zhí)行I/O操作命名、保護(hù)、阻塞、緩沖、分配I/O結(jié)束時(shí),喚醒設(shè)備服務(wù)子程序設(shè)置設(shè)備寄存器、檢測(cè)狀態(tài)4-用戶進(jìn)程3-設(shè)備無(wú)關(guān)軟件2-設(shè)備驅(qū)動(dòng)程序硬件設(shè)備服務(wù)子程序1-中斷處理程序I/O請(qǐng)求I/O應(yīng)答三、輸入輸出軟件的功能第二十六頁(yè),共七十七頁(yè),2022年,8月28日四、數(shù)據(jù)傳送控制方式選擇和衡量控制方式的原則:(1)數(shù)據(jù)傳送速度足夠高,能滿足用戶的需要而又不丟失數(shù)據(jù);(2)系統(tǒng)開銷小,所需的處理控制程序少;(3)充分發(fā)揮硬件資源能力,使得I/O設(shè)備盡可能忙,而CPU等待時(shí)間盡可能少。第二十七頁(yè),共七十七頁(yè),2022年,8月28日1、程序直接控制方式2、中斷方式3、DMA方式4、通道控制方式第二十八頁(yè),共七十七頁(yè),2022年,8月28日1、程序直接控制方式否外圍設(shè)備做接收或發(fā)送數(shù)據(jù)準(zhǔn)備接收到start命令標(biāo)志觸發(fā)器置“done”等待CPU來(lái)的下條指令準(zhǔn)備完畢?是否CPU發(fā)start命令等待執(zhí)行下條指令開始數(shù)據(jù)傳送設(shè)備標(biāo)志觸發(fā)器為done”?是(a)(b)第二十九頁(yè),共七十七頁(yè),2022年,8月28日缺點(diǎn):(1)CPU和設(shè)備只能串行工作。(2)CPU在一段時(shí)間內(nèi)只能和一臺(tái)外圍設(shè)備交換數(shù)據(jù)信息,設(shè)備之間不能并行工作。(3)依靠設(shè)備標(biāo)志觸發(fā)器的狀態(tài)位來(lái)控制數(shù)據(jù)傳送,無(wú)法發(fā)現(xiàn)和處理由于其他硬件所產(chǎn)生的錯(cuò)誤。第三十頁(yè),共七十七頁(yè),2022年,8月28日2、中斷控制方式的傳送結(jié)構(gòu)I/O控制器1I/O控制器nI/O設(shè)備1I/O設(shè)備n地址線數(shù)據(jù)線控制線intCPU內(nèi)存start啟動(dòng)位中斷位信號(hào)線控制狀態(tài)寄存器數(shù)據(jù)緩沖寄存器第三十一頁(yè),共七十七頁(yè),2022年,8月28日接收到CPU發(fā)來(lái)的start指令準(zhǔn)備數(shù)據(jù)并將其置入緩沖寄存器緩沖寄存器滿嗎?控制器發(fā)中斷信號(hào)向設(shè)備發(fā)start指令將中斷允許位置1調(diào)度程序調(diào)度其他進(jìn)程其他進(jìn)程執(zhí)行收到中斷信號(hào)了嗎?中斷處理被中斷進(jìn)程執(zhí)行否否是設(shè)備CPU中斷控制方式的處理過程第三十二頁(yè),共七十七頁(yè),2022年,8月28日優(yōu)點(diǎn):做到設(shè)備之間以及設(shè)備和CPU之間的并行操作。缺點(diǎn):(1)數(shù)據(jù)緩沖寄存器裝滿后發(fā)生中斷,若寄存器小則中斷次數(shù)較多中斷次數(shù)較多,消耗CPU的時(shí)間。(2)設(shè)備方式下通過中斷方式進(jìn)行并行操作會(huì)增加無(wú)法響應(yīng)中斷和出現(xiàn)數(shù)據(jù)丟失現(xiàn)象。(3)要求外圍設(shè)備的速度較低。第三十三頁(yè),共七十七頁(yè),2022年,8月28日3、DMA方式的數(shù)據(jù)傳送處理過程否CPU發(fā)start命令內(nèi)存地址內(nèi)存始址寄存器傳送字節(jié)數(shù)字節(jié)計(jì)數(shù)器允許中斷位與啟動(dòng)位置1當(dāng)前進(jìn)程被阻塞,調(diào)度程序調(diào)度其他進(jìn)程運(yùn)行被調(diào)度的進(jìn)程執(zhí)行接收到中斷信號(hào)嗎?是轉(zhuǎn)中斷處理設(shè)備啟動(dòng)設(shè)備準(zhǔn)備數(shù)據(jù)DMA控制器接收到start指令緩沖寄存器內(nèi)容入內(nèi)存改變傳送字節(jié)數(shù)計(jì)數(shù)器與內(nèi)存地址寄存器內(nèi)容否傳送字節(jié)數(shù)=0?嗎?數(shù)據(jù)入數(shù)據(jù)緩沖寄存器發(fā)中斷信號(hào)停止I/O操作是第三十四頁(yè),共七十七頁(yè),2022年,8月28日優(yōu)點(diǎn):(1)數(shù)據(jù)的傳輸塊全部結(jié)束后發(fā)生中斷,減少中斷次數(shù)。(2)數(shù)據(jù)傳輸在DMA控制器的控制下完成,中斷方式的數(shù)據(jù)傳輸是在中斷處理時(shí)由CPU控制完成。缺點(diǎn):(1)設(shè)備越多時(shí),管理和控制越復(fù)雜,容易形成內(nèi)存沖突。(2)多個(gè)DMA控制器成本高。第三十五頁(yè),共七十七頁(yè),2022年,8月28日4、通道方式(1)數(shù)據(jù)傳送的方向、數(shù)據(jù)存放的內(nèi)存地址以及傳送的數(shù)據(jù)地址長(zhǎng)度有通道控制,DMA方式中數(shù)據(jù)傳送的方向、數(shù)據(jù)存放的內(nèi)存地址以及傳送的數(shù)據(jù)地址長(zhǎng)度有DMA控制。(2)I/O控制器中無(wú)傳送字節(jié)計(jì)數(shù)器和內(nèi)存字節(jié)計(jì)數(shù)器,增加了通道設(shè)備控制器和指令執(zhí)行機(jī)構(gòu)(3)CPU只需發(fā)出啟動(dòng)指令,指出通道相應(yīng)的操作和I/O設(shè)備,該指令既可啟動(dòng)通道從內(nèi)存中調(diào)出相應(yīng)的指令執(zhí)行。第三十六頁(yè),共七十七頁(yè),2022年,8月28日數(shù)據(jù)輸入過程:(1)CPU發(fā)出start指令指明I/O操作、設(shè)備號(hào)和對(duì)應(yīng)通道;(2)對(duì)應(yīng)的通道接到start后,將存放在內(nèi)存中的通道指令程序讀出,設(shè)置對(duì)應(yīng)設(shè)備的I/O控制器中的控制狀態(tài)寄存器;(3)設(shè)備根據(jù)通道要求,把數(shù)據(jù)送往內(nèi)存指定區(qū)域(4)若數(shù)據(jù)傳送結(jié)束,I/O控制器通過中斷請(qǐng)求線發(fā)中斷信號(hào)請(qǐng)求CPU做中斷處理;(5)中斷處理結(jié)束后CPU返回被中斷進(jìn)程處繼續(xù)執(zhí)行。第三十七頁(yè),共七十七頁(yè),2022年,8月28日例:該通道程序由6條通道指令構(gòu)成。該通道程序的功能是將主存中不同地址中的數(shù)據(jù)寫成多個(gè)記錄。其中,前3條指令是分別將從1977單元開始的12個(gè)字符、從1996單元開始的13個(gè)字符和從1000單元開始的99個(gè)字符寫成一個(gè)記錄;第4條指令是單獨(dú)寫一個(gè)573個(gè)字符的記錄;第5、6兩條指令合寫一個(gè)600個(gè)字節(jié)的記錄。操作PR計(jì)數(shù)主存地址Write00121977Write00131996Write01991000Write015733698Write00100858Write115002000第三十八頁(yè),共七十七頁(yè),2022年,8月28日五、中斷處理技術(shù):為了提高整體效率,減少在程序直接控制方式中CPU等待時(shí)間,采用中斷方式來(lái)控制輸入輸出設(shè)備和內(nèi)存與CPU之間的數(shù)據(jù)傳送是很必要的。

1、概念中斷:計(jì)算機(jī)在執(zhí)行其間。系統(tǒng)內(nèi)發(fā)生任何非尋常的或非預(yù)期的急需處理事件。使CPU暫時(shí)中斷當(dāng)前正在執(zhí)行的程序轉(zhuǎn)而去執(zhí)行相應(yīng)的事件處理程序,待處理完畢后又返回被中斷處繼續(xù)執(zhí)行或調(diào)度新進(jìn)程執(zhí)行的過程。第三十九頁(yè),共七十七頁(yè),2022年,8月28日中斷源:引起中斷發(fā)生的事件中斷請(qǐng)求:中斷源向CPU發(fā)出的請(qǐng)求中斷處理信號(hào)中斷相應(yīng):CPU收到中斷后轉(zhuǎn)去響應(yīng)的事件處理程序禁止中斷:在中斷請(qǐng)求后,CPU內(nèi)部的處理機(jī)狀態(tài)字PSW的中斷允許位以被清除,從而不允許響應(yīng)中斷。也叫關(guān)中斷屏蔽中斷:在中斷請(qǐng)求產(chǎn)生后,系統(tǒng)用軟件方式有選擇的封鎖部分中斷而允許其余部分的中斷仍能得到響應(yīng)。電源掉電事件不可屏蔽。第四十頁(yè),共七十七頁(yè),2022年,8月28日2、中斷優(yōu)先級(jí):外中斷:中斷源來(lái)自處理機(jī)和內(nèi)存外部,包括I/O設(shè)備發(fā)出的I/O中斷、外部信號(hào)中斷(ESC)、定時(shí)中斷、程序的端點(diǎn)等外中斷在狹義上稱為中斷內(nèi)中斷:處理機(jī)和內(nèi)存內(nèi)部產(chǎn)生的中斷(陷入異常)。非法地址、算數(shù)溢出、校驗(yàn)錯(cuò)、數(shù)據(jù)格式錯(cuò)等。一般稱陷入或異常。中斷和陷入都是硬中斷。第四十一頁(yè),共七十七頁(yè),2022年,8月28日3、軟中斷:通信進(jìn)程之間用來(lái)模擬硬中斷的一種信號(hào)通信方式。軟中斷和硬中斷的相同點(diǎn):中斷源發(fā)出中斷請(qǐng)求或軟中斷信號(hào)后,CPU或接受進(jìn)程在適當(dāng)時(shí)機(jī)自動(dòng)進(jìn)行中斷處理或完成軟中斷信號(hào)所對(duì)應(yīng)的功能。第四十二頁(yè),共七十七頁(yè),2022年,8月28日4、中斷處理過程關(guān)中斷保存被中斷現(xiàn)場(chǎng)分析中斷原因轉(zhuǎn)中斷處理子程序執(zhí)行中斷處理子程序恢復(fù)現(xiàn)場(chǎng)開中斷返回中斷點(diǎn)第四十三頁(yè),共七十七頁(yè),2022年,8月28日5、中斷方式的實(shí)現(xiàn)在中斷方式下,中央處理器與I/O設(shè)備之間數(shù)據(jù)的傳輸,大致步驟如下:①在某個(gè)進(jìn)程需要數(shù)據(jù)時(shí),發(fā)出指令啟動(dòng)輸入輸出設(shè)備準(zhǔn)備數(shù)據(jù)。同時(shí)該指令通知輸入輸出設(shè)備控制狀態(tài)寄存器中的中斷允許位置位,以便在需要時(shí),中斷程序可以被調(diào)用執(zhí)行。②在進(jìn)程發(fā)出指令啟動(dòng)設(shè)備之后,該進(jìn)程放棄處理機(jī),等待相關(guān)I/O操作完成。此時(shí),進(jìn)程調(diào)度程序會(huì)調(diào)度其他就緒進(jìn)程使用處理機(jī)。另一種方式是該進(jìn)程繼續(xù)運(yùn)用(如果能夠運(yùn)行的話),直到I/O中斷信號(hào)來(lái)臨。

第四十四頁(yè),共七十七頁(yè),2022年,8月28日

③當(dāng)I/O操作完成時(shí),輸入輸出設(shè)備控制器通過中斷請(qǐng)求線向處理機(jī)發(fā)出中斷信號(hào)。處理機(jī)收到中斷信號(hào)之后,轉(zhuǎn)向預(yù)先設(shè)計(jì)好的中斷處理程序,對(duì)數(shù)據(jù)傳送工作進(jìn)行相應(yīng)的處理。④得到了數(shù)據(jù)的進(jìn)程,轉(zhuǎn)入就緒狀態(tài)。在隨后的某個(gè)時(shí)刻,進(jìn)程調(diào)度程序會(huì)選中該進(jìn)程繼續(xù)工作第四十五頁(yè),共七十七頁(yè),2022年,8月28日6、中斷方式的優(yōu)缺點(diǎn)中斷方式使處理器的利用率提高,且能支持多道程序和I/O設(shè)備的并行操作。①中斷頻率過高,耗去大量的CPU處理時(shí)間。②中斷頻率過高,CPU無(wú)法響應(yīng)中斷會(huì)丟失數(shù)據(jù)。第四十六頁(yè),共七十七頁(yè),2022年,8月28日六、

設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序驅(qū)動(dòng)物理設(shè)備和DMA控制器或I/O控制器等直接進(jìn)行I/O操作的子程序的集合(它是I/O進(jìn)程與設(shè)備控制器之間的通信程序)。負(fù)責(zé)設(shè)置與相應(yīng)設(shè)備有關(guān)的寄存器的值,啟動(dòng)設(shè)備進(jìn)行I/O操作,指定操作的類型和數(shù)據(jù)流向等(接收由上層軟件發(fā)來(lái)的抽象要求,如Read或Write命令。再把它轉(zhuǎn)換為具體要求后,發(fā)送給設(shè)備控制器,啟動(dòng)設(shè)備去執(zhí)行。此外,它也將由設(shè)備控制器發(fā)來(lái)的信號(hào)傳送給上層軟件)。第四十七頁(yè),共七十七頁(yè),2022年,8月28日設(shè)備驅(qū)動(dòng)程序功能:-將接收到的抽象要求轉(zhuǎn)換為具體要求。-檢查用戶I/O請(qǐng)求的合法性,了解I/O設(shè)備的狀態(tài),傳遞有關(guān)參數(shù),設(shè)置設(shè)備的工作方式。-發(fā)出I/O命令,啟動(dòng)分配到的I/O設(shè)備,完成指定的I/O操作。-及時(shí)響應(yīng)由控制器或通道發(fā)來(lái)的中斷請(qǐng)求,并根據(jù)其中斷類型(正常、異常結(jié)束的中斷或其他類型中斷)調(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)成通道程序。第四十八頁(yè),共七十七頁(yè),2022年,8月28日設(shè)備驅(qū)動(dòng)程序特點(diǎn):-驅(qū)動(dòng)程序主要是在請(qǐng)求I/O的進(jìn)程與設(shè)備控制器之間的一個(gè)通信程序。-驅(qū)動(dòng)程序與I/O設(shè)備的特性緊密相關(guān)。-驅(qū)動(dòng)程序與I/O控制方式緊密相關(guān)。-驅(qū)動(dòng)程序與硬件緊密相關(guān),很多驅(qū)動(dòng)程序其基本部分已經(jīng)固化。DST(設(shè)備開關(guān)表)第四十九頁(yè),共七十七頁(yè),2022年,8月28日用戶進(jìn)程文件系統(tǒng)設(shè)備驅(qū)動(dòng)程序設(shè)備控制器設(shè)備本身用戶進(jìn)程請(qǐng)求設(shè)備服務(wù)的流程

驅(qū)動(dòng)程序所處地位第五十頁(yè),共七十七頁(yè),2022年,8月28日LINUX設(shè)備驅(qū)動(dòng)程序主要功能:1、對(duì)設(shè)備的初始化;2、使設(shè)備投入運(yùn)行和退出服務(wù);3、從設(shè)備接收數(shù)據(jù)并將它們送回內(nèi)核;4、將數(shù)據(jù)從內(nèi)核送到設(shè)備;5、檢測(cè)和處理設(shè)備出現(xiàn)的錯(cuò)誤。第五十一頁(yè),共七十七頁(yè),2022年,8月28日LINUX設(shè)備驅(qū)動(dòng)程序是一組相關(guān)函數(shù)的集合。包括設(shè)備服務(wù)子程序和中斷處理子程序。1、設(shè)備服務(wù)子程序:與設(shè)備無(wú)關(guān)的代碼,每個(gè)處理程序只處理一種設(shè)備,從與設(shè)備無(wú)關(guān)的軟件中接受抽象命令并執(zhí)行。2、中斷處理子程序:中斷服務(wù)。第五十二頁(yè),共七十七頁(yè),2022年,8月28日七、與設(shè)備無(wú)關(guān)的I/O軟件基本任務(wù)是:實(shí)現(xiàn)所有設(shè)備都需要的輸入/輸出功能,并且向用戶級(jí)軟件提供一個(gè)統(tǒng)一的接口。與設(shè)備無(wú)關(guān)的軟件有必要向較高層軟件屏蔽各種I/O設(shè)備空間大小、處理速度和傳輸速率各不相同的事實(shí),而向上層提供大小統(tǒng)一的邏輯塊尺寸。這樣,較高層的軟件只與抽象設(shè)備打交道時(shí),不考慮物理設(shè)備空間和數(shù)據(jù)塊大小而使用等長(zhǎng)的邏輯塊緩沖技術(shù)是設(shè)備獨(dú)立軟件應(yīng)提供的另一個(gè)目的出錯(cuò)處理一般來(lái)說是由設(shè)備驅(qū)動(dòng)程序?qū)崿F(xiàn)的第五十三頁(yè),共七十七頁(yè),2022年,8月28日對(duì)設(shè)備程序的統(tǒng)一接口設(shè)備命名設(shè)備保護(hù)提供一個(gè)獨(dú)立于設(shè)備的邏輯塊(數(shù)據(jù)塊大?。┚彌_塊設(shè)備的存儲(chǔ)分配分配和釋放獨(dú)占設(shè)備錯(cuò)誤報(bào)告設(shè)備無(wú)關(guān)軟件功能第五十四頁(yè),共七十七頁(yè),2022年,8月28日

大部分I/O軟件包含在操作系統(tǒng)中,但是在用戶程序中仍有一小部分是與I/O過程連接在一起的。-通常的系統(tǒng)調(diào)用,包括I/O系統(tǒng)調(diào)用,由庫(kù)過程實(shí)現(xiàn)。-并非所有的用戶層I/O軟件都是由庫(kù)過程組成的。Spooling系統(tǒng)則是另一種重要的處理方法。第五十五頁(yè),共七十七頁(yè),2022年,8月28日八、設(shè)備分配1、設(shè)備分配用數(shù)據(jù)結(jié)構(gòu)(1)設(shè)備控制表(DCT)DCT反映設(shè)備的特性、設(shè)備和I/O控制器的連接情況。包括設(shè)備標(biāo)識(shí)、使用狀態(tài)和等待使用該設(shè)備的進(jìn)程隊(duì)列等。每個(gè)設(shè)備必須有一個(gè)DCT。DCT在系統(tǒng)生成時(shí)或在該設(shè)備和系統(tǒng)連接時(shí)創(chuàng)建、DCT表中內(nèi)容根據(jù)系統(tǒng)執(zhí)行情況而被動(dòng)地修改。內(nèi)容:設(shè)備標(biāo)識(shí)符、設(shè)備類型、設(shè)備地址或設(shè)備號(hào)、設(shè)備狀態(tài)、等待隊(duì)列指針、I/O控制器指針。第五十六頁(yè),共七十七頁(yè),2022年,8月28日(2)系統(tǒng)設(shè)備表(SDT)整個(gè)系統(tǒng)中只有一張,記錄已被連接到系統(tǒng)中的所有物理設(shè)備的情況,并為每個(gè)物理設(shè)備設(shè)一表項(xiàng)目SDT內(nèi)容:DCT指針:指向有關(guān)設(shè)備的設(shè)備控制表正在使用設(shè)備的進(jìn)程標(biāo)識(shí)設(shè)備類型和設(shè)備標(biāo)識(shí)符第五十七頁(yè),共七十七頁(yè),2022年,8月28日(3)控制器表(COCT)反映I/O控制器的使用狀態(tài)以及和通道的連接,每個(gè)控制器一張表(4)通道控制器表(CHCT)包括通道標(biāo)識(shí)符、通道忙/閑標(biāo)識(shí)、等待獲得該通道的進(jìn)程等待隊(duì)列的隊(duì)首指針與對(duì)尾指針等。每個(gè)通到一張。只在通道控制方式中存在注意:一個(gè)進(jìn)程只有獲得通道、控制器、所需設(shè)備之后才具備I/O操作的物理?xiàng)l件。第五十八頁(yè),共七十七頁(yè),2022年,8月28日設(shè)備類型設(shè)備標(biāo)識(shí)設(shè)備忙/閑標(biāo)記COCT指針設(shè)備等待隊(duì)列首設(shè)備等待隊(duì)列尾驅(qū)動(dòng)程序地址控制器標(biāo)識(shí)控制忙/閑標(biāo)記CHCT指針控制器等待隊(duì)列首控制器等待隊(duì)列尾┇通道標(biāo)識(shí)通道忙/閑標(biāo)記通道等待隊(duì)列首通道等待隊(duì)列尾┇表目1┇表目i┇設(shè)備類型設(shè)備標(biāo)識(shí)獲得設(shè)備的進(jìn)程DCT指針

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

CHCT

DCT

設(shè)備分配采用的數(shù)據(jù)結(jié)構(gòu)圖第五十九頁(yè),共七十七頁(yè),2022年,8月28日注意:一個(gè)進(jìn)程只有獲得通道、控制器、所需設(shè)備之后才具備I/O操作的物理?xiàng)l件。第六十頁(yè),共七十七頁(yè),2022年,8月28日由通道、設(shè)備控制器和設(shè)備三級(jí)組成。由通道、設(shè)備控制器和設(shè)備三級(jí)組成。I/O操作要經(jīng)過三級(jí)控制,第一級(jí)由CPU執(zhí)行I/O指令,啟動(dòng)或停止通道運(yùn)行,查詢通道狀態(tài);第二級(jí)是在通道接收CPU的I/O指令后,由通道執(zhí)行為其準(zhǔn)備的通道程序,向設(shè)備控制器發(fā)命令;第三級(jí)由設(shè)備控制器根據(jù)通道發(fā)出的命令控制設(shè)備完成I/O操作?,F(xiàn)代計(jì)算機(jī)I/O系統(tǒng)的結(jié)構(gòu)因?yàn)橥ǖ馈⒃O(shè)備控制器都是獨(dú)立的功能部件,它們可以并行操作,所以可以構(gòu)成I/O系統(tǒng)多通路情況。第六十一頁(yè),共七十七頁(yè),2022年,8月28日2、設(shè)備分配原則發(fā)揮設(shè)備的使用效率,避免由于不合理的分配方法造成進(jìn)程死鎖;隔離用戶程序和具體物理設(shè)備?!?dú)占設(shè)備。應(yīng)采用獨(dú)占分配策略,即在把設(shè)備分配給一個(gè)用戶進(jìn)程后,只有等該用戶進(jìn)程使用完該設(shè)備,系統(tǒng)回收該設(shè)備后,才能把該設(shè)備分配給其他進(jìn)程使用。這種分配策略的缺點(diǎn)是設(shè)備得不到有效的利用,可能發(fā)生死鎖第六十二頁(yè),共七十七頁(yè),2022年,8月28日—共享設(shè)備。對(duì)該類設(shè)備應(yīng)注意對(duì)各個(gè)進(jìn)程訪問設(shè)備的先后次序進(jìn)行合理的調(diào)度?!摂M設(shè)備。因?yàn)樘摂M設(shè)備已屬可共享設(shè)備,因而也可將它分配給多個(gè)進(jìn)程使用,并可對(duì)這些進(jìn)程訪問該設(shè)備的先后次序進(jìn)行控制。第六十三頁(yè),共七十七頁(yè),2022年,8月28日3、設(shè)備分配分類:靜態(tài)分配:用戶作業(yè)開始執(zhí)行前,有系統(tǒng)一次分配該作業(yè)所要求的全部設(shè)備、控制器、通道。直到該作業(yè)被撤消,不會(huì)出現(xiàn)死鎖但使用率低動(dòng)態(tài)分配:在進(jìn)程執(zhí)行過程中根據(jù)需要進(jìn)行。利于提高設(shè)備利用率、分配算法不當(dāng)可以造成死鎖第六十四頁(yè),共七十七頁(yè),2022年,8月28日4、設(shè)備分配策略(算法):①先來(lái)先服務(wù)算法。當(dāng)有多個(gè)進(jìn)程申請(qǐng)一個(gè)設(shè)備時(shí),該算法根據(jù)進(jìn)程申請(qǐng)?jiān)O(shè)備的先后次序,將這些進(jìn)程排列成一個(gè)設(shè)備請(qǐng)求隊(duì)列,設(shè)備分配程序總是把設(shè)備首先分配給隊(duì)首進(jìn)程。②優(yōu)先權(quán)高者優(yōu)先算法。這種算法中,系統(tǒng)首先把設(shè)備分配給優(yōu)先權(quán)高的進(jìn)程,使高優(yōu)先權(quán)的進(jìn)程能夠盡快完成。第六十五頁(yè),共七十七頁(yè),2022年,8月28日5、設(shè)備分配中的安全性①安全分配方式。每當(dāng)進(jìn)程發(fā)出I/O請(qǐng)求后,便進(jìn)入阻塞狀態(tài),直到其I/O操作完成時(shí)才被喚醒。一旦進(jìn)程已經(jīng)獲得某種設(shè)備(資源)后便阻塞,使它不可能再請(qǐng)求任何資源,而在它運(yùn)行時(shí)又不保持任何資源,因此,這種分配方式已經(jīng)摒棄了造成死鎖四個(gè)必要條件之一的“請(qǐng)求和保持”條件,因而分配是安全的。其缺點(diǎn)是進(jìn)程進(jìn)展緩慢,對(duì)于該進(jìn)程來(lái)說CPU與I/O設(shè)備是串行工作的。

第六十六頁(yè),共七十七頁(yè),2022年,8月28日

②不安全分配方式。進(jìn)程發(fā)出I/O請(qǐng)求后仍繼續(xù)運(yùn)行,需要時(shí)又可發(fā)出第二個(gè)I/O請(qǐng)求、第三個(gè)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è)進(jìn)程可同時(shí)操作多個(gè)設(shè)備,從而使進(jìn)程推進(jìn)迅速。缺點(diǎn)是分配不安全,它可能具備“請(qǐng)求和保持”條件,從而造成死鎖。因此,在設(shè)備分配程序中應(yīng)再增加一個(gè)功能,對(duì)本次的設(shè)備分配是否會(huì)發(fā)生死鎖進(jìn)行安全性計(jì)算第六十七頁(yè),共七十七頁(yè),2022年,8月28日設(shè)備分配流程圖進(jìn)程P等待控制器由進(jìn)程P來(lái)的I/O請(qǐng)求搜索SDT找到DCT指針按分配策略選取占據(jù)該設(shè)備的進(jìn)程進(jìn)程P被選中?查DCT該設(shè)備忙?檢查該設(shè)備分配給進(jìn)程P的安全性安全嗎?該設(shè)備分配給進(jìn)程PA按分配策略選取占據(jù)該設(shè)備的進(jìn)程進(jìn)程P按分配策略入I/O等待隊(duì)列進(jìn)程P等待該設(shè)備空閑搜索DCT指針,找到COCT指針控制器忙嗎?A分配控制器給進(jìn)程P搜索COCT找到CHCT指針通道忙?分配通道給進(jìn)程P啟動(dòng)I/O進(jìn)程P等待通道是是是是否否否是否否第六十八頁(yè),共七十七頁(yè),2022年,8月28日§5.4

虛擬設(shè)備

虛擬設(shè)備是通過某種技術(shù)將一臺(tái)獨(dú)占設(shè)備改造為可以供多個(gè)用戶共享的共享設(shè)備。把獨(dú)占設(shè)備改造為虛擬設(shè)備,可以提高設(shè)備的利用率和系統(tǒng)效率,也方便了用戶使用共享。Spooling技術(shù)

Spooling技術(shù)是一種虛擬設(shè)備技術(shù),它可以把一臺(tái)獨(dú)占設(shè)備改造為虛擬設(shè)備,在進(jìn)程所需的物理設(shè)備不存在或被占用的情況下,使用該設(shè)備。第六十九頁(yè),共七十七頁(yè),2022年,8月28日

為了緩和CPU和I/O設(shè)備之間的速度矛盾,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝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)論