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

下載本文檔

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

文檔簡介

1、1I/O SYSTEMS2n計(jì)算機(jī)系統(tǒng)的一個(gè)重要組成部分是I/O系統(tǒng)。nI/O系統(tǒng)包括:輸入設(shè)備 輸出設(shè)備 設(shè)備控制器 I/O通道或I/O處理機(jī)n設(shè)備管理的對(duì)象主要是:I/O設(shè)備 設(shè)備控制器 I/O通道 3n設(shè)備管理的基本任務(wù)是:完成用戶提出的I/O請(qǐng)求,提高I/O速率,提高I/O設(shè)備的利用率。n設(shè)備管理的主要功能有:緩沖區(qū)管理 設(shè)備分配 設(shè)備處理 虛擬設(shè)備 實(shí)現(xiàn)設(shè)備獨(dú)立性n設(shè)備管理是OS中最繁雜且與硬件最緊密相關(guān)的部分。 4本章總覽n OS在 I/O方面的功能是管理和控制 I/O操作 和I/O設(shè)備。n I/O技術(shù)表現(xiàn)出兩大相沖突的發(fā)展趨勢:l硬件接口的標(biāo)準(zhǔn)化程度的提高l設(shè)備類型的更多樣化的高

2、速發(fā)展 n 基本的I/O硬件像接口,總線,設(shè)備控制器 技術(shù)的發(fā)展順應(yīng)了I/O設(shè)備的廣泛變化。 n 操作系統(tǒng)內(nèi)核用各種設(shè)備驅(qū)動(dòng)模塊來組織 I/O子系統(tǒng)結(jié)構(gòu) 。n問題:性能和復(fù)雜。5設(shè)備管理的目的和功能 n外設(shè)管理目的l提高效率:提高I/O訪問效率,匹配CPU和多種不同處理速度的外設(shè)。l方便使用:方便用戶使用,對(duì)不同類型的設(shè)備統(tǒng)一使用方法,協(xié)調(diào)對(duì)設(shè)備的并發(fā)使用。l方便控制:方便OS內(nèi)部對(duì)設(shè)備的控制:增加和刪除設(shè)備,適應(yīng)新的設(shè)備類型。6設(shè)備管理的目的和功能 n外設(shè)管理功能l設(shè)備分配和釋放:使用設(shè)備前,需要分配設(shè)備和相應(yīng)的通道、控制器。l設(shè)備的訪問和控制:包括并發(fā)訪問和差錯(cuò)處理。lI/O緩沖和調(diào)度:目

3、標(biāo)是提高I/O訪問效率(主要是磁盤)。7891011125.1 I/O系統(tǒng) I/O系統(tǒng)的結(jié)構(gòu)13A typical PC bus structure14155.1.1 I/O設(shè)備n I/O設(shè)備的類型繁多,從OS觀點(diǎn)看,其重要的性 能指標(biāo)有:數(shù)據(jù)傳輸速率、數(shù)據(jù)的傳輸單位、設(shè)備共享屬性等。n 按傳輸速率分類 低速設(shè)備 典型設(shè)備有:鍵盤、 鼠標(biāo)器、語音輸入和輸出等。 中速設(shè)備 典型設(shè)備有:行式打印機(jī)、激光打印機(jī)等。 高速設(shè)備 典型設(shè)備有:磁帶機(jī)、磁盤機(jī)、光盤機(jī)等。1.I/O設(shè)備的類型16n 按信息交換的單位分類 塊設(shè)備: 這類設(shè)備用于存儲(chǔ)信息。 屬于有結(jié)構(gòu)設(shè)備。 典型的塊設(shè)備是磁盤, 每個(gè)盤塊的大小

4、 為 512 B4 KB 。傳輸速率較高,可尋址即對(duì)它可隨機(jī)地讀 / 寫任一塊;磁盤設(shè)備的 I/O 常采用 DMA 方式。 字符設(shè)備: 用于數(shù)據(jù)的輸入和輸出。 其基本單位是字符, 故稱為字符設(shè)備。 n按設(shè)備的共享屬性分類按設(shè)備的共享屬性分類 獨(dú)占設(shè)備 共享設(shè)備 虛擬設(shè)備17n設(shè)備與控制器之間的接口l數(shù)據(jù)信號(hào)l控制信號(hào)l狀態(tài)信號(hào)2.設(shè)備與控制器之間的接口通常,設(shè)備并不直接與CPU進(jìn)行通信, 而是與設(shè)備控制器通信。因此, 在I/O設(shè)備中應(yīng)含有與設(shè)備控制器間的接口。在該接口中有三種類型的信號(hào)各對(duì)應(yīng)一條信號(hào)線。18緩沖轉(zhuǎn)換器控制邏輯信號(hào)數(shù)據(jù)數(shù)據(jù)信號(hào)線狀態(tài)信號(hào)線控制信號(hào)線至設(shè)備控制器I/O 設(shè)備圖5-1

5、 設(shè)備與控制器間的接口控制信號(hào)線:作為設(shè)備控制器向I/O設(shè)備發(fā)送控制信號(hào)時(shí)的通路。 該信號(hào)規(guī)定了設(shè)備將要執(zhí)行的操作: 讀操作(指由設(shè)備向控制器傳送數(shù)據(jù)) 寫操作(從控制器接收數(shù)據(jù))數(shù)據(jù)信號(hào)線:用于在設(shè)備和設(shè)備控制器之間傳送數(shù)據(jù)信號(hào)。輸入設(shè)備:外界輸入的信號(hào)經(jīng)轉(zhuǎn)換器轉(zhuǎn)換后形成的數(shù)據(jù),通常先送入緩沖器中,當(dāng)數(shù)據(jù)量達(dá)到一定的比特?cái)?shù)后,再從緩沖器通過一組數(shù)據(jù)信號(hào)線傳送給設(shè)備控制器。輸出設(shè)備:將從設(shè)備控制器經(jīng)過數(shù)據(jù)信號(hào)線傳送來的一批數(shù)據(jù)先暫存于緩沖器中,經(jīng)轉(zhuǎn)換器作適當(dāng)轉(zhuǎn)換后,再逐個(gè)字符地輸出。狀態(tài)信號(hào)線:用于傳送指示設(shè)備當(dāng)前狀態(tài)的信號(hào)。 設(shè)備的當(dāng)前狀態(tài)有: 正在讀(寫) 設(shè)備已讀(寫)完成,并準(zhǔn)備好新的

6、數(shù)據(jù)傳送。195.1.2 設(shè)備控制器n設(shè)備控制器是計(jì)算機(jī)中的一個(gè)實(shí)體,其主要職責(zé)是控制一個(gè)或多個(gè)I/O設(shè)備,以實(shí)現(xiàn)I/O設(shè)備和計(jì)算機(jī)之間的數(shù)據(jù)交換。n它是CPU與I/O設(shè)備間的接口,它接收從CPU發(fā)來的命令,并去控制I/O設(shè)備工作,使處理機(jī)從繁雜的設(shè)備控制事務(wù)中解脫出來。n它是一個(gè)可編址的設(shè)備,當(dāng)它僅控制一個(gè)設(shè)備時(shí),它只有一個(gè)唯一的設(shè)備地址;若控制多個(gè)設(shè)備時(shí),則應(yīng)含有多個(gè)設(shè)備地址,并使每一個(gè)設(shè)備地址對(duì)應(yīng)一個(gè)設(shè)備。205.1.2 設(shè)備控制器n它可分為兩類:控制字符設(shè)備的控制器 控制塊設(shè)備的控制器n 設(shè)備控制器的基本功能 書P162l接收和識(shí)別命令 l數(shù)據(jù)交換l設(shè)備狀態(tài)的了解和報(bào)告l地址識(shí)別l數(shù)據(jù)

7、緩沖l差錯(cuò)控制21n設(shè)備控制器的組成 由于設(shè)備控制器位于CPU與設(shè)備之間,它既要與CPU通信,又要與設(shè)備通信,還應(yīng)具有按照CPU所發(fā)來的命令區(qū)控制設(shè)備工作的功能。因此有以下三部分組成:l控制器與處理機(jī)接口 該接口用于實(shí)現(xiàn)CPU與設(shè)備控制器之間的通信。l控制器與設(shè)備接口 可以連接一個(gè)或多個(gè)設(shè)備。在每個(gè)接口中都存在數(shù)據(jù)、控制和狀態(tài)三種類型的信號(hào)??刂破髦械腎/O邏輯根據(jù)處理機(jī)發(fā)來的地址信號(hào)去選擇一個(gè)設(shè)備接口。22數(shù)據(jù)寄存器控制/狀態(tài)寄存器數(shù)據(jù)線I/O邏輯控制器與設(shè)備接口1控制器與設(shè)備接口i數(shù)據(jù)狀態(tài)控制數(shù)據(jù)狀態(tài)控制地址線控制線CPU與控制器接口控 制 器 與 設(shè) 備 接 口圖5-2 設(shè)備控制器的組成

8、 l I/O邏輯I/O邏輯用于實(shí)現(xiàn)對(duì)設(shè)備的控制:它通過一組控制線與處理機(jī)交互, 處理機(jī)利用該邏輯向控制器發(fā)送I/O命令; I /O邏輯對(duì)收到的命令進(jìn)行譯碼。每當(dāng) CPU要啟動(dòng)一個(gè)設(shè)備時(shí),一方面將啟動(dòng)命令發(fā)送給控制器; 另一方面有通過地址線把地址發(fā)送給控制器,由控制器的I/O邏輯對(duì)收到的地址進(jìn)行譯碼,再根據(jù)所譯出的命令對(duì)所選設(shè)備進(jìn)行控制。235.1.3 I/O通道n在CPU與I/O設(shè)備之間增加了設(shè)備控制器后,已能大大減少CPU對(duì)I/O的干預(yù),但當(dāng)主機(jī)所配置的外設(shè)很多時(shí),CPU的負(fù)擔(dān)仍然很重。為此,在CPU和設(shè)備控制器之間又增設(shè)了I/O通道。n其主要目的是為了建立獨(dú)立的I/O操作,不僅使數(shù)據(jù)的傳送

9、能獨(dú)立于CPU,而且I/O操作的組織、管理及結(jié)束處理盡量獨(dú)立,以保證CPU有更多的時(shí)間進(jìn)行數(shù)據(jù)處理。n即設(shè)置I/O通道的目的是使一些原來由CPU處理的I/O任務(wù)轉(zhuǎn)由通承擔(dān),從而把CPU從繁雜的I/O任務(wù)中解脫出來。n設(shè)置了通道后,CPU只需向通道發(fā)送一條I/O指令。通道收到該指令后,便從內(nèi)存中取出本次要執(zhí)行的通道程序,然后執(zhí)行該通道程序;僅當(dāng)通道完成了規(guī)定的I/O任務(wù)后,才向CPU發(fā)中斷信號(hào)。24nI/O通道是一種特殊的處理機(jī),具有執(zhí)行I/O指令的能力。n通過執(zhí)行通道(I/O)程序來控制I/O操作。n其指令類型單一主要局限于與I/O操作有關(guān)的指令n通道沒有自己的內(nèi)存,通道所執(zhí)行的通道程序是放在

10、主機(jī)的內(nèi)存中的。25通道類型n字節(jié)多路通道 一種按字節(jié)交叉方式工作的通道。它通常含有許多非分配型子通道, 其數(shù)量從幾十到幾百個(gè),每一個(gè)子通道連接一臺(tái)I/O設(shè)備,并控制該設(shè)備的I/O操作。這些子通道按時(shí)間片輪轉(zhuǎn)方式共享主通道:當(dāng)?shù)谝粋€(gè)子通道控制其I/O設(shè)備完成一個(gè)字節(jié)的交換后,便立即騰出主通道,讓給第二個(gè)子通道使用;當(dāng)所有子通道輪轉(zhuǎn)一周后,重又返回由第一個(gè)子通道去使用主通道。這樣,只要字節(jié)多路通道掃描每個(gè)子通道的速率足夠快,而連接到子通道上的設(shè)備的速率不是太高時(shí),便不致丟失信息。控制器A控制器B控制器C控制器D控制器NA1A2A3子通道AB1B2B3子通道BC1C2C3子通道CN1N2N3子通道

11、NA1B1C1 A2B2C2設(shè) 備26n數(shù)組選擇通道l字節(jié)多路通道不適合連接高速設(shè)備l數(shù)組選擇通道可以連接多臺(tái)高速設(shè)備l該通道只含有一個(gè)分配型子通道l這種通道的利用率很低n數(shù)組多路通道l上面兩種通道技術(shù)的結(jié)合l有多個(gè)非分配型子通道l該通道能被廣泛地用于連接多臺(tái)高、中速的外圍設(shè)備l具有很高的數(shù)據(jù)傳輸速率,又能獲得令人滿意的通道利用率27瓶頸問題設(shè)備1設(shè)備2設(shè)備3設(shè)備4設(shè)備5設(shè)備6設(shè)備7控制器1控制器2控制器3控制器4通道1通道2存儲(chǔ)器通道價(jià)格昂貴,通道數(shù)量勢必減少。這往往又使它成了I/O的瓶頸,從而造成整個(gè)系統(tǒng)吞吐量的下降。假設(shè)設(shè)備1至設(shè)備4是四個(gè)磁盤,為了啟動(dòng)磁盤4,必須用通道1和控制2;但若

12、這兩者已被其他設(shè)備占用,必然無法啟動(dòng)磁盤4。28瓶頸問題的解決I/O 設(shè)備控制器1控制器2通道 1通道 2存儲(chǔ)器I/O 設(shè)備I/O 設(shè)備I/O 設(shè)備解決方法:增加設(shè)備到主機(jī)間的通路而不增加通道。就是把一個(gè)設(shè)備連接到多個(gè)控制器上,而一個(gè)控制器又連接到多個(gè)通道上。圖中的設(shè)備1、2、3、4都有四條通往存儲(chǔ)器的通路。多通路方式不僅解決了瓶頸問題,而且提高了系統(tǒng)的可靠性。295.1.4 總線系統(tǒng)n總線是許多信號(hào)線的集合,它是微型計(jì)算機(jī)芯片間、各部件間和外部設(shè)備間相互進(jìn)行信息或數(shù)據(jù)交換的通路。由于計(jì)算機(jī)內(nèi)部定向的信息流和數(shù)據(jù)流在總線中的流動(dòng),就形成了計(jì)算機(jī)的各種操作。n常見的系統(tǒng)總線標(biāo)準(zhǔn)總線標(biāo)準(zhǔn)有ISA、

13、EISA、PCI等總線 30總線的主要技術(shù)指標(biāo)n總線數(shù)據(jù)傳輸速率 單位時(shí)間內(nèi)總線上傳送的數(shù)據(jù)量,即每鈔鐘傳送Mb的最大穩(wěn)態(tài)數(shù)據(jù)傳輸率。 總線數(shù)據(jù)傳輸速率總線的工作頻率*總線的位寬/8 。n總線的帶寬總線的帶寬 總線的帶寬指的是總線能同時(shí)傳送的二進(jìn)制數(shù)據(jù)的位數(shù),或數(shù)據(jù)總線的位數(shù),即32位、64位等總線寬度的概念。n總線的工作頻率總線的工作頻率 總線的工作時(shí)鐘頻率以MHZ為單位,工作頻率越高,總線工作速度越快,總線傳輸速率越高。31ISA和EISA總線n80286微機(jī)的總線。帶寬為8bit,最高傳輸速率為2Mb/s,可以連接12臺(tái)外部設(shè)備。n擴(kuò)展ISA即EISA總線:帶寬16位。傳輸速率高達(dá)32M

14、b/s,可以連接12臺(tái)外部設(shè)備。32局部總線n局部總線是指將多媒體卡,高速LAN網(wǎng)卡,高性能圖形板等從ISA總線上卸下來,再通過局部總線控制器直接連接到CPU總線上,使之與高速CPU總線相匹配。局部總線中較有影響的是VESA和PCI總線。nVESA:帶寬32位。最高傳輸速率132Mb/s,僅能連接24臺(tái)設(shè)備。nPCI:PCI在CPU和外設(shè)之間插入一復(fù)雜的管理層,用于協(xié)調(diào)數(shù)據(jù)傳輸和提供一致的接口。PCI能支持10種外設(shè),最大傳輸速率可達(dá)132Mb/s。是當(dāng)前廣為流行的總線。335.2 I/O控制方式nI/O控制方式是隨著計(jì)算機(jī)技術(shù)的發(fā)展而不斷發(fā)展的。在I/O控制方式的整個(gè)發(fā)展過程中,始終貫穿的宗

15、旨是:盡量減少主機(jī)對(duì)I/O控制的干預(yù),把主機(jī)從反之的I/O控制事物中解脫出來,以便更多地去完成數(shù)據(jù)處理任務(wù)。n早期采用程序控制I/O方式;n當(dāng)在系統(tǒng)中引入中斷機(jī)制后,便發(fā)展為中斷驅(qū)動(dòng)方式;n隨著DMA控制器的出現(xiàn),又使I/O方式在傳輸單位上發(fā)生了變:即從以字節(jié)為單位的傳輸擴(kuò)大到以數(shù)據(jù)塊為單位進(jìn)行傳輸。從而改善了塊設(shè)備的I/O性能;n通道的引入,又使對(duì)I/O操作的組織和數(shù)據(jù)的傳送都能獨(dú)立進(jìn)行而無需CPU干預(yù)。34I/O控制方式n程序控制I/O(programmed I/O)n中斷驅(qū)動(dòng)方式(interruptdriven I/O)n直接存儲(chǔ)訪問方式(DMA,Direct Memory Access

16、)nI/O通道控制方式 (channel (channel control) 35程序控制(忙等待或輪詢方式)n系統(tǒng)中沒有中斷機(jī)構(gòu),I/O操作由程序發(fā)起,并等待操作完成。數(shù)據(jù)的每次讀寫均通過CPU。 例如:當(dāng)主機(jī)要通過端口來寫出數(shù)據(jù)時(shí),主機(jī)與控制器之間的握手協(xié)議如下:n缺點(diǎn):在外設(shè)進(jìn)行數(shù)據(jù)處理時(shí),CPU只能等待,致使CPU利用率很低。36六個(gè)步驟1 主機(jī)不斷地讀取忙位,直到該位被清除;2 主機(jī)設(shè)置命令寄存器中的寫位并向數(shù)據(jù)輸出寄存器中寫入一個(gè)字(節(jié))字(節(jié));3 主機(jī)設(shè)置命令就緒位;4 當(dāng)控制器注意到命令就緒位已被設(shè)置,則設(shè)置忙位;5 控制器讀取命令寄存器,并看到寫入命令,它從數(shù)據(jù)輸出寄存器中

17、讀取一個(gè)字(節(jié))字(節(jié)),并向設(shè)備執(zhí)行I/O操作。6 控制器清除命令就緒位,清除狀態(tài)寄存器的故障位,以表示設(shè)備成功,清除忙位以表示完成。完成一個(gè)字節(jié)的傳輸后繼續(xù)重復(fù)上述步驟取更多的數(shù)據(jù)。37中斷驅(qū)動(dòng)方式 nI/O操作由程序發(fā)起,在操作完成時(shí)(如數(shù)據(jù)可讀或已經(jīng)寫入)由外設(shè)向CPU發(fā)出中斷發(fā)出中斷,通知該程序。數(shù)據(jù)的數(shù)據(jù)的每次讀寫通過每次讀寫通過CPUn具體過程如右圖所示:38n優(yōu)點(diǎn):在外設(shè)進(jìn)行數(shù)據(jù)處理時(shí),CPU不必等待,可以繼續(xù)執(zhí)行該程序或其他程序。n缺點(diǎn):CPU每次處理的數(shù)據(jù)量仍是以字(字節(jié))為單位,只適于數(shù)據(jù)傳輸率較低的設(shè)備。39直接存儲(chǔ)訪問方式(DMA)n計(jì)算機(jī)為了避免用PIO而增加CPU

18、的負(fù)擔(dān),將一部分任務(wù)下放給一個(gè)專用的處理器-DMA控制器;nDMA控制器的組成,如下圖所示:DRMARDCCRI/O控制邏輯主機(jī)控制器接口控制器與塊設(shè)備接口count內(nèi)存CPU命令系統(tǒng)總線DMA控制器圖5-8DMA控制器的組成40DMA工作過程-以磁盤讀入數(shù)據(jù)為例設(shè)置AR和DC初值啟動(dòng)DMA傳送命令挪用存儲(chǔ)器周期傳送數(shù)據(jù)字存儲(chǔ)器地址增1字計(jì)數(shù)寄存器減1DC0?請(qǐng)求中斷在繼續(xù)執(zhí)行用戶程序的同時(shí),準(zhǔn)備又一次傳送否是由程序程序設(shè)置DMA控制器中的若干寄存器值(如內(nèi)存始址,傳送字節(jié)數(shù)),然后發(fā)起I/O操作;而DMA控制器完成內(nèi)存與外設(shè)的成批數(shù)據(jù)交換;在操作完成時(shí)由DMA控制器向CPU發(fā)出中斷。圖5-9

19、 DMA方式的工作流程41DMA方式的優(yōu)缺點(diǎn)n優(yōu)點(diǎn):顯著地減少了CPU的干預(yù),由原來的一個(gè)字(節(jié))減少到了一塊; CPU只需干預(yù)該塊數(shù)據(jù)I/O操作的開始和結(jié)束,而塊內(nèi)的一批數(shù)據(jù)讀寫無需CPU控制,適于高速設(shè)備。n缺點(diǎn):在DMA方式下,CPU發(fā)出一個(gè)I/O命令后,讀寫完一個(gè)連續(xù)的數(shù)據(jù)塊時(shí)需要相應(yīng)一次中斷。42三種I/O控制方式的比較向I/O控制器發(fā)讀命令讀I/O控制器的狀態(tài)檢查狀態(tài)?從I/O控制器中讀入字向存儲(chǔ)器中寫字傳送完成?未就緒就緒出錯(cuò)CPUI/OI/OCPUI/OCPUCPU 內(nèi)存下條指令完成未完向I/O控制器發(fā)讀命令讀I/O控制器的狀態(tài)檢查狀態(tài)?從I/O控制器中讀字向內(nèi)存中寫字傳送完成

20、?就緒出錯(cuò)CPUI/OI/OCPUI/OCPUCPU 內(nèi)存下條指令完成未完中斷CPU做其它事向I/O控制器發(fā)布讀塊命令CPUDMACPU做其它事讀DMA控制器的狀態(tài)中斷DMACPU下條指令(a) 程序I/O方式(b) 中斷驅(qū)動(dòng)方式(c) DMA方式43I/O通道控制方式 nI/O通道是一種特殊的處理機(jī)。它具有執(zhí)行I/O指令的能力。n可以執(zhí)行由通道指令組成的通道程序,因此可以進(jìn)行較為復(fù)雜的I/O控制。通道程序通常由操作系統(tǒng)所構(gòu)造,放在內(nèi)存里。n通道程序l操作碼。 l內(nèi)存地址。 l計(jì)數(shù)。 l通道程序結(jié)束位P。 l記錄結(jié)束標(biāo)志R。44六條指令的簡單通道程序操作 PR計(jì)數(shù)內(nèi)存地址WRITE 00808

21、13WRITE001401034WRITE01605830WRITE013002000WRITE002501850WRITE1125072045通道方式的優(yōu)點(diǎn)n優(yōu)點(diǎn):l通道方式是DMA方式的發(fā)展,它可進(jìn)一步減少CPU的干預(yù)。l可以實(shí)現(xiàn)CPU、通道和I/O設(shè)備三者的并行操作,更有效地提高整個(gè)系統(tǒng)的資源利用率。465.3 緩沖管理 為了緩和CPU與I/O設(shè)備速度不匹配的矛盾,提高CPU和I/O設(shè)備的并行性,在現(xiàn)代OS中,幾乎所有的I/O設(shè)備在與處理機(jī)交換數(shù)據(jù)時(shí)都用了緩沖區(qū)。 緩沖管理的主要職責(zé)是組織好這些緩沖區(qū),并提高獲得和釋放緩沖區(qū)的手段。47 緩沖技術(shù) 緩沖技術(shù)可提高外設(shè)利用率。 原因 匹配C

22、PU與外設(shè)的不同處理速度 減少對(duì)CPU的中斷次數(shù)。 提高CPU和I/O設(shè)備之間的并行性。48緩沖區(qū)設(shè)置 硬緩沖: 在設(shè)備中設(shè)置緩沖區(qū),由硬件實(shí)現(xiàn) 軟緩沖: 在內(nèi)存中開辟一個(gè)空間,用作緩沖區(qū)49單緩沖(single buffer) 一個(gè)緩沖區(qū),CPU和外設(shè)輪流使用,一方處理完之后接著等待對(duì)方處理。工作區(qū)處理 (C)緩沖區(qū)傳送 (M)輸入 (T)I/O 設(shè)備(a)T1M1C1T2M2C2T3M3C3T4t(b)用戶進(jìn)程單緩沖工作示意圖單緩沖工作示意圖50雙緩沖(double buffer) 兩個(gè)緩沖區(qū),CPU和外設(shè)都可以連續(xù)處理而無需等待對(duì)方。要求CPU和外設(shè)的速度相近。工作區(qū)用戶進(jìn)程緩沖區(qū)1緩沖

23、區(qū)2I/O 設(shè)備T1(緩沖1)M1C1M2C2M3C3T2(緩沖2)T3(緩沖3)M4C4T4(緩沖4)(a)(b)雙緩沖工作示意圖雙緩沖工作示意圖51循環(huán)緩沖(circular buffer) 多個(gè)緩沖區(qū),CPU和外設(shè)的處理速度可以相差較大??蓞⒁姟吧a(chǎn)者消費(fèi)者問題”,關(guān)鍵是資源量的增減(空或滿的緩沖區(qū)數(shù)目)而不是生產(chǎn)者和消費(fèi)者的指針移動(dòng)。RGGGRG165423NextiNextgRGGGRC165423NextiNextgcurrent52 循環(huán)緩沖的組成:多個(gè)緩沖區(qū),多個(gè)指針 循環(huán)緩沖區(qū)的使用:getbuf和releasebuf過程 進(jìn)程同步:nexti指針追趕上nextg指針 nex

24、tg指針追趕上nexti指針53緩沖池(buffer pool) 緩沖區(qū)整體利用率高。 緩沖區(qū)隊(duì)列 空閑緩沖區(qū), 輸入緩沖區(qū), 輸出緩沖區(qū)54過 程55 Getbuf過程和putbuf過程 既可以實(shí)現(xiàn)互斥又可保證同步的getbuf過程和putbuf過程Getbuf(type) putbuf(type,number) Wait(RS(type); wait(MS(type);Wait(MS(type); addbuf(type,number);B(number):=takebuf(type); signal(MS(type);Signal(MS(type); signal(RS(type);56

25、工作方式 收容輸入 提取輸入 收容輸出 提取輸出hinsoutsinhout收 容 輸 入提 取 輸 出用 戶程 序提 取 輸 入收 容 輸 出緩 沖 池575.4 I/O軟件 I/O軟件的總體設(shè)計(jì)目標(biāo)是高效率和通用性。 通常將I/O軟件組成一種層次結(jié)構(gòu),低層軟件用于實(shí)現(xiàn)與硬件相關(guān)的操作,高層軟件主要向用戶提供一個(gè)接口。 每一層具有一個(gè)要執(zhí)行的定義明確的功能和一個(gè)與相鄰層次定義明確的接口。58I/O軟件應(yīng)達(dá)到的目標(biāo) 與具體設(shè)備無關(guān) 統(tǒng)一命名 對(duì)錯(cuò)誤的處理 緩沖技術(shù) 設(shè)備的分配和釋放 I/O控制方式59 IO軟件的基本思想是按分層的思想構(gòu)成,較低層軟件要使較高層軟件獨(dú)立于硬件的特性,較高層軟件則

26、要向用戶提供一個(gè)友好的、清晰的、簡單的、功能更強(qiáng)的接口。 I/O軟件的組成6061(1)用戶進(jìn)程層執(zhí)行輸入輸出系統(tǒng)調(diào)用,對(duì)IO數(shù)據(jù)進(jìn)行格式化,為假脫機(jī)輸入輸出作準(zhǔn)備(2)獨(dú)立于設(shè)備的軟件實(shí)現(xiàn)設(shè)備的命名、設(shè)備的保護(hù)、成塊處理、緩沖技術(shù)和設(shè)備分配(3)設(shè)備驅(qū)動(dòng)程序設(shè)置設(shè)備寄存器、檢查設(shè)備的執(zhí)行狀態(tài)(4)中斷處理程序負(fù)責(zé)IO完成時(shí),喚醒設(shè)備驅(qū)動(dòng)程序進(jìn)程,進(jìn)行中斷處理(5)硬件層實(shí)現(xiàn)物理IO的操作62 每個(gè)進(jìn)程在啟動(dòng)一個(gè)IO操作后阻塞 直到IO操作完成并產(chǎn)生一個(gè)中斷 由操作系統(tǒng)接管CPU后喚醒該進(jìn)程為止 5.4.2 中斷處理程序63中斷處理程序處理過程 喚醒被阻塞的驅(qū)動(dòng)程序進(jìn)程 保存現(xiàn)場 轉(zhuǎn)入設(shè)備中斷

27、處理程序 進(jìn)行中斷處理 恢復(fù)被中斷進(jìn)程的現(xiàn)場64PSW程序狀態(tài)字PC(N1)程序計(jì)數(shù)器R0Rn寄存器開始返回用戶程序中斷服務(wù)子例程PSWPC(N1)中斷棧TTM線指針YNN1R0Rn中斷現(xiàn)場保護(hù)示意圖65中斷處理流程喚醒被阻塞的驅(qū)動(dòng)程序進(jìn)程對(duì)被中斷進(jìn)程的CPU環(huán)境進(jìn)行保護(hù)分析中斷原因,轉(zhuǎn)入相應(yīng)的中斷處理程序終端中斷處理程序打印機(jī)中斷處理程序磁盤中斷處理程序恢復(fù)被中斷進(jìn)程的CPU現(xiàn)場返回被中斷的進(jìn)程,繼續(xù)執(zhí)行中斷請(qǐng)求信號(hào)66 與設(shè)備密切相關(guān)的代碼放在設(shè)備驅(qū)動(dòng)程序中,每個(gè)設(shè)備驅(qū)動(dòng)程序處理一種設(shè)備類型 每一個(gè)控制器都設(shè)有一個(gè)或多個(gè)設(shè)備寄存器,用來存放向設(shè)備發(fā)送的命令和參數(shù)。設(shè)備驅(qū)動(dòng)程序負(fù)責(zé)釋放這些命

28、令,并監(jiān)督它們正確執(zhí)行 一般,設(shè)備驅(qū)動(dòng)程序的任務(wù)是接收來自與設(shè)備無關(guān)的上層軟件的抽象請(qǐng)求,并執(zhí)行這個(gè)請(qǐng)求 5.4.3 設(shè)備驅(qū)動(dòng)程序67 在設(shè)備驅(qū)動(dòng)程序的進(jìn)程釋放一條或多條命令后,系統(tǒng)有兩種處理方式,多數(shù)情況下,執(zhí)行設(shè)備驅(qū)動(dòng)程序的進(jìn)程必須等待命令完成,這樣,在命令開始執(zhí)行后,它阻塞自已,直到中斷處理時(shí)將它解除阻塞為止。而在其它情況下,命令執(zhí)行不必延遲就很快完成。 設(shè)備驅(qū)動(dòng)程序(續(xù))68設(shè)備驅(qū)動(dòng)程序的功能 將抽象要求轉(zhuǎn)換為具體要求檢查I/O請(qǐng)求的合法性發(fā)出I/O命令響應(yīng)中斷請(qǐng)求構(gòu)成通道程序69處理方式 為每類設(shè)備設(shè)置一個(gè)進(jìn)程 整個(gè)系統(tǒng)一個(gè)I/O進(jìn)程 不設(shè)專門進(jìn)程70I/O進(jìn)程 (1)I/O請(qǐng)求的進(jìn)

29、入用戶程序:調(diào)用send將I/O請(qǐng)求發(fā)送給I/O進(jìn)程;調(diào)用block將自己阻塞,直到I/O任務(wù)完成后被喚醒系統(tǒng):利用wakeup喚醒I/O進(jìn)程,完成用戶所要求的I/O處理 (2)I/O中斷的進(jìn)入當(dāng)I/O中斷發(fā)生時(shí),內(nèi)核中的中斷處理程序發(fā)一條消息給I/O進(jìn)程,由I/O進(jìn)程負(fù)責(zé)判斷并處理中斷71 (3)I/O進(jìn)程 是系統(tǒng)進(jìn)程,一般賦予最高優(yōu)先級(jí)。一旦被喚醒,它可以很快搶占處理機(jī)投入運(yùn)行 IO進(jìn)程開始運(yùn)行后,首先關(guān)閉中斷,然后用receive去接收消息。兩種情形: 沒有消息,則開中斷,將自己阻塞; 有消息,則判斷消息(IO請(qǐng)求或IO中斷); IO請(qǐng)求 準(zhǔn)備通道程序,發(fā)出啟動(dòng)IO指令,繼續(xù)判斷有無消息

30、 IO中斷,進(jìn)一步判斷正?;虍惓=Y(jié)束 正常:喚醒要求進(jìn)行IO操作的進(jìn)程 異常:轉(zhuǎn)入相應(yīng)的錯(cuò)誤處理程序72特點(diǎn) 驅(qū)動(dòng)程序主要是指在請(qǐng)求I/O的進(jìn)程與設(shè)備控制器之間的一個(gè)通信和轉(zhuǎn)換程序。 驅(qū)動(dòng)程序與設(shè)備控制器和I/O設(shè)備的硬件特性緊密相關(guān), 因而對(duì)不同類型的設(shè)備應(yīng)配置不同的驅(qū)動(dòng)程序。 驅(qū)動(dòng)程序與I/O設(shè)備所采用的I/O控制方式緊密相關(guān) 。 由于驅(qū)動(dòng)程序與硬件緊密相關(guān), 因而其中的一部分必須用匯編語言書寫。 驅(qū)動(dòng)程序應(yīng)允許可重入。 驅(qū)動(dòng)程序不允許系統(tǒng)調(diào)用。73處理過程 將抽象要求轉(zhuǎn)換為具體要求 檢查I/O請(qǐng)求的合法性 讀出和檢查設(shè)備狀態(tài) 傳送必要參數(shù) 方式設(shè)置 啟動(dòng)I/O設(shè)備74 雖然IO軟件中一部

31、分是設(shè)備專用的,但大部分軟件是與設(shè)備無關(guān)的。設(shè)備驅(qū)動(dòng)程序與設(shè)備獨(dú)立軟件之間的確切界限是依賴于具體系統(tǒng)的。 5.4.4 設(shè)備獨(dú)立性軟件75設(shè)備獨(dú)立性的概念 應(yīng)用程序獨(dú)立于具體使用的物理設(shè)備。 在應(yīng)用程序中使用邏輯設(shè)備名來請(qǐng)求使用某類設(shè)備。 在實(shí)際執(zhí)行時(shí)還必須使用物理設(shè)備名稱。 實(shí)現(xiàn)設(shè)備獨(dú)立性可以帶來: 設(shè)備分配時(shí)的靈活性; 易于實(shí)現(xiàn)I/O重定向;7677 1)獨(dú)立于設(shè)備的軟件的基本任務(wù)是實(shí)現(xiàn)所有設(shè)備都需要的功能,并且向用戶級(jí)軟件提供一個(gè)統(tǒng)一的接口 2)如何給文件和設(shè)備這樣的對(duì)象命名是操作系統(tǒng)中的一個(gè)主要課題。獨(dú)立于設(shè)備的軟件負(fù)責(zé)把設(shè)備的符號(hào)名映射到正確的設(shè)備驅(qū)動(dòng)上 3)設(shè)備保護(hù) 系統(tǒng)如何防止無權(quán)

32、存取設(shè)備的用戶存取設(shè)備呢?78 4)不同的磁盤可以采用不同的扇區(qū)尺寸。向較高層軟件掩蓋這一事實(shí)并提供大小統(tǒng)一的塊尺寸,這正是設(shè)備獨(dú)立軟件的一個(gè)任務(wù)。它可將若干扇區(qū)合成一個(gè)邏輯塊。這樣,較高層的軟件只與抽象設(shè)備打交道,獨(dú)立于物理扇區(qū)的尺寸而使用等長的邏輯塊 5)緩沖技術(shù) 6)設(shè)備分配 7)出錯(cuò)處理 79 邏輯設(shè)備名到物理設(shè)備名映射的實(shí)現(xiàn) 邏輯設(shè)備表 LUT的設(shè)置的設(shè)置 系統(tǒng)LUT 用戶LUT邏輯設(shè)備名 物理設(shè)備名驅(qū)動(dòng)程序入口地址/dev/tty/dev/printer3510242046邏輯設(shè)備名/dev/tty/dev/printer系統(tǒng)設(shè)備表指針35(a)(b)80 盡管大部分IO軟件都包含

33、在操作系統(tǒng)中,但仍有一小部分是由與用戶程序連接在一起的庫過程,甚至完全由運(yùn)行于核外的程序構(gòu)成。系統(tǒng)調(diào)用,包括IO系統(tǒng)調(diào)用,通常由庫過程實(shí)現(xiàn) 這些過程所做的工作只是將系統(tǒng)調(diào)用時(shí)所用的參數(shù)放在合適的位置,由其它的IO過程實(shí)際實(shí)現(xiàn)真正的操作5.4.5 用戶層的IO軟件815.5 設(shè)備分配 由于外設(shè)資源的有限,需解決進(jìn)程間的外設(shè)共享問題,以提高外設(shè)資源的利用率。設(shè)備分配是對(duì)進(jìn)程使用外設(shè)過程的管理。 在有的系統(tǒng)中還應(yīng)分配相應(yīng)的控制器和通道。 系統(tǒng)必須設(shè)置相應(yīng)的數(shù)據(jù)結(jié)構(gòu)。825.5.1數(shù)據(jù)結(jié)構(gòu) 設(shè)備控制表(DCT, Device Control Table):每個(gè)設(shè)備一張,描述設(shè)備特性和狀態(tài)。反映設(shè)備的特

34、性、設(shè)備和控制器的連接情況。設(shè)備類型 type設(shè)備標(biāo)識(shí)符:deviceid設(shè)備狀態(tài):等待/不等待 忙/閑指向控制器表的指針重復(fù)執(zhí)行次數(shù)或時(shí)間設(shè)備隊(duì)列的隊(duì)首指針DCT 1DCT 2DCT n設(shè)備控制表集合83 控制器控制表(COCT, COntroller Control Table):每個(gè)設(shè)備控制器一張,描述I/O控制器的配置和狀態(tài)。如DMA控制器所占用的中斷號(hào)、DMA數(shù)據(jù)通道的分配。 通道控制表(CHCT, CHannel Control Table):每個(gè)通道一張,描述通道工作狀態(tài)。84 系統(tǒng)設(shè)備表(SDT, System Device Table):系統(tǒng)內(nèi)一張,反映系統(tǒng)中設(shè)備資源的狀態(tài),

35、記錄所有設(shè)備的狀態(tài)及其設(shè)備控制表的入口。SDT表項(xiàng)的主要組成: DCT指針:指向相應(yīng)設(shè)備的DCT; 設(shè)備使用進(jìn)程標(biāo)識(shí):正在使用該設(shè)備的進(jìn)程標(biāo)識(shí); DCT信息:為引用方便而保存的DCT信息,如:設(shè)備標(biāo)識(shí)、設(shè)備類型等;85(c) 系統(tǒng)設(shè)備表SDT控制器標(biāo)識(shí)符:controllerid控制器狀態(tài):忙/閑與控制器連接的通道表指針控制器隊(duì)列的隊(duì)首指針控制器隊(duì)列的隊(duì)尾指針通道標(biāo)識(shí)符:channelid通道狀態(tài):忙/閑與通道連接的控制器表首址通道隊(duì)列的隊(duì)首指針通道隊(duì)列的隊(duì)尾指針(a) 控制器表COCT(b) 通道表CHCT表目1表目i設(shè)備類設(shè)備標(biāo)識(shí)符DCT驅(qū)動(dòng)程序入口865.5.2設(shè)備分配時(shí)應(yīng)考慮的因素 設(shè)

36、備固有屬性 設(shè)備分配算法 設(shè)備分配中的安全性87設(shè)備固有屬性 獨(dú)占 共享 獨(dú)享設(shè)備 共享設(shè)備 虛擬設(shè)備88設(shè)備分配算法 先來先服務(wù) 優(yōu)先級(jí)高者優(yōu)先89設(shè)備分配中的安全性 安全分配方式 不安全分配方式905.5.3 獨(dú)占設(shè)備分配程序 基本設(shè)備分配程序 分配設(shè)備 分配設(shè)備控制器 分配通道 改進(jìn) 增加設(shè)備獨(dú)立性 考慮多通路問題915.5.4 假脫機(jī)技術(shù) 利用假脫機(jī)技術(shù)(SPOOLing, Simultaneous Peripheral Operation On Line, 也稱為虛擬設(shè)備技術(shù))可把獨(dú)享設(shè)備轉(zhuǎn)變成具有共享特征的虛擬設(shè)備,從而提高設(shè)備利用率。 引入 在多道程序系統(tǒng)中,專門利用一道程序(S

37、POOLing程序)來完成對(duì)設(shè)備的I/O操作。無需使用外圍I/O處理機(jī)。92 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ù)臅r(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操作。93SPOOLing系統(tǒng)組成輸入進(jìn)程SPi輸入進(jìn)程SPo輸入緩沖區(qū)B

38、i輸出緩沖區(qū)Bo輸入井輸出井磁盤輸入設(shè)備輸出設(shè)備94特點(diǎn) 高速虛擬I/O操作:應(yīng)用程序的虛擬I/O比實(shí)際I/O速度提高,縮短應(yīng)用程序的執(zhí)行時(shí)間(盡快完成計(jì)算,并釋放占用的計(jì)算機(jī)資源)。另一方面,程序的虛擬I/O操作時(shí)間和實(shí)際I/O操作時(shí)間分離開來。 實(shí)現(xiàn)對(duì)獨(dú)享設(shè)備的共享:由SPOOLing程序提供虛擬設(shè)備,可以對(duì)獨(dú)享設(shè)備依次共享使用。95舉例 打印機(jī)設(shè)備和可由打印機(jī)管理器管理的打印作業(yè)隊(duì)列。如:Windows NT中,應(yīng)用程序直接向針式打印機(jī)輸出需要15分鐘,而向打印作業(yè)隊(duì)列輸出只需要1分鐘,此后用戶可以關(guān)閉應(yīng)用程序而轉(zhuǎn)入其他工作,在以后適當(dāng)?shù)臅r(shí)候由打印機(jī)管理器完成15分鐘的打印輸出而無需用戶

39、干預(yù)。965.6 磁盤存儲(chǔ)器管理 分配空間 組織文件的存取方式 提高磁盤存儲(chǔ)空間的利用率 提高IO速度 保證文件系統(tǒng)的可靠性97提高IO速度的主要途徑 選擇性能好的磁盤 并行化 采用適當(dāng)?shù)恼{(diào)度算法 設(shè)置磁盤高速緩沖區(qū)9899磁盤的組織 現(xiàn)代磁盤驅(qū)動(dòng)器可以看作一個(gè)一維的邏輯塊的數(shù)組,邏輯塊是最小的傳輸單位。 一維邏輯塊數(shù)組按順序映射到磁盤的扇區(qū)。扇區(qū)0是最外面柱面的第一個(gè)磁道第一個(gè)扇區(qū)。該映射是先按磁道內(nèi)扇區(qū)順序,再按柱面內(nèi)磁道順序,再按從外到內(nèi)的柱面順序來排序的。100磁盤的類型 固定頭磁盤 移動(dòng)頭磁盤101磁盤訪問時(shí)間 尋道時(shí)間 旋轉(zhuǎn)延遲時(shí)間 傳輸時(shí)間102尋道時(shí)間 這是把磁臂(磁頭)從當(dāng)前

40、位置移動(dòng)到指定磁道上所經(jīng)歷的時(shí)間。該時(shí)間是啟動(dòng)磁盤的時(shí)間s與磁頭移動(dòng)n條磁道所花費(fèi)的時(shí)間之和。 Ts=m*n+s103旋轉(zhuǎn)延遲時(shí)間 對(duì)于硬盤,典型的轉(zhuǎn)轉(zhuǎn)速度為3600r/min,每轉(zhuǎn)需時(shí)16.7ms,平均旋轉(zhuǎn)延遲時(shí)間Tr為8.3ms。對(duì)于軟盤,其旋轉(zhuǎn)速度為300或600r/min,這樣,平均Tr為50100ms。104傳輸時(shí)間 Tr是指把數(shù)據(jù)從磁盤讀出,或向磁盤寫入數(shù)據(jù)所經(jīng)歷的時(shí)間,Tt的大小與每次所讀/寫的字節(jié)數(shù)b及旋轉(zhuǎn)速度有關(guān) Tt=b/(rN)105總時(shí)間 Ts+1/(2r)+b/(rN) 例如,我們假定尋道時(shí)間和旋轉(zhuǎn)延遲時(shí)間平均為30ms,而磁道的傳輸速率為1MB/s,如果傳輸1K字節(jié)

41、,此時(shí)總的訪問時(shí)間為31ms,傳輸時(shí)間所占比例是相當(dāng)?shù)男?。?dāng)傳輸10K字節(jié)的數(shù)據(jù)時(shí),其訪問時(shí)間也只是40ms,即當(dāng)傳輸?shù)臄?shù)據(jù)量增加10倍時(shí),訪問時(shí)間只增加了約30%。106磁盤調(diào)度算法 先來先服務(wù) 最短尋道時(shí)間優(yōu)先 掃面算法 循環(huán)掃面算法 N-Step-SCAN FSCANS107先來先服務(wù)(FCFS) 640cylinders108最短尋道時(shí)間優(yōu)先(SSTF) 236cylinders109進(jìn)程“饑餓”現(xiàn)象 SSTF算法可能導(dǎo)致某個(gè)進(jìn)程出現(xiàn)“饑餓”現(xiàn)象。只要不斷有新進(jìn)程的請(qǐng)求到達(dá),且其所要訪問的磁道與磁頭當(dāng)前所在磁道的距離較近,這種新進(jìn)程的I/O請(qǐng)求必須優(yōu)先滿足。老進(jìn)程將出現(xiàn)“饑餓”現(xiàn)象 為

42、解決該問題,對(duì)SSTF略微進(jìn)行改進(jìn),形成SCAN掃面算法。110掃面算法(SCAN) 208111循環(huán)掃面算法112問題- “磁臂粘著”在SSTF、SCAN及CSCAN幾種調(diào)度算法中,都可能出現(xiàn)磁臂停留在某處不動(dòng)的情況,例如,有一個(gè)或幾個(gè)進(jìn)程對(duì)某一磁道有較高的訪問頻率,即這個(gè)(些)進(jìn)程反復(fù)請(qǐng)求對(duì)某一磁道的I/O操作,從而壟斷了整個(gè)磁盤設(shè)備。我們把這一現(xiàn)象稱為“磁臂粘著”(Armstickiness)。113N-Step-SCAN N步SCAN算法是將磁盤請(qǐng)求隊(duì)列分成若干個(gè)長度為N的子隊(duì)列,磁盤調(diào)度將按FCFS算法依次處理這些子隊(duì)列。而每處理一個(gè)隊(duì)列時(shí)又是按SCAN算法,對(duì)一個(gè)隊(duì)列處理完后,再處

43、理其他隊(duì)列。當(dāng)正在處理某子隊(duì)列時(shí),如果又出現(xiàn)新的磁盤I/O請(qǐng)求,便將新請(qǐng)求進(jìn)程放入其他隊(duì)列,這樣就可避免出現(xiàn)粘著現(xiàn)象。 當(dāng)N值取得很大時(shí),會(huì)使N步掃描法的性能接近于SCAN算法的性能; 當(dāng)N=1時(shí), N步SCAN算法便蛻化為FCFS算法。114FSCAN算法 FSCAN算法實(shí)質(zhì)上是N步SCAN算法的簡化, 即SCAN只將磁盤請(qǐng)求隊(duì)列分成兩個(gè)子隊(duì)列。一個(gè)是由當(dāng)前所有請(qǐng)求磁盤I/O的進(jìn)程形成的隊(duì)列,由磁盤調(diào)度按SCAN算法進(jìn)行處理。在掃描期間,將新出現(xiàn)的所有請(qǐng)求磁盤I/O的進(jìn)程, 放入另一個(gè)等待處理的請(qǐng)求隊(duì)列。這樣,所有的新請(qǐng)求都將被推遲到下一次掃描時(shí)處理。115磁盤高速緩存(Disk Cache

44、) 磁盤高速緩存的形式是指利用內(nèi)存中的存儲(chǔ)空間,來暫存從磁盤中讀出的一系列盤塊中的信息。因此,這里的高速緩存是一組在邏輯上屬于磁盤,而物理上是駐留在內(nèi)存中的盤塊。高速緩存在內(nèi)存中可分成兩種形式。 第一種是在內(nèi)存中開辟一個(gè)單獨(dú)的存儲(chǔ)空間來作為磁盤高速緩存,其大小是固定的,不會(huì)受應(yīng)用程序多少的影響; 第二種是把所有未利用的內(nèi)存空間變?yōu)橐粋€(gè)緩沖池,供請(qǐng)求分頁系統(tǒng)和磁盤I/O時(shí)(作為磁盤高速緩存)共享。此時(shí)高速緩存的大小,顯然不再是固定的。當(dāng)磁盤I/O的頻繁程度較高時(shí),該緩沖池可能包含更多的內(nèi)存空間;而在應(yīng)用程序運(yùn)行得較多時(shí),該緩沖池可能只剩下較少的內(nèi)存空間。116數(shù)據(jù)交付方式系統(tǒng)可以采取兩種方式,將數(shù)據(jù)交付給請(qǐng)求進(jìn)程: (1) 數(shù)據(jù)交付。這是直接將高速緩存中的數(shù)據(jù),傳送到請(qǐng)求者進(jìn)程的內(nèi)存工作區(qū)中。 (2) 指針交付。只將指向高速緩存中某區(qū)域的指針, 交付給請(qǐng)求者進(jìn)程。 后一種方式由于所傳送的數(shù)據(jù)量少,因而節(jié)省了數(shù)據(jù)從磁盤高速緩存存儲(chǔ)空間到進(jìn)程的內(nèi)存工作區(qū)的時(shí)間 117置換算法 由于請(qǐng)求調(diào)頁中的聯(lián)想存儲(chǔ)器與高速緩存(磁盤I/O中)的工作情況不同,因而使得在置換算法中所應(yīng)考慮的問題也有所差異。因此,現(xiàn)在不少系統(tǒng)在設(shè)計(jì)其高速緩存的置換算法時(shí),除了考慮到最近最久未使用這一原

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論