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

下載本文檔

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

文檔簡(jiǎn)介

1、第五章設(shè)備管理5.1 i/o系統(tǒng)系統(tǒng)5.2 i/o控制方式控制方式5.3 緩沖管理緩沖管理5.4 設(shè)備分配設(shè)備分配5.5 設(shè)備處理設(shè)備處理5.6 磁盤存儲(chǔ)器管理磁盤存儲(chǔ)器管理i/o系統(tǒng)中,包括用于實(shí)現(xiàn)輸入、輸出和存儲(chǔ)功能的設(shè)備和相應(yīng)的設(shè)備控制器。在大中型機(jī)中,還有i/o通道或i/o處理機(jī)。設(shè)備管理的基本任務(wù)是完成用戶提出的i/o請(qǐng)求,提高i/o速率、改善i/o設(shè)備的利用率。設(shè)備管理的主要功能有,緩沖區(qū)管理、設(shè)備分配,設(shè)備處理,虛 擬設(shè)備以及實(shí)現(xiàn)設(shè)備獨(dú)立性。5.1 i/o系統(tǒng)i/o系統(tǒng)是用于實(shí)現(xiàn)數(shù)據(jù)的輸入、輸出及數(shù)據(jù)存儲(chǔ)的系統(tǒng)。它除了需要直接用于i/o和存儲(chǔ)信息的設(shè)備外還需要相應(yīng)的設(shè)備控制器和高

2、速總線。1i/o 設(shè)備2設(shè)備控制器3i/o通道4i/o總線1 i/o設(shè)備設(shè)備的類型1)按數(shù)據(jù)傳輸率分高速設(shè)備高速設(shè)備 速率在每秒數(shù)百千個(gè)字節(jié)至數(shù)十兆字節(jié)。例如光盤機(jī)、磁帶機(jī)、磁盤機(jī)等。中速設(shè)備中速設(shè)備速率在每秒數(shù)千個(gè)字節(jié)至數(shù)萬(wàn)個(gè)字節(jié)。如打印機(jī)等。低速設(shè)備低速設(shè)備速率在每秒幾個(gè)字節(jié)至數(shù)百個(gè)字節(jié)之間。如鍵盤、鼠標(biāo)等。2) 按信息交換的單位分塊設(shè)備塊設(shè)備以數(shù)據(jù)塊為單位存儲(chǔ)、傳輸信息。典型的塊設(shè)備是磁盤,每個(gè)盤塊的大小為512b4b。磁盤設(shè)備的基本特征是傳輸速率較高。另一特征是可尋址,即對(duì)它可隨機(jī)地讀寫任一塊。字符設(shè)備字符設(shè)備以字符為單位存儲(chǔ)、傳輸信息。字符設(shè)備的基本特征是速率慢,不可尋址。3) 按設(shè)

3、備的共享屬性分獨(dú)占設(shè)備獨(dú)占設(shè)備 在一段時(shí)間內(nèi)只能有一個(gè)進(jìn)程使用的設(shè)備,一般為低速i/o設(shè)備。(如打印機(jī),磁帶等)共享設(shè)備共享設(shè)備在一段時(shí)間內(nèi)可有多個(gè)進(jìn)程共同使用的設(shè)備,多個(gè)進(jìn)程以交叉的方式來使用設(shè)備,其資源利用率高。(如硬盤)虛設(shè)備虛設(shè)備在一類設(shè)備上模擬另一類設(shè)備,常用共享設(shè)備模擬獨(dú)占設(shè)備,用高速設(shè)備模擬低速設(shè)備,被模擬的設(shè)備稱為虛設(shè)備目的:將慢速的獨(dú)占設(shè)備改造成多個(gè)用戶可共享的設(shè)備,提高設(shè)備的利用率。設(shè)備與控制器之間的接口通常,設(shè)備并不直接與cpu進(jìn)行通信,而是與設(shè)備控制器通信。因此,在設(shè)備與設(shè)備控制器之間應(yīng)有一接口,在該接口中有三種類型的信號(hào),各對(duì)應(yīng)一根信號(hào)線。a 數(shù)據(jù)信號(hào)線數(shù)據(jù)信號(hào)線這類

4、信號(hào)線用于在設(shè)備和設(shè)備控制器之間傳輸數(shù)據(jù)信號(hào)。b 控制信號(hào)線控制信號(hào)線這是設(shè)備控制器向i/o設(shè)備發(fā)送控制信號(hào)時(shí)的通路。c 狀態(tài)信號(hào)線狀態(tài)信號(hào)線該信號(hào)線用于傳送指示設(shè)備當(dāng)前狀態(tài)的信號(hào)。2 設(shè)備控制器設(shè)備控制器是計(jì)算機(jī)中的一個(gè)實(shí)體,其主要職責(zé)是控制一個(gè)或多個(gè)i/o設(shè)備,以實(shí)現(xiàn)i/o設(shè)備與計(jì)算機(jī)之間的數(shù)據(jù)交換。設(shè)備控制器是cpu與i/o設(shè)備之間的接口,它接受從cpu發(fā)來的命令,并去控制i/o 設(shè)備工作,以便使處理器從繁重的設(shè)備控制事務(wù)中解脫出來。設(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è)備

5、控制器可分為兩類,一是用于控制字符設(shè)備的控制器,另一個(gè)是控制塊設(shè)備的控制器。1 設(shè)備控制器的基本功能1)接收和識(shí)別命令接收和識(shí)別命令cpu可向控制器發(fā)送多種不同命令,設(shè)備控制器應(yīng)能接收和識(shí)別這些命令。2)數(shù)據(jù)交換數(shù)據(jù)交換它能實(shí)現(xiàn)cpu與控制器之間、控制器與設(shè)備之間的數(shù)據(jù)交換。3)識(shí)別和報(bào)告設(shè)備的狀態(tài)識(shí)別和報(bào)告設(shè)備的狀態(tài)控制器記下設(shè)備的狀態(tài)供cpu了解。4)地址識(shí)別地址識(shí)別5)數(shù)據(jù)緩沖數(shù)據(jù)緩沖控制器必須設(shè)置一些緩沖器。6)差錯(cuò)控制差錯(cuò)控制設(shè)備控制器還對(duì)傳來的數(shù)據(jù)進(jìn)行差錯(cuò)檢測(cè)。2 設(shè)備控制器的組成設(shè)備控制器由三部分組成。1)設(shè)備控制器與處理機(jī)的接口該接口用于實(shí)現(xiàn)cpu與設(shè)備控制器之間的通信。2)設(shè)

6、備控制器與設(shè)備之間的接口3)i/o邏輯用于實(shí)現(xiàn)對(duì)設(shè)備的控制。3 i/o通道1 通道的引入雖然在cpu與外設(shè)之間有設(shè)備控制器,但當(dāng)外設(shè)很多時(shí),cpu的負(fù)擔(dān)仍然很重。為此,在cpu與設(shè)備控制器之間又增設(shè)了通道。使用通道的目的是為了建立獨(dú)立的i/o操作,不僅使數(shù)據(jù)的傳輸獨(dú)立于cpu,而且盡可能地對(duì)i/o操作的組織、管理、及其結(jié)束也獨(dú)立,使cpu從繁雜的i/o任務(wù)中解脫出來。i/o通道是一種特殊的處理機(jī),它具有執(zhí)行i/o指令的能力,并能通過執(zhí)行通道程序來控制i/o操作。i/o通道不同于一般的處理機(jī),主要表現(xiàn)在2個(gè)方面:1指令類型簡(jiǎn)單2通道沒有自己的內(nèi)存2通道類型a 字節(jié)多路通道這是一種按字節(jié)交叉方式工

7、作的通道。它有多個(gè)子通道,每個(gè)子通道連接一臺(tái)i/o設(shè)備,并控制該設(shè)備的i/o操作。這些子通道輪流方式共享主通道。當(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)傳送字節(jié)b 數(shù)組選擇通道以成組方式進(jìn)行數(shù)據(jù)傳輸,即每次傳輸一批數(shù)據(jù)。其傳送速率較高,主要用于連接高速i/o設(shè)備。由于數(shù)據(jù)選擇通道在一段時(shí)間內(nèi)只能執(zhí)行一個(gè)通道程序,控制一臺(tái)設(shè)備,因此通道的利用率很低。當(dāng)這臺(tái)設(shè)備數(shù)據(jù)傳輸完成后,再選擇與通道連接的另一臺(tái)設(shè)備,執(zhí)行它的相應(yīng)的通道程

8、序。 主要連接磁盤,磁帶等高速i/o設(shè)備。選擇通道選擇通道c 數(shù)組多路通道數(shù)組多路通道是將數(shù)組選擇通道傳輸率高和字節(jié)多路通道能使各個(gè)子通道分時(shí)并行操作的優(yōu)點(diǎn)結(jié)合起來而形成的一種新通道。它既具有很高的數(shù)據(jù)傳輸率,又能獲得令人滿意的通道利用率。該通道廣泛用于連接多臺(tái)高速、中速的外設(shè)。硬件連接結(jié)構(gòu) 通道:執(zhí)行通道程序,向控制器發(fā)出命令,并具有向cpu發(fā)中斷信號(hào)的功能。 一旦cpu發(fā)出指令,啟動(dòng)通道,則通道獨(dú)立于cpu工作。一個(gè)通道可連接多個(gè)控制器,一個(gè)控制器可連接多個(gè)設(shè)備,形成樹形交叉連接 主要目的是啟動(dòng)外設(shè)時(shí): a 提高了控制器效率 b 提高可靠性 c 提高并行度3 “瓶頸問題”由于通道少而外設(shè)多

9、,造成整個(gè)系統(tǒng)吞吐量下降,形成瓶頸問題。解決的辦法是把外設(shè)連接到多個(gè)控制器上,而一個(gè)控制器又連接到多個(gè)通道上。這樣,不僅解決了瓶頸問題,而且提高了系統(tǒng)的可靠性。4 系統(tǒng)總線總線是用來連接各種設(shè)備的??偩€的性能是用總線的時(shí)鐘頻率、帶寬和相應(yīng)的總線傳輸率等指標(biāo)來衡量的。a isa總線和eisa總線isa這是1984年推出的286型微機(jī)而設(shè)計(jì)的總線結(jié)構(gòu),帶寬8位,最高傳輸率2mb/s。eisa 帶寬32位,傳輸率32mb/s ,可同時(shí)連接12臺(tái)外設(shè)。b 局部總線多媒體技術(shù)的興起,要求總線具有更高的傳輸率。eisa已難于滿足要求,局部總線應(yīng)運(yùn)而生。所謂局部總線,是指將多媒體卡、高速lan網(wǎng)卡、圖形卡等

10、從isa上卸下來,再通過局部總線控制器直接連到cpu總線上,而打印機(jī)、cdrom等仍掛在isa總線上。vesa 總線總線帶寬32位,最高傳輸率132mb/s,廣泛用于486微機(jī)中。pci 總線這種總線支持64位系統(tǒng)。廣泛用于奔騰系列計(jì)算機(jī)。5.2 i/o控制方式隨著計(jì)算機(jī)的發(fā)展,i/o控制方式經(jīng)歷了四種形式,分別是程序i/o方式,中斷驅(qū)動(dòng)i/o方式,dma方式和通道方式。1程序i/o方式早期的計(jì)算機(jī)系統(tǒng)中,處理機(jī)對(duì)i/o設(shè)備的控制采取程序i/o方式,或稱忙等待方式。處理機(jī)向控制器發(fā)出一條i/o指令啟動(dòng)輸入設(shè)備輸入數(shù)據(jù)時(shí),把狀態(tài)寄存器的忙/閑標(biāo)準(zhǔn)busy置為1,然后不斷地循環(huán)測(cè)試busy。當(dāng)bu

11、sy1時(shí),表示設(shè)備還沒輸入完,處理機(jī)應(yīng)繼續(xù)對(duì)busy進(jìn)行測(cè)試,直至busy=0,表明輸入機(jī)已將數(shù)據(jù)送入控制器的數(shù)據(jù)寄存器中。于是cpu將數(shù)據(jù)寄存器的數(shù)據(jù)讀出,送入內(nèi)存指定單元中。接著處理機(jī)繼續(xù)啟動(dòng)控制器,讀下一個(gè)數(shù)據(jù)。 向i/o控制器發(fā)讀命令讀i/o控制器狀態(tài) 檢查狀態(tài)從i/o控制器讀入字 向存儲(chǔ)器寫字流程完成?未就緒由于cpu高速而i/o設(shè)備低速,造成cpu極大浪費(fèi)。2 中斷驅(qū)動(dòng)i/o方式當(dāng)某進(jìn)程要啟動(dòng)i/o設(shè)備工作時(shí),便由cpu向設(shè)備控制器發(fā)出一條i/o指令,然后cpu繼續(xù)執(zhí)行原來的任務(wù)。設(shè)備控制器按照命令的要求控制設(shè)備。此時(shí),cpu與設(shè)備并行工作。當(dāng)設(shè)備工作完成時(shí),才需要cpu花費(fèi)極短的

12、時(shí)間去做些中斷出理。在中斷方式中,cpu和i/o設(shè)備都處于忙碌狀態(tài),從而提高整個(gè)系統(tǒng)的資源利用率。 在i/o中斷方式下,數(shù)據(jù)的輸入(或輸出)步驟如下: 設(shè)備驅(qū)動(dòng)程序工作: 1、要求輸入數(shù)據(jù)的進(jìn)程把一個(gè)啟動(dòng)命令和允許中斷位“1”寫入相應(yīng)設(shè)備的控制狀態(tài)寄存器中,從而啟動(dòng)了該設(shè)備; 2、該進(jìn)程因等待輸入的完成進(jìn)入睡眠狀態(tài)。 3、當(dāng)輸入完成后,輸入設(shè)備向cpu發(fā)出完成中斷請(qǐng)求信號(hào); 設(shè)備中斷處理程序工作: 4、處理機(jī)響應(yīng)中斷,處理該中斷,并喚醒等待輸入完成的進(jìn)程; 5、在以后的某個(gè)時(shí)期,該程序被調(diào)度到后,繼續(xù)運(yùn)行。 這種方式的優(yōu)點(diǎn)是大大地提高了cpu的利用效率,缺點(diǎn)是每次i/o都要cpu的干預(yù),如果系

13、統(tǒng)中配備了多臺(tái)(套)設(shè)備時(shí),cpu的利用率也會(huì)降低。解決的方法是采用通道技術(shù)3 dma控制方式(direct memory access)中斷處理是以字為為單位進(jìn)行i/o的,每當(dāng)完成一個(gè)字節(jié)的i/o時(shí),便向cpu請(qǐng)求一次中斷。而dma方式與此不同。 dma方式與中斷的主要區(qū)別1中斷方式傳輸?shù)膯挝皇亲只蜃止?jié),在數(shù)據(jù)完成后,發(fā)中斷請(qǐng)求,cpu進(jìn)行中斷處理 dma方式的傳輸單位是數(shù)據(jù)塊,在所要求傳送的數(shù)據(jù)塊全部傳送結(jié)束時(shí)要求cpu進(jìn)行中斷處理2中斷方式要求了cpu進(jìn)行中斷處理的次數(shù)多,而dma所 傳送的數(shù)據(jù)是從設(shè)備直接到內(nèi)存,或者相反。cpu處理次數(shù)少3 中斷方式的數(shù)據(jù)傳送是由cpu控制完成的 而d

14、ma方式則是在dma控制器的控制下不經(jīng)過cpu控制完成的dma控制器的組成dma控制器由3部分組成。一是主機(jī)與dma控制器的接口,二是dma與塊設(shè)備的接口,三是i/o控制邏輯。為了實(shí)現(xiàn)主機(jī)與控制器之間數(shù)據(jù)的直接交換,dma控制器必須設(shè)置如下四類寄存器。1 命令/狀態(tài)寄存器 cr2 內(nèi)存地址寄存器 mar3 數(shù)據(jù)寄存器dr4 數(shù)據(jù)計(jì)數(shù)器 dcdma工作過程dmadma工作示例工作示例(以硬盤為例)(以硬盤為例) cpucpu提供提供被讀取塊磁盤地址被讀取塊磁盤地址目標(biāo)存儲(chǔ)地址目標(biāo)存儲(chǔ)地址待讀取字節(jié)數(shù)待讀取字節(jié)數(shù)整塊數(shù)據(jù)讀進(jìn)緩沖區(qū)整塊數(shù)據(jù)讀進(jìn)緩沖區(qū)核準(zhǔn)校驗(yàn)核準(zhǔn)校驗(yàn)控制器按照指定存儲(chǔ)器地址,把第一個(gè)

15、字節(jié)送入主存控制器按照指定存儲(chǔ)器地址,把第一個(gè)字節(jié)送入主存然后,按指定字節(jié)數(shù)進(jìn)行數(shù)據(jù)傳送然后,按指定字節(jié)數(shù)進(jìn)行數(shù)據(jù)傳送每當(dāng)傳送一個(gè)字節(jié)后,字節(jié)計(jì)數(shù)器值減每當(dāng)傳送一個(gè)字節(jié)后,字節(jié)計(jì)數(shù)器值減1 1,直到字節(jié)計(jì)數(shù)器等于,直到字節(jié)計(jì)數(shù)器等于0 0此時(shí),控制器引發(fā)中斷,通知操作系統(tǒng),操作完成此時(shí),控制器引發(fā)中斷,通知操作系統(tǒng),操作完成dma實(shí)現(xiàn)流程cpu向控制器發(fā)出啟動(dòng)向控制器發(fā)出啟動(dòng)dma通知和有關(guān)參數(shù)通知和有關(guān)參數(shù)控制器向內(nèi)存發(fā)出詢問請(qǐng)求控制器向內(nèi)存發(fā)出詢問請(qǐng)求訪問內(nèi)存(讀、寫)訪問內(nèi)存(讀、寫)計(jì)數(shù)器減計(jì)數(shù)器減1結(jié)束否結(jié)束否發(fā)中斷發(fā)中斷4 i/o通道控制方式i/o通道方式是dma方式的發(fā)展,它可進(jìn)

16、一步減少cpu的干預(yù)把對(duì)一個(gè)數(shù)據(jù)塊的讀寫為單位的干預(yù),減少到對(duì)一組數(shù)據(jù)塊為單位的干預(yù)。同時(shí),又可實(shí)現(xiàn)cpu,通道和i/o設(shè)備三者的并行操作,從而有效地提高整個(gè)系統(tǒng)的利用率。通道的工作原理:工作原理工作原理 cpucpu:執(zhí)行用戶程序,當(dāng)遇到執(zhí)行用戶程序,當(dāng)遇到i/oi/o請(qǐng)求時(shí),可根據(jù)該請(qǐng)求生成通道程請(qǐng)求時(shí),可根據(jù)該請(qǐng)求生成通道程序放入內(nèi)存(也可事先編好放入內(nèi)序放入內(nèi)存(也可事先編好放入內(nèi)存),并將該通道程序的首地址放存),并將該通道程序的首地址放入入cawcaw中;之后執(zhí)行中;之后執(zhí)行“啟動(dòng)啟動(dòng)i/o”i/o”指指令,啟動(dòng)通道工作令,啟動(dòng)通道工作 通道:接收到接收到“啟動(dòng)啟動(dòng)i/o”i/o”

17、指指令后,從令后,從cawcaw中取出通道程中取出通道程序的首地址,并根據(jù)首地址序的首地址,并根據(jù)首地址取出第一條指令放入取出第一條指令放入ccwccw中,中,同時(shí)向同時(shí)向cpucpu發(fā)回答信號(hào),使發(fā)回答信號(hào),使cpucpu可繼續(xù)執(zhí)行其他程序,可繼續(xù)執(zhí)行其他程序,而通道則開始執(zhí)行通道程序,而通道則開始執(zhí)行通道程序,完成傳輸工作完成傳輸工作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á)

18、和離去速度不匹配的地方均可采用緩沖技術(shù)。2)減少對(duì)cpu的中斷頻率,放寬對(duì)cpu中斷響應(yīng)的時(shí)間限制3)提高cpu與i/o設(shè)備之間的并行性緩沖是用來在兩種不同速度的設(shè)備之間傳輸信息時(shí)平滑傳輸過程的常用手段。2 單緩沖和雙緩沖單緩沖,顧名思義就是一個(gè)緩沖區(qū)。在單緩沖情況下,每當(dāng)用戶進(jìn)程發(fā)出一個(gè)i/o請(qǐng)求時(shí),操作系統(tǒng)便在主存中為之分配一片緩沖區(qū)。在塊設(shè)備輸入時(shí),假定從磁盤把一塊數(shù)據(jù)輸入緩沖區(qū)的時(shí)間記為t,將緩沖區(qū)的數(shù)據(jù)送到用戶區(qū)的時(shí)間是m,而cpu對(duì)數(shù)據(jù)的處理時(shí)間為c。由于t和c是可以并行的,所以系統(tǒng)對(duì)每一塊數(shù)據(jù)的處理時(shí)間表示為max(c,t)+m在字符設(shè)備輸入時(shí),緩沖區(qū)用于暫存用戶輸入的一行數(shù)據(jù),

19、在輸入期間,用戶進(jìn)程被掛起以等待數(shù)據(jù)輸入完畢;在輸出時(shí),用戶進(jìn)程將一行數(shù)據(jù)輸入到緩沖區(qū)后,繼續(xù)執(zhí)行其它操作。雙緩沖 系統(tǒng)設(shè)置兩個(gè)緩沖區(qū),buf1和buf2,各進(jìn)程使用這兩個(gè)緩沖區(qū)。這種緩沖技術(shù)是最簡(jiǎn)單的,用于低頻度活動(dòng)的i/o。工作過程:首先輸入將數(shù)據(jù)送入buf1,然后,申請(qǐng)buf2,在向buf2輸入數(shù)據(jù)的同時(shí),輸出進(jìn)程可從buf1中取數(shù)據(jù)。同理,向buf1輸入與從buf2中取數(shù)據(jù)可以并行。雙緩沖可以實(shí)現(xiàn)兩臺(tái)計(jì)算機(jī)之間雙向傳輸。循環(huán)緩沖在系統(tǒng)中設(shè)置若干緩沖區(qū),并把這些緩沖區(qū)鏈接起來,這樣若干個(gè)緩沖區(qū)就形成了一個(gè)環(huán),故稱環(huán)形緩沖區(qū)。環(huán)形緩沖技術(shù)使用設(shè)置一個(gè)輸入指針in、一個(gè)輸出指針out、開始指

20、針strat。系統(tǒng)初始時(shí),strat=in=out。輸入時(shí),要判斷in是否與out相等,若相等,則要等待。否則將信息送入in指向的緩沖區(qū),填滿后,將緩沖區(qū)中的指向下一個(gè)緩沖區(qū)的指針next置in,如此類推。輸出時(shí),首先判斷out=in,若相等,則等待(意味著系統(tǒng)中沒有數(shù)據(jù)可?。?。否則,取出緩沖區(qū)中的信息,將緩沖區(qū)中的next置out; 緩沖池系統(tǒng)較大時(shí),將會(huì)有許多循環(huán)緩沖,這不僅要消耗大量的內(nèi)存空間,而且其利用率不高。為了提高緩沖區(qū)的利用率,目前廣泛采用緩沖池。1)組成空緩沖隊(duì)列 由空緩沖區(qū)所鏈成的隊(duì)列。輸入隊(duì)列 由裝滿輸入數(shù)據(jù)的緩沖區(qū)所鏈成的隊(duì)列。輸出隊(duì)列 由裝滿輸出數(shù)據(jù)的緩沖區(qū)所鏈成的隊(duì)列

21、。除了上述三個(gè)隊(duì)列外,還應(yīng)有四個(gè)工作緩沖區(qū),1)用于收容輸入數(shù)據(jù)的工作緩沖區(qū) 2)用于提取輸入數(shù)據(jù)的工作緩沖區(qū) 3)用于收容輸出數(shù)據(jù)的工作緩沖區(qū) 4)用于提取輸出數(shù)據(jù)的工作緩沖區(qū)。緩沖區(qū)的工作方式緩沖區(qū)可以工作在收容輸入、提取輸入,收容輸出、提取輸出四種工作方式下。收容輸入:在輸入進(jìn)程需要輸入數(shù)據(jù)時(shí),從空緩沖隊(duì)列的隊(duì)首摘下一空緩沖區(qū),作為收容輸入工作緩沖區(qū)。把數(shù)據(jù)輸入其中,裝滿后把該隊(duì)列掛在輸入隊(duì)列上。提取輸入:當(dāng)計(jì)算進(jìn)程需要數(shù)據(jù)時(shí),從輸入隊(duì)列取得一緩沖區(qū),作為提取輸入工作緩沖區(qū)。計(jì)算進(jìn)程從中提取數(shù)據(jù),計(jì)算完畢后,將該緩沖區(qū)掛到空閑緩沖隊(duì)列上。收容輸出:當(dāng)計(jì)算進(jìn)程需要輸出時(shí),從空緩沖隊(duì)列隊(duì)首取

22、得一空緩沖,作為收容輸出工作緩沖區(qū)。當(dāng)其中裝滿輸出數(shù)據(jù)時(shí),將該緩沖區(qū)掛在輸出隊(duì)列末尾。提取輸出:由輸出進(jìn)程調(diào)用,從輸出隊(duì)列的隊(duì)首取得一裝滿輸出數(shù)據(jù)的緩沖區(qū),作為提取輸出緩沖區(qū)。在數(shù)據(jù)提取完畢后將該緩沖區(qū)掛在空緩沖隊(duì)列末尾。5.4 設(shè)備分配系統(tǒng)設(shè)備不允許用戶自行使用,必須由系統(tǒng)統(tǒng)一分配。每當(dāng)進(jìn)程向系統(tǒng)提出i/o請(qǐng)求時(shí),只要是可能和安全的,設(shè)備分配程序便按照一定的策略,把設(shè)備分配給用戶進(jìn)程。1數(shù)據(jù)結(jié)構(gòu)在進(jìn)行設(shè)備分配時(shí),所需要的數(shù)據(jù)結(jié)構(gòu)有:設(shè)備控制表,控制器控制表,通道控制表和系統(tǒng)設(shè)備表。設(shè)備控制表dct系統(tǒng)為每個(gè)設(shè)備配置了一張?jiān)O(shè)備控制表,用于記錄本設(shè)備的情況。主要內(nèi)容:設(shè)備類型、設(shè)備標(biāo)識(shí)符、設(shè)備狀

23、態(tài)、與此設(shè)備相連的coct、重復(fù)執(zhí)行的次數(shù)或時(shí)間、等待隊(duì)列的隊(duì)首和隊(duì)尾指針、i/o程序地址等。 控制器控制表和通道控制表、系統(tǒng)設(shè)備表控制器控制表coct:系統(tǒng)為每個(gè)控制器都設(shè)置了一張用于記錄本控制器情況的控制器控制表。包括控制器標(biāo)識(shí)符,狀態(tài),與控制器相連的通道表指針等。通道控制表chct:系統(tǒng)為每個(gè)通道都設(shè)置了一張用于記錄本通道情況的通道控制表。包括通道標(biāo)識(shí)符,狀態(tài),與通道相連的控制器表首址,通道隊(duì)列的對(duì)首指針等。系統(tǒng)設(shè)備表sdt:記錄了系統(tǒng)中全部設(shè)備的情況。每個(gè)設(shè)備占用一個(gè)表目,其中包括設(shè)備類型,設(shè)備標(biāo)識(shí)符、設(shè)備控制表及設(shè)備驅(qū)動(dòng)程序的入口等項(xiàng)。2 設(shè)備分配時(shí)應(yīng)考慮的因素分配設(shè)備時(shí),應(yīng)考慮下列

24、幾個(gè)屬性:1)設(shè)備的固有屬性2)設(shè)備分配算法 3)設(shè)備分配時(shí)的安全性 4)設(shè)備獨(dú)立性設(shè)備的固有屬性:設(shè)備的固有屬性有三種情況,分別為獨(dú)占性、共享性和虛擬性。獨(dú)占性設(shè)備:這種設(shè)備一段時(shí)間內(nèi),只允許一個(gè)進(jìn)程獨(dú)占。對(duì)于獨(dú)占設(shè)備,應(yīng)采用獨(dú)享分配策略。這種分配策略的缺點(diǎn)是設(shè)備得不到充分利用,而且有可能引起死鎖。共享性設(shè)備:這種設(shè)備允許多個(gè)進(jìn)程共享。所以可同時(shí)分配給多個(gè)進(jìn)程。虛擬設(shè)備:指設(shè)備本身是獨(dú)占設(shè)備,經(jīng)過技術(shù)處理,可把它改造成共享設(shè)備,可將它同時(shí)分配給多個(gè)進(jìn)程。設(shè)備分配算法1、先來先服務(wù)算法2、優(yōu)先級(jí)高者優(yōu)先設(shè)備分配中的安全問題1)安全分配方式在這種分配方式中,每當(dāng)進(jìn)程發(fā)出i/o請(qǐng)求時(shí),便進(jìn)入阻塞狀

25、態(tài),直至其i/o完成。這種分配方式摒棄了“請(qǐng)求和保持條件”,從而使設(shè)備分配是安全的。2)不安全分配方式在這種分配方式中,進(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)入阻塞狀態(tài)。優(yōu)點(diǎn):一個(gè)進(jìn)程可以同時(shí)操縱多個(gè)設(shè)備。缺點(diǎn)是分配不安全。3 設(shè)備獨(dú)立性為了提高os的可適應(yīng)性和可擴(kuò)展性,引入了設(shè)備獨(dú)立性。設(shè)備獨(dú)立性也稱為設(shè)備無(wú)關(guān)性,基本含義是應(yīng)用程序獨(dú)立于具體使用的物理設(shè)備。為了實(shí)現(xiàn)設(shè)備獨(dú)立性,引入了邏輯設(shè)備和物理設(shè)備這兩個(gè)概念。用戶在編制程序時(shí),使用邏輯設(shè)備名,由系統(tǒng)實(shí)現(xiàn)從邏輯設(shè)備到物理設(shè)備(實(shí)際設(shè)備)的轉(zhuǎn)換。用戶能獨(dú)立于

26、具體物理設(shè)備而方便的使用設(shè)備。設(shè)備獨(dú)立性的優(yōu)點(diǎn):1)設(shè)備分配的靈活性2)易于實(shí)現(xiàn)i/o重定向所謂的i/o重定向指用于i/o操作的設(shè)備可以更換,而不必改變應(yīng)用程序。設(shè)備獨(dú)立性軟件驅(qū)動(dòng)程序是一個(gè)與硬件緊密相關(guān)的軟件。為了實(shí)現(xiàn)設(shè)備獨(dú)立性,必須在驅(qū)動(dòng)程序之上設(shè)置一層軟件,稱為設(shè)備獨(dú)立性軟件。其主要功能有下面兩點(diǎn):1)執(zhí)行所有設(shè)備的公有操作公有操作包括:對(duì)獨(dú)立設(shè)備的 分配和回收;將邏輯設(shè)備名映射為物理設(shè)備名;對(duì)設(shè)備進(jìn)行保護(hù);緩沖管理;差錯(cuò)控制;2)向用戶層軟件提供統(tǒng)一接口無(wú)論何種設(shè)備,它們向用戶所提供的接口應(yīng)該是相同;邏輯設(shè)備名到物理設(shè)備名映射的實(shí)現(xiàn)1)邏輯設(shè)備表為了實(shí)現(xiàn)設(shè)備的獨(dú)立性,系統(tǒng)必須設(shè)置一張邏

27、輯設(shè)備表lut,用于將應(yīng)用程序中所使用的邏輯設(shè)備名映射為物理設(shè)備名。在該表的每個(gè)表目中包含三項(xiàng):邏輯設(shè)備名,物理設(shè)備名和設(shè)備驅(qū)動(dòng)程序的入口地址。 邏輯設(shè)備名物理設(shè)備名驅(qū)動(dòng)程序入口地址/dev/try 31024/dev/printer 520462) lut的設(shè)置問題lut的設(shè)置采用兩種方式:第一種方式是在整個(gè)系統(tǒng)中只設(shè)置一張lut。由于系統(tǒng)中所有進(jìn)程的設(shè)備分配情況都記錄在同一張lut中,因而不允許在lut中有相同的邏輯設(shè)備名。這就要求所有的用戶都不使用相同的邏輯設(shè)備名。因而這種方式主要用于單用戶系統(tǒng)中。第二種方式是為每個(gè)用戶設(shè)置一張lut。每當(dāng)用戶登錄時(shí),便為該用戶建立一個(gè)進(jìn)程,同時(shí)也為之建

28、立一張lut,并將該表放進(jìn)進(jìn)程的pcb中。這種方式通常用于多用戶系統(tǒng)中。 4 獨(dú)占設(shè)備的分配程序系統(tǒng)的設(shè)備分配程序可按下述步驟進(jìn)行設(shè)備分配:1)分配設(shè)備首先根據(jù)i/o請(qǐng)求中的物理設(shè)備名,查找系統(tǒng)設(shè)備表sdt,從中找出該設(shè)備的dct,再根據(jù)dct中的設(shè)備狀態(tài)字段,可知該設(shè)備是否忙。若忙,便請(qǐng)求i/o進(jìn)程的pcb,掛在設(shè)備隊(duì)列上。否則,便按照一定的算法來計(jì)算本次設(shè)備分配的安全性。如果安全,便可以分配。2)分配控制器在系統(tǒng)把設(shè)備分配給請(qǐng)求i/o的進(jìn)程后,再到其dct中找到與該設(shè)備連接的控制器的coct,從coct的狀態(tài)字段中可知該控制器是否忙。若忙,便將請(qǐng)求i/o進(jìn)程的pcb掛在該控制器的等待隊(duì)列上

29、;否則,將控制器分配給該進(jìn)程。3)分配通道在該coct中,又可找到與該控制器連接的通道的chct,再根據(jù)chct的狀態(tài)信息,可知該通道是否忙碌;若忙,將請(qǐng)求i/o的進(jìn)程掛在該通道的等待隊(duì)列上;否則,將通道分配給該進(jìn)程。只有在設(shè)備、控制器和通道三者都分配成功時(shí),這次分配才算成功。然后,便可啟動(dòng)該i/o設(shè)備進(jìn)行數(shù)據(jù)傳輸。分配程序的改進(jìn)上述分配方式有以下問題:一是進(jìn)程以物理設(shè)備名提出i/o請(qǐng)求的。二是采用單通路的i/o系統(tǒng)結(jié)構(gòu),容易產(chǎn)生瓶頸。應(yīng)采取下列改進(jìn):1)增加設(shè)備的獨(dú)立性進(jìn)程應(yīng)以邏輯設(shè)備名請(qǐng)求i/o。2)考慮多通路的情況對(duì)控制器和通道的分配,要經(jīng)過多次反復(fù)。5 spooling技術(shù)spooling技術(shù)為解決獨(dú)立設(shè)備數(shù)量少,速度慢,不能滿足眾多進(jìn)程的要求,而且在進(jìn)程獨(dú)占設(shè)備期間,設(shè)備利用率比較低而提出的一種設(shè)備管理技術(shù)。1)什么是spooling為了緩和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)論