版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、第五章設(shè)備管理,5.1 I/O系統(tǒng)5.2 I/O控制方式5.3 緩沖管理5.4 設(shè)備分配5.5 設(shè)備處理5.6 磁盤存儲器管理,I/O系統(tǒng)中,包括用于實現(xiàn)輸入、輸出和存儲功能的設(shè)備和相應(yīng)的設(shè)備控制器。在大中型機(jī)中,還有I/O通道或I/O處理機(jī)。設(shè)備管理的基本任務(wù)是完成用戶提出的I/O請求,提高I/O速率、改善I/O設(shè)備的利用率。設(shè)備管理的主要功能有,緩沖區(qū)管理、設(shè)備分配,設(shè)備處理,虛 擬設(shè)備以及實現(xiàn)設(shè)
2、備獨(dú)立性。,5.1 I/O系統(tǒng),I/O系統(tǒng)是用于實現(xiàn)數(shù)據(jù)的輸入、輸出及數(shù)據(jù)存儲的系統(tǒng)。它除了需要直接用于I/O和存儲信息的設(shè)備外還需要相應(yīng)的設(shè)備控制器和高速總線。I/O 設(shè)備設(shè)備控制器I/O通道I/O總線,,1 I/O設(shè)備,設(shè)備的類型1)按數(shù)據(jù)傳輸率分高速設(shè)備 速率在每秒數(shù)百千個字節(jié)至數(shù)十兆字節(jié)。例如光盤機(jī)、磁帶機(jī)、磁盤機(jī)等。中速設(shè)備速率在每秒數(shù)千個字節(jié)至數(shù)萬個字節(jié)。如打印機(jī)等。低速設(shè)備速率在每
3、秒幾個字節(jié)至數(shù)百個字節(jié)之間。如鍵盤、鼠標(biāo)等。,2) 按信息交換的單位分,塊設(shè)備以數(shù)據(jù)塊為單位存儲、傳輸信息。典型的塊設(shè)備是磁盤,每個盤塊的大小為512B-4KB。磁盤設(shè)備的基本特征是傳輸速率較高。另一特征是可尋址,即對它可隨機(jī)地讀寫任一塊。字符設(shè)備以字符為單位存儲、傳輸信息。字符設(shè)備的基本特征是速率慢,不可尋址。3) 按設(shè)備的共享屬性分獨(dú)占設(shè)備 在一段時間內(nèi)只能有一個進(jìn)程使用的設(shè)備,一般為低速I/O設(shè)備。(如
4、打印機(jī),磁帶等),共享設(shè)備在一段時間內(nèi)可有多個進(jìn)程共同使用的設(shè)備,多個進(jìn)程以交叉的方式來使用設(shè)備,其資源利用率高。(如硬盤)虛設(shè)備在一類設(shè)備上模擬另一類設(shè)備,常用共享設(shè)備模擬獨(dú)占設(shè)備,用高速設(shè)備模擬低速設(shè)備,被模擬的設(shè)備稱為虛設(shè)備目的:將慢速的獨(dú)占設(shè)備改造成多個用戶可共享的設(shè)備,提高設(shè)備的利用率。,設(shè)備與控制器之間的接口,通常,設(shè)備并不直接與Cpu進(jìn)行通信,而是與設(shè)備控制器通信。因此,在設(shè)備與設(shè)備控制器之間應(yīng)有一接口,
5、在該接口中有三種類型的信號,各對應(yīng)一根信號線。A 數(shù)據(jù)信號線這類信號線用于在設(shè)備和設(shè)備控制器之間傳輸數(shù)據(jù)信號。B 控制信號線這是設(shè)備控制器向I/O設(shè)備發(fā)送控制信號時的通路。C 狀態(tài)信號線該信號線用于傳送指示設(shè)備當(dāng)前狀態(tài)的信號。,2 設(shè)備控制器,設(shè)備控制器是計算機(jī)中的一個實體,其主要職責(zé)是控制一個或多個I/O設(shè)備,以實現(xiàn)I/O設(shè)備與計算機(jī)之間的數(shù)據(jù)交換。設(shè)備控制器是Cpu與I/O設(shè)備之間的接口,它接受從Cpu發(fā)來的命令
6、,并去控制I/O 設(shè)備工作,以便使處理器從繁重的設(shè)備控制事務(wù)中解脫出來。設(shè)備控制器是一個可編址的設(shè)備,當(dāng)它僅控制一個設(shè)備時,它只有一個唯一的設(shè)備地址。若控制器可連多個設(shè)備時,則應(yīng)含有多個設(shè)備地址,使每個設(shè)備地址對應(yīng)一個設(shè)備。設(shè)備控制器可分為兩類,一是用于控制字符設(shè)備的控制器,另一個是控制塊設(shè)備的控制器。,1 設(shè)備控制器的基本功能,1)接收和識別命令Cpu可向控制器發(fā)送多種不同命令,設(shè)備控制器應(yīng)能接收和識別這些命令。
7、2)數(shù)據(jù)交換它能實現(xiàn)Cpu與控制器之間、控制器與設(shè)備之間的數(shù)據(jù)交換。3)識別和報告設(shè)備的狀態(tài)控制器記下設(shè)備的狀態(tài)供Cpu了解。4)地址識別5)數(shù)據(jù)緩沖控制器必須設(shè)置一些緩沖器。6)差錯控制設(shè)備控制器還對傳來的數(shù)據(jù)進(jìn)行差錯檢測。,2 設(shè)備控制器的組成,設(shè)備控制器由三部分組成。1)設(shè)備控制器與處理機(jī)的接口該接口用于實現(xiàn)Cpu與設(shè)備控制器之間的通信。2)設(shè)備控制器與設(shè)備之間的接口3)I/O邏輯用于實現(xiàn)對設(shè)備的控制
8、。,3 I/O通道,1 通道的引入雖然在Cpu與外設(shè)之間有設(shè)備控制器,但當(dāng)外設(shè)很多時,Cpu的負(fù)擔(dān)仍然很重。為此,在Cpu與設(shè)備控制器之間又增設(shè)了通道。使用通道的目的是為了建立獨(dú)立的I/O操作,不僅使數(shù)據(jù)的傳輸獨(dú)立于Cpu,而且盡可能地對I/O操作的組織、管理、及其結(jié)束也獨(dú)立,使Cpu從繁雜的I/O任務(wù)中解脫出來。I/O通道是一種特殊的處理機(jī),它具有執(zhí)行I/O指令的能力,并能通過執(zhí)行通道程序來控制I/O操作。I/
9、O通道不同于一般的處理機(jī),主要表現(xiàn)在2個方面:,,指令類型簡單通道沒有自己的內(nèi)存通道類型A 字節(jié)多路通道這是一種按字節(jié)交叉方式工作的通道。它有多個子通道,每個子通道連接一臺I/O設(shè)備,并控制該設(shè)備的I/O操作。這些子通道輪流方式共享主通道。當(dāng)一個通道程序控制某臺設(shè)備傳送一個字節(jié)后,通道硬件就控制轉(zhuǎn)去執(zhí)行另一個通道程序,控制另一臺設(shè)備傳送信息。主要連接以字節(jié)為單位的低速I/O設(shè)備。如打印機(jī)等。以字節(jié)為單位交叉?zhèn)鬏?/p>
10、,當(dāng)一臺傳送一個字節(jié)后,立即轉(zhuǎn)去為另一臺傳送字節(jié),,B 數(shù)組選擇通道,以成組方式進(jìn)行數(shù)據(jù)傳輸,即每次傳輸一批數(shù)據(jù)。其傳送速率較高,主要用于連接高速I/O設(shè)備。由于數(shù)據(jù)選擇通道在一段時間內(nèi)只能執(zhí)行一個通道程序,控制一臺設(shè)備,因此通道的利用率很低。當(dāng)這臺設(shè)備數(shù)據(jù)傳輸完成后,再選擇與通道連接的另一臺設(shè)備,執(zhí)行它的相應(yīng)的通道程序。 主要連接磁盤,磁帶等高速I/O設(shè)備。,,,選擇通道,,,,,,,,,C 數(shù)組多路通道,數(shù)組多路通
11、道是將數(shù)組選擇通道傳輸率高和字節(jié)多路通道能使各個子通道分時并行操作的優(yōu)點(diǎn)結(jié)合起來而形成的一種新通道。它既具有很高的數(shù)據(jù)傳輸率,又能獲得令人滿意的通道利用率。該通道廣泛用于連接多臺高速、中速的外設(shè)。硬件連接結(jié)構(gòu),,通道:執(zhí)行通道程序,向控制器發(fā)出命令,并具有向CPU發(fā)中斷信號的功能。 一旦CPU發(fā)出指令,啟動通道,則通道獨(dú)立于CPU工作。一個通道可連接多個控制器,一個控制器可連接多個設(shè)備,形成樹形交叉連接 主要目的是啟動
12、外設(shè)時: a 提高了控制器效率 b 提高可靠性 c 提高并行度,,3 “瓶頸問題”,由于通道少而外設(shè)多,造成整個系統(tǒng)吞吐量下降,形成瓶頸問題。解決的辦法是把外設(shè)連接到多個控制器上,而一個控制器又連接到多個通道上。這樣,不僅解決了瓶頸問題,而且提高了系統(tǒng)的可靠性。,4 系統(tǒng)總線,總線是用來連接各種設(shè)備的。總線的性能是用總線的時鐘頻率、帶寬和相應(yīng)的總線傳輸率等指標(biāo)來衡量的。A ISA總線和EISA
13、總線ISA這是1984年推出的286型微機(jī)而設(shè)計的總線結(jié)構(gòu),帶寬8位,最高傳輸率2MB/s。EISA 帶寬32位,傳輸率32MB/s ,可同時連接12臺外設(shè)。B 局部總線,,多媒體技術(shù)的興起,要求總線具有更高的傳輸率。EISA已難于滿足要求,局部總線應(yīng)運(yùn)而生。所謂局部總線,是指將多媒體卡、高速Lan網(wǎng)卡、圖形卡等從ISA上卸下來,再通過局部總線控制器直接連到Cpu總線上,而打印機(jī)、CD-ROM等仍掛在ISA總線上
14、。VESA 總線總線帶寬32位,最高傳輸率132MB/s,廣泛用于486微機(jī)中。PCI 總線這種總線支持64位系統(tǒng)。廣泛用于奔騰系列計算機(jī)。,5.2 I/O控制方式,隨著計算機(jī)的發(fā)展,I/O控制方式經(jīng)歷了四種形式,分別是程序I/O方式,中斷驅(qū)動I/O方式,DMA方式和通道方式。程序I/O方式早期的計算機(jī)系統(tǒng)中,處理機(jī)對I/O設(shè)備的控制采取程序I/O方式,或稱忙-等待方式。處理機(jī)向控制器發(fā)出一條I/O指令啟動輸
15、入設(shè)備輸入數(shù)據(jù)時,把狀態(tài)寄存器的忙/閑標(biāo)準(zhǔn)busy置為1,然后不斷地循環(huán)測試busy。當(dāng)busy=1時,表示設(shè)備還沒輸入完,處理機(jī)應(yīng)繼續(xù)對busy進(jìn)行測試,直至busy=0,表明輸入機(jī)已將數(shù)據(jù)送入控制器的數(shù)據(jù)寄存器中。于是cpu將數(shù)據(jù)寄存器的數(shù)據(jù)讀出,送入內(nèi)存指定單元中。接著處理機(jī)繼續(xù)啟動控制器,讀下一個數(shù)據(jù)。,,,,向I/O控制器發(fā)讀命令,,讀I/O控制器狀態(tài),,檢查狀態(tài),,從I/O控制器讀入字,,向存儲器寫字,,流程完成?
16、,,,,,,,,,,,,,未就緒,由于cpu高速而I/O設(shè)備低速,造成cpu極大浪費(fèi)。,2 中斷驅(qū)動I/O方式,當(dāng)某進(jìn)程要啟動I/O設(shè)備工作時,便由cpu向設(shè)備控制器發(fā)出一條I/O指令,然后cpu繼續(xù)執(zhí)行原來的任務(wù)。設(shè)備控制器按照命令的要求控制設(shè)備。此時,cpu與設(shè)備并行工作。當(dāng)設(shè)備工作完成時,才需要cpu花費(fèi)極短的時間去做些中斷出理。在中斷方式中,cpu和I/O設(shè)備都處于忙碌狀態(tài),從而提高整個系統(tǒng)的資源利用率。在I/O中斷
17、方式下,數(shù)據(jù)的輸入(或輸出)步驟如下:設(shè)備驅(qū)動程序工作:1、要求輸入數(shù)據(jù)的進(jìn)程把一個啟動命令和允許中斷位“1”寫入相應(yīng)設(shè)備的控制狀態(tài)寄存器中,從而啟動了該設(shè)備;2、該進(jìn)程因等待輸入的完成進(jìn)入睡眠狀態(tài)。3、當(dāng)輸入完成后,輸入設(shè)備向CPU發(fā)出完成中斷請求信號;,,設(shè)備中斷處理程序工作:4、處理機(jī)響應(yīng)中斷,處理該中斷,并喚醒等待輸入完成的進(jìn)程;5、在以后的某個時期,該程序被調(diào)度到后,繼續(xù)運(yùn)行。這種方式的優(yōu)點(diǎn)是大大地提高了CPU的
18、利用效率,缺點(diǎn)是每次I/O都要CPU的干預(yù),如果系統(tǒng)中配備了多臺(套)設(shè)備時,CPU的利用率也會降低。解決的方法是采用通道技術(shù),3 DMA控制方式(direct memory access),中斷處理是以字為為單位進(jìn)行I/O的,每當(dāng)完成一個字節(jié)的I/O時,便向cpu請求一次中斷。而DMA方式與此不同。 DMA方式與中斷的主要區(qū)別中斷方式傳輸?shù)膯挝皇亲只蜃止?jié),在數(shù)據(jù)完成后,發(fā)中斷請求,CPU進(jìn)行中斷處理 DM
19、A方式的傳輸單位是數(shù)據(jù)塊,在所要求傳送的數(shù)據(jù)塊全部傳送結(jié)束時要求CPU進(jìn)行中斷處理中斷方式要求了CPU進(jìn)行中斷處理的次數(shù)多,而DMA所 傳送的數(shù)據(jù)是從設(shè)備直接到內(nèi)存,或者相反。Cpu處理次數(shù)少3 中斷方式的數(shù)據(jù)傳送是由CPU控制完成的 而DMA方式則是在DMA控制器的控制下不經(jīng)過CPU控制完成的,DMA控制器的組成,DMA控制器由3部分組成。一是主機(jī)與DMA控制器的接口,二是DMA與塊設(shè)備的接口
20、,三是I/O控制邏輯。為了實現(xiàn)主機(jī)與控制器之間數(shù)據(jù)的直接交換,DMA控制器必須設(shè)置如下四類寄存器。1 命令/狀態(tài)寄存器 CR2 內(nèi)存地址寄存器 MAR3 數(shù)據(jù)寄存器DR4 數(shù)據(jù)計數(shù)器 DC,DMA工作過程,DMA工作示例(以硬盤為例),CPU提供被讀取塊磁盤地址目標(biāo)存儲地址待讀取字節(jié)數(shù)整塊數(shù)據(jù)讀進(jìn)緩沖區(qū)核準(zhǔn)校驗,控制器按照指定存儲器地址,把第一個字節(jié)送入主存然后,按指定字節(jié)數(shù)進(jìn)行數(shù)據(jù)傳送每當(dāng)傳送一個字節(jié)后
21、,字節(jié)計數(shù)器值減1,直到字節(jié)計數(shù)器等于0此時,控制器引發(fā)中斷,通知操作系統(tǒng),操作完成,DMA實現(xiàn)流程,CPU向控制器發(fā)出啟動DMA通知和有關(guān)參數(shù),控制器向內(nèi)存發(fā)出詢問請求,訪問內(nèi)存(讀、寫),計數(shù)器減1,結(jié)束否,發(fā)中斷,,,,,,,,,4 I/O通道控制方式,I/O通道方式是DMA方式的發(fā)展,它可進(jìn)一步減少cpu的干預(yù)把對一個數(shù)據(jù)塊的讀寫為單位的干預(yù),減少到對一組數(shù)據(jù)塊為單位的干預(yù)。同時,又可實現(xiàn)cpu,通道和I/O設(shè)備
22、三者的并行操作,從而有效地提高整個系統(tǒng)的利用率。通道的工作原理:,工作原理 CPU:執(zhí)行用戶程序,當(dāng)遇到I/O請求時,可根據(jù)該請求生成通道程序放入內(nèi)存(也可事先編好放入內(nèi)存),并將該通道程序的首地址放入CAW中;之后執(zhí)行“啟動I/O”指令,啟動通道工作,通道:接收到“啟動I/O”指令后,從CAW中取出通道程序的首地址,并根據(jù)首地址取出第一條指令放入CCW中,同時向CPU發(fā)回答信號,使CPU可繼續(xù)執(zhí)行其他程序,而通道則開始執(zhí)行通道程
23、序,完成傳輸工作,,5.3 緩沖管理,為了緩和CPU與I/O設(shè)備速度不匹配的矛盾,提高CPU與I/O設(shè)備的并行性,幾乎所有的系統(tǒng)引入了緩沖區(qū)。緩沖管理的主要職責(zé)是組織好這些緩沖區(qū),并提供獲得和釋放緩沖區(qū)的手段。1 緩沖區(qū)的引入1)緩和CPU與I/O設(shè)備間速度不匹配的矛盾凡是數(shù)據(jù)到達(dá)和離去速度不匹配的地方均可采用緩沖技術(shù)。2)減少對CPU的中斷頻率,放寬對CPU中斷響應(yīng)的時間限制3)提高CPU與I/O設(shè)備之間的并
24、行性緩沖是用來在兩種不同速度的設(shè)備之間傳輸信息時平滑傳輸過程的常用手段。,2 單緩沖和雙緩沖,單緩沖,顧名思義就是一個緩沖區(qū)。在單緩沖情況下,每當(dāng)用戶進(jìn)程發(fā)出一個I/O請求時,操作系統(tǒng)便在主存中為之分配一片緩沖區(qū)。在塊設(shè)備輸入時,假定從磁盤把一塊數(shù)據(jù)輸入緩沖區(qū)的時間記為T,將緩沖區(qū)的數(shù)據(jù)送到用戶區(qū)的時間是M,而CPU對數(shù)據(jù)的處理時間為C。由于T和C是可以并行的,所以系統(tǒng)對每一塊數(shù)據(jù)的處理時間表示為Max(C,T)+M
25、在字符設(shè)備輸入時,緩沖區(qū)用于暫存用戶輸入的一行數(shù)據(jù),在輸入期間,用戶進(jìn)程被掛起以等待數(shù)據(jù)輸入完畢;在輸出時,用戶進(jìn)程將一行數(shù)據(jù)輸入到緩沖區(qū)后,繼續(xù)執(zhí)行其它操作。,雙緩沖,系統(tǒng)設(shè)置兩個緩沖區(qū),BUF1和BUF2,各進(jìn)程使用這兩個緩沖區(qū)。這種緩沖技術(shù)是最簡單的,用于低頻度活動的I/O。工作過程:首先輸入將數(shù)據(jù)送入BUF1,然后,申請BUF2,在向BUF2輸入數(shù)據(jù)的同時,輸出進(jìn)程可從BUF1中取數(shù)據(jù)。同理,向BUF1輸入與從B
26、UF2中取數(shù)據(jù)可以并行。雙緩沖可以實現(xiàn)兩臺計算機(jī)之間雙向傳輸。,循環(huán)緩沖,在系統(tǒng)中設(shè)置若干緩沖區(qū),并把這些緩沖區(qū)鏈接起來,這樣若干個緩沖區(qū)就形成了一個環(huán),故稱環(huán)形緩沖區(qū)。,,環(huán)形緩沖技術(shù)使用設(shè)置一個輸入指針in、一個輸出指針out、開始指針strat。系統(tǒng)初始時,strat=in=out。輸入時,要判斷in是否與out相等,若相等,則要等待。否則將信息送入in指向的緩沖區(qū),填滿后,將緩沖區(qū)中的指向下一個緩沖區(qū)的指針nex
27、t置in,如此類推。輸出時,首先判斷out=in,若相等,則等待(意味著系統(tǒng)中沒有數(shù)據(jù)可?。?。否則,取出緩沖區(qū)中的信息,將緩沖區(qū)中的next置out;,緩沖池,系統(tǒng)較大時,將會有許多循環(huán)緩沖,這不僅要消耗大量的內(nèi)存空間,而且其利用率不高。為了提高緩沖區(qū)的利用率,目前廣泛采用緩沖池。1)組成空緩沖隊列 由空緩沖區(qū)所鏈成的隊列。輸入隊列 由裝滿輸入數(shù)據(jù)的緩沖區(qū)所鏈成的隊列。輸出隊列 由裝滿輸出數(shù)據(jù)的緩
28、沖區(qū)所鏈成的隊列。除了上述三個隊列外,還應(yīng)有四個工作緩沖區(qū),1)用于收容輸入數(shù)據(jù)的工作緩沖區(qū) 2)用于提取輸入數(shù)據(jù)的工作緩沖區(qū) 3)用于收容輸出數(shù)據(jù)的工作緩沖區(qū) 4)用于提取輸出數(shù)據(jù)的工作緩沖區(qū)。,緩沖區(qū)的工作方式,緩沖區(qū)可以工作在收容輸入、提取輸入,收容輸出、提取輸出四種工作方式下。收容輸入:在輸入進(jìn)程需要輸入數(shù)據(jù)時,從空緩沖隊列的隊首摘下一空緩沖區(qū),作為收容輸入工作緩沖區(qū)。把數(shù)據(jù)輸入其中,裝滿后把該隊列掛在輸入隊
29、列上。提取輸入:當(dāng)計算進(jìn)程需要數(shù)據(jù)時,從輸入隊列取得一緩沖區(qū),作為提取輸入工作緩沖區(qū)。計算進(jìn)程從中提取數(shù)據(jù),計算完畢后,將該緩沖區(qū)掛到空閑緩沖隊列上。收容輸出:當(dāng)計算進(jìn)程需要輸出時,從空緩沖隊列隊首取得一空緩沖,作為收容輸出工作緩沖區(qū)。當(dāng)其中裝滿輸出數(shù)據(jù)時,將該緩沖區(qū)掛在輸出隊列末尾。,,提取輸出:由輸出進(jìn)程調(diào)用,從輸出隊列的隊首取得一裝滿輸出數(shù)據(jù)的緩沖區(qū),作為提取輸出緩沖區(qū)。在數(shù)據(jù)提取完畢后將該緩沖區(qū)掛在空緩沖隊列末尾
30、。,5.4 設(shè)備分配,系統(tǒng)設(shè)備不允許用戶自行使用,必須由系統(tǒng)統(tǒng)一分配。每當(dāng)進(jìn)程向系統(tǒng)提出I/O請求時,只要是可能和安全的,設(shè)備分配程序便按照一定的策略,把設(shè)備分配給用戶進(jìn)程。數(shù)據(jù)結(jié)構(gòu)在進(jìn)行設(shè)備分配時,所需要的數(shù)據(jù)結(jié)構(gòu)有:設(shè)備控制表,控制器控制表,通道控制表和系統(tǒng)設(shè)備表。設(shè)備控制表DCT系統(tǒng)為每個設(shè)備配置了一張設(shè)備控制表,用于記錄本設(shè)備的情況。主要內(nèi)容:設(shè)備類型、設(shè)備標(biāo)識符、設(shè)備狀態(tài)、與此設(shè)備相連的COCT、重復(fù)執(zhí)
31、行的次數(shù)或時間、等待隊列的隊首和隊尾指針、I/O程序地址等。,控制器控制表和通道控制表、系統(tǒng)設(shè)備表,控制器控制表COCT:系統(tǒng)為每個控制器都設(shè)置了一張用于記錄本控制器情況的控制器控制表。包括控制器標(biāo)識符,狀態(tài),與控制器相連的通道表指針等。通道控制表CHCT:系統(tǒng)為每個通道都設(shè)置了一張用于記錄本通道情況的通道控制表。包括通道標(biāo)識符,狀態(tài),與通道相連的控制器表首址,通道隊列的對首指針等。系統(tǒng)設(shè)備表SDT:記錄了系統(tǒng)中全部設(shè)備的
32、情況。每個設(shè)備占用一個表目,其中包括設(shè)備類型,設(shè)備標(biāo)識符、設(shè)備控制表及設(shè)備驅(qū)動程序的入口等項。,2 設(shè)備分配時應(yīng)考慮的因素,分配設(shè)備時,應(yīng)考慮下列幾個屬性:1)設(shè)備的固有屬性2)設(shè)備分配算法 3)設(shè)備分配時的安全性 4)設(shè)備獨(dú)立性設(shè)備的固有屬性:設(shè)備的固有屬性有三種情況,分別為獨(dú)占性、共享性和虛擬性。獨(dú)占性設(shè)備:這種設(shè)備一段時間內(nèi),只允許一個進(jìn)程獨(dú)占。對于獨(dú)占設(shè)備,應(yīng)采用獨(dú)享分配策略。這種分配策略的缺點(diǎn)是設(shè)備得不
33、到充分利用,而且有可能引起死鎖。共享性設(shè)備:這種設(shè)備允許多個進(jìn)程共享。所以可同時分配給多個進(jìn)程。虛擬設(shè)備:指設(shè)備本身是獨(dú)占設(shè)備,經(jīng)過技術(shù)處理,可把它改造成共享設(shè)備,可將它同時分配給多個進(jìn)程。,設(shè)備分配算法,1、先來先服務(wù)算法2、優(yōu)先級高者優(yōu)先設(shè)備分配中的安全問題1)安全分配方式在這種分配方式中,每當(dāng)進(jìn)程發(fā)出I/O請求時,便進(jìn)入阻塞狀態(tài),直至其I/O完成。這種分配方式摒棄了“請求和保持條件”,從而使設(shè)備分配是安全的。
34、2)不安全分配方式在這種分配方式中,進(jìn)程發(fā)出I/O請求后仍繼續(xù)運(yùn)行,需要時又發(fā)出第二個I/O請求,第三個I/O請求。僅當(dāng)進(jìn)程所請求的設(shè)備已被別的進(jìn)程占用時,才進(jìn)入阻塞狀態(tài)。優(yōu)點(diǎn):一個進(jìn)程可以同時操縱多個設(shè)備。缺點(diǎn)是分配不安全。,3 設(shè)備獨(dú)立性,為了提高OS的可適應(yīng)性和可擴(kuò)展性,引入了設(shè)備獨(dú)立性。設(shè)備獨(dú)立性也稱為設(shè)備無關(guān)性,基本含義是應(yīng)用程序獨(dú)立于具體使用的物理設(shè)備。為了實現(xiàn)設(shè)備獨(dú)立性,引入了邏輯設(shè)備和物理設(shè)備這兩個概
35、念。用戶在編制程序時,使用邏輯設(shè)備名,由系統(tǒng)實現(xiàn)從邏輯設(shè)備到物理設(shè)備(實際設(shè)備)的轉(zhuǎn)換。用戶能獨(dú)立于具體物理設(shè)備而方便的使用設(shè)備。設(shè)備獨(dú)立性的優(yōu)點(diǎn):1)設(shè)備分配的靈活性2)易于實現(xiàn)I/O重定向所謂的I/O重定向指用于I/O操作的設(shè)備可以更換,而不必改變應(yīng)用程序。設(shè)備獨(dú)立性軟件驅(qū)動程序是一個與硬件緊密相關(guān)的軟件。為了實現(xiàn)設(shè)備獨(dú)立,,性,必須在驅(qū)動程序之上設(shè)置一層軟件,稱為設(shè)備獨(dú)立性軟件。其主要功能有下面兩點(diǎn):執(zhí)行所有
36、設(shè)備的公有操作公有操作包括:對獨(dú)立設(shè)備的 分配和回收;將邏輯設(shè)備名映射為物理設(shè)備名;對設(shè)備進(jìn)行保護(hù);緩沖管理;差錯控制;2)向用戶層軟件提供統(tǒng)一接口無論何種設(shè)備,它們向用戶所提供的接口應(yīng)該是相同;,邏輯設(shè)備名到物理設(shè)備名映射的實現(xiàn),1)邏輯設(shè)備表為了實現(xiàn)設(shè)備的獨(dú)立性,系統(tǒng)必須設(shè)置一張邏輯設(shè)備表LUT,用于將應(yīng)用程序中所使用的邏輯設(shè)備名映射為物理設(shè)備名。在該表的每個表目中包含三項:邏輯設(shè)備名,物理設(shè)備名和設(shè)備驅(qū)動程序的入口
37、地址。,2) LUT的設(shè)置問題,LUT的設(shè)置采用兩種方式:第一種方式是在整個系統(tǒng)中只設(shè)置一張LUT。由于系統(tǒng)中所有進(jìn)程的設(shè)備分配情況都記錄在同一張LUT中,因而不允許在LUT中有相同的邏輯設(shè)備名。這就要求所有的用戶都不使用相同的邏輯設(shè)備名。因而這種方式主要用于單用戶系統(tǒng)中。第二種方式是為每個用戶設(shè)置一張LUT。每當(dāng)用戶登錄時,便為該用戶建立一個進(jìn)程,同時也為之建立一張LUT,并將該表放進(jìn)進(jìn)程的PCB中。這種方式通常用于
38、多用戶系統(tǒng)中。 4 獨(dú)占設(shè)備的分配程序系統(tǒng)的設(shè)備分配程序可按下述步驟進(jìn)行設(shè)備分配:1)分配設(shè)備,,首先根據(jù)I/O請求中的物理設(shè)備名,查找系統(tǒng)設(shè)備表SDT,從中找出該設(shè)備的DCT,再根據(jù)DCT中的設(shè)備狀態(tài)字段,可知該設(shè)備是否忙。若忙,便請求I/O進(jìn)程的PCB,掛在設(shè)備隊列上。否則,便按照一定的算法來計算本次設(shè)備分配的安全性。如果安全,便可以分配。2)分配控制器在系統(tǒng)把設(shè)備分配給請求I/O的進(jìn)程后,再到其DCT
39、中找到與該設(shè)備連接的控制器的COCT,從COCT的狀態(tài)字段中可知該控制器是否忙。若忙,便將請求I/O進(jìn)程的PCB掛在該控制器的等待隊列上;否則,將控制器分配給該進(jìn)程。3)分配通道在該COCT中,又可找到與該控制器連接的通道的CHCT,再根據(jù)CHCT的狀態(tài)信息,可知該通道是否忙碌;若忙,將請求I/O的進(jìn)程掛在該通道的等待隊列上;否則,將通道分配給,,該進(jìn)程。只有在設(shè)備、控制器和通道三者都分配成功時,這次分配才算成功。然后,
40、便可啟動該I/O設(shè)備進(jìn)行數(shù)據(jù)傳輸。分配程序的改進(jìn)上述分配方式有以下問題:一是進(jìn)程以物理設(shè)備名提出I/O請求的。二是采用單通路的I/O系統(tǒng)結(jié)構(gòu),容易產(chǎn)生瓶頸。應(yīng)采取下列改進(jìn):1)增加設(shè)備的獨(dú)立性進(jìn)程應(yīng)以邏輯設(shè)備名請求I/O。2)考慮多通路的情況對控制器和通道的分配,要經(jīng)過多次反復(fù)。,5 SPOOLing技術(shù),SPOOLing技術(shù)為解決獨(dú)立設(shè)備數(shù)量少,速度慢,不能滿足眾多進(jìn)程的要求,而且在進(jìn)程獨(dú)占設(shè)備期間,設(shè)備利用率比
41、較低而提出的一種設(shè)備管理技術(shù)。1)什么是SPOOLing為了緩和CPU的高速性與I/O設(shè)備低速性的矛盾而引入了脫機(jī)輸入、脫機(jī)輸出技術(shù)。該技術(shù)是利用專門的外圍控制機(jī),將低速I/O設(shè)備上的數(shù)據(jù)傳送到高速磁盤上;或者相反。在多道程序技術(shù)環(huán)境下,可以利用程序來模擬脫機(jī)輸入輸出時,外圍控制機(jī)的功能。這種在主機(jī)直接控制下,實現(xiàn)脫機(jī)輸出輸入操作。此時外圍操作與CPU對數(shù)據(jù)的處理同時進(jìn)行。把這種在聯(lián)機(jī)情況下實現(xiàn)的同時外圍操作稱為SPO
42、OLing(Simultaneaus Periphernal Operating On-Line),或稱為假脫機(jī)技術(shù)。,2)SPOOLing 系統(tǒng)的組成,SPOOLing系統(tǒng)主要有以下三部分組成:A 輸入井和輸出井這是在磁盤上開辟兩個大存儲區(qū);輸入井是模擬脫機(jī)輸入時的磁盤設(shè)備,用于暫存I/O設(shè)備輸入的數(shù)據(jù)。輸出井是模擬脫機(jī)輸出時的磁盤,用于暫存用戶程序的輸出數(shù)據(jù)。B 輸入緩沖區(qū)和輸出緩沖區(qū)為了緩和CPU和磁盤之間速度不匹
43、配的矛盾,在內(nèi)存中開辟兩個緩沖區(qū)。輸入緩沖區(qū)用于暫存由輸入設(shè)備送來的數(shù)據(jù),以后再傳送到輸入井。輸出緩沖區(qū)用于暫存由輸出設(shè)備送來的數(shù)據(jù),以后再傳送到輸出井。C 輸入進(jìn)程P1和輸出進(jìn)程P2利用這兩個進(jìn)程模擬脫機(jī)I/O時的外圍控制機(jī)。,,進(jìn)程P1模擬脫機(jī)輸入時的外圍控制機(jī),將用戶要求的數(shù)據(jù)從輸入設(shè)備通過輸入緩沖區(qū)送到輸入井。當(dāng)CPU需要輸入數(shù)據(jù)時,直接從輸入井讀到內(nèi)存。進(jìn)程P2模擬脫機(jī)輸出時的外圍控制機(jī),把用戶要求輸出的數(shù)據(jù),先從內(nèi)
44、存送到輸出井,待輸出設(shè)備空閑時,再將輸出井的數(shù)據(jù)經(jīng)過緩沖區(qū)送到輸出設(shè)備。,3) 共享打印機(jī)打印機(jī)屬于獨(dú)占設(shè)備,利用SPOOLing技術(shù)可將其改造為一臺可供多個用戶共享的設(shè)備,從而提高設(shè)備的利用率。當(dāng)用戶進(jìn)程請求打印輸出時,SPOOLing系統(tǒng)并不把打印機(jī)分配給它,而只做兩件事:A 由輸出進(jìn)程為用戶申請一個空閑磁盤塊區(qū),并將要打印的數(shù)據(jù)送入其中。B 輸出進(jìn)程再為用戶進(jìn)程申請一張空白的用戶請求打印表,并將用戶的打印要求填入其中。再將
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論