輸入輸出系統(tǒng)演示文稿_第1頁
輸入輸出系統(tǒng)演示文稿_第2頁
輸入輸出系統(tǒng)演示文稿_第3頁
輸入輸出系統(tǒng)演示文稿_第4頁
輸入輸出系統(tǒng)演示文稿_第5頁
已閱讀5頁,還剩131頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

輸入輸出系統(tǒng)演示文稿目前一頁\總數(shù)一百三十六頁\編于十九點第章輸入輸出系統(tǒng)目前二頁\總數(shù)一百三十六頁\編于十九點

6.1I/O系統(tǒng)的功能、模型和接口

I/O系統(tǒng)管理的主要對象是I/O設備和相應的設備控制器。其最主要的任務是,完成用戶提出的I/O請求,提高I/O速率,以及提高設備的利用率,并能為更高層的進程方便地使用這些設備提供手段。目前三頁\總數(shù)一百三十六頁\編于十九點6.1.1I/O系統(tǒng)的基本功能

1.隱藏物理設備的細節(jié)

I/O設備的類型非常多,且彼此間在多方面都有差異,諸如它們接收和產(chǎn)生數(shù)據(jù)的速度,傳輸方向、粒度、數(shù)據(jù)的表示形式及可靠性等方面。目前四頁\總數(shù)一百三十六頁\編于十九點2.與設備的無關性

隱藏物理設備的細節(jié),在早期的OS中就已實現(xiàn),它可方便用戶對設備的使用。

與設備的無關性是在較晚時才實現(xiàn)的,這是在隱藏物理設備細節(jié)的基礎上實現(xiàn)的。目前五頁\總數(shù)一百三十六頁\編于十九點3.提高處理機和I/O設備的利用率

在一般的系統(tǒng)中,許多I/O設備間是相互獨立的,能夠并行操作,在處理機與設備之間也能并行操作。

I/O系統(tǒng)的第三個功能是要盡可能地讓處理機和I/O設備并行操作,以提高它們的利用率。

一方面要求處理機能快速響應用戶的I/O請求,使I/O設備盡快地運行起來;

另一方面也應盡量減少在每個I/O設備運行時處理機的干預時間。目前六頁\總數(shù)一百三十六頁\編于十九點4.對I/O設備進行控制

對I/O設備進行控制是驅動程序的功能。目前對I/O設備有四種控制方式:

①采用輪詢的可編程I/O方式——程序IO;

②采用中斷的可編程I/O方式——中斷IO;

③直接存儲器訪問方式——DMA;

④I/O通道方式——通道。目前七頁\總數(shù)一百三十六頁\編于十九點5.確保對設備的正確共享

設備按共享屬性分類分為如下兩類:

(1)獨占設備,進程應互斥地訪問這類設備,即系統(tǒng)一旦把這類設備分配給了某進程后,便由該進程獨占,直至用完釋放。典型的獨占設備有打印機、磁帶機等。

(2)共享設備,是指在一段時間內允許多個進程同時訪問的設備。典型的共享設備是磁盤,當有多個進程需對磁盤執(zhí)行讀、寫操作時,可以交叉進行,不會影響到讀、寫的正確性。目前八頁\總數(shù)一百三十六頁\編于十九點6.錯誤處理

大多數(shù)的設備都包括了較多的機械和電氣部分,運行時容易出現(xiàn)錯誤和故障。從處理的角度,可將錯誤分為臨時性錯誤和持久性錯誤。

對于臨時性錯誤,可通過重試操作來糾正,只有在發(fā)生了持久性錯誤時,才需要向上層報告。目前九頁\總數(shù)一百三十六頁\編于十九點6.1.2I/O系統(tǒng)的層次結構和模型

1.?I/O軟件的層次結構

通常把I/O軟件組織成四個層次,如圖6-1所示。圖6-1I/O系統(tǒng)的層次結構目前十頁\總數(shù)一百三十六頁\編于十九點2.I/O系統(tǒng)中各種模塊之間的層次視圖

為了能更清晰地描述I/O系統(tǒng)中主要模塊之間的關系,我們進一步介紹I/O系統(tǒng)中各種I/O模塊之間的層次視圖。見圖6-2所示。

1)?I/O系統(tǒng)的上、下接口

(1)?I/O系統(tǒng)接口。

(2)軟件/硬件(RW/HW)接口。目前十一頁\總數(shù)一百三十六頁\編于十九點圖6-2I/O系統(tǒng)中各種模塊之間的層次視圖目前十二頁\總數(shù)一百三十六頁\編于十九點2)?I/O系統(tǒng)的分層

與前面所述的I/O軟件組織的層次結構相對應,I/O系統(tǒng)本身也可分為如下三個層次:

(1)中斷處理程序。

(2)設備驅動程序。

(3)設備獨立性軟件。目前十三頁\總數(shù)一百三十六頁\編于十九點6.1.3I/O系統(tǒng)接口

在I/O系統(tǒng)與高層之間的接口中,根據(jù)設備類型的不同,又進一步分為若干個接口。在圖6-2中示出了塊設備接口、流設備接口和網(wǎng)絡接口。

1.塊設備接口

(1)塊設備。

(2)隱藏了磁盤的二維結構。

(3)將抽象命令映射為低層操作。目前十四頁\總數(shù)一百三十六頁\編于十九點2.流設備接口

流設備接口是流設備管理程序與高層之間的接口。該接口又稱為字符設備接口,它反映了大部分字符設備的本質特征,用于控制字符設備的輸入或輸出。

(1)字符設備。

(2)get和put操作。

(3)

in-control指令。目前十五頁\總數(shù)一百三十六頁\編于十九點3.網(wǎng)絡通信接口

在現(xiàn)代OS中,都提供了面向網(wǎng)絡的功能。但首先還需要通過某種方式把計算機連接到網(wǎng)絡上。同時操作系統(tǒng)也必須提供相應的網(wǎng)絡軟件和網(wǎng)絡通信接口,使計算機能通過網(wǎng)絡與網(wǎng)絡上的其它計算機進行通信或上網(wǎng)瀏覽。目前十六頁\總數(shù)一百三十六頁\編于十九點

6.2I/O設備和設備控制器

I/O設備一般是由執(zhí)行I/O操作的機械部分和執(zhí)行控制I/O的電子部件組成。通常將這兩部分分開,執(zhí)行I/O操作的機械部分就是一般的I/O設備,而執(zhí)行控制I/O的電子部件則稱為設備控制器或適配器(Adapter)。在微型機和小型機中也常稱為控制卡、接口卡或網(wǎng)卡,可將它插入計算機的擴展槽中。在有的大、中型計算機系統(tǒng)中,還配置了I/O通道或I/O處理機。目前十七頁\總數(shù)一百三十六頁\編于十九點6.2.1I/O設備

1.?I/O設備的類型

1)按使用特性分類

2)按傳輸速率分類

目前十八頁\總數(shù)一百三十六頁\編于十九點2.設備與控制器之間的接口

通常,設備并不是直接與CPU進行通信,而是與設備控制器通信,因此,在I/O設備中應含有與設備控制器間的接口,在該接口中有三種類型的信號(見圖6-3所示),各對應一條信號線。

(1)數(shù)據(jù)信號線。

(2)控制信號線。

(3)狀態(tài)信號線。目前十九頁\總數(shù)一百三十六頁\編于十九點圖6-3設備與控制器間的接口目前二十頁\總數(shù)一百三十六頁\編于十九點6.2.2設備控制器

1.設備控制器的基本功能

(1)接收和識別命令。

(2)數(shù)據(jù)交換。

(3)標識和報告設備的狀態(tài)。

(4)地址識別。

(5)數(shù)據(jù)緩沖區(qū)。

(6)差錯控制。目前二十一頁\總數(shù)一百三十六頁\編于十九點2.設備控制器的組成

由于設備控制器位于CPU與設備之間,它既要與CPU通信,又要與設備通信,還應具有按照CPU所發(fā)來的命令去控制設備工作的功能,因此,現(xiàn)有的大多數(shù)控制器都是由以下三部分組成:

(1)設備控制器與處理機的接口。

(2)設備控制器與設備的接口。

(3)?I/O邏輯。目前二十二頁\總數(shù)一百三十六頁\編于十九點圖6-4設備控制器的組成目前二十三頁\總數(shù)一百三十六頁\編于十九點6.2.3內存映像I/O

1.利用特定的I/O指令

在早期的計算機中,包括大型計算機,為實現(xiàn)CPU和設備控制器之間的通信,為每個控制寄存器分配一個I/O端口,這是一個8位或16位的整數(shù),如圖6-5(a)所示。另外還設置了一些特定的I/O指令。目前二十四頁\總數(shù)一百三十六頁\編于十九點2.內存映像I/O

在這種方式中,在編址上不再區(qū)分內存單元地址和設備控制器中的寄存器地址,都采用k。當k值處于0~n-1范圍時,被認為是內存地址,若k大于等于n時,被認為是某個控制器的寄存器地址。目前二十五頁\總數(shù)一百三十六頁\編于十九點圖6-5設備尋址形式目前二十六頁\總數(shù)一百三十六頁\編于十九點

I/O通道

1.?I/O通道設備的引入

雖然在CPU與I/O設備之間增加了設備控制器后,已能大大減少CPU對I/O的干預,但當主機所配置的外設很多時,CPU的負擔仍然很重。為此,在CPU和設備控制器之間又增設了I/O通道(I/OChannel)。目前二十七頁\總數(shù)一百三十六頁\編于十九點2.通道類型

1)字節(jié)多路通道(ByteMultiplexorChannel)

這是一種按字節(jié)交叉方式工作的通道。它通常都含有許多非分配型子通道,其數(shù)量可從幾十到數(shù)百個,每一個子通道連接一臺I/O設備,并控制該設備的I/O操作。這些子通道按時間片輪轉方式共享主通道。目前二十八頁\總數(shù)一百三十六頁\編于十九點圖6-6字節(jié)多路通道的工作原理目前二十九頁\總數(shù)一百三十六頁\編于十九點2)數(shù)組選擇通道(BlockSelectorChannel)

字節(jié)多路通道不適于連接高速設備,這推動了按數(shù)組方式進行數(shù)據(jù)傳送的數(shù)組選擇通道的形成。

3)數(shù)組多路通道(BlockMultiplexorChannel)

數(shù)組選擇通道雖有很高的傳輸速率,但它卻每次只允許一個設備傳輸數(shù)據(jù)。數(shù)組多路通道是將數(shù)組選擇通道傳輸速率高和字節(jié)多路通道能使各子通道(設備)分時并行操作的優(yōu)點相結合而形成的一種新通道。目前三十頁\總數(shù)一百三十六頁\編于十九點目前三十一頁\總數(shù)一百三十六頁\編于十九點目前三十二頁\總數(shù)一百三十六頁\編于十九點3.“瓶頸”問題

由于通道價格昂貴,致使機器中所設置的通道數(shù)量勢必較少,這往往又使它成了I/O的瓶頸,進而造成整個系統(tǒng)吞吐量的下降。目前三十三頁\總數(shù)一百三十六頁\編于十九點圖6-7單通路I/O系統(tǒng)目前三十四頁\總數(shù)一百三十六頁\編于十九點圖6-8多通路I/O系統(tǒng)目前三十五頁\總數(shù)一百三十六頁\編于十九點

6.3中斷機構和中斷處理程序

中斷在操作系統(tǒng)中有著特殊重要的地位,它是多道程序得以實現(xiàn)的基礎,沒有中斷,就不可能實現(xiàn)多道程序,因為進程之間的切換是通過中斷來完成的。另一方面,中斷也是設備管理的基礎,為了提高處理機的利用率和實現(xiàn)CPU與I/O設備并行執(zhí)行,也必需有中斷的支持。

中斷處理程序是I/O系統(tǒng)中最低的一層,它是整個I/O系統(tǒng)的基礎。目前三十六頁\總數(shù)一百三十六頁\編于十九點6.3.1中斷簡介

1.中斷和陷入

1)中斷

2)陷入

目前三十七頁\總數(shù)一百三十六頁\編于十九點2.中斷向量表和中斷優(yōu)先級

1)中斷向量表

2)中斷優(yōu)先級

目前三十八頁\總數(shù)一百三十六頁\編于十九點3.對多中斷源的處理方式

1)屏蔽(禁止)中斷

2)嵌套中斷

目前三十九頁\總數(shù)一百三十六頁\編于十九點圖6-9對多中斷的處理方式目前四十頁\總數(shù)一百三十六頁\編于十九點6.3.2中斷處理程序

當一個進程請求I/O操作時,該進程將被掛起,直到I/O設備完成I/O操作后,設備控制器便向CPU發(fā)送一個中斷請求,CPU響應后便轉向中斷處理程序,中斷處理程序執(zhí)行相應的處理,處理完后解除相應進程的阻塞狀態(tài)。目前四十一頁\總數(shù)一百三十六頁\編于十九點圖6-10中斷現(xiàn)場保護示意圖目前四十二頁\總數(shù)一百三十六頁\編于十九點圖6-11中斷處理流程目前四十三頁\總數(shù)一百三十六頁\編于十九點

6.4設備驅動程序

設備處理程序通常又稱為設備驅動程序,它是I/O系統(tǒng)的高層與設備控制器之間的通信程序,其主要任務:

一是接收上層軟件發(fā)來的抽象I/O要求,如read或write命令,再把它轉換為具體要求后,發(fā)送給設備控制器,啟動設備去執(zhí)行;

反之,它也將由設備控制器發(fā)來的信號傳送給上層軟件。由于驅動程序與硬件密切相關,故通常應為每一類設備配置一種驅動程序。例如,打印機和顯示器需要不同的驅動程序。目前四十四頁\總數(shù)一百三十六頁\編于十九點6.4.1設備驅動程序概述

1.設備驅動程序的功能

(1)接收由與設備無關的軟件發(fā)來的命令和參數(shù),并將命令中的抽象要求轉換為與設備相關的低層操作序列。

(2)檢查用戶I/O請求的合法性,了解I/O設備的工作狀態(tài),傳遞與I/O設備操作有關的參數(shù),設置設備的工作方式。

(3)發(fā)出I/O命令,如果設備空閑,便立即啟動I/O設備,完成指定的I/O操作;如果設備忙碌,則將請求者的請求塊掛在設備隊列上等待。

(4)及時響應由設備控制器發(fā)來的中斷請求,并根據(jù)其中斷類型,調用相應的中斷處理程序進行處理。目前四十五頁\總數(shù)一百三十六頁\編于十九點2.設備驅動程序的特點

設備驅動程序屬于低級的系統(tǒng)例程,它與一般的應用程序及系統(tǒng)程序之間有下述明顯差異:

(1)驅動程序是實現(xiàn)在與設備無關的軟件和設備控制器之間通信和轉換的程序,具體說,它將抽象的I/O請求轉換成具體的I/O操作后傳送給控制器。又把控制器中所記錄的設備狀態(tài)和I/O操作完成情況,及時地反映給請求I/O的進程。

目前四十六頁\總數(shù)一百三十六頁\編于十九點

(2)驅動程序與設備控制器以及I/O設備的硬件特性緊密相關,對于不同類型的設備,應配置不同的驅動程序。但可以為相同的多個終端設置一個終端驅動程序。

(3)驅動程序與I/O設備所采用的I/O控制方式緊密相關,常用的I/O控制方式是中斷驅動和DMA方式。

目前四十七頁\總數(shù)一百三十六頁\編于十九點 (4)由于驅動程序與硬件緊密相關,因而其中的一部分必須用匯編語言書寫。目前有很多驅動程序的基本部分已經(jīng)固化在ROM中。

(5)驅動程序應允許可重入。一個正在運行的驅動程序常會在一次調用完成前被再次調用。

3.設備處理方式

在不同的操作系統(tǒng)中,所采用的設備處理方式并不完全相同。目前四十八頁\總數(shù)一百三十六頁\編于十九點6.4.2設備驅動程序的處理過程

設備驅動程序的主要任務是啟動指定設備,完成上層指定的I/O工作。但在啟動之前,應先完成必要的準備工作,如檢測設備狀態(tài)是否為“忙”等。在完成所有的準備工作后,才向設備控制器發(fā)送一條啟動命令。目前四十九頁\總數(shù)一百三十六頁\編于十九點圖6-12狀態(tài)寄存器中的格式目前五十頁\總數(shù)一百三十六頁\編于十九點6.4.3對I/O設備的控制方式

對設備的控制,早期是使用輪詢的可編程I/O方式,后來發(fā)展為使用中斷的可編程I/O方式。目前五十一頁\總數(shù)一百三十六頁\編于十九點1.使用輪詢的可編程I/O方式

即在處理機向控制器發(fā)出一條I/O指令,啟動輸入設備輸入數(shù)據(jù)時,要同時把狀態(tài)寄存器中的忙/閑標志busy置為1,然后便不斷地循環(huán)測試busy(稱為輪詢)。當busy=1時,表示輸入機尚未輸完一個字(符),處理機應繼續(xù)對該標志進行測試,直至busy=0,表明輸入機已將輸入數(shù)據(jù)送入控制器的數(shù)據(jù)寄存器中。于是處理機將數(shù)據(jù)寄存器中的數(shù)據(jù)取出,送入內存指定單元中,這樣便完成了一個字(符)的I/O。接著再去啟動讀下一個數(shù)據(jù),并置busy=1。目前五十二頁\總數(shù)一百三十六頁\編于十九點程序I/O和中斷驅動方式的流程目前五十三頁\總數(shù)一百三十六頁\編于十九點2.使用中斷的可編程I/O方式

當前,對I/O設備的控制,廣泛采用中斷的可編程I/O方式,即當某進程要啟動某個I/O設備工作時,便由CPU向相應的設備控制器發(fā)出一條I/O命令,然后立即返回繼續(xù)執(zhí)行原來的任務。設備控制器于是按照該命令的要求去控制指定I/O設備。此時,CPU與I/O設備并行操作。目前五十四頁\總數(shù)一百三十六頁\編于十九點3.直接存儲器訪問方式

1)直接存儲器訪問方式的引入

雖然中斷驅動I/O比程序I/O方式更有效,但它仍是以字(節(jié))為單位進行I/O的。每當完成一個字(節(jié))的I/O時,控制器便要向CPU請求一次中斷。目前五十五頁\總數(shù)一百三十六頁\編于十九點DMA方式的特點是:

(1)數(shù)據(jù)傳輸?shù)幕締挝皇菙?shù)據(jù)塊,即在CPU與I/O設備之間,每次傳送至少一個數(shù)據(jù)塊。

(2)所傳送的數(shù)據(jù)是從設備直接送入內存的,或者相反。

(3)僅在傳送一個或多個數(shù)據(jù)塊的開始和結束時,才需CPU干預,整塊數(shù)據(jù)的傳送是在控制器的控制下完成的。

可見,DMA方式較之中斷驅動方式又進一步提高了CPU與I/O設備的并行操作程度。目前五十六頁\總數(shù)一百三十六頁\編于十九點2)?DMA控制器的組成

DMA控制器由三部分組成:

(1)主機與DMA控制器的接口;

(2)DMA控制器與塊設備的接口;

(3)I/O控制邏輯。

目前五十七頁\總數(shù)一百三十六頁\編于十九點圖6-14DMA控制器的組成DR:數(shù)據(jù)寄存器 DC:數(shù)據(jù)計數(shù)器MAR:頁內地址寄存器 CR:命令/狀態(tài)寄存器目前五十八頁\總數(shù)一百三十六頁\編于十九點3)?DMA工作過程

當CPU要從磁盤讀入一數(shù)據(jù)塊時,便向磁盤控制器發(fā)送一條讀命令。該命令被送入命令寄存器CR中。同時,需要將本次要讀入數(shù)據(jù)在內存的起始目標地址送入內存地址寄存器MAR中。目前五十九頁\總數(shù)一百三十六頁\編于十九點圖6-15DMA方式的工作流程圖目前六十頁\總數(shù)一百三十六頁\編于十九點4.?I/O通道控制方式

1)?I/O通道控制方式的引入

雖然DMA方式比起中斷方式來已經(jīng)顯著地減少了CPU的干預,即已由以字(節(jié))為單位的干預減少到以數(shù)據(jù)塊為單位的干預,但CPU每發(fā)出一條I/O指令,也只能去讀(或寫)一個連續(xù)的數(shù)據(jù)塊。

我們需要一次去讀多個數(shù)據(jù)塊且將它們分別傳送到不同的內存區(qū)域,或者相反時,則須由CPU分別發(fā)出多條I/O指令及進行多次中斷處理才能完成。目前六十一頁\總數(shù)一百三十六頁\編于十九點2)通道程序

通道是通過執(zhí)行通道程序并與設備控制器共同實現(xiàn)對I/O設備的控制的。

通道程序是由一系列通道指令(或稱為通道命令)所構成的。

其中,每條指令包括:操作碼、內存地址、計數(shù)、通道程序結束位P和記錄結束位R

目前六十二頁\總數(shù)一百三十六頁\編于十九點下面示出了一個由六條通道指令所構成的簡單的通道程序。該程序的功能是將內存中不同地址的數(shù)據(jù)寫成多個記錄。目前六十三頁\總數(shù)一百三十六頁\編于十九點

6.5與設備無關的I/O軟件

為了方便用戶和提高OS的可適應性與可擴展性,在現(xiàn)代OS的I/O系統(tǒng)中,都無一例外地增加了與設備無關的I/O軟件,以實現(xiàn)設備獨立性,也稱為設備無關性。

【設備獨立性】:應用程序中所用的設備,不局限于使用某個具體的物理設備。為每個設備所配置的設備驅動程序是與硬件緊密相關的軟件。目前六十四頁\總數(shù)一百三十六頁\編于十九點6.5.1與設備無關軟件的基本概念

1.以物理設備名使用設備

在早期OS中,應用程序在使用I/O設備時,都使用設備的物理名稱,這使應用程序與系統(tǒng)中的物理設備直接相關。目前六十五頁\總數(shù)一百三十六頁\編于十九點2.引入了邏輯設備名

為了實現(xiàn)與設備的無關性而引入了邏輯設備和物理設備兩個概念。邏輯設備是抽象的設備名。目前六十六頁\總數(shù)一百三十六頁\編于十九點3.邏輯設備名稱到物理設備名稱的轉換

在應用程序中,用邏輯設備名稱使用設備雖然方便了用戶,但系統(tǒng)卻只識別物理設備名稱,因此在實際執(zhí)行時,還必須使用物理名稱。為此,在系統(tǒng)中,必須具有將邏輯設備名稱轉換為某物理設備名稱的功能。目前六十七頁\總數(shù)一百三十六頁\編于十九點6.5.2與設備無關的軟件

1.設備驅動程序的統(tǒng)一接口

為了使所有的設備驅動程序有著統(tǒng)一的接口:

一方面,要求每個設備驅動程序與OS之間都有著相同或相近的接口,可使添加一個新的設備驅動程序變得很容易,同時也方便了開發(fā)人員對設備驅動程序的編制。

另一方面,要將抽象的設備名映射到適當?shù)尿寗映绦蛏希蛘哒f,將抽象的設備名轉換為具體的物理設備名,并進一步可以找到相應物理設備的驅動程序入口。

此外,還應對設備進行保護,禁止用戶直接訪問設備,以防止無權訪問的用戶使用。目前六十八頁\總數(shù)一百三十六頁\編于十九點2.緩沖管理

無論是字符設備還是塊設備,它們的運行速度都遠低于CPU的速度。為了緩和CPU和I/O設備之間的矛盾、提高CPU的利用率,在現(xiàn)代OS中都無一例外地分別為字符設備和塊設備配置了相應的緩沖區(qū)。

緩沖區(qū)有著多種形式,如:單緩沖區(qū)、雙緩沖區(qū)、循環(huán)緩沖區(qū)、公用緩沖池等,以滿足不同情況的需要。目前六十九頁\總數(shù)一百三十六頁\編于十九點3.差錯控制

由于設備中有著許多的機械和電氣部分,因此,它們比主機更容易出現(xiàn)故障,這就導致I/O操作中的絕大多數(shù)錯誤都與設備有關。錯誤可分為如下兩類:

(1)暫時性錯誤。

(2)持久性錯誤。目前七十頁\總數(shù)一百三十六頁\編于十九點4.對獨立設備的分配與回收

在系統(tǒng)中有兩類設備:獨占設備和共享設備。對于獨占設備,為了避免諸進程對獨占設備的爭奪,必須由系統(tǒng)來統(tǒng)一分配,不允許進程自行使用。每當進程需要使用某(獨占)設備時,必須先提出申請。OS接到對設備的請求后,先對進程所請求的獨占設備進行檢查,看該設備是否空閑。若空閑,才把該設備分配給請求進程。否則,進程將被阻塞,放入該設備的請求隊列中等待。等到其它進程釋放該設備時,再將隊列中的第一個進程喚醒,該進程得到設備后繼續(xù)運行。目前七十一頁\總數(shù)一百三十六頁\編于十九點5.獨立于設備的邏輯數(shù)據(jù)塊

不同類型的設備,其數(shù)據(jù)交換單位是不同的,讀取和傳輸速率也各不相同。

如,字符型設備以單個字符(字)為單位,塊設備是以一個數(shù)據(jù)塊為單位。

即使同一類型的設備,其數(shù)據(jù)交換單位的大小也是有差異的。

如,不同磁盤由于扇區(qū)大小的不同,可能造成數(shù)據(jù)塊大小的不一致。

設備獨立性軟件應能夠隱藏這些差異而被邏輯設備使用,并向高層軟件提供大小統(tǒng)一的邏輯數(shù)據(jù)塊。目前七十二頁\總數(shù)一百三十六頁\編于十九點圖6-16與設備無關軟件的功能層次目前七十三頁\總數(shù)一百三十六頁\編于十九點6.5.3設備分配

系統(tǒng)為實現(xiàn)對獨占設備的分配,必須在系統(tǒng)中配置相應的數(shù)據(jù)結構。

目前七十四頁\總數(shù)一百三十六頁\編于十九點目前七十五頁\總數(shù)一百三十六頁\編于十九點1.設備分配中的數(shù)據(jù)結構

在用于設備分配的數(shù)據(jù)結構中,記錄了對設備或控制器進行控制所需的信息。在進行設備分配時需要如下的數(shù)據(jù)結構。

1)設備控制表DCT

系統(tǒng)為每一個設備都配置了一張設備控制表,用于記錄設備的情況,如圖6-17所示。目前七十六頁\總數(shù)一百三十六頁\編于十九點2)控制器控制表、通道控制表和系統(tǒng)設備表

(1)控制器控制表(COCT)。系統(tǒng)為每一個控制器都設置了用于記錄控制器情況的控制器控制表。

(2)通道控制表(CHCT)。每個通道都有一張通道控制表。

(3)系統(tǒng)設備表(SDT)。這是系統(tǒng)范圍的數(shù)據(jù)結構,記錄了系統(tǒng)中全部設備的情況,每個設備占一個表目,其中包括有設備類型、設備標識符、設備控制表及設備驅動程序的入口等項。目前七十七頁\總數(shù)一百三十六頁\編于十九點2.設備分配時應考慮的因素

系統(tǒng)在分配設備時,應考慮如下幾個因素:

1)設備的固有屬性

設備的固有屬性可分成三種,對它們應采取不同的分配策略:

(1)獨占設備的分配策略。

(2)共享設備的分配策略。

(3)虛擬設備的分配策略,虛擬設備屬于可共享的設備,可以將它同時分配給多個進程使用。目前七十八頁\總數(shù)一百三十六頁\編于十九點2)設備分配算法

對設備分配的算法,通常只采用以下兩種分配算法:

(1)先來先服務。

(2)優(yōu)先級高者優(yōu)先。目前七十九頁\總數(shù)一百三十六頁\編于十九點3)設備分配中的安全性

從進程運行的安全性上考慮,設備分配有以下兩種方式:

(1)安全分配方式。

(2)不安全分配方式。目前八十頁\總數(shù)一百三十六頁\編于十九點目前八十一頁\總數(shù)一百三十六頁\編于十九點目前八十二頁\總數(shù)一百三十六頁\編于十九點目前八十三頁\總數(shù)一百三十六頁\編于十九點3.獨占設備的分配程序

1)基本的設備分配程序

我們通過一個例子來介紹設備分配過程。當某進程提出I/O請求后,系統(tǒng)的設備分配程序可按下述步驟進行設備分配:

(1)分配設備。

(2)分配控制器。

(3)分配通道。目前八十四頁\總數(shù)一百三十六頁\編于十九點2)設備分配程序的改進

在上面的例子中,進程是以物理設備名提出I/O請求的。如果所指定的設備已分配給其它進程,則分配失敗。或者說上面的設備分配程序不具有與設備無關性。為獲得設備的獨立性,進程應使用邏輯設備名請求I/O。目前八十五頁\總數(shù)一百三十六頁\編于十九點6.5.4邏輯設備名到物理設備名映射的實現(xiàn)

1.邏輯設備表LUT(LogicalUnitTable)

在邏輯設備表的每個表目中包含了三項:邏輯設備名、物理設備名和設備驅動程序的入口地址,如圖6-19(a)所示。目前八十六頁\總數(shù)一百三十六頁\編于十九點圖6-19邏輯設備表目前八十七頁\總數(shù)一百三十六頁\編于十九點2.邏輯設備表的設置問題

在系統(tǒng)中可采取兩種方式設置邏輯設備表:

第一種方式,是在整個系統(tǒng)中只設置一張LUT。

第二種方式,是為每個用戶設置一張LUT。目前八十八頁\總數(shù)一百三十六頁\編于十九點

6.6用戶層的I/O軟件

6.6.1系統(tǒng)調用與庫函數(shù)

1.系統(tǒng)調用

一方面,為使諸進程能有條不紊地使用I/O設備,且能保護設備的安全性,不允許運行在用戶態(tài)的應用進程去直接調用運行在核心態(tài)(系統(tǒng)態(tài))的OS過程。

另一方面,應用進程在運行時,又必須取得OS所提供的服務,否則,應用程序幾乎無法運行。為了解決此矛盾,OS在用戶層中引入了一個中介過程——系統(tǒng)調用,應用程序可以通過它間接調用OS中的I/O過程,對I/O設備進行操作。目前八十九頁\總數(shù)一百三十六頁\編于十九點圖6-20系統(tǒng)調用的執(zhí)行過程目前九十頁\總數(shù)一百三十六頁\編于十九點2.庫函數(shù)

在C語言以及UNIX系統(tǒng)中,系統(tǒng)調用(如read)與各系統(tǒng)調用所使用的庫函數(shù)(如read)之間幾乎是一一對應的。而微軟定義了一套過程,稱為Win32API的應用程序接口(ApplicationProgramInterface),程序員利用它們取得OS服務,該接口與實際的系統(tǒng)調用并不一一對應。用戶程序通過調用對應的庫函數(shù)使用系統(tǒng)調用,這些庫函數(shù)與調用程序連接在一起,被嵌入在運行時裝入內存的二進制程序中。目前九十一頁\總數(shù)一百三十六頁\編于十九點6.6.2假脫機(Spooling)系統(tǒng)

1.假脫機技術

在20世紀50年代,為了緩和CPU的高速性與I/O設備低速性間的矛盾,而引入了脫機輸入、脫機輸出技術。該技術是利用專門的外圍控制機,先將低速I/O設備上的數(shù)據(jù)傳送到高速磁盤上,或者相反。這樣當處理機需要輸入數(shù)據(jù)時,便可以直接從磁盤中讀取數(shù)據(jù),極大地提高了輸入速度。反之,在處理機需要輸出數(shù)據(jù)時,也可以很快的速度把數(shù)據(jù)先輸出到磁盤上,處理機便可去做自己的事情。目前九十二頁\總數(shù)一百三十六頁\編于十九點2.?SPOOLing的組成

如前所述,SPOOLing技術是對脫機輸入/輸出系統(tǒng)的模擬,相應地,如圖6-21(a)所示,SPOOLing系統(tǒng)建立在通道技術和多道程序技術的基礎上,以高速隨機外存(通常為磁盤)為后援存儲器。SPOOLing的工作原理如圖6-21(b)所示。目前九十三頁\總數(shù)一百三十六頁\編于十九點SPOOLing系統(tǒng)組成及工作原理目前九十四頁\總數(shù)一百三十六頁\編于十九點

SPOOLing系統(tǒng)主要由以下四部分構成:

(1)輸入井和輸出井。

(2)輸入緩沖區(qū)和輸出緩沖區(qū)。

(3)輸入進程和輸出進程。

(4)井管理程序。目前九十五頁\總數(shù)一百三十六頁\編于十九點3.?SPOOLing系統(tǒng)的特點

(1)提高了I/O的速度。

(2)將獨占設備改造為共享設備。

(3)實現(xiàn)了虛擬設備功能。目前九十六頁\總數(shù)一百三十六頁\編于十九點4.假脫機打印機系統(tǒng)

打印機是經(jīng)常用到的輸出設備,屬于獨占設備。利用假脫機技術可將它改造為一臺可供多個用戶共享的打印設備,從而提高設備的利用率,也方便了用戶。共享打印機技術已被廣泛地用于多用戶系統(tǒng)和局域網(wǎng)絡中。假脫機打印系統(tǒng)主要有以下三部分:

(1)磁盤緩沖區(qū)。

(2)打印緩沖區(qū)。

(3)假脫機管理進程和假脫機打印進程。目前九十七頁\總數(shù)一百三十六頁\編于十九點5.守護進程(daemon)

前面是利用假脫機系統(tǒng)來實現(xiàn)打印機共享的一種方案,人們對該方案進行了某些修改,如取消該方案中的假脫機管理進程,為打印機建立一個守護進程,由它執(zhí)行一部分原來由假脫機管理進程實現(xiàn)的功能,如為用戶在磁盤緩沖區(qū)中申請一個空閑盤塊,并將要打印的數(shù)據(jù)送入其中,將該盤塊的首址返回給請求進程。另一部分由請求進程自己完成,每個要求打印的進程首先生成一份要求打印的文件,其中包含對打印的要求和指向裝有打印輸出數(shù)據(jù)盤塊的指針等信息,然后將用戶請求打印文件放入假脫機文件隊列(目錄)中。目前九十八頁\總數(shù)一百三十六頁\編于十九點

6.7緩?沖?區(qū)?管?理

在現(xiàn)代操作系統(tǒng)中,幾乎所有的I/O設備在與處理機交換數(shù)據(jù)時都用了緩沖區(qū)。緩沖區(qū)是一個存儲區(qū)域,它可以由專門的硬件寄存器組成,但由于硬件的成本較高,容量也較小,一般僅用在對速度要求非常高的場合,如存儲器管理中所用的聯(lián)想存儲器;設備控制器中用的數(shù)據(jù)緩沖區(qū)等。目前九十九頁\總數(shù)一百三十六頁\編于十九點6.7.1緩沖的引入

引入緩沖區(qū)的原因有很多,可歸結為以下幾點:

(1)緩和CPU與I/O設備間速度不匹配的矛盾。

(2)減少對CPU的中斷頻率,放寬對CPU中斷響應時間的限制。

(3)解決數(shù)據(jù)粒度不匹配的問題。

(4)提高CPU和I/O設備之間的并行性。目前一百頁\總數(shù)一百三十六頁\編于十九點圖6-22利用緩沖寄存器實現(xiàn)緩沖目前一百零一頁\總數(shù)一百三十六頁\編于十九點6.7.2單緩沖區(qū)和雙緩沖區(qū)

1.單緩沖區(qū)(SingleBuffer)

在單緩沖情況下,每當用戶進程發(fā)出一I/O請求時,操作系統(tǒng)便在主存中為之分配一緩沖區(qū)。目前一百零二頁\總數(shù)一百三十六頁\編于十九點圖6-23單緩沖工作示意圖目前一百零三頁\總數(shù)一百三十六頁\編于十九點2.雙緩沖區(qū)(DoubleBuffer)

由于緩沖區(qū)是共享資源,生產(chǎn)者與消費者在使用緩沖區(qū)時必須互斥。如果消費者尚未取走緩沖區(qū)中的數(shù)據(jù),即使生產(chǎn)者又生產(chǎn)出新的數(shù)據(jù),也無法將它送入緩沖區(qū),生產(chǎn)者等待。如果為生產(chǎn)者與消費者設置了兩個緩沖區(qū),便能解決這一問題。目前一百零四頁\總數(shù)一百三十六頁\編于十九點圖6-24雙緩沖工作示意圖目前一百零五頁\總數(shù)一百三十六頁\編于十九點如果在實現(xiàn)兩臺機器之間的通信時僅為它們配置了單緩沖,如圖6-25(a)所示,那么,它們之間在任一時刻都只能實現(xiàn)單方向的數(shù)據(jù)傳輸。例如,只允許把數(shù)據(jù)從A傳送到B,或者從B傳送到A,而絕不允許雙方同時向對方發(fā)送數(shù)據(jù)。為了實現(xiàn)雙向數(shù)據(jù)傳輸,必須在兩臺機器中都設置兩個緩沖區(qū),一個用作發(fā)送緩沖區(qū),另一個用作接收緩沖區(qū),如圖6-25(b)所示。目前一百零六頁\總數(shù)一百三十六頁\編于十九點圖6-25雙機通信時緩沖區(qū)的設置目前一百零七頁\總數(shù)一百三十六頁\編于十九點6.7.3環(huán)形緩沖區(qū)

1.環(huán)形緩沖區(qū)的組成

(1)多個緩沖區(qū)。在環(huán)形緩沖中包括多個緩沖區(qū),其每個緩沖區(qū)的大小相同。作為輸入的多緩沖區(qū)可分為三種類型:用于裝輸入數(shù)據(jù)的空緩沖區(qū)R、已裝滿數(shù)據(jù)的緩沖區(qū)G以及計算進程正在使用的現(xiàn)行工作緩沖區(qū)C,如圖6-26所示。目前一百零八頁\總數(shù)一百三十六頁\編于十九點圖6-26環(huán)形緩沖區(qū)目前一百零九頁\總數(shù)一百三十六頁\編于十九點2.環(huán)形緩沖區(qū)的使用

計算進程和輸入進程可利用下述兩個過程來使用形環(huán)緩沖區(qū)。

(1)Getbuf過程。

(2)Releasebuf過程。目前一百一十頁\總數(shù)一百三十六頁\編于十九點3.進程之間的同步問題

使用輸入循環(huán)緩沖,可使輸入進程和計算進程并行執(zhí)行。相應地,指針Nexti和指針Nextg將不斷地沿著順時針方向移動,這樣就可能出現(xiàn)下述兩種情況:

(1)Nexti指針追趕上Nextg指針。

(2)Nextg指針追趕上Nexti指針。目前一百一十一頁\總數(shù)一百三十六頁\編于十九點6.7.4緩沖池(BufferPool)

1.緩沖池的組成

緩沖池管理著多個緩沖區(qū),每個緩沖區(qū)由用于標識和管理的緩沖首部以及用于存放數(shù)據(jù)的緩沖體兩部分組成。緩沖首部一般包括緩沖區(qū)號、設備號、設備上的數(shù)據(jù)塊號、同步信號量以及隊列鏈接指針等。目前一百一十二頁\總數(shù)一百三十六頁\編于十九點

為了管理上的方便,一般將緩沖池中具有相同類型的緩沖區(qū)鏈接成一個隊列,于是可形成以下三個隊列:

(1)空白緩沖隊列emq。

(2)輸入隊列inq。

(3)輸出隊列outq。目前一百一十三頁\總數(shù)一百三十六頁\編于十九點2.?Getbuf過程和Putbuf過程

在數(shù)據(jù)結構課程中,曾介紹過隊列和對隊列進行操作的兩個過程:

第一個是Addbuf(type,number)過程。該過程用于將由參數(shù)number所指示的緩沖區(qū)B掛在type隊列上。

第二個是Takebuf(type)過程。它用于從type所指示的隊列的隊首摘下一個緩沖區(qū)。目前一百一十四頁\總數(shù)一百三十六頁\編于十九點3.緩沖區(qū)的工作方式

緩沖區(qū)可以工作在如下四種工作方式。目前一百一十五頁\總數(shù)一百三十六頁\編于十九點

6.8磁盤存儲器的性能和調度

6.8.1磁盤性能簡述

磁盤設備是一種相當復雜的機電設備,在此僅對磁盤的某些性能,如數(shù)據(jù)的組織、磁盤的類型和訪問時間等方面做扼要的闡述。目前一百一十六頁\總數(shù)一百三十六頁\編于十九點1.數(shù)據(jù)的組織和格式

磁盤設備可包括一個或多個物理盤片,每個磁盤片分一個或兩個存儲面(Surface)(見圖6-28(a)),每個盤面上有若干個磁道(Track),磁道之間留有必要的間隙(Gap)。為使處理簡單起見,在每條磁道上可存儲相同數(shù)目的二進制位。目前一百一十七頁\總數(shù)一百三十六頁\編于十九點圖6-28磁盤的結構和布局目前一百一十八頁\總數(shù)一百三十六頁\編于十九點一個物理記錄存儲在一個扇區(qū)上,磁盤上存儲的物理記錄塊數(shù)目是由扇區(qū)數(shù)、磁道數(shù)以及磁盤面數(shù)所決定的。 【例如】一個10GB容量的磁盤,有8個雙面可存儲盤片,共16個存儲面(盤面),每面有16383個磁道(也稱柱面),63個扇區(qū)。每個扇區(qū)600個字節(jié)。目前一百一十九頁\總數(shù)一百三十六頁\編于十九點圖6-29磁盤的格式化目前一百二十頁\總數(shù)一百三十六頁\編于十九點2.磁盤的類型

對于磁盤,可以從不同的角度進行分類。最常見的有:將磁盤分成硬盤和軟盤、單片盤和多片盤、固定頭磁盤和活動頭(移動頭)磁盤等。下面僅對固定頭磁盤和移動頭磁盤做些介紹。

(1)固定頭磁盤。

(2)移動頭磁盤。目前一百二十一頁\總數(shù)一百三十六頁\編于十九點【訪問時間】1、尋道時間Ts

:將磁頭從當前位置移到指定磁道所經(jīng)歷時間,該時間是啟動磁臂的時間s與磁頭移動n條磁道所花費的時間之和,即

Ts=m×n+s其中,m是一常數(shù),與磁盤驅動器的速度有關。對于一般磁盤,m=0.2;對于高速磁盤,m≤0.1,磁臂的啟動時間約為2ms。這樣,對于一般的溫盤,其尋道時間將隨尋道距離的增加而增大,大體上是5~30ms。目前一百二十二頁\總數(shù)一百三十六頁\編于十九點2、旋轉延遲時間Tr:指定扇區(qū)移動到磁頭下面所經(jīng)歷時間。

不同的磁盤類型中,旋轉速度至少相差一個數(shù)量級,如軟盤為300r/min,硬盤一般為7200~15000r/min,甚至更高。對于磁盤旋轉延遲時間而言,如硬盤,旋轉速度為15000r/min,每轉需時4ms,平均旋轉延遲時間Tr為2ms;而軟盤,其旋轉速度為300r/min或600r/min,這樣,平均Tr

為50~100ms。目前一百二十三頁\總數(shù)一百三十六頁\編于十九點3、傳輸時間Tt:指把數(shù)據(jù)從磁盤讀出或向磁盤寫入數(shù)據(jù)所經(jīng)歷的時間。Tt的大小與每次所讀/寫的字節(jié)數(shù)b和旋轉速度有關:其中,r為磁盤每秒鐘的轉數(shù);N為一條磁道上的字節(jié)數(shù),當一次讀/寫的字節(jié)數(shù)相當于半條磁道上的字節(jié)數(shù)時,Tt與Tr相同。因此,可將訪問時間Ta表示為目前一百二十四頁\總數(shù)一百三十六頁\編于十九點【例】讀一個128KB大小的文件

(1)文件由8個連續(xù)磁道(每個磁道32個扇區(qū))上的256個扇區(qū)構成:

20ms+(9.2ms+16.7ms)*8=220ms;

其中,柱面定位時間為20ms,旋轉延遲時間為9.2ms,32扇區(qū)數(shù)據(jù)傳送時間為16.7ms;

(2)文件由256個隨機分布的扇區(qū)構成: (20ms+9.2ms+0.5ms)*256=7373ms;

其中,

溫馨提示

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

評論

0/150

提交評論