操作系統(tǒng)第5章.ppt_第1頁
操作系統(tǒng)第5章.ppt_第2頁
操作系統(tǒng)第5章.ppt_第3頁
操作系統(tǒng)第5章.ppt_第4頁
操作系統(tǒng)第5章.ppt_第5頁
已閱讀5頁,還剩75頁未讀 繼續(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) 5.2 I/O控制方式 5.3 緩沖管理 5.4 設(shè)備分配 5.5 設(shè)備處理 5.6 磁盤存儲(chǔ)器管理,5.1 I/O 系 統(tǒng),5.1.1 I/O設(shè)備,1. I/O設(shè)備的類型,1) 按傳輸速率分類 按傳輸速度的高低,可將I/O設(shè)備分為三類。第一類是低速設(shè)備,這是指其傳輸速率僅為每秒鐘幾個(gè)字節(jié)至數(shù)百個(gè)字節(jié)的一類設(shè)備。屬于低速設(shè)備的典型設(shè)備有鍵盤、 鼠標(biāo)器、語音的輸入和輸出等設(shè)備。第二類是中速設(shè)備,這是指其傳輸速率在每秒鐘數(shù)千個(gè)字節(jié)至數(shù)萬個(gè)字節(jié)的一類設(shè)備。典型的中速設(shè)備有行式打印機(jī)、激光打印機(jī)等。第三類是高速設(shè)備, 這是指其傳輸速率在數(shù)百千個(gè)字節(jié)至數(shù)十兆字節(jié)的一

2、類設(shè)備。 典型的高速設(shè)備有磁帶機(jī)、 磁盤機(jī)、 光盤機(jī)等。,2) 按信息交換的單位分類 可將I/O設(shè)備分成兩類。第一類是塊設(shè)備(Block Device),這類設(shè)備用于存儲(chǔ)信息。 由于信息的存取總是以數(shù)據(jù)塊為單位, 故而得名。 它屬于有結(jié)構(gòu)設(shè)備。典型的塊設(shè)備是磁盤,每個(gè)盤塊的大小為512 B4 KB。磁盤設(shè)備的基本特征是其傳輸速率較高,通常每秒鐘為幾兆位;另一特征是可尋址,即對(duì)它可隨機(jī)地讀/寫任一塊;此外,磁盤設(shè)備的I/O常采用DMA方式。 第二類是字符設(shè)備(Character Device),用于數(shù)據(jù)的輸入和輸出。 其基本單位是字符, 故稱為字符設(shè)備。,3) 按設(shè)備的共享屬性分類 這種分類方式

3、可將I/O設(shè)備分為如下三類: 獨(dú)占設(shè)備。 (2) 共享設(shè)備。 (3) 虛擬設(shè)備。,2. 設(shè)備與控制器之間的接口,圖 5-1 設(shè)備與控制器間的接口,5.1.2 設(shè)備控制器,1. 設(shè)備控制器的基本功能,接收和識(shí)別命令 2) 數(shù)據(jù)交換 3) 標(biāo)識(shí)和報(bào)告設(shè)備的狀態(tài) 4) 地址識(shí)別 5) 數(shù)據(jù)緩沖 6) 差錯(cuò)控制,2. 設(shè)備控制器的組成,圖 5-2 設(shè)備控制器的組成,5.1.3 I/O通道,1. I/O通道(I/O Channel)設(shè)備的引入,實(shí)際上,I/O通道是一種特殊的處理機(jī)。它具有執(zhí)行I/O指令的能力,并通過執(zhí)行通道(I/O)程序來控制I/O操作。但I(xiàn)/O通道又與一般的處理機(jī)不同,主要表現(xiàn)在以下兩

4、個(gè)方面: 一是其指令類型單一,這是由于通道硬件比較簡(jiǎn)單, 其所能執(zhí)行的命令,主要局限于與I/O操作有關(guān)的指令; 再就是通道沒有自己的內(nèi)存,通道所執(zhí)行的通道程序是放在主機(jī)的內(nèi)存中的, 換言之,是通道與CPU共享內(nèi)存。,2. 通道類型,1) 字節(jié)多路通道(Byte Multiplexor Channel),圖 5-3 字節(jié)多路通道的工作原理,2) 數(shù)組選擇通道(Block Selector Channel),字節(jié)多路通道不適于連接高速設(shè)備,這推動(dòng)了按數(shù)組方式進(jìn)行數(shù)據(jù)傳送的數(shù)組選擇通道的形成。這種通道雖然可以連接多臺(tái)高速設(shè)備,但由于它只含有一個(gè)分配型子通道,在一段時(shí)間內(nèi)只能執(zhí)行一道通道程序, 控制一

5、臺(tái)設(shè)備進(jìn)行數(shù)據(jù)傳送, 致使當(dāng)某臺(tái)設(shè)備占用了該通道后,便一直由它獨(dú)占, 即使是它無數(shù)據(jù)傳送,通道被閑置, 也不允許其它設(shè)備使用該通道, 直至該設(shè)備傳送完畢釋放該通道??梢姡@種通道的利用率很低。,3) 數(shù)組多路通道(Block Multiplexor Channel) 數(shù)組選擇通道雖有很高的傳輸速率,但它卻每次只允許一個(gè)設(shè)備傳輸數(shù)據(jù)。數(shù)組多路通道是將數(shù)組選擇通道傳輸速率高和字節(jié)多路通道能使各子通道(設(shè)備)分時(shí)并行操作的優(yōu)點(diǎn)相結(jié)合而形成的一種新通道。它含有多個(gè)非分配型子通道, 因而這種通道既具有很高的數(shù)據(jù)傳輸速率,又能獲得令人滿意的通道利用率。也正因此,才使該通道能被廣泛地用于連接多臺(tái)高、中速的外

6、圍設(shè)備,其數(shù)據(jù)傳送是按數(shù)組方式進(jìn)行的。,3. “瓶頸”問題,圖 5-4 單通路I/O系統(tǒng),圖 5-5 多通路I/O系統(tǒng),5.1.4 總線系統(tǒng),圖 5-6 總線型I/O系統(tǒng)結(jié)構(gòu),1. ISA和EISA總線 1) ISA(Industry Standard Architecture)總線 這是為了1984年推出的80286型微機(jī)而設(shè)計(jì)的總線結(jié)構(gòu)。 其總線的帶寬為8位,最高傳輸速率為2 Mb/s。之后不久又推出了16位的(EISA)總線,其最高傳輸速率為8 Mb/s,后又升至16 Mb/s, 能連接12臺(tái)設(shè)備。 2) EISA(Extended ISA)總線 到80年代末期,ISA總線已難于滿足帶寬

7、和傳輸速率的要求, 于是人們又開發(fā)出擴(kuò)展ISA(EISA)總線,其帶寬為32位,總線的傳輸速率高達(dá)32 Mb/s,同樣可以連接12臺(tái)外部設(shè)備。,2. 局部總線(Local Bus),VESA(Video Electronic Standard Association)總線 2) PCI(Peripheral Component Interface)總線,5.2 I/O控制方式,5.2.1 程序I/O方式,在程序I/O方式中,由于CPU的高速性和I/O設(shè)備的低速性, 致使CPU的絕大部分時(shí)間都處于等待I/O設(shè)備完成數(shù)據(jù)I/O的循環(huán)測(cè)試中, 造成對(duì)CPU的極大浪費(fèi)。在該方式中,CPU之所以要不斷地

8、測(cè)試I/O設(shè)備的狀態(tài),就是因?yàn)樵贑PU中無中斷機(jī)構(gòu), 使I/O設(shè)備無法向CPU報(bào)告它已完成了一個(gè)字符的輸入操作。,圖 5-7 程序I/O和中斷驅(qū)動(dòng)方式的流程,5.2.2 中斷驅(qū)動(dòng)I/O控制方式,在I/O設(shè)備輸入每個(gè)數(shù)據(jù)的過程中,由于無須CPU干預(yù),因而可使CPU與I/O設(shè)備并行工作。僅當(dāng)輸完一個(gè)數(shù)據(jù)時(shí),才需CPU花費(fèi)極短的時(shí)間去做些中斷處理。可見,這樣可使CPU和I/O設(shè)備都處于忙碌狀態(tài),從而提高了整個(gè)系統(tǒng)的資源利用率及吞吐量。例如,從終端輸入一個(gè)字符的時(shí)間約為100 ms, 而將字符送入終端緩沖區(qū)的時(shí)間小于 0.1 ms。 若采用程序I/O方式,CPU約有 99.9 ms的時(shí)間處于忙等待中。

9、 采用中斷驅(qū)動(dòng)方式后,CPU可利用這 99.9 ms的時(shí)間去做其它事情,而僅用 0.1 ms的時(shí)間來處理由控制器發(fā)來的中斷請(qǐng)求。 可見,中斷驅(qū)動(dòng)方式可以成百倍地提高CPU的利用率。,5.2.3 直接存儲(chǔ)器訪問DMA I/O控制方式,1. DMA(Direct Memory Access)控制方式的引入,該方式的特點(diǎn)是: 數(shù)據(jù)傳輸?shù)幕締挝皇菙?shù)據(jù)塊,即在CPU與I/O設(shè)備之間,每次傳送至少一個(gè)數(shù)據(jù)塊; 所傳送的數(shù)據(jù)是從設(shè)備直接送入內(nèi)存的,或者相反; 僅在傳送一個(gè)或多個(gè)數(shù)據(jù)塊的開始和結(jié)束時(shí),才需CPU干預(yù),整塊數(shù)據(jù)的傳送是在控制器的控制下完成的??梢姡珼MA方式較之中斷驅(qū)動(dòng)方式,又是成百倍地減少了

10、CPU對(duì)I/O的干預(yù),進(jìn)一步提高了CPU與I/O設(shè)備的并行操作程度。,2. DMA控制器的組成,圖 5-8 DMA控制器的組成,為了實(shí)現(xiàn)在主機(jī)與控制器之間成塊數(shù)據(jù)的直接交換, 必須在DMA控制器中設(shè)置如下四類寄存器: (1) 命令/狀態(tài)寄存器CR。用于接收從CPU發(fā)來的I/O命令或有關(guān)控制信息, 或設(shè)備的狀態(tài)。 (2) 內(nèi)存地址寄存器MAR。在輸入時(shí),它存放把數(shù)據(jù)從設(shè)備傳送到內(nèi)存的起始目標(biāo)地址;在輸出時(shí),它存放由內(nèi)存到設(shè)備的內(nèi)存源地址。 (3) 數(shù)據(jù)寄存器DR。用于暫存從設(shè)備到內(nèi)存,或從內(nèi)存到設(shè)備的數(shù)據(jù)。 (4) 數(shù)據(jù)計(jì)數(shù)器DC。 存放本次CPU要讀或?qū)懙淖?節(jié))數(shù)。,3. DMA工作過程,圖

11、 5-9 DMA方式的工作流程,5.2.4 I/O通道控制方式,1. I/O通道控制方式的引入,I/O通道方式是DMA方式的發(fā)展,它可進(jìn)一步減少CPU的干預(yù),即把對(duì)一個(gè)數(shù)據(jù)塊的讀(或?qū)?為單位的干預(yù),減少為對(duì)一組數(shù)據(jù)塊的讀(或?qū)?及有關(guān)的控制和管理為單位的干預(yù)。 同時(shí),又可實(shí)現(xiàn)CPU、通道和I/O設(shè)備三者的并行操作,從而更有效地提高整個(gè)系統(tǒng)的資源利用率。例如,當(dāng)CPU要完成一組相關(guān)的讀(或?qū)?操作及有關(guān)控制時(shí),只需向I/O通道發(fā)送一條I/O指令,以給出其所要執(zhí)行的通道程序的首址和要訪問的I/O設(shè)備,通道接到該指令后,通過執(zhí)行通道程序便可完成CPU指定的I/O任務(wù)。,2. 通道程序,操作碼。 (

12、2) 內(nèi)存地址。 (3) 計(jì)數(shù)。 (4) 通道程序結(jié)束位P。 (5) 記錄結(jié)束標(biāo)志R。,5.3 緩 沖 管 理,5.3.1 緩沖的引入,緩和CPU與I/O設(shè)備間速度不匹配的矛盾。 (2) 減少對(duì)CPU的中斷頻率, 放寬對(duì)CPU中斷響應(yīng)時(shí)間的限制。 (3) 提高CPU和I/O設(shè)備之間的并行性。,圖 5-10 利用緩沖寄存器實(shí)現(xiàn)緩沖,5.3.2 單緩沖和雙緩沖,1. 單緩沖(Single Buffer),圖 5-11 單緩沖工作示意圖,2. 雙緩沖(Double Buffer),圖 5-12 雙緩沖工作示意圖,圖 5-13 雙機(jī)通信時(shí)緩沖區(qū)的設(shè)置,5.3.3 循環(huán)緩沖,1. 循環(huán)緩沖的組成,圖 5

13、-14 循環(huán)緩沖,2. 循環(huán)緩沖區(qū)的使用,Getbuf過程。 (2) Releasebuf過程。,3. 進(jìn)程同步,Nexti指針追趕上Nextg指針。 (2) Nextg指針追趕上Nexti指針。,5.3.4 緩沖池(Buffer Pool),1. 緩沖池的組成,1. 緩沖池的組成 對(duì)于既可用于輸入又可用于輸出的公用緩沖池, 其中至少應(yīng)含有以下三種類型的緩沖區(qū): 空(閑)緩沖區(qū); 裝滿輸入數(shù)據(jù)的緩沖區(qū); 裝滿輸出數(shù)據(jù)的緩沖區(qū)。 為了管理上的方便,可將相同類型的緩沖區(qū)鏈成一個(gè)隊(duì)列,于是可形成以下三個(gè)隊(duì)列: (1)空緩沖隊(duì)列emq。 (2) 輸入隊(duì)列inq。 (3) 輸出隊(duì)列outq。,2. Ge

14、tbuf過程和Putbuf過程,Procedure Getbuf(type) begin Wait(RS(type); Wait(MS(type); B(number)KG-*3=Takebuf(type); Signal(MS(type); end Procedure Putbuf(type, number) begin Wait(MS(type); Addbuf(type, number); Signal(MS(type); Signal(RS(type); end,3. 緩沖區(qū)的工作方式,圖 5-15 緩沖區(qū)的工作方式,5.4 設(shè) 備 分 配,5.4.1 設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu),1. 設(shè)備

15、控制表DCT,圖 5-16 設(shè)備控制表,2. 控制器控制表、 通道控制表和系統(tǒng)設(shè)備表,圖 5-17 COCT、 CHCT和SDT表,5.4.2 設(shè)備分配時(shí)應(yīng)考慮的因素,1. 設(shè)備的固有屬性,獨(dú)享設(shè)備。 (2) 共享設(shè)備。 (3) 虛擬設(shè)備。,2. 設(shè)備分配算法,先來先服務(wù)。 (2) 優(yōu)先級(jí)高者優(yōu)先。,3. 設(shè)備分配中的安全性,安全分配方式 2) 不安全分配方式,5.4.3 設(shè)備獨(dú)立性,1. 設(shè)備獨(dú)立性(Device Independence)的概念 為了提高OS的可適應(yīng)性和可擴(kuò)展性,在現(xiàn)代OS中都毫無例外地實(shí)現(xiàn)了設(shè)備獨(dú)立性,也稱為設(shè)備無關(guān)性。 其基本含義是: 應(yīng)用程序獨(dú)立于具體使用的物理設(shè)備。

16、為了實(shí)現(xiàn)設(shè)備獨(dú)立性而引入了邏輯設(shè)備和物理設(shè)備這兩個(gè)概念。在應(yīng)用程序中, 使用邏輯設(shè)備名稱來請(qǐng)求使用某類設(shè)備;而系統(tǒng)在實(shí)際執(zhí)行時(shí), 還必須使用物理設(shè)備名稱。因此,系統(tǒng)須具有將邏輯設(shè)備名稱轉(zhuǎn)換為某物理設(shè)備名稱的功能,這非常類似于存儲(chǔ)器管理中所介紹的邏輯地址和物理地址的概念。,在實(shí)現(xiàn)了設(shè)備獨(dú)立性的功能后, 可帶來以下兩方面的好處。 1) 設(shè)備分配時(shí)的靈活性 2) 易于實(shí)現(xiàn)I/O重定向,2. 設(shè)備獨(dú)立性軟件,1) 執(zhí)行所有設(shè)備的公有操作 這些公有操作包括: 對(duì)獨(dú)立設(shè)備的分配與回收; 將邏輯設(shè)備名映射為物理設(shè)備名,進(jìn)一步可以找到相應(yīng)物理設(shè)備的驅(qū)動(dòng)程序; 對(duì)設(shè)備進(jìn)行保護(hù),禁止用戶直接訪問設(shè)備; 緩沖管理,

17、即對(duì)字符設(shè)備和塊設(shè)備的緩沖區(qū)進(jìn)行有效的管理, 以提高I/O的效率; 差錯(cuò)控制。由于在I/O操作中的絕大多數(shù)錯(cuò)誤都與設(shè)備無關(guān),故主要由設(shè)備驅(qū)動(dòng)程序處理,而設(shè)備獨(dú)立性軟件只處理那些設(shè)備驅(qū)動(dòng)程序無法處理的錯(cuò)誤。,2) 向用戶層(或文件層)軟件提供統(tǒng)一接口 無論何種設(shè)備, 它們向用戶所提供的接口應(yīng)該是相同的。 例如, 對(duì)各種設(shè)備的讀操作,在應(yīng)用程序中都使用read; 而對(duì)各種設(shè)備的寫操作,也都使用write。,3. 邏輯設(shè)備名到物理設(shè)備名映射的實(shí)現(xiàn),邏輯設(shè)備表 2) LUT的設(shè)置問題,圖 5-18 邏輯設(shè)備表,5.4.4 獨(dú)占設(shè)備的分配程序,1. 基本的設(shè)備分配程序,分配設(shè)備 2) 分配控制器 3)

18、分配通道,2. 設(shè)備分配程序的改進(jìn),增加設(shè)備的獨(dú)立性 2) 考慮多通路情況,5.4.5 SPOOLing技術(shù),1. 什么是SPOOLing 為了緩和CPU的高速性與I/O設(shè)備低速性間的矛盾而引入了脫機(jī)輸入、 脫機(jī)輸出技術(shù)。 該技術(shù)是利用專門的外圍控制機(jī), 將低速I/O設(shè)備上的數(shù)據(jù)傳送到高速磁盤上;或者相反。事實(shí)上, 當(dāng)系統(tǒng)中引入了多道程序技術(shù)后,完全可以利用其中的一道程序,來模擬脫機(jī)輸入時(shí)的外圍控制機(jī)功能,把低速I/O設(shè)備上的數(shù)據(jù)傳送到高速磁盤上;再用另一道程序來模擬脫機(jī)輸出時(shí)外圍控制機(jī)的功能,把數(shù)據(jù)從磁盤傳送到低速輸出設(shè)備上。這樣,便可在主機(jī)的直接控制下,實(shí)現(xiàn)脫機(jī)輸入、 輸出功能。 此時(shí)的外

19、圍操作與CPU對(duì)數(shù)據(jù)的處理同時(shí)進(jìn)行, 我們把這種在聯(lián)機(jī)情況下實(shí)現(xiàn)的同時(shí)外圍操作稱為SPOOLing(Simultaneaus Periphernal Operating On-Line),或稱為假脫機(jī)操作。,2. SPOOLing系統(tǒng)的組成,圖 5-19 SPOOLing系統(tǒng)的組成,3. 共享打印機(jī),共享打印機(jī)技術(shù)已被廣泛地用于多用戶系統(tǒng)和局域網(wǎng)絡(luò)中。 當(dāng)用戶進(jìn)程請(qǐng)求打印輸出時(shí), SPOOLing系統(tǒng)同意為它打印輸出, 但并不真正立即把打印機(jī)分配給該用戶進(jìn)程, 而只為它做兩件事: 由輸出進(jìn)程在輸出井中為之申請(qǐng)一個(gè)空閑磁盤塊區(qū), 并將要打印的數(shù)據(jù)送入其中; 輸出進(jìn)程再為用戶進(jìn)程申請(qǐng)一張空白的用戶

20、請(qǐng)求打印表,并將用戶的打印要求填入其中, 再將該表掛到請(qǐng)求打印隊(duì)列上。,4. SPOOLing系統(tǒng)的特點(diǎn),提高了I/O的速度。 (2) 將獨(dú)占設(shè)備改造為共享設(shè)備。 (3) 實(shí)現(xiàn)了虛擬設(shè)備功能。,5.5 設(shè) 備 處 理,5.5.1 設(shè)備驅(qū)動(dòng)程序的功能和特點(diǎn),1. 設(shè)備驅(qū)動(dòng)程序的功能,(1) 接收由I/O進(jìn)程發(fā)來的命令和參數(shù), 并將命令中的抽象要求轉(zhuǎn)換為具體要求,例如,將磁盤塊號(hào)轉(zhuǎn)換為磁盤的盤面、 磁道號(hào)及扇區(qū)號(hào)。 (2) 檢查用戶I/O請(qǐng)求的合法性,了解I/O設(shè)備的狀態(tài),傳遞有關(guān)參數(shù),設(shè)置設(shè)備的工作方式。,(3) 發(fā)出I/O命令,如果設(shè)備空閑,便立即啟動(dòng)I/O設(shè)備去完成指定的I/O操作;如果設(shè)備

21、處于忙碌狀態(tài),則將請(qǐng)求者的請(qǐng)求塊掛在設(shè)備隊(duì)列上等待。 (4) 及時(shí)響應(yīng)由控制器或通道發(fā)來的中斷請(qǐng)求,并根據(jù)其中斷類型調(diào)用相應(yīng)的中斷處理程序進(jìn)行處理。 (5) 對(duì)于設(shè)置有通道的計(jì)算機(jī)系統(tǒng),驅(qū)動(dòng)程序還應(yīng)能夠根據(jù)用戶的I/O請(qǐng)求,自動(dòng)地構(gòu)成通道程序。,2. 設(shè)備處理方式,(1) 為每一類設(shè)備設(shè)置一個(gè)進(jìn)程,專門用于執(zhí)行這類設(shè)備的I/O操作 . (2) 在整個(gè)系統(tǒng)中設(shè)置一個(gè)I/O進(jìn)程,專門用于執(zhí)行系統(tǒng)中所有各類設(shè)備的I/O操作。 (3) 不設(shè)置專門的設(shè)備處理進(jìn)程,而只為各類設(shè)備設(shè)置相應(yīng)的設(shè)備處理程序(模塊), 供用戶進(jìn)程或系統(tǒng)進(jìn)程調(diào)用。,3. 設(shè)備驅(qū)動(dòng)程序的特點(diǎn),(1) 驅(qū)動(dòng)程序主要是指在請(qǐng)求I/O的進(jìn)

22、程與設(shè)備控制器之間的一個(gè)通信和轉(zhuǎn)換程序。 (2) 驅(qū)動(dòng)程序與設(shè)備控制器和I/O設(shè)備的硬件特性緊密相關(guān), 因而對(duì)不同類型的設(shè)備應(yīng)配置不同的驅(qū)動(dòng)程序。 (3) 驅(qū)動(dòng)程序與I/O設(shè)備所采用的I/O控制方式緊密相關(guān)。 (4) 由于驅(qū)動(dòng)程序與硬件緊密相關(guān), 因而其中的一部分必須用匯編語言書寫。,5.5.2 設(shè)備驅(qū)動(dòng)程序的處理過程,將抽象要求轉(zhuǎn)換為具體要求 2. 檢查I/O請(qǐng)求的合法性 3. 讀出和檢查設(shè)備的狀態(tài) 4. 傳送必要的參數(shù) 5. 工作方式的設(shè)置 6. 啟動(dòng)I/O設(shè)備,圖 5-20 中斷現(xiàn)場(chǎng)保護(hù)示意圖,圖 5-21 中斷處理流程,5.6 磁盤存儲(chǔ)器管理,5.6.1 磁盤性能簡(jiǎn)述,1. 數(shù)據(jù)的組織

23、和格式,圖 5-22 磁盤的格式化,2. 磁盤的類型,1) 固定頭磁盤 這種磁盤在每條磁道上都有一讀/寫磁頭,所有的磁頭都被裝在一剛性磁臂中。通過這些磁頭可訪問所有各磁道,并進(jìn)行并行讀/寫,有效地提高了磁盤的I/O速度。 這種結(jié)構(gòu)的磁盤主要用于大容量磁盤上。 2) 移動(dòng)頭磁盤 每一個(gè)盤面僅配有一個(gè)磁頭,也被裝入磁臂中。為能訪問該盤面上的所有磁道,該磁頭必須能移動(dòng)以進(jìn)行尋道??梢?,移動(dòng)磁頭僅能以串行方式讀/寫,致使其I/O速度較慢;但由于其結(jié)構(gòu)簡(jiǎn)單, 故仍廣泛應(yīng)用于中小型磁盤設(shè)備中。,3. 磁盤訪問時(shí)間,1) 尋道時(shí)間Ts 這是指把磁臂(磁頭)移動(dòng)到指定磁道上所經(jīng)歷的時(shí)間。該時(shí)間是啟動(dòng)磁臂的時(shí)間

24、s與磁頭移動(dòng)n條磁道所花費(fèi)的時(shí)間之和, 即 Ts=mn+s 其中,m是一常數(shù),與磁盤驅(qū)動(dòng)器的速度有關(guān),對(duì)一般磁盤, m=0.2;對(duì)高速磁盤,m0.1,磁臂的啟動(dòng)時(shí)間約為2 ms。 這樣,對(duì)一般的溫盤, 其尋道時(shí)間將隨尋道距離的增加而增大, 大體上是530 ms。,2) 旋轉(zhuǎn)延遲時(shí)間T 這是指定扇區(qū)移動(dòng)到磁頭下面所經(jīng)歷的時(shí)間。對(duì)于硬盤,典型的旋轉(zhuǎn)速度大多為5400 r/min,每轉(zhuǎn)需時(shí)11.1 ms,平均旋轉(zhuǎn)延遲時(shí)間T為5.55 ms;對(duì)于軟盤,其旋轉(zhuǎn)速度為300 r/min或600 r/min,這樣,平均T為50100 ms。,3) 傳輸時(shí)間Tt 這是指把數(shù)據(jù)從磁盤讀出或向磁盤寫入數(shù)據(jù)所經(jīng)歷的

25、時(shí)間。 Tt的大小與每次所讀/寫的字節(jié)數(shù)b和旋轉(zhuǎn)速度有關(guān):,其中,r為磁盤每秒鐘的轉(zhuǎn)數(shù);N為一條磁道上的字節(jié)數(shù), 當(dāng)一次讀/寫的字節(jié)數(shù)相當(dāng)于半條磁道上的字節(jié)數(shù)時(shí),Tt與T相同, 因此, 可將訪問時(shí)間Ta表示為:,5.6.2 磁盤調(diào)度,1. 先來先服務(wù)FCFS(First-Come, First Served),圖 5-23 FCFS調(diào)度算法,2. 最短尋道時(shí)間優(yōu)先SSTF(Shortest Seek Time First),圖 5-24 SSTF調(diào)度算法,3. 掃描(SCAN)算法,1) 進(jìn)程“饑餓”現(xiàn)象,SSTF算法雖然能獲得較好的尋道性能, 但卻可能導(dǎo)致某個(gè)進(jìn)程發(fā)生“饑餓”(Starvat

26、ion)現(xiàn)象。因?yàn)橹灰粩嘤行逻M(jìn)程的請(qǐng)求到達(dá), 且其所要訪問的磁道與磁頭當(dāng)前所在磁道的距離較近,這種新進(jìn)程的I/O請(qǐng)求必須優(yōu)先滿足。對(duì)SSTF算法略加修改后所形成的SCAN算法, 即可防止老進(jìn)程出現(xiàn)“饑餓”現(xiàn)象。,2) SCAN算法,圖 5-25 SCAN調(diào)度算法示例,4. 循環(huán)掃描(CSCAN)算法,圖 5-26 CSCAN調(diào)度算法示例,5. N-Step-SCAN和FSCAN調(diào)度算法,1) N-Step-SCAN算法 在SSTF、 SCAN及CSCAN幾種調(diào)度算法中, 都可能出現(xiàn)磁臂停留在某處不動(dòng)的情況, 例如,有一個(gè)或幾個(gè)進(jìn)程對(duì)某一磁道有較高的訪問頻率, 即這個(gè)(些)進(jìn)程反復(fù)請(qǐng)求對(duì)某一磁

27、道的I/O操作,從而壟斷了整個(gè)磁盤設(shè)備。 我們把這一現(xiàn)象稱為“磁臂粘著”(Armstickiness)。在高密度磁盤上容易出現(xiàn)此情況。 N步SCAN算法是將磁盤請(qǐng)求隊(duì)列分成若干個(gè)長(zhǎng)度為N的子隊(duì)列,磁盤調(diào)度將按FCFS算法依次處理這些子隊(duì)列。 而每處理一個(gè)隊(duì)列時(shí)又是按SCAN算法,對(duì)一個(gè)隊(duì)列處理完后,再處理其他隊(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算法。,2) FSCAN算法 FSCAN算法實(shí)質(zhì)上是N步SCA

28、N算法的簡(jiǎn)化, 即FSCAN只將磁盤請(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í)處理。,5.6.3 磁盤高速緩存(Disk Cache),1. 磁盤高速緩存的形式,是指利用內(nèi)存中的存儲(chǔ)空間,來暫存從磁盤中讀出的一系列盤塊中的信息。因此,這里的高速緩存是一組在邏輯上屬于磁盤, 而物理上是駐留在內(nèi)存中的盤塊。高速緩存在內(nèi)存中可分成兩種形式。第一種是在內(nèi)存中開辟一個(gè)單獨(dú)的存儲(chǔ)空間來作為磁盤高速緩存,其大小是固定的,不會(huì)受應(yīng)用程序多少的影響;第二種是把所有未利用的內(nèi)存空間

溫馨提示

  • 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)論