《計算機(jī)操作系統(tǒng)》第三版設(shè)備管理復(fù)習(xí) 第五章_第1頁
《計算機(jī)操作系統(tǒng)》第三版設(shè)備管理復(fù)習(xí) 第五章_第2頁
《計算機(jī)操作系統(tǒng)》第三版設(shè)備管理復(fù)習(xí) 第五章_第3頁
《計算機(jī)操作系統(tǒng)》第三版設(shè)備管理復(fù)習(xí) 第五章_第4頁
《計算機(jī)操作系統(tǒng)》第三版設(shè)備管理復(fù)習(xí) 第五章_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、第五章 設(shè) 備 管 理,5.1 I/O系統(tǒng) 5.2 I/O控制方式 5.3 緩沖管理 5.4 I/O軟件 5.5 設(shè)備分配 5.6 磁盤存儲器的管理,1I/O設(shè)備的重要的性能指標(biāo),I/O設(shè)備的類型繁多,從OS觀點看,其重要的性能指標(biāo)有: 設(shè)備使用特性 數(shù)據(jù)傳輸速率 數(shù)據(jù)的傳輸單位 設(shè)備共享屬性等,2. 按設(shè)備的使用特性分類,按設(shè)備的使用特性,可將設(shè)備分為兩類。 第一類是存儲設(shè)備, 第二類就是輸入/輸出設(shè)備,又具體可分為輸入設(shè)備、輸出設(shè)備和交互式設(shè)備。,3. 按傳輸速率分類,按傳輸速度的高低,可將I/O設(shè)備分為三類。 第一類是低速設(shè)備, 第二類是中速設(shè)備, 第三類是高速設(shè)備。,4. 按信息交換的

2、單位分類,按信息交換的單位,可將I/O設(shè)備分成兩類。 第一類是塊設(shè)備(Block Device), 第二類是字符設(shè)備(Character Device)。,5. 按設(shè)備的共享屬性分類,這種分類方式可將I/O設(shè)備分為如下三類: (1) 獨(dú)占設(shè)備。 (2) 共享設(shè)備。 (3) 虛擬設(shè)備。,6設(shè)備控制器的基本功能,1) 接收和識別命令 2) 數(shù)據(jù)交換:這是指實現(xiàn)CPU與控制器、控制器與設(shè)備之間的數(shù)據(jù)交換。 3) 標(biāo)識和報告設(shè)備的狀態(tài) 4) 地址識別:設(shè)備控制器必須能夠識別它所控制的每個設(shè)備的地址。 5) 數(shù)據(jù)緩沖: 在輸出時,用此緩沖器暫存由主機(jī)高速傳來的數(shù)據(jù),然后才以I/O設(shè)備所具有的速率將緩沖器

3、中的數(shù)據(jù)傳送給I/O設(shè)備; 在輸入時,緩沖器則用于暫存從I/O設(shè)備送來的數(shù)據(jù),待接收到一批數(shù)據(jù)后,再將緩沖器中的數(shù)據(jù)高速地傳送給主機(jī)。 6) 差錯控制:對由I/O設(shè)備傳送來的數(shù)據(jù)進(jìn)行差錯檢測。若發(fā)現(xiàn)傳送中出現(xiàn)了錯誤,通常是將差錯檢測碼置位,并向CPU報告,于是CPU將本次傳送來的數(shù)據(jù)作廢,并重新進(jìn)行一次傳送。這樣便可保證數(shù)據(jù)輸入的正確性。,7I/O通道(I/O Channel)設(shè)備的引入目的,雖然在CPU與I/O設(shè)備之間增加了設(shè)備控制器后,已能大大減少CPU對I/O的干預(yù),但當(dāng)主機(jī)所配置的外設(shè)很多時,CPU的負(fù)擔(dān)仍然很重。 為此,在CPU和設(shè)備控制器之間又增設(shè)了通道。其主要目的是 為了建立獨(dú)立

4、的I/O操作,不僅使數(shù)據(jù)的傳送能獨(dú)立于CPU,而且也希望有關(guān)對I/O操作的組織、 管理及其結(jié)束處理盡量獨(dú)立,以保證CPU有更多的時間去進(jìn)行數(shù)據(jù)處理; 或者說,其目的是使一些原來由CPU處理的I/O任務(wù)轉(zhuǎn)由通道來承擔(dān),從而把CPU從繁雜的I/O任務(wù)中解脫出來。,8. 通道的分類,按照信息交換方式不同,一個系統(tǒng)中可設(shè)立三種類型的通道: 字節(jié)多路通道 數(shù)組選擇通道 數(shù)組多路通道,以字節(jié)為單位交叉地傳送數(shù)據(jù),它主要用來連接大量的低速設(shè)備,如終端、打印機(jī)等。 可連接多個子通道,同時控制多臺設(shè)備。,以數(shù)據(jù)塊為單位成批傳送數(shù)據(jù),每次傳送一批數(shù)據(jù),但一次只能控制一臺設(shè)備進(jìn)行I/O操作。 具有傳送速度高的特點,

5、因而被用來連接磁盤機(jī)等高速外部設(shè)備。可連接多多臺設(shè)備。 當(dāng)完成一臺設(shè)備的I/O操作后再選擇另一臺設(shè)備。,以塊為單位傳送數(shù)據(jù),它具有傳送速率高和能分時操作不同的設(shè)備等優(yōu)點,是字節(jié)多路通道和選擇通道的綜合。 數(shù)組多路通道主要用來連接中速塊設(shè)備,如磁帶機(jī)等。,9. I/O控制方式,程序I/O方式:無中斷機(jī)構(gòu),處理機(jī)對I/O設(shè)備的控制采取直接控制。 中斷驅(qū)動I/O控制方式:即當(dāng)某進(jìn)程要啟動某個I/O設(shè)備工作時,便由CPU向相應(yīng)的設(shè)備控制器發(fā)出一條I/O命令,然后立即返回繼續(xù)執(zhí)行原來的任務(wù)。設(shè)備控制器于是按照該命令的要求去控制指定I/O設(shè)備。此時,CPU與I/O設(shè)備并行操作。 直接存儲器訪問(DMA)I

6、/O控制方式: (1) 數(shù)據(jù)傳輸?shù)幕締挝皇菙?shù)據(jù)塊,即在CPU與I/O設(shè)備之間,每次傳送至少一個數(shù)據(jù)塊; (2) 所傳送的數(shù)據(jù)是從設(shè)備直接送入內(nèi)存的,或者相反; (3) 僅在傳送一個或多個數(shù)據(jù)塊的開始和結(jié)束時,才需CPU干預(yù),整塊數(shù)據(jù)的傳送是在控制器的控制下完成的。 I/O通道控制方式 I/O通道方式是DMA方式的發(fā)展,它可進(jìn)一步減少CPU的干預(yù),即把對一個數(shù)據(jù)塊的讀(或?qū)?為單位的干預(yù)減少為對一組數(shù)據(jù)塊的讀(或?qū)?及有關(guān)的控制和管理為單位的干預(yù)。 同時,又可實現(xiàn)CPU、通道和I/O設(shè)備三者的并行操作,從而更有效地提高整個系統(tǒng)的資源利用率。,10. 緩沖的引入,(1) 緩和CPU與I/O設(shè)備間

7、速度不匹配的矛盾。 (2) 減少對CPU的中斷頻率,放寬對CPU中斷響應(yīng)時間的限制。 (3) 提高CPU和I/O設(shè)備之間的并行性。,11. 緩沖池的組成,對于既可用于輸入又可用于輸出的公用緩沖池,其中至少應(yīng)含有以下三種類型的緩沖區(qū): 空(閑)緩沖區(qū); 裝滿輸入數(shù)據(jù)的緩沖區(qū); 裝滿輸出數(shù)據(jù)的緩沖區(qū)。,12緩沖區(qū)的工作方式,緩沖區(qū)可以工作在四種工作方式下 收容輸入 提取輸入 收容輸出 提取輸出,13 .I/O軟件應(yīng)達(dá)到下面的幾個目標(biāo),具體而言,I/O軟件應(yīng)達(dá)到下面的幾個目標(biāo): 1) 與具體設(shè)備無關(guān) 2) 統(tǒng)一命名:系統(tǒng)中對各類設(shè)備采取預(yù)先設(shè)計的、統(tǒng)一的邏輯名稱進(jìn)行命名,所有軟件都以邏輯名稱訪問設(shè)備

8、。 3) 對錯誤的處理:對于錯誤的處理,應(yīng)該盡可能在接近硬件的層面處理,在低層軟件能夠解決的錯誤就不讓高層軟件感知,只有低層軟件解決不了的錯誤才通知高層軟件解決。 4) 緩沖技術(shù) 5) 設(shè)備的分配和釋放 6) I/O控制方式,14.I/O軟件各層次及其功能,各層次及其功能如下所述: (1) 用戶層軟件:實現(xiàn)與用戶交互的接口,用戶可直接調(diào)用在用戶層提供的、與I/O操作有關(guān)的庫函數(shù),對設(shè)備進(jìn)行操作。 (2) 設(shè)備獨(dú)立性軟件:負(fù)責(zé)實現(xiàn)與設(shè)備驅(qū)動器的統(tǒng)一接口、設(shè)備命名、設(shè)備的保護(hù)以及設(shè)備的分配與釋放等,同時為設(shè)備管理和數(shù)據(jù)傳送提供必要的存儲空間。 (3) 設(shè)備驅(qū)動程序:與硬件直接相關(guān),負(fù)責(zé)具體實現(xiàn)系統(tǒng)

9、對設(shè)備發(fā)出的操作指令,驅(qū)動I/O設(shè)備工作的驅(qū)動程序。 (4) 中斷處理程序:用于保存被中斷進(jìn)程的CPU環(huán)境,轉(zhuǎn)入相應(yīng)的中斷處理程序進(jìn)行處理,處理完后再恢復(fù)被中斷進(jìn)程的現(xiàn)場后返回到被中斷進(jìn)程。,圖5-16 I/O系統(tǒng)的層次及功能,15獨(dú)占設(shè)備的分配程序,1) 分配設(shè)備 首先根據(jù)I/O請求中的物理設(shè)備名,查找系統(tǒng)設(shè)備表(SDT),從中找出該設(shè)備的DCT, 再根據(jù)DCT中的設(shè)備狀態(tài)字段,可知該設(shè)備是否正忙。 若忙,便將請求I/O進(jìn)程的PCB掛在設(shè)備隊列上; 否則,便按照一定的算法來計算本次設(shè)備分配的安全性。如果不會導(dǎo)致系統(tǒng)進(jìn)入不安全狀態(tài),便將設(shè)備分配給請求進(jìn)程;否則,仍將其PCB插入設(shè)備等待隊列。,

10、2) 分配控制器 在系統(tǒng)把設(shè)備分配給請求I/O的進(jìn)程后,再到其DCT中找出與該設(shè)備連接的控制器的COCT,從COCT的狀態(tài)字段中可知該控制器是否忙碌。 若忙,便將請求I/O進(jìn)程的PCB掛在該控制器的等待隊列上;否則, 便將該控制器分配給進(jìn)程。 3) 分配通道 在該COCT中又可找到與該控制器連接的通道的CHCT,再根據(jù)CHCT內(nèi)的狀態(tài)信息,可知該通道是否忙碌。 若忙,便將請求I/O的進(jìn)程掛在該通道的等待隊列上; 否則,將該通道分配給進(jìn)程。只有在設(shè)備、 控制器和通道三者都分配成功時,這次的設(shè)備分配才算成功。然后,便可啟動該I/O設(shè)備進(jìn)行數(shù)據(jù)傳送。,16. SPOOLing技術(shù),在主機(jī)的直接控制下

11、,實現(xiàn)脫機(jī)輸入、輸出功能。此時的外圍操作與CPU對數(shù)據(jù)的處理同時進(jìn)行,我們把這種在聯(lián)機(jī)情況下實現(xiàn)的同時外圍操作稱為SPOOLing(Simultaneaus Periphernal Operating On Line),或稱為假脫機(jī)操作。,打印機(jī)是經(jīng)常要用到的輸出設(shè)備,屬于獨(dú)占設(shè)備。 以UNIX管理I/O設(shè)備為例,打印機(jī)可以看成是一個特殊文件,任意一個進(jìn)程打開打印機(jī)的特殊文件很容易做到,只需按照規(guī)定格式使用open系統(tǒng)調(diào)用即可;但是假若一個進(jìn)程在打開打印機(jī)特殊文件以后的幾個小時內(nèi)無所事事會出現(xiàn)什么情況呢?,17共享打印機(jī)Spooling技術(shù)應(yīng)用,利用SPOOLing技術(shù),可將獨(dú)占設(shè)備的打印機(jī)改

12、造為一臺可供多個用戶共享的設(shè)備,從而提高設(shè)備的利用率,也方便了用戶。共享打印機(jī)技術(shù)已被廣泛地用于多用戶系統(tǒng)和局域網(wǎng)絡(luò)中。 當(dāng)用戶進(jìn)程請求打印輸出時,SPOOLing系統(tǒng)同意為它打印輸出,但并不真正立即把打印機(jī)分配給該用戶進(jìn)程,而只為它做兩件事: 由輸出進(jìn)程在輸出井中為之申請一個空閑磁盤塊區(qū),并將要打印的數(shù)據(jù)送入其中; 輸出進(jìn)程再為用戶進(jìn)程申請一張空白的用戶請求打印表,并將用戶的打印要求填入其中,再將該表掛到請求打印隊列上。 如果還有進(jìn)程要求打印輸出,系統(tǒng)仍可接受該請求,也同樣為該進(jìn)程做上述兩件事。,如果打印機(jī)空閑, 輸出進(jìn)程將從請求打印隊列的隊首取出一張請求打印表, 根據(jù)表中的要求將要打印的數(shù)

13、據(jù),從輸出井傳送到內(nèi)存緩沖區(qū), 再由打印機(jī)進(jìn)行打印。 打印完后,輸出進(jìn)程再查看請求打印隊列中是否還有等待打印的請求表。 若有,又取出隊列中的第一張表,并根據(jù)其中的要求進(jìn)行打印,如此下去,直至請求打印隊列為空,輸出進(jìn)程才將自己阻塞起來。僅當(dāng)下次再有打印請求時,輸出進(jìn)程才被喚醒。,18SPOOLing系統(tǒng)的特點,(1) 提高了I/O的速度。這里,對數(shù)據(jù)所進(jìn)行的I/O操作,已從對低速I/O設(shè)備進(jìn)行的I/O操作,演變?yōu)閷斎刖蜉敵鼍袛?shù)據(jù)的存取,如同脫機(jī)輸入輸出一樣,提高了I/O速度,緩和了CPU與低速I/O設(shè)備之間速度不匹配的矛盾。 (2) 將獨(dú)占設(shè)備改造為共享設(shè)備。因為在SPOOLing系統(tǒng)中,

14、實際上并沒為任何進(jìn)程分配設(shè)備,而只是在輸入井或輸出井中為進(jìn)程分配一個存儲區(qū)和建立一張I/O請求表。這樣,便把獨(dú)占設(shè)備改造為共享設(shè)備。 (3) 實現(xiàn)了虛擬設(shè)備功能。宏觀上,雖然是多個進(jìn)程在同時使用一臺獨(dú)占設(shè)備,而對于每一個進(jìn)程而言,他們都會認(rèn)為自己是獨(dú)占了一個設(shè)備。當(dāng)然,該設(shè)備只是邏輯上的設(shè)備。SPOOLing系統(tǒng)實現(xiàn)了將獨(dú)占設(shè)備變換為若干臺對應(yīng)的邏輯設(shè)備的功能。,19磁盤訪問時間,尋道(時間):磁頭移動定位到指定磁道 旋轉(zhuǎn)延遲(時間):等待指定扇區(qū)從磁頭下旋轉(zhuǎn)經(jīng)過 數(shù)據(jù)傳輸(時間):數(shù)據(jù)在磁盤與內(nèi)存之間的實際傳輸,可見,適當(dāng)?shù)丶袛?shù)據(jù)(不要太零散)傳輸,將有利于提高傳輸效率。,19.磁盤調(diào)度,

15、1先來先服務(wù)(FCFS,F(xiàn)irst Come First Served) 2最短尋道時間優(yōu)先(SSTF,Shortest Seek Time First) 3掃描(SCAN)算法 4循環(huán)掃描(CSCAN)算法 5NStepSCAN和FSCAN調(diào)度算法,1先來先服務(wù)(FCFS,F(xiàn)irst Come First Served),這是一種最簡單的磁盤調(diào)度算法。它根據(jù)進(jìn)程請求訪問磁盤的先后次序進(jìn)行調(diào)度。 例如:有9個進(jìn)程先后提出磁盤I/O請求時,從100磁道開始,進(jìn)程號(請求者)按他們發(fā)出請求的先后次序如下:55,58,39,18,90,160,150,38,184,圖5-25 FCFS調(diào)度算法,圖5

16、-25示出了有9個進(jìn)程先后提出磁盤I/O請求時,按FCFS算法進(jìn)行調(diào)度的情況。這里將進(jìn)程號(請求者)按他們發(fā)出請求的先后次序排隊。這樣,平均尋道距離為55.3條磁道, 與后面即將講到的幾種調(diào)度算法相比,其平均尋道距離較大,故FCFS算法僅適用于請求磁盤I/O的進(jìn)程數(shù)目較少的場合。,先來先服務(wù),此算法的優(yōu)點是 公平、簡單,且每個進(jìn)程的請求都能依次地得到處理,不會出現(xiàn)某一進(jìn)程的請求長期得不到滿足的情況。 此算法的缺點是 但此算法由于未對尋道進(jìn)行優(yōu)化,致使平均尋道時間可能較長。,2最短尋道時間優(yōu)先(SSTF,Shortest Seek Time First),該算法選擇這樣的進(jìn)程:其要求訪問的磁道與

17、當(dāng)前磁頭所在的磁道距離最近,以使每次的尋道時間最短。 例如:有9個進(jìn)程先后提出磁盤I/O請求時,從100磁道開始,進(jìn)程號(請求者)按他們發(fā)出請求的先后次序如下:55,58,39,18,90,160,150,38,184 但這種算法不能保證平均尋道時間最短。 比較圖5-25和圖5-26可以看出,SSTF算法的平均每次磁頭移動距離明顯低于FCFS的距離,因而SSTF較之FCFS有更好的尋道性能,故過去曾一度被廣泛采用。,圖5-26 SSTF調(diào)度算法,3掃描(SCAN)算法,1) 進(jìn)程“饑餓”現(xiàn)象 SSTF算法雖然能獲得較好的尋道性能,但卻可能導(dǎo)致某個進(jìn)程發(fā)生“饑餓”(Starvation)現(xiàn)象。因

18、為只要不斷有新進(jìn)程的請求到達(dá),且其所要訪問的磁道與磁頭當(dāng)前所在磁道的距離較近,這種新進(jìn)程的I/O請求必然優(yōu)先滿足。 對SSTF算法略加修改后所形成的SCAN算法,即可防止老進(jìn)程出現(xiàn)“饑餓”現(xiàn)象。,2) SCAN算法,該算法不僅考慮到欲訪問的磁道與當(dāng)前磁道間的距離,更優(yōu)先考慮的是磁頭當(dāng)前的移動方向。 例如,當(dāng)磁頭正在自里向外移動時,SCAN算法所考慮的下一個訪問對象,應(yīng)是其欲訪問的磁道既在當(dāng)前磁道之外,又是距離最近的。這樣自里向外地訪問,直至再無更外的磁道需要訪問時,才將磁臂換向為自外向里移動。這時,同樣也是每次選擇這樣的進(jìn)程來調(diào)度,即要訪問的磁道在當(dāng)前位置內(nèi)距離最近者,這樣,磁頭又逐步地從外向里移動,直至再無更里面的磁道要訪問,從而避免了出現(xiàn)“饑餓”現(xiàn)象。 由于在這種算法中磁頭移動的規(guī)律頗似電梯的運(yùn)行,因而又常稱之為電梯調(diào)度算法。,例如:有9個進(jìn)程先后提出磁盤I/O請求時,從100磁道開始,按磁道號增加方向訪問,進(jìn)程號(請求者)按他們發(fā)

溫馨提示

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

最新文檔

評論

0/150

提交評論