第5章設備管理_第1頁
第5章設備管理_第2頁
第5章設備管理_第3頁
第5章設備管理_第4頁
第5章設備管理_第5頁
已閱讀5頁,還剩85頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第5章設備管理

教學要點

本章主要內容包括設備管理的任務和功能,設備管理的硬件組織與軟件組織,設備管理中的緩沖技術,設備分配和設備驅動程序的處理,磁盤存儲管理。應重點掌握設備管理中的緩沖技術,設備驅動程序的設計,掌握設備無關性的概念,設備分配與回收算法。

第五章設備管理計算機系統中,“設備”是指除中央處理器和主存以外的所有設備。這些設備常稱為外部設備或I/O設備。設備管理的對象主要是I/O設備,還可能涉及到設備控制器和I/O通道。設備管理的基本任務是完成用戶提出的I/O請求,提高I/O速率以及提高I/O設備的利用率。設備管理的主要功能:緩沖區管理、設備分配、設備處理、虛擬設備及實現設備獨立性等。第五章設備管理5.1I/O系統5.2I/O控制方式5.3緩沖管理5.4設備分配5.5設備處理5.6磁盤存儲器管理5.1I/O系統I/O系統是用于實現數據輸入、輸出及數據存儲的系統。在I/O系統中,除了需要直接用于I/O和存儲信息的設備外,還需要有相應的設備控制器和高速總線。有的大中型計算機系統中,還配置了I/O通道或I/O處理機。5.1I/O系統5.1.1I/O設備1.I/O設備的類型1)按傳輸速率分類按傳輸速度的高低,可將I/O設備分為三類。第一類是低速設備,這是指其傳輸速率僅為每秒鐘幾個字節至數百個字節的一類設備。屬于低速設備的典型設備有鍵盤、鼠標器、語音的輸入和輸出等設備。第二類是中速設備,這是指其傳輸速率在每秒鐘數千個字節至數萬個字節的一類設備。典型的中速設備有行式打印機、激光打印機等。第三類是高速設備,這是指其傳輸速率在數百千個字節至數十兆字節的一類設備。典型的高速設備有磁帶機、磁盤機、光盤機等。2)按信息交換的單位分類

可將I/O設備分成兩類。第一類是塊設備(BlockDevice),這類設備用于存儲信息。由于信息的存取總是以數據塊為單位,故而得名。它屬于有結構設備。典型的塊設備是磁盤,每個盤塊的大小為512B~4KB。磁盤設備的基本特征是其傳輸速率較高,通常每秒鐘為幾兆位;另一特征是可尋址,即對它可隨機地讀/寫任一塊;此外,磁盤設備的I/O常采用DMA方式。第二類是字符設備(CharacterDevice),用于數據的輸入和輸出。其基本單位是字符,故稱為字符設備。屬于無結構類型。字符設備種類繁多,如交互式終端、打印機等。字符設備基本特征是其傳輸速率低,通常為幾個字節到幾千字節;另一特征是不可尋址,即輸入輸出時不能制定數據的輸入源地址及輸出的目標地址。此外,字符設備在輸入/輸出時,常采用中斷驅動方式。3)按設備的共享屬性分類這種分類方式可將I/O設備分為如下三類:獨占設備。(2)共享設備。(3)虛擬設備。2.設備與控制器之間的接口設備不是直接與CPU進行通信,而是與設備控制器通信。圖5-1設備與控制器間的接口設備控制器主要職責是控制一個或多個I/O設備,以實現I/O設備和計算機之間的信息交換。它接收從CPU發來的命令,并去控制I/O設備工作,以使處理機從繁雜的設備控制事務中解脫出來。為了實現設備的通用性和互換性,控制器和設備之間應采用標準接口,如SCSI(小型計算機系統接口)或IDE(集成設備電子器件)接口。設備控制器上一般都有一個接線器,可以通過電纜和標準接口相聯接,它可以控制2個、4個或8個同類設備。對于個人計算機和小型計算機系統來說,由于它們的I/O系統比較簡單,所以CPU與控制器之間的通信采用單總線模型,而大型主機則采用通道模型。5.1.2設備控制器CPU存儲器磁盤控制器打印機控制器其它控制器磁盤驅動器打印機系統總線……圖單總線型I/O系統結構內存I/O通道1I/O通道2控制器控制器控制器控制器設備設備圖5.2具有通道的I/O系統結構5.1.2設備控制器1.設備控制器的基本功能1)接收和識別命令(控制寄存器)2)數據交換(數據寄存器)3)標識和報告設備的狀態(狀態寄存器)4)地址識別(地址譯碼器)5)數據緩沖(緩沖器)6)差錯控制⑴設備控制器與CPU的接口。該接口用于實現設備控制器與CPU之間的通信,其中有三類信號線:

數據線、地址線、控制線。數據線通常與兩類寄存器相連接:

①數據寄存器。②控制/狀態寄存器。

⑵設備控制器與設備的接口。在一個設備控制器上可以連接一臺或多臺設備。相應地,在控制器中就有一個或多個設備接口,一個接口連接一臺設備,在每個接口中都有數據、控制和狀態三種類型的信號:

①數據信號。②控制信號。③狀態信號。

2.設備控制器的組成圖5-2設備控制器的組成(3)I/O邏輯用于對I/O的控制.通過一組控制線與CPU交互。CPU利用該邏輯向控制器發送I/O命令;I/O邏輯對接收到的命令進行譯碼。每當CPU要啟動一個設備時,一方面要將啟動命令送給控制器;另一方面又同時通過地址線把地址送給控制器。由控制器的I/O邏輯對收到的地址進行譯碼,再根據譯出的命令對所選的設備進行控制。1.通道及通道與CPU間的通信在CPU與設備控制器之間增設通道,主要目的是為建立獨立的I/O操作,把CPU從繁雜的I/O任務中解脫出來。通道又稱I/O處理機,是一個獨立于CPU的專管輸入/輸出控制的處理機,它具有執行I/O指令的能力,并通過執行通道(I/O)程序來控制設備與內存直接進行數據交換。有了通道之后,CPU與通道之間的關系是主從關系,CPU是主設備,通道是從設備,這樣采用通道方式實現數據傳輸的過程如下:當運行的程序要求傳輸數據時,CPU向通道發I/O指令,命令通道開始工作,CPU就可以進行其它數據處理;通道接收到CPU的I/O指令后,從內存中取出相應的通道程序,通過執行通道程序完成I/O操作;當I/O操作完成(或出錯)時,通道以中斷方式中斷CPU正在執行的程序,請求CPU的處理。5.1.3I/O通道2.通道類型按信息交換方式可分為以下三種類型:⑴字節多路通道它含有多個非分配型子通道,每個子通道連接一臺I/O設備,這些子通道以字節為單位按時間片輪轉方式共享主通道。每次子通道控制外設交換完一個字節后,便立即讓出字節多路通道,以便讓另一個子通道使用。當所有子通道輪轉一周后,就又返回來由第一個子通道去使用字節多路通道。字節多路通道不適于連接高速設備。1)字節多路通道(ByteMultiplexorChannel)圖5-3字節多路通道的工作原理(2)

數組選擇通道(BlockSelectorChannel)它按成組方式進行數據傳送,每次以塊為單位傳送一批數據,所以傳輸速度很快,主要用于連接高速外圍設備,如磁盤等。但由于它只含一個分配型子通道,在一段時間內只能執行一個通道程序,控制一臺設備進行數據傳送,致使當某臺設備占用了該通道后,便一直獨占,直至它傳送完畢釋放該通道,其它設備才可使用。通道利用率低。(3)數組多路通道(BlockMultiplexorChannel)

數組選擇通道雖有很高的傳輸速率,但它卻每次只允許一個設備傳輸數據。

數組多路通道是將數組選擇通道傳輸速率高和字節多路通道能使各子通道(設備)分時并行操作的優點相結合而形成的一種新通道。它含有多個非分配型子通道,因而這種通道既具有很高的數據傳輸速率,又能獲得令人滿意的通道利用率。也正因此,才使該通道能被廣泛地用于連接多臺高、中速的外圍設備,其數據傳送是按數組方式進行的。20以字節交叉方式控制設備傳輸信息慢速設備2慢速設備3字節多路通道慢速設備1成組多路通道快速設備1快速設備2快速設備3快速設備i以數據塊分時方式控制設備傳輸信息數據選擇通道快速設備1快速設備2快速設備j以數據塊獨占方式控制設備3.通道的類型圖5-5多通路I/O系統3.“瓶頸”問題圖5-4單通路I/O系統由于通道價格昂貴,機器中所設置的通道數量必然較少,這就使通道成了I/O的瓶頸,造成整個系統吞吐量的下降。5.2I/O控制方式5.2.1程序I/O方式

在程序I/O方式中,由于CPU的高速性和I/O設備的低速性,致使CPU的絕大部分時間都處于等待I/O設備完成數據I/O的循環測試中,造成對CPU的極大浪費。在該方式中,CPU之所以要不斷地測試I/O設備的狀態,就是因為在CPU中無中斷機構,使I/O設備無法向CPU報告它已完成了一個字符的輸入操作。圖5-7程序I/O和中斷驅動方式的流程5.2.2中斷驅動I/O控制方式在I/O設備輸入每個數據的過程中,由于無須CPU干預,因而可使CPU與I/O設備并行工作。僅當輸完一個數據時,才需CPU花費極短的時間去做些中斷處理。可見,這樣可使CPU和I/O設備都處于忙碌狀態,從而提高了整個系統的資源利用率及吞吐量。例如,從終端輸入一個字符的時間約為100ms,而將字符送入終端緩沖區的時間小于0.1ms。若采用程序I/O方式,CPU約有99.9ms的時間處于忙—等待中。采用中斷驅動方式后,CPU可利用這99.9ms的時間去做其它事情,而僅用0.1ms的時間來處理由控制器發來的中斷請求。可見,中斷驅動方式可以成百倍地提高CPU的利用率。5.2.3直接存儲器訪問DMAI/O控制方式該方式的特點是:①數據傳輸的基本單位是數據塊,即在CPU與I/O設備之間,每次傳送至少一個數據塊;②所傳送的數據是從設備直接送入內存的,或者相反;③僅在傳送一個或多個數據塊的開始和結束時,才需CPU干預,整塊數據的傳送是在控制器的控制下完成的。可見,DMA方式較之中斷驅動方式,又是成百倍地減少了CPU對I/O的干預,進一步提高了CPU與I/O設備的并行操作程度。5.2.4I/O通道控制方式1.I/O通道控制方式的引入I/O通道方式是DMA方式的發展,它可進一步減少CPU的干預,即把對一個數據塊的讀(或寫)為單位的干預,減少為對一組數據塊的讀(或寫)及有關的控制和管理為單位的干預。同時,又可實現CPU、通道和I/O設備三者的并行操作,從而更有效地提高整個系統的資源利用率。例如,當CPU要完成一組相關的讀(或寫)操作及有關控制時,只需向I/O通道發送一條I/O指令,以給出其所要執行的通道程序的首址和要訪問的I/O設備,通道接到該指令后,通過執行通道程序便可完成CPU指定的I/O任務。2.通道程序通道通過執行通道程序,與設備控制器共同實現對I/O設備的控制。通道程序由一系列通道指令構成。通道指令與一般的機器指令不同,在它的每條指令中都包含如下信息:操作碼。(2)內存地址。(3)計數。(4)通道程序結束位P。(5)記錄結束標志R。操作PR計數內存地址WRITE0080813WRITE001401034WRITE01605830WRITE013002000WRITE002501850WRITE11250720下圖是由6條通道指令所構成的簡單的通道程序。該程序的功能是將內存中不同地址的數據,寫成多個記錄。5.3緩沖管理5.3.1緩沖的引入緩和CPU與I/O設備間速度不匹配的矛盾。(2)減少對CPU的中斷頻率,放寬對CPU中斷響應時間的

限制。(3)提高CPU和I/O設備之間的并行性。圖5-10利用緩沖寄存器實現緩沖僅有一位緩沖區CPU每100μs內就得予以響應加一個8位緩沖器CPU被中斷頻率會降低1/8再加一個8位緩沖器CPU被中斷頻率又降低1/85.3.2單緩沖和雙緩沖1.單緩沖(SingleBuffer)操作系統提供的一種最簡單的緩沖形式。單緩沖指當一個進程發出一I/O請求時,操作系統便在主存中為之分配一個緩沖區,用來臨時存放輸入/輸出數據。由于單緩沖只設置一個緩沖區,那么在某一時刻該緩沖區只能存放輸入數據或輸出數據,而不能既是輸入數據又是輸出數據,否則會引起緩沖區中數據的混亂。2雙緩沖

雙緩沖指在操作系統中為某一設備設置兩個緩沖區,當一個緩沖區中的數據尚未被處理時可使用另一個緩沖區存放從設備讀入的數據,以此來進一步提高CPU和外設的并行程度。如下圖(a)所示為雙緩沖示意圖。A、B為兩個緩沖區。AB用戶進程操作系統I/O設備圖

雙緩沖示意圖圖5-13雙機通信時緩沖區的設置任何時候只能單向傳送雙向傳送時,每機必備兩個緩沖區5.3.3循環緩沖

當輸入與輸出的速度基本相配時,采用雙緩沖能獲得較好的效果。但若兩者的速度相差較大,雙緩沖效果則不夠理想。由此引入多緩沖機制,可將多個緩沖組織成循環緩沖形式。循環緩沖的組成:(1)多個緩沖區。作為輸入的緩沖區分三種:裝輸入數據的空緩沖區R、已裝滿數據的緩沖區G以及計算進程正在使用的緩沖區C。(2)多個指針。作為輸入的緩沖區設置3個指針:指示計算進程下一個可用緩沖區Nextg、指示輸入進程下次可用空緩沖區R指針Nexti,計算進程正在使用的緩沖區C的指針Current。圖5-14循環緩沖5.3.4緩沖池(BufferPool)循環緩沖僅適用于某特定的I/O進程和計算進程,它們屬于專用緩沖。當系統較大時,會有許多這樣的循環緩沖,當緩沖區到達一定數量時,對系統性能的提高微乎其微,甚至會使系統性能下降。

為了提高緩沖區的利用率,目前廣泛流行公用緩沖池,在池中設置多個可供若干進程共享的緩沖區。即緩沖池是將多個大小相同的緩沖區連接起來統一進行管理。操作系統與用戶進程將輪流地使用各個緩沖區,以改善系統性能。5.3.4緩沖池(BufferPool)1.緩沖池的組成對于既可用于輸入又可用于輸出的公用緩沖池,其中至少應含有以下三種類型的緩沖區:

①空閑緩沖區;②裝滿輸入數據的緩沖區;③裝滿輸出數據的緩沖區。

為了管理上的方便,可將相同類型的緩沖區鏈成一個隊列,形成以下三個隊列:(1)空緩沖隊列emq.(2)輸入隊列inq。(3)輸出隊列outq。除了上述三個隊列外,還具有四種工作緩沖區:用于收容輸入數據的工作緩沖區。

用于提取輸入數據的工作緩沖區。

用于收容輸出數據的工作緩沖區。

用于提取輸出數據的工作緩沖區。2.緩沖池管理的基本操作Getbuf過程和Putbuf過程Getbuf(type):

用于從type所制定的隊列的隊首摘下一個緩沖區。Putbuf(type,number):用于將由參數number所指示的緩沖區掛在type隊列上。3.緩沖池的工作方式圖5-15緩沖區的工作方式

緩沖池工作在收容輸入、提取輸入、收容輸出和提取輸出四種方式下:①收容輸入工作方式(輸入進程需要輸入數據時)②提取輸入工作方式(計算進程需要輸入數據時)③收容輸出工作方式(計算進程需要輸出數據時)④提取輸出工作方式(輸出進程需要輸出數據時)5.4設備分配5.4.1設備分配中的數據結構在進行設備分配時所需的數據結構主要有:設備控制表DCT(DeviceControlTable)控制器控制表COCT(ControllerControlTable)通道控制表CHCT(ChannelControlTable)系統設備表SDT(SystemDeviceTable)5.4設備分配5.4.1設備分配中的數據結構系統為每一個設備都配置了一張設備控制表DCT,用來記錄設備的特性、設備和I/O控制器的連接情況以及設備的分配和使用情況。它主要包括以下內容:①設備標識符。②設備類型。③設備地址。④設備狀態。⑤與設備連接的控制器表指針。⑥等待該設備的進程隊列。⑦重復執行次數或時間。⑧其它信息,如一些釋放信息等。1.設備控制表DCT5.4設備分配5.4.1設備分配中的數據結構1.設備控制表DCT設備類型設備標識符設備狀態:忙/閑等待/不等待與此設備連接的控制器控制表指針等待此設備的進程表指針重復執行的次數和時間其他DCT1DCT2……DCTi……設備控制表集合與此設備連接的COCT與此控制器連接的CHCT0與此控制器連接的CHCT0設備A的DCT控制器B的COCT通道D的CHCT通道E的CHCT控制器C的COCT圖DCT和COCT、CHCT的連接正在使用該設備的進程等待該設備的進程表BCD設備A的DCTPCBB-PCBC-PCBD-PCB圖DCT和PCB的連接2.控制器控制表、通道控制表和系統設備表圖COCT、CHCT和SDT表5.4.2設備分配時應考慮的因素系統在分配設備時,應考慮的因素有:設備的固有屬性。設備分配算法。設備分配的安全性。設備獨立性491.設備的屬性設備的屬性是指該設備是適合某進程獨占使用,還是適合幾個進程共享使用。(1)獨占設備的分配在該進程占用這個設備期間,即使設備空置不用,也不能再讓別的進程使用。對于獨占設備應該采用獨占分配策略,即在將一臺設備分配給某個進程后,便一直由該進程獨占,直至該進程完成并釋放設備為止。按照獨占分配的策略,對獨占設備有兩種分配方式:一種是靜態分配方式一種是動態分配方式50靜態分配方式安全性好,不會出現死鎖,但設備的利用率低。靜態分配方式動態分配方式靜態分配方式是用戶作業開始運行之前,由系統一次分配該作業所要求的全部設備、控制器和通道。一旦分配之后,這些資源就一直為該作業占用,直到該作業被撤消。動態分配方式是指在進程運行過程中根據需要進行分配。當進程需要使用設備時,通過系統調用向操作系統提出設備請求,再由系統按規定的策略進行分配。一旦傳送完成,便立即釋放。動態分配有利于提高設備的利用率,但是在分配策略不好時有可能造成進程死鎖。51(2)共享設備的使用共享設備大多是高速、大容量的直接存取存儲設備。這類設備不必分配,采用共享的策略,由若干個用戶進程同時使用。用戶對共享設備的使用,一般以文件方式存取。通過文件系統可以實現按文件名來存取共享設備上的信息。(3)虛擬設備的使用因為虛擬設備已屬于共享設備,因而也可采用共享策略,讓多個進程同時使用。通過快速的共享方式的設備,把一臺低速物理獨占設備改造成為若干臺虛擬的同類設備。從用戶觀點看,每個用戶都感到是系統為自己提供了一臺物理設備似的。節目錄522.設備分配算法設備的分配原則,除了與設備的屬性有關外,還與系統采用的算法有關。一般采用兩種算法:先請求先服務優先級高者優先這就是先來先服務的方法。當有多個進程對同一個設備提出I/O請求時,或者是在同一設備上進行多次傳送時,系統按進程提出I/O請求的先后順序,將進程的I/O請求命令排成I/O請求隊列。當該設備空閑時,系統從隊首取下一個I/O請求消息,將設備分配給發出這個請求命令的進程。53這種算法將I/O請求隊列中的I/O請求按照發出此I/O請求的進程的優先級由高至低進行排序。系統在設備空閑時,總是從隊首取下最高優先級進程發出的I/O請求進行設備分配。這與進程調度的優先算法是一致的。即進程的優先級高,它的I/O請求優先級也優先予以滿足,顯然有助于該進程盡快完成,從而盡早釋放它所占有的系統資源。對于優先級相同的I/O請求,則按先請求先服務的原則排隊。設備的分配原則,除了與設備的屬性有關外,還與系統采用的算法有關。一般采用兩種算法:先請求先服務優先級高者優先和進程調度算法比較少了什么?為什么?和進程調度比較少了輪轉法。獨占設備不能被中斷呀!2.設備分配算法543.設備分配的安全性為了提高設備的利用率,現代操作系統的設備分配大都采用了動態分配方式。從進程運行的安全性出發產生了兩種設備分配方式:(1)安全的分配方式在這種分配方式中,每當進程以命令形式發出I/O請后,便進入阻塞狀態,直到其I/O操作完成時才被喚醒。在采用這種分配方式時,一個進程只能提出一個I/O請求,一旦進程獲得某個設備后便阻塞、使它不可能再請求其它任何資源,而它運行時又不保持任何資源。因此,這種分配方式使得死鎖產生的四個必要條件之一的“請求和保持”條件就不會成立,因而分配是安全的。55這種分配方式的優點是程序的編制更為方便。另一個優點是設備分配安全,不會產生死鎖現象。其缺點是進程和I/O設備之間是串行工作,進程推進緩慢。(2)不安全的分配方式為了加快推進速度,使CPU和I/O設備能并行工作,應使某些進程以命令形式發出I/O請求之后,仍可繼續進行,需要時又可發出第二個I/O請求、第三個I/O請求。僅當進程所請求的設備已被另一進程占用時,進程才進入阻塞狀態。這種分配方式的優點是一個進程可同時操作多個設備,從而使進程推進迅速。缺點是分配不安全,有可能產生死鎖現象。節目錄5.4.3設備獨立性

1.設備獨立性(DeviceIndependence)的概念為了提高操作系統的可擴展性和適應性,人們提出了設備獨立性(即設備無關性)的概念。其含義是:用戶編寫的

應用程序獨立于具體使用的物理設備,即使設備更換了,

應用程序也不用改變。為了實現設備獨立性而引入了邏輯設備和物理設備的概念。

所謂邏輯設備是實際物理設備屬性的抽象,它并不局限于

某個具體設備。在應用程序中,使用邏輯設備名稱來請

求使用某類設備;而系統在實際執行時,還必須使用物理

設備名稱。因此,系統須具有將邏輯設備名稱轉換為某物

理設備名稱的功能。設備獨立性的功能可帶來以下兩方面的好處:

1)設備分配時的靈活性

當應用程序(進程)以物理設備名稱來請求使用指定的某臺設備時,如果該設備已經被占用,而此時盡管還有幾臺其它相同的設備正在空閑,該進程仍然阻塞。但如進程以邏輯設備名稱請求某類設備時,系統可立即將該類設備中的任一臺分配給進程,僅當所有此類設備已全部分配完畢時,進程才會阻塞。

2)易于實現I/O重定向

當調試一個程序時,可將程序的輸出送屏幕顯示;而在調試完成后,如需要打印程序的輸出結果,系統只要將邏輯設備對應的物理輸出設備由顯示器改為打印機即可,而不必修改應用程序。5.4.4SPOOLing技術1.什么是SPOOLing為了緩和CPU的高速性與I/O設備低速性間的矛盾而引入了脫機輸入、脫機輸出技術。該技術是利用專門的外圍控制機,將低速I/O設備上的數據傳送到高速磁盤上;或者相反。

5.4.5SPOOLing技術1.什么是SPOOLing在多道程序的環境下,利用多道程序中的一道或兩道程序來模擬外圍控制機,把低速I/O設備上的數據傳送到高速磁盤上或把數據從磁盤傳送到低速輸出設備上。這樣,便可在主機的直接控制下,實現脫機輸入、輸出功能。此時的外圍操作與CPU對數據的處理同時進行,我們把這種在聯機情況下實現的同時外圍操作稱為SPOOLing(SimultaneausPeriphernalOperatingOn-Line),或稱為假脫機操作。2.SPOOLing系統的組成輸入井和輸出井。是在磁盤上開辟的兩個大存儲空間,輸入井是模擬脫機輸入時的磁盤,用于暫存I/O設備輸入的數據;輸出井是模擬脫機輸出時的磁盤,用于暫存用戶程序的輸出數據。輸入緩沖區和輸出緩沖區。在內存中開辟的兩個緩沖區。輸入緩沖區用于暫存由輸入設備送來的數據,以后再傳送到輸入井。輸出緩沖區用于暫存從輸出井送來的數據,以后再傳送給輸出設備。輸入進程SPi和輸出進程SPo。Spi模擬脫機輸入時的外圍控制機,將用戶要求的數據從輸入機通過輸入緩沖區再送到輸入井,當CPU需要輸入數據時,直接從輸入井讀入內存;Spo模擬脫機輸出時的外圍控制機,把用戶要求輸出的數據,先從內存送到輸出井,待輸出設備空閑,再將輸出井中的數據經過輸出緩沖區送到輸出設備上。2.SPOOLing系統的組成圖5-19SPOOLing系統的組成3.共享打印機將一臺獨享打印機改造為可供多個用戶共享的打印機,是應用SPOOLing技術的典型實例。共享打印機技術已被廣泛地用于多用戶系統和局域網絡中。當用戶進程請求打印輸出時,SPOOLing系統同意為它打印輸出,但并不真正立即把打印機分配給該用戶進程,而只為它做兩件事:①由輸出進程在輸出井中為之申請一個空閑磁盤塊區,并將要打印的數據送入其中;②輸出進程再為用戶進程申請一張空白的用戶請求打印表,并將用戶的打印要求填入其中,再將該表掛到請求打印隊列上。若打印機空閑,輸出程序從請求打印隊首取表,將要打印的數據從輸出井傳送到內存緩沖區,再進行打印,直到打印隊列為空。633、共享打印機4.SPOOLing系統的特點提高了I/O的速度。從對低速I/O設備進行的I/O操作變為對輸入井或輸出井的操作,如同脫機操作一樣,提高了I/O速度,緩和了CPU與低速I/O設備速度不匹配的矛盾.

(2)將獨占設備改造為共享設備。設備并沒有分配給任何進程.在輸入井或輸出井中,分配給進程的是一個存儲區和建立一張I/O請求表.(3)實現了虛擬設備功能。多個進程同時使用一獨享設備,而對每一進程而言,都認為自己獨占這一設備,不過,該設備是邏輯上的設備.5.5設備處理設備處理程序通常又稱為設備驅動程序,它是I/O進程與設備控制器之間的通信程序。其主要任務是接收上層軟件發來的抽象要求,如read或write命令,再把他轉換為具體要求后,發送給設備控制器,啟動設備去執行;此外,它也將設備控制器發來的信號傳送給上層軟件。由于驅動程序與硬件密切相關,每一類設備都應配置一種驅動程序,也可為功能類似的多類設備配置一個驅動程序。5.5設備處理5.5.1設備驅動程序的功能和特點1.設備驅動程序的功能(1)接收由I/O進程發來的命令和參數,并將命令中的抽象要求轉換為具體要求,例如,將磁盤塊號轉換為磁盤的盤面、磁道號及扇區號。

(2)檢查用戶I/O請求的合法性,了解I/O設備的狀態,傳遞有關參數,設置設備的工作方式。(3)發出I/O命令,如果設備空閑,便立即啟動I/O設備去完成指定的I/O操作;如果設備處于忙碌狀態,則將請求者的請求塊掛在設備隊列上等待。(4)及時響應由控制器或通道發來的中斷請求,并根據其中斷類型調用相應的中斷處理程序進行處理。

(5)對于設置有通道的計算機系統,驅動程序還應能夠根據用戶的I/O請求,自動地構成通道程序。2.設備驅動程序的特點(1)驅動程序主要是指在請求I/O的進程與設備控制器之間的一個通信和轉換程序。(2)驅動程序與設備控制器和I/O設備的硬件特性緊密相關,因而對不同類型的設備應配置不同的驅動程序。(3)驅動程序與I/O設備所采用的I/O控制方式緊密相關。常用的I/O控制方式是中斷驅動和DMA方式,兩種控制方式下的驅動程序也不同。(4)由于驅動程序與硬件緊密相關,因而其中一部分必須用匯編語言書寫。目前許多驅動程序的基本部分已固化在ROM中。5.5.2設備驅動程序的處理過程不同類型的設備有不同的設備驅動程序,但大體可分成兩部分,除了有能夠驅動I/O設備工作的驅動程序外,還需設備中斷處理程序,以處理I/O完成后的工作。啟動設備之前,設備驅動程序的處理過程如下:將抽象要求轉換為具體要求2.檢查I/O請求的合法性3.讀出和檢查設備的狀態4.傳送必要的參數5.工作方式的設置6.啟動I/O設備5.5.3中斷處理程序的處理過程處理過程如下:喚醒被阻塞的驅動(程序)進程2.保護被中斷進程的CPU環境3.轉入相應的設備處理程序4.中斷處理恢復被中斷進程的現場圖5-20中斷現場保護示意圖圖5-21中斷處理流程I/O操作完成后,驅動程序必須檢查本次I/O操作中是否發生了錯誤,并向上層軟件匯報,最終向調用者報告本次I/O的執行情況。I/O軟件5.6磁盤存儲器管理5.6.1磁盤性能簡述數據的組織和格式包括一個或多個盤片,每個盤片分兩面,每面分成若干磁道(500~2000),每條磁道上存儲相同數目的二進制位,每條磁道又分成若干小扇區(10~100)。為在磁盤上存儲數據,必須先將磁盤格式化。圖5-22磁盤的格式化2.磁盤的類型常見分類:硬盤和軟盤、單片盤和多片盤、固定頭磁盤和移動頭磁盤。1)固定頭磁盤這種磁盤在每條磁道上都有一讀/寫磁頭,所有的磁頭都被裝在一剛性磁臂中。通過這些磁頭可訪問所有各磁道,并進行并行讀/寫,有效地提高了磁盤的I/O速度。這種結構的磁盤主要用于大容量磁盤上。

2)移動頭磁盤每一個盤面僅配有一個磁頭,也被裝入磁臂中。為能訪問該盤面上的所有磁道,該磁頭必須能移動以進行尋道。可見,移動磁頭僅能以串行方式讀/寫,致使其I/O速度較慢;但由于其結構簡單,故仍廣泛應用于中小型磁盤設備中。3.磁盤訪問時間磁盤設備工作時,以恒定速率旋轉。為了讀或寫,磁頭必須移動到所要求的磁道上,并等待所要求的扇區的開始位置旋轉到磁頭下,然后開始讀寫數據。

1)尋道時間Ts這是指把磁臂(磁頭)移動到指定磁道上所經歷的時間。該時間是啟動磁臂的時間s與磁頭移動n條磁道所花費的時間之和,即Ts=m×n+s其中,m是一常數,與磁盤驅動器的速度有關,對一般磁盤,m=0.2;對高速磁盤,m≤0.1,磁臂的啟動時間約為2ms。這樣,對一般的溫盤(溫切斯特),其尋道時間將隨尋道距離的增加而增大,大體上是5~30ms。2)旋轉延遲時間Tτ這是指定扇區移動到磁頭下面所經歷的時間。對于硬盤,典型的旋轉速度大多為5400r/min,每轉需時11.1ms,平均旋轉延遲時間Tτ為5.55ms;對于軟盤,其旋轉速度為300r/min或600r/min,這樣,平均Tτ為50~100ms。3)傳輸時間Tt

這是指把數據從磁盤讀出或向磁盤寫入數據所經歷的時間。Tt的大小與每次所讀/寫的字節數b和旋轉速度有關:其中,r為磁盤每秒鐘的轉數;N為一條磁道上的字節數,當一次讀/寫的字節數相當于半條磁道上的字節數時,Tt與Tτ相同,因此,可將訪問時間Ta表示為:5.6.2磁盤調度1.先來先服務FCFS(First-Come,FirstServed)圖5-23FCFS調度算法優點:公平、簡單,每個進程的請求都能依次得到處理。缺點:未對尋道進行優化,平均尋道時間可能較長。FCFS算法僅適用于請求磁盤I/O的進程數目較少的場合。2.最短尋道時間優先SSTF(ShortestSeekTimeFirst)圖5-24SSTF調度算法3.掃描(SCAN)算法1)進程“饑餓”現象SSTF算法雖然能獲得較好的尋道性能,但卻可能導致某個進程發生“饑餓”(Starvation)現象。因為只要不斷有新進程的請求到達,且其所要訪問的磁道與磁頭當前所在磁道的距離較近,這種新進程的I/O請求必須優先滿足。對SSTF算法略加修改后所形成的SCAN算法,即可防止老進程出現“饑餓”現象。2)SCAN算法(電梯調度算法)圖5-25SCAN調度算法示例4.循環掃描(CSCAN)算法圖5-26CSCAN調度算法示例5.6.3磁盤高速緩存(DiskCache)1.磁盤高速緩存的形式

是指利用內存中的存儲空間,來暫存從磁盤中讀出的一系列盤塊中的信息。因此,這里的高速緩存是一

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論