昆明理工大學(xué)付湘瓊操作系統(tǒng)設(shè)備管理_第1頁
昆明理工大學(xué)付湘瓊操作系統(tǒng)設(shè)備管理_第2頁
昆明理工大學(xué)付湘瓊操作系統(tǒng)設(shè)備管理_第3頁
昆明理工大學(xué)付湘瓊操作系統(tǒng)設(shè)備管理_第4頁
昆明理工大學(xué)付湘瓊操作系統(tǒng)設(shè)備管理_第5頁
已閱讀5頁,還剩140頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第五章設(shè)備管理

在現(xiàn)代計算機(jī)系統(tǒng)中,為了實(shí)現(xiàn)與外界間的信息交往,更好地方便用戶使用計算機(jī),一般都配置了一系列各種類型的外圍設(shè)備,例如:鍵盤,打印機(jī),顯示器,磁帶機(jī),卡片機(jī),磁盤,磁鼓等。這些外圍設(shè)備,由于其構(gòu)造和物理特性各異,故在應(yīng)用方式上風(fēng)格各不相同,在管理方法上也有決然差別。

為了有效地完成對各類外圍設(shè)備的管理,更好地提高外設(shè)資源的利用率,并在用戶面前提供一種方便、統(tǒng)一的接口界面,在操作系統(tǒng)的設(shè)備管理子系統(tǒng)中,承擔(dān)了各種設(shè)備的分配、管理及I/O操作控制任務(wù)。讓用戶使用的設(shè)備與系統(tǒng)中實(shí)際連接的物理設(shè)備分離開,使用戶在不需要了解底層設(shè)備資源的狀況下,就可以采用邏輯設(shè)備名方便地使用外圍設(shè)備,而邏輯設(shè)備到物理設(shè)備的轉(zhuǎn)換工作則由系統(tǒng)自己完成。

本章所涉及的內(nèi)容,主要是針對在現(xiàn)代計算機(jī)系統(tǒng)中,為充分合理利用各類設(shè)備資源而采起的各種分配管理策略,以及與之有關(guān)的各類技術(shù)問題,作出進(jìn)一步的深入討論,弄清設(shè)備管理中的各功能是如何實(shí)現(xiàn)的。在學(xué)習(xí)中,應(yīng)以設(shè)備的類型劃分為基礎(chǔ),正確區(qū)分獨(dú)占資源與共享資源的不同管理辦法,并對虛擬設(shè)備的任務(wù)是什么,通道技術(shù)、緩沖技術(shù)、中斷技術(shù)起什么作用,數(shù)據(jù)在I/O系統(tǒng)中的傳輸方式有幾種等方面的概念有一清晰的認(rèn)識,對設(shè)備管理的一般原理和方法形成全面、總體的了解。5.1設(shè)備類型和設(shè)備管理子系統(tǒng)的功能5.2設(shè)備管理中的兩種支撐技術(shù)5.3I/O系統(tǒng)中數(shù)據(jù)的傳輸控制5.4設(shè)備分配5.5共享設(shè)備的驅(qū)動調(diào)度5.6虛擬設(shè)備5.1設(shè)備類型和設(shè)備管理子系統(tǒng)的功能5.1.1設(shè)備類型

在計算機(jī)系統(tǒng)中,除了作為操作處理時使用的CPU以及存儲信息時用的存儲器之外,還有一類比較重要的硬件資源——I/O設(shè)備。I/O設(shè)備是計算機(jī)與外界進(jìn)行信息交換的裝置,因此,在各種類型的計算機(jī)中都配置有一定數(shù)量的I/O設(shè)備,這些設(shè)備可以從不同的角度進(jìn)行分類。常見的有下列幾種:存儲設(shè)備輸入輸出設(shè)備終端設(shè)備脫機(jī)設(shè)備外圍設(shè)備磁帶機(jī)硬盤光盤繪圖儀掃描儀鍵盤打印機(jī)1.以設(shè)備的隸屬關(guān)系劃分:1)系統(tǒng)設(shè)備(SystemDevice):這類設(shè)備屬于計算機(jī)中最基本的標(biāo)準(zhǔn)配置設(shè)備,常常在操作系統(tǒng)啟動時自動完成設(shè)備的登錄。如打印機(jī)、鍵盤、顯示器和磁盤驅(qū)動器等都屬于這種類型的設(shè)備。2)用戶設(shè)備(UserDevice):這類設(shè)備屬于非標(biāo)準(zhǔn)配置,可由用戶根據(jù)實(shí)際需要連入系統(tǒng),在使用之前通過運(yùn)行對應(yīng)的驅(qū)動程序進(jìn)行安裝、登錄。如繪圖儀、掃描儀等。2.按信息組織方式劃分:1)字塊設(shè)備(BlockDevice):這種設(shè)備也稱為存儲型設(shè)備,在其上信息的組織、安排,都以塊為單位進(jìn)行,在進(jìn)行存取訪問時,也是以塊進(jìn)行計量的。常見的有磁盤驅(qū)動器、磁帶機(jī)、磁鼓等。2)字符設(shè)備(CharacterDevice):字符設(shè)備上的信息,是以字符為單位來組織安排的,這類設(shè)備也稱為輸入/輸出型設(shè)備.在信息存取調(diào)用時,都是以字符為單位來訪問的。如鍵盤、紙帶輸入機(jī)、磁卡機(jī)等屬于該類型設(shè)備。3.從資源分配角度進(jìn)行劃分1)獨(dú)占設(shè)備(IndependenceDevice):一次只允許分給一個用戶作業(yè)使用的設(shè)備。設(shè)備一旦被分出去后,在作業(yè)的整個執(zhí)行期間都被單獨(dú)占用,別的作業(yè)不能與之共用,必須等占用釋放后才可再用。而且,這類設(shè)備如果分配不當(dāng),可能會造成死鎖。多數(shù)是一些慢速設(shè)備,如磁卡機(jī)、打印機(jī)、A/D、D/A轉(zhuǎn)換器等。2)共享設(shè)備(ShareDevice):一次可以允許多個作業(yè)同時進(jìn)行訪問的設(shè)備。各作業(yè)在執(zhí)行期間內(nèi),可以交替分時地對共享設(shè)備進(jìn)行占用。它是一個作業(yè)還未撤離設(shè)備,另一個作業(yè)便可使用的設(shè)備。常見的有磁盤、磁鼓等。3)虛擬設(shè)備(VirtualDevice):嚴(yán)格來講,虛擬設(shè)備是一種設(shè)備管理的技術(shù)。采用該技術(shù)可以使慢速獨(dú)占設(shè)備的使用方式變?yōu)楣蚕碓O(shè)備的使用方式,以利于獨(dú)占設(shè)備使用效率的提高。在現(xiàn)代計算機(jī)系統(tǒng)中,主要采用了SPOOLING系統(tǒng)來實(shí)現(xiàn)以完成此功能。5.1.2設(shè)備管理子系統(tǒng)的主要功能

設(shè)備管理屬于操作系統(tǒng)中最煩瑣、最具復(fù)雜性的部分。為了有效的提高系統(tǒng)中設(shè)備的效率,在設(shè)備管理中不僅涉及了I/O中斷、緩沖及通道技術(shù),而且還包括了各種類型設(shè)備的分配、啟動以及虛擬設(shè)備等多方面的管理。為了對物理特性各異的設(shè)備,在調(diào)用時具有統(tǒng)一的格式和界面,以方便用戶,在設(shè)備管理中應(yīng)追求如下的目標(biāo):

(1)建立方便、一致的用戶界面

(2)盡量使CPU與外圍設(shè)備、外設(shè)與外設(shè)之間的并行處理能力提高

(3)充分發(fā)揮I/O設(shè)備的效率

為實(shí)現(xiàn)目標(biāo)要求,作為設(shè)備管理子系統(tǒng),應(yīng)具備以下功能:

1)完成設(shè)備的分配和回收。對類型不相同的設(shè)備,采取不同的分配策略將設(shè)備及其它相關(guān)的硬件分配給申請設(shè)備的進(jìn)程,對當(dāng)前不能分配資源的進(jìn)程,應(yīng)將它們排到對應(yīng)的等待隊列中。進(jìn)程使用完設(shè)備后,系統(tǒng)應(yīng)及時收回。2)實(shí)現(xiàn)緩沖區(qū)的管理。CPU的運(yùn)行速度往往高于外設(shè)的處理速度,為了緩解兩者間的矛盾,使外設(shè)與CPU在處理速度上盡量匹配,系統(tǒng)通過設(shè)置緩沖區(qū)來完成此任務(wù)。緩沖區(qū)的分配、回收及管理工作由設(shè)備管理部分實(shí)現(xiàn).3)控制I/O設(shè)備的啟動。在計算機(jī)中,為保證設(shè)備調(diào)用的靈活性和可靠性,并使用戶負(fù)擔(dān)減輕,設(shè)備的啟動由系統(tǒng)自己完成,不允許用戶直接啟動設(shè)備。4)進(jìn)行I/O事件的中斷處理。具有通道的計算機(jī)系統(tǒng)中,I/O操作的控制是由通道執(zhí)行通道程序來實(shí)現(xiàn)的。通道與CPU的協(xié)調(diào)操作依靠I/O中斷信號來指揮,當(dāng)I/O中斷信號出現(xiàn)時,設(shè)備管理負(fù)責(zé)I/O中斷事件的處理。5)管理共享設(shè)備的驅(qū)動調(diào)度。共享設(shè)備在使用上允許多個作業(yè)交替啟動占用不同的區(qū)域,故對它們不能預(yù)分配,用時才分。這使分配變?yōu)槭裁磿r候?yàn)檎l服務(wù)的問題,即驅(qū)動調(diào)度問題。6)提供虛擬設(shè)備。為提高獨(dú)占設(shè)備的利用率,用共享設(shè)備模擬獨(dú)占設(shè)備,使獨(dú)占設(shè)備的使用變?yōu)楣蚕硎褂谩檫_(dá)到此目的,在設(shè)備管理中提供了一個SPOOLING系統(tǒng)。5.2設(shè)備管理中的兩種支撐技術(shù)5.2.1緩沖技術(shù)

在設(shè)備管理中,采用通道技術(shù),雖可以實(shí)現(xiàn)CPU與外設(shè)的并行工作方式,但CPU的速度一般總是比外設(shè)快許多。為了進(jìn)一步改善CPU與外設(shè)之間的速度不匹配的矛盾,解決通道占用時的阻塞現(xiàn)象,提高CPU通道及外設(shè)設(shè)備之間的并行性,延長CPU對中斷的響應(yīng)時間,減少CPU的中斷次數(shù),有效地延長設(shè)備使用時間,并有效解決物理記錄大小與邏輯記錄大小不一致的問題,在操作系統(tǒng)中引入了緩沖技術(shù)。1、緩沖技術(shù)的實(shí)現(xiàn)原理

當(dāng)某個進(jìn)程進(jìn)行數(shù)據(jù)輸出操作時,先將數(shù)據(jù)送入緩沖區(qū),當(dāng)緩沖區(qū)滿時再將緩沖區(qū)的內(nèi)容送到輸出設(shè)備上;反之,當(dāng)一個進(jìn)程完成輸入操作時,先將輸入設(shè)備上的數(shù)據(jù)送入緩沖區(qū),當(dāng)緩沖區(qū)滿時,再由CPU將數(shù)據(jù)取走。在緩沖管理中必須建立緩沖區(qū),緩沖區(qū)的設(shè)定有兩種方式:可以采用專門的硬件方法來實(shí)現(xiàn)緩沖,但會增加硬件成本,除了在關(guān)鍵的地方采用少量必要的硬件緩沖器外,在許多操作系統(tǒng)中都采用另一種稱為軟件緩沖的方式,即從主存空間中劃定出一個特殊的內(nèi)存區(qū)域作為緩沖區(qū)。單緩沖是在系統(tǒng)的CPU與外設(shè)之間只設(shè)立一個緩沖區(qū),輸入與輸出操作全部經(jīng)該緩沖區(qū)來完成。當(dāng)輸入設(shè)備占用緩沖區(qū)時,輸出設(shè)備必須處于等待狀態(tài);而當(dāng)輸出設(shè)備正在緩沖區(qū)將數(shù)據(jù)取走時,輸入設(shè)備也必須等待,其工作方式是串行完成的。此時,緩沖區(qū)成了可共享的臨界資源,必須互斥占用,不可能實(shí)現(xiàn)并行工作。單緩沖的結(jié)構(gòu)如圖5-15-1單緩沖cpu緩沖區(qū)輸入設(shè)備輸出設(shè)備2.雙緩沖管理

由于單緩沖不能實(shí)現(xiàn)并行處理,為避免單緩沖造成的設(shè)備利用率不高的狀況,可引入雙緩沖技術(shù),為輸入或輸出分配兩個緩沖區(qū)(如圖x-2),并讓兩個緩沖區(qū)交替工作,就可以形成并行操作的方式。當(dāng)輸入或是輸出時,外設(shè)先占用一個緩沖區(qū),等當(dāng)該緩沖區(qū)滿后,再轉(zhuǎn)去占用另一個緩沖區(qū),同時第一個緩沖區(qū)中的數(shù)據(jù)可被取走,緩沖區(qū)可以釋放,當(dāng)另一個緩沖區(qū)滿后,設(shè)備又可轉(zhuǎn)過來占用被釋放的緩沖區(qū)。這樣交替占用的緩沖區(qū),可以使CPU與外設(shè)間的并行度進(jìn)一步提高。x-2雙緩沖雙緩沖不可能徹底解決在實(shí)際系統(tǒng)中的并行操作,由于計算機(jī)中配備有多種外圍設(shè)備,CPU與外設(shè)的速度匹配全部由雙緩沖來承擔(dān)是不能勝任的。為此,必須使用多緩沖或是緩沖池結(jié)構(gòu)來解決并行問題。下面舉一個例子來說明雙緩沖的使用。有一批卡片要從卡片機(jī)上讀如,然后再從打印機(jī)上輸出,系統(tǒng)設(shè)置了兩個緩沖區(qū)buf1h和buf2,它們用于從卡片機(jī)上接受數(shù)據(jù),恰當(dāng)時交打印機(jī)輸出。假定卡片機(jī)的速度為1000卡/分,打印機(jī)的速度為1000行/分,先將一卡讀入buf1,當(dāng)打印buf1內(nèi)容時,將下一張卡送入buf2;當(dāng)打印完緩沖區(qū)buf1的內(nèi)容后,又啟動下一張卡送入buf1,同時buf2的內(nèi)容又被送去打印。反復(fù)重復(fù)上述過程,直到結(jié)束(如圖)。3.多緩沖及緩沖池管理

雙緩沖技術(shù)提高了I/O設(shè)備的并行度,但由于在計算機(jī)系統(tǒng)中,CPU的速度總是比外設(shè)快得多,真正要實(shí)現(xiàn)CPU與外設(shè)的并行操作,雙緩沖技術(shù)還不能達(dá)到要求,為此,在計算機(jī)中都采用多緩沖或緩沖池結(jié)構(gòu)。

多緩沖是把主存中的多個緩沖區(qū)組織成兩部分,一部分用做輸入緩沖區(qū),另一部分作為輸出緩沖區(qū)。

緩沖池則是將多個緩沖區(qū)連接成一個完整的區(qū)域,其中每個區(qū)既可以作為輸入又可以作為輸出用。多緩沖及緩沖池是系統(tǒng)中的共享資源,可供各進(jìn)程使用,由系統(tǒng)統(tǒng)一分配和管理。它的使用必須互斥地進(jìn)行。

下面討論的是緩沖池的管理方式。緩沖池是若干緩沖區(qū)的集合,每一個緩沖區(qū)有兩部分:一部分是標(biāo)識緩沖器的緩沖首都,另一部分是保存信息的緩沖體。緩沖區(qū)在緩沖池內(nèi)按使用情況鏈接成三條隊列:空閑緩沖區(qū)隊列,輸入緩沖區(qū)隊列及輸出緩沖區(qū)隊列??臻e緩沖區(qū)隊列:由空閑緩沖區(qū)連接而成,用em指針指向隊首。輸入緩沖區(qū)隊列:由裝滿輸入數(shù)據(jù)的緩沖區(qū)連接而成,用in指針指向隊首。輸出緩沖區(qū)隊列:由裝滿輸出數(shù)據(jù)的緩沖區(qū)連接而成,用out指針指向隊首.

緩沖首部 緩沖池緩沖池的工作原理如下:系統(tǒng)開始啟動時,所有緩沖區(qū)全部排入em隊列中。當(dāng)有輸入任務(wù)時,收容輸入進(jìn)程執(zhí)行讀數(shù)操作時,自動從em隊列的隊首取下一空閑緩沖區(qū),將輸入數(shù)據(jù)裝入其中,待滿后排入in隊列尾部。并對em隊列長度和in隊列長度作減一、加一操作。當(dāng)有輸出任務(wù)時,收容輸出進(jìn)程從em隊列中取下一個空閑緩沖區(qū),將輸出數(shù)據(jù)裝入,滿后排入隊列尾部。讓em隊列長度和out隊列長度作減一、加一操作。當(dāng)系統(tǒng)要從輸入緩沖區(qū)為用戶進(jìn)程取數(shù)時,由提取輸入進(jìn)程從in隊列中取出一緩沖區(qū),將其中的數(shù)據(jù)復(fù)制到用戶指定的區(qū)域。并將該緩沖區(qū)排如em隊列的尾部,同時,in隊列數(shù)減一,em隊列數(shù)加一。當(dāng)系統(tǒng)要從輸出緩沖區(qū)輸出數(shù)時,由提取輸出進(jìn)程從out隊列中取出一緩沖區(qū),將其中的數(shù)據(jù)送給輸出設(shè)備進(jìn)行操作。然后將該緩沖區(qū)排如em隊列的尾部,同時,out隊列數(shù)減一,em隊列數(shù)加一。

4.緩沖的作用

1)很好地解決了CPU與I/O設(shè)備速度不匹配的問題,使信息得以在系統(tǒng)中平滑傳輸。

2)提高了CPU、通道和設(shè)備之間的并行性,從而使系統(tǒng)的資源利用率及吞吐量增高。

3)減少了系統(tǒng)的中斷次數(shù),降低了CPU的開銷。5.3I/O系統(tǒng)中數(shù)據(jù)的傳輸控制

在一個完整的I/O系統(tǒng)內(nèi),包含了I/O設(shè)備、設(shè)備控制器、通道及相關(guān)的管理軟件。由于計算機(jī)應(yīng)用領(lǐng)域的拓寬,使得信息的輸入輸出工作量加大,I/O操作在計算機(jī)中占由了重要的地位。好的I/O控制方式,不但有利于提高計算機(jī)中CPU與外圍設(shè)備的并行處理效率,而且還可以形成多種外設(shè)間的并行操作。特別是在多通道程序設(shè)計環(huán)境下,I/O操作控制能力已經(jīng)成為計算機(jī)系統(tǒng)綜合處理能力的重要構(gòu)成因素。一般選取衡量I/O控制方式的好壞時應(yīng)考慮如下因素:

1)信息傳輸效率盡量高,以形成大的吞吐量。

2)I/O系統(tǒng)資源利用率好,實(shí)現(xiàn)資源的均衡使用。

3)盡量減少CPU用于進(jìn)行I/O處理的開銷,使CPU效率得以充分發(fā)揮。為此,按照I/O數(shù)據(jù)傳輸控制能力的強(qiáng)弱程度,以及CPU與外設(shè)并行處理程度的不同。常將I/O系統(tǒng)中信息的傳輸控制方式分為四類:1)程序直接控制方式(CPU直接詢問方式)2)中斷方式3)DMA方式4)通道方式這四種方式代表了計算機(jī)系統(tǒng)中I/O控制的四個不同的發(fā)展階段。每個階段的發(fā)展都受到計算機(jī)硬件組織結(jié)構(gòu)發(fā)展變遷的影響。5.3.1程序直接控制方式

程序直接控制方式,也稱為CPU直接詢問方式。在早期的計算機(jī)系統(tǒng)中,由于無中斷技術(shù)與通道技術(shù)的支撐,為了控制I/O操作,往往是CPU在一條啟動外設(shè)的I/O指令發(fā)出后,便檢測一臺設(shè)備的忙閑標(biāo)志,如果外設(shè)的工作沒有完成,則標(biāo)志一直為忙狀態(tài),CPU便一直進(jìn)行循環(huán)檢測下去,直到標(biāo)志為不忙為止。然后,主存與外設(shè)之間便可以交換一定量的信息。.這種操作方式,使CPU將大量的時間花費(fèi)在循環(huán)等待上,使CPU效率發(fā)揮極差,外設(shè)也不能合理利用,整個系統(tǒng)的效率很低?,F(xiàn)在已較少使用這種方式作為I/O的數(shù)據(jù)傳輸控制。5.2.2中斷方式隨著計算機(jī)技術(shù)的向前發(fā)展,在計算機(jī)系統(tǒng)中引入了中斷機(jī)構(gòu)。利用中斷信號,外設(shè)可以將自身操作的狀態(tài)及時反饋給中央處理CPU,這樣,CPU便可以在發(fā)出一條I/O指令后,轉(zhuǎn)去繼續(xù)完成其他任務(wù)。而對外設(shè)的I/O工作,則轉(zhuǎn)成了由設(shè)備控制器來指揮完成。當(dāng)I/O操作完成后。外設(shè)控制控制器自動向CPU發(fā)出中斷請求信號。CPU接到I/O中斷信號后進(jìn)行干預(yù),啟動I/O中斷處理程序執(zhí)行。5.2.3DMA方式

DMA方式也稱為直接存取方式,主要用在塊設(shè)備的I/O操作中。

在DMA方式中,利用總線直接連接外設(shè)和內(nèi)存,由DMA控制機(jī)構(gòu)竊取總線占有權(quán),完成外設(shè)與內(nèi)存間的成批數(shù)據(jù)交換。這樣,除了在數(shù)據(jù)塊進(jìn)行I/O操作初始由CPU發(fā)出啟動命令以及完成時CPU進(jìn)行中斷處理外,在整個數(shù)據(jù)塊的傳輸期間不再需要CPU進(jìn)行干預(yù)。這樣可減輕CPU的負(fù)擔(dān),不必要象I/O中斷控制方式那樣需要CPU的頻繁干涉。CPU只需暫停幾個周期,從而使I/O的數(shù)據(jù)交換速度大大提高。5.2.4通道方式通道的引入,是為了進(jìn)一步提高CPU與外設(shè)之間的并行工作能力,使I/O操作形成獨(dú)立于CPU的體系,以減少CPU的負(fù)擔(dān),使外設(shè)與內(nèi)存的數(shù)據(jù)交換更加靈活。在沒有通道的計算機(jī)系統(tǒng)中,外設(shè)與主機(jī)間的連接,必須以通道及設(shè)備控制器作為中介,實(shí)現(xiàn)四級連接,三級控制。而且往往是通道、設(shè)備控制器、設(shè)備間實(shí)行多路連接,形成多路交叉?zhèn)鬏?,以利于I/O效率的提高。

通道也稱為I/O處理機(jī),專門負(fù)責(zé)內(nèi)存與外設(shè)之間的信息交換工作。在通道機(jī)構(gòu)中含有通道指令,每一條通道命令規(guī)定了設(shè)備的一種操作,由通道指令可構(gòu)成指揮外設(shè)工作的通道程序。在I/O操作時,CPU只要發(fā)出啟動命令,就可以啟動通道。當(dāng)通道啟動成功后,通道執(zhí)行相應(yīng)的通道程序控制外設(shè)進(jìn)行I/O操作。然后CPU就可轉(zhuǎn)去執(zhí)行其他任務(wù),并形成與通道并行工作的狀態(tài)。CPU與通道互不干涉,獨(dú)立工作,直到I/O工作結(jié)束時,通道發(fā)出中斷信號,CPU停止當(dāng)前操作,轉(zhuǎn)I/O中斷處理,完成I/O操作的結(jié)束工作。在計算機(jī)中,按信息交換方式不同,通道可分為三類:

1)字節(jié)多路通道:它連接控制的是大量的慢速設(shè)備,如終端、打印機(jī)、磁卡機(jī)、紙帶機(jī)等。字節(jié)多路通道工作時,以字節(jié)為單位交替地傳送數(shù)據(jù),當(dāng)為一臺設(shè)備傳送一個字節(jié)后,接著又轉(zhuǎn)去為另一臺設(shè)備傳送一個字節(jié)。在IBM370系統(tǒng)中所有設(shè)定的字節(jié)多路通道可接256臺設(shè)備。當(dāng)啟動I/O操作時,可以交替地為這256臺設(shè)備分時傳送字節(jié)。

2)選擇通道:對于象磁盤、磁鼓這樣的快速設(shè)備,如果仍然按字節(jié)交叉方式傳送數(shù)據(jù),設(shè)備的利用率極差。因此,出現(xiàn)了按成批方式傳送數(shù)據(jù)的選擇通道。選擇通道雖然可連接多臺高速設(shè)備,但一段時間內(nèi)只能為一臺設(shè)備服務(wù),只有一個輸入或輸出請求完成后釋放了通道,通道才可再轉(zhuǎn)向另一臺設(shè)備服務(wù)。由于工作方式是獨(dú)占的,所以利用效率不高。

3)數(shù)組多路通道:這種通道是將字節(jié)多路通道與選擇通道的優(yōu)點(diǎn)抽取出來所設(shè)計的一種效率很高的通道。在數(shù)組多路通道中,信息量的交換按成批方式進(jìn)行,而通道的占用選用了分時交叉使用的辦法,從而在數(shù)據(jù)傳輸率及通道利用率兩方面都獲得了滿意的效果。數(shù)組多路通道可以被認(rèn)為是多道程序設(shè)計技術(shù)思想在通道中的體現(xiàn),可以廣泛用于中、高速外設(shè)的連接中。

不同的計算機(jī)系統(tǒng)中,通道的命令格式和命令碼可能不同,所以通道程序的編制方式上也是不同的。編好的通道程序應(yīng)放入主存中,為使通道能取到通道命令執(zhí)行,應(yīng)將當(dāng)前要執(zhí)行的通道程序的首地址的位置告訴通道。存放通道首地址的特殊主存單元稱通道地址字CAW(ChannelAddressWord),以后通道就按此地址開始通道程序的執(zhí)行。通道命令與通道程序1.通道組成通道是執(zhí)行I/O操作的處理機(jī),所以它應(yīng)具有一臺處理機(jī)所必備的主要部件:有用于存放傳輸數(shù)據(jù)和通道程序的場所,還應(yīng)該有通道控制運(yùn)算部件,主要負(fù)責(zé)解釋執(zhí)行通道命令。通道使用的主要寄存器有:①數(shù)據(jù)字寄存器:用于存放傳輸?shù)臄?shù)據(jù);②通道控制字寄存器:用于存放當(dāng)前正在執(zhí)行的通道命令(CCW)③通道地址字寄存器:用于存放通道命令的地址,在通道程序執(zhí)行前,要把通道程序的首地址存于此(CAW);④通道狀態(tài)字寄存器:其中包括通道的狀態(tài)、設(shè)備狀態(tài)的信息,當(dāng)I/O操作結(jié)束時送入主存固定單元,以中斷的方式告訴CPU有關(guān)通道、控制器和設(shè)備的有關(guān)信息(CSW)。2.通道命令及格式

通道是實(shí)現(xiàn)I/O操作的特殊處理機(jī),為了有別于CPU的指令,將通道指令稱之為通道命令(CCW)用于I/O操作的命令主要有兩種:①I/O指令:屬于特權(quán)指令,只在管態(tài)下使用,它主要用于對通道程序的啟動。②主要用于對I/O操作進(jìn)行控制。根據(jù)通道的特征,它主要有三種命令:用于讀、反讀、寫、斷定設(shè)備狀態(tài)的數(shù)據(jù)傳送命令,用于磁帶反饒、換頁查詢等的設(shè)備控制命令及實(shí)現(xiàn)通道程序內(nèi)部控制的轉(zhuǎn)移命令。

設(shè)有IBM/370系統(tǒng)的通道命令格式如下:

0731

OP數(shù)據(jù)傳輸主存始址

特征位

計數(shù)器323637474863它主要包括如下4部分內(nèi)容:(1)操作碼部分(OP):表示通道要執(zhí)行的命令。(2)數(shù)據(jù)傳輸主存始址:表示本命令要訪問的主存數(shù)據(jù)區(qū)的起始地址。(3)特征位:只使用了32位~36位,其它未用,37~39必須為“0”,否則認(rèn)為通道命令錯,各特征位進(jìn)一步規(guī)定了本通道命令的意義。①數(shù)據(jù)鏈特征位(32位):當(dāng)該位為“1”時,說明本條通道命令和下一條通道命令是數(shù)據(jù)交鏈,即兩條通道命令都是數(shù)據(jù)傳輸命令,該命令執(zhí)行完計數(shù)值為“0”,操作碼部分不變。②命令鏈特征位(33位):當(dāng)該位為“1”時,當(dāng)前命令正常結(jié)束后,順序執(zhí)行下一字命令。在通道程序中,除最后一條通道命令外,每條通道命令應(yīng)指定32位為“1”

或33位為“1”,最后一條通道命令所有特征都為“0”。

③禁發(fā)長度錯特征位(34位):如該位為“1”表示通道命令給出的字節(jié)數(shù)和I/O設(shè)備傳輸時的字節(jié)數(shù)即使不等,也不發(fā)出“出錯信息”。反之該位為“0”時,當(dāng)二者的字節(jié)數(shù)不等,就發(fā)出“出錯信號”,停止數(shù)據(jù)的傳送。④假讀特征位(35位):表示禁止將數(shù)據(jù)送入主存,這樣就可以跳過一些數(shù)據(jù)。⑤程序控制中斷特征位(36位):也可稱程序中斷屏蔽位。當(dāng)該特征位為“1”時,只要取出通道命令并開始操作,則通道就向CPU發(fā)出中斷信號;反之,即使有中斷也不允許發(fā)出。(4)字節(jié)計數(shù)器(48~63位):它規(guī)定了數(shù)據(jù)區(qū)的字節(jié)數(shù)。2.通道程序

所謂通道程序就是用命令鏈、數(shù)據(jù)鏈或轉(zhuǎn)移命令,把諸條通道命令連接在一起,完成某些特定功能的通道命令的集合。通道程序的執(zhí)行過程就是I/O操作的處理過程,通道程序的編制除了要了解各通道命令外,還應(yīng)熟悉各種外部設(shè)備的物理特性。3.舉例例1:要求編制一個通道程序,完成從磁帶機(jī)上讀入200字節(jié)的信息,送入主存(1000)16開始的單元中。通道命令碼:

“07”

將磁帶機(jī)反轉(zhuǎn)到磁帶的起點(diǎn)。

“02”

讀命令。則該通道程序?yàn)椋篊CW1X“07”*X“40”1;

反轉(zhuǎn)到磁帶的起點(diǎn)。CCW2X“02”1000X“00”200;讀入200字節(jié)信息到主存1000開始的連續(xù)單元中。例2:要求編制一個通道程序,完成從磁帶機(jī)讀入200字節(jié)信息。將其1~50byte送入主存(1000)16~(1031)16單元中,將其51~70byte不存入主存,將其71~200byte字節(jié)存入主存(2000)16~(2081)16中。假設(shè)通道命令碼:

“07”為將磁帶機(jī)反轉(zhuǎn)到磁帶機(jī)的起點(diǎn)

“02”為讀命令則該通道程序?yàn)椋?/p>

CCW1X“07”*X“40”1;反轉(zhuǎn)到磁帶的起點(diǎn)。

CCW2X“02”1000“40”50;讀入50個字節(jié)的信息到主存1000號開始的連續(xù)單元中。4.CPU與通道之間的通信通道I/O操作是由兩種指令實(shí)現(xiàn)控制,即CPU的I/O指令和通道本身提供的通道命令字CCW。I/O指令屬于特權(quán)指令,只能由操作系統(tǒng)使用,使用CCW編寫的程序稱為通道程序,不同的設(shè)備有不同的通道程序,通道程序存放在內(nèi)存中,由I/O指令啟動執(zhí)行。CPU和通道是主/從關(guān)系,CPU可啟動、停止通道的工作或改變其現(xiàn)行狀態(tài),故CPU和通道的通信包含:(1)CPU執(zhí)行相應(yīng)的I/O指令向通道發(fā)出任務(wù)或控制意圖;(2)通道完成CPU交給的工作后,用請求中斷告知CPU,并行工作狀態(tài)保留在相應(yīng)寄存器中供CPU檢測。進(jìn)程i請求啟動外設(shè)進(jìn)程j進(jìn)程i/j其他保護(hù)進(jìn)程I現(xiàn)場組織CCW存CAW執(zhí)行啟動“I/O”分析條件碼啟動成功;進(jìn)程i等待,別選進(jìn)程j運(yùn)行進(jìn)程j被中斷保護(hù)現(xiàn)場分析中斷事件處理I/O中斷選擇可運(yùn)行進(jìn)程判斷狀態(tài)形成條件碼執(zhí)行通道程序控制設(shè)備操作執(zhí)行情況記錄在通道狀態(tài)字中出現(xiàn)中斷事件CSW=>主存通道號設(shè)備號送特定寄存器執(zhí)行規(guī)定的操作用戶程序中央處理器操作系統(tǒng)程序通道設(shè)備控制器和設(shè)備輸入輸出操作過程示意5.4設(shè)備分配

從管理的層次看,設(shè)備的分配對象有兩級,一級是在作業(yè)級分配,另一級是在進(jìn)程級上進(jìn)行分配。對作業(yè)級的分配工作,是在作業(yè)提交之后,開始執(zhí)行前進(jìn)行的。此時,系統(tǒng)按用戶對設(shè)備的請求,將該作業(yè)所需要的有關(guān)設(shè)備及相關(guān)的通道和設(shè)備控制器資源,全部一次性的分給作業(yè),直到作業(yè)用完自動釋放歸還給系統(tǒng)為止。這種分配方式屬于靜態(tài)分配。

進(jìn)程級的分配,一般由在CPU上運(yùn)行的進(jìn)程,根據(jù)任務(wù)需要,通過系統(tǒng)功能調(diào)用提出I/O請求,設(shè)備分配程序按一定的策略將可用的設(shè)備分配給有I/O請求的進(jìn)程。同時,還分配與設(shè)備相關(guān)的通道和設(shè)備控制器,以確保在CPU與外設(shè)之間形成一條有效的數(shù)據(jù)通路。由于這種分配是在執(zhí)行中動態(tài)完成的,設(shè)備用完后又必須立即釋放,所以,屬于動態(tài)分配。

設(shè)備的分配除與對象性質(zhì)有關(guān)外,還受設(shè)備物理特性的影響。不同特性的設(shè)備,在分配策略上不盡相同。本節(jié)主要針對設(shè)備分配中的各種問題作出相關(guān)討論。5.4.1設(shè)備獨(dú)立性在計算機(jī)系統(tǒng)中,可以配置的外設(shè)品種繁多。而且在小型機(jī)以上的計算機(jī)系統(tǒng)中,可以同時接入多臺同樣的外設(shè)。為了便于對這些外設(shè)進(jìn)行管理,系統(tǒng)對每臺進(jìn)入計算機(jī)系統(tǒng)中的設(shè)備都給定一個對應(yīng)的編號,作為調(diào)用時識別和區(qū)分設(shè)備用。這種編號無任何重復(fù),一般被稱為設(shè)備的絕對號(或物理設(shè)備名)。

有了設(shè)備的絕對號,系統(tǒng)在管理過程中對設(shè)備的調(diào)用變得簡單而方便。但作為用戶而言,如果直接讓其用絕對號來申請設(shè)備,就會造成用戶在使用中極不方便,復(fù)雜程度增加。特別是在多通道程序環(huán)境下,用戶想查找哪臺設(shè)備是空閑的,哪臺是被占用的,根本是不可能的。有時申請的設(shè)備可能剛好很忙,而未被申請的其他同類設(shè)備即使處于空閑狀態(tài)也不能使用,造成了設(shè)備使用的靈活性降低,設(shè)備利用率差。所以在系統(tǒng)中一般不允許用戶用絕對號來直接申請所需的設(shè)備。

為了方便用戶,也為了提高外設(shè)利用率,在計算機(jī)中規(guī)定用戶申請外設(shè)時,只需要向系統(tǒng)說明所需用的某類設(shè)備,至于真正在實(shí)際中使用哪臺設(shè)備,由系統(tǒng)根據(jù)這類設(shè)備的應(yīng)用情況作出分配。即使用戶所需多臺同樣的設(shè)備,系統(tǒng)也允許用戶按自己的使用要求提出編號,這種由用戶申請設(shè)備時所用的編號稱為相對號(或稱邏輯設(shè)備名)

有了設(shè)備的絕對號和相對號后,用戶編制程序使用的設(shè)備與實(shí)際使用的設(shè)備無關(guān),這就是設(shè)備的獨(dú)立性。

具備設(shè)備獨(dú)立性的計算機(jī)系統(tǒng)中,用戶編程時只考慮邏輯設(shè)備,系統(tǒng)調(diào)用的是物理設(shè)備,邏輯設(shè)備與物理設(shè)備間的轉(zhuǎn)化工作由設(shè)備分配程序來完成。這樣,使系統(tǒng)的適應(yīng)性好,靈活性強(qiáng),對改善資源利用率極為有利。當(dāng)某臺設(shè)備壞了,只要操作系統(tǒng)改變分配就行了,而程序本身不必做任何修改。對方便用戶,改善資源利用率、提高系統(tǒng)的可擴(kuò)展性和可適應(yīng)性都有極大的好處。例如,有1、2、3號打印機(jī),作業(yè)J1要申請其中兩臺,如果讓J1直接申請1號、2號打印機(jī),此時,如果1號打印機(jī)為另一作業(yè)J2占用,或者是其中一臺打印機(jī)壞了,即使系統(tǒng)中還有兩臺可用,J1也必須等待,造成資源浪費(fèi)。如能讓作業(yè)J1按相對號來申請設(shè)備,則可以避免這種缺陷。J1只要提出某類設(shè)備兩臺,系統(tǒng)可將剩下的兩臺分給J1,J1就可運(yùn)行。設(shè)備得到充分利用。5.4.2設(shè)備分配算法的數(shù)據(jù)基任何算法的實(shí)現(xiàn)都離不開數(shù)據(jù)基(數(shù)據(jù)結(jié)構(gòu))的支撐,在設(shè)備分配算法中也不例外.不同的系統(tǒng)中對設(shè)備分配算法的建立方式上有所不同,可能會導(dǎo)致所選擇的數(shù)據(jù)基不同。但作為在多道環(huán)境下的設(shè)備分配,不僅只是對設(shè)備的分配,而且還要實(shí)現(xiàn)與設(shè)備相聯(lián)的通道及設(shè)備控制器的分配。

在分配算法的實(shí)現(xiàn)中,常采用的數(shù)據(jù)基主要含下述四張表,即

1)系統(tǒng)設(shè)備表SDT,2)設(shè)備控制表DCT,

3)控制器控制表COCT,4)通道控制表CHCT。這四張表在分配算法中形成了一個有機(jī)整體,有效地記錄了外設(shè)資源在系統(tǒng)中的情況。設(shè)備的每一次分配調(diào)用都與這四張表有關(guān),下面將詳細(xì)介紹它們的構(gòu)成。1.系統(tǒng)設(shè)備表STD(SystemDeviceTable):

在STD表中,每個接入系統(tǒng)中的外圍設(shè)備都占有一個表目項(xiàng)。登錄了該設(shè)備的名稱、標(biāo)識及設(shè)備控制表DTC的入口地址等相關(guān)的信息。SDT表在整個系統(tǒng)中只有一張,全面反映了系統(tǒng)中的外設(shè)資源的類型、數(shù)量、占用情況等。每一個表項(xiàng)的內(nèi)容大約如下:

物理設(shè)備號:設(shè)備的內(nèi)部標(biāo)識,是操作系統(tǒng)在啟動階段為設(shè)備建立的編號,不同的設(shè)備的有不同的設(shè)備號各。

設(shè)備種類:標(biāo)志設(shè)備所具備的類型特征,如字塊設(shè)備,字符設(shè)備等。

進(jìn)程標(biāo)識符:占用設(shè)備的進(jìn)程的名稱。

DCT指針:設(shè)備控制表的入口位置。2.設(shè)備控制表DCT(DeviceControlTable):

系統(tǒng)中的每臺設(shè)備都有一張設(shè)備控制表DCT。在DCT中充分體現(xiàn)出了設(shè)備的各方面特征,以及與該設(shè)備相連的設(shè)備控制器的情況,并保存了控制器塊的入口位置。其內(nèi)容如下:邏輯設(shè)備號:用戶進(jìn)程的申請設(shè)備時用的編號。物理設(shè)備號:設(shè)備的內(nèi)部標(biāo)識,是操作系統(tǒng)在啟動階段為設(shè)備建立的編號,不同的設(shè)備的有不同的設(shè)備號各。設(shè)備特性:指出設(shè)備的固有特性。如:可讀,可寫,可讀寫等。

設(shè)備狀態(tài):指明當(dāng)前設(shè)備的狀況,是否空閑/忙碌,是否好/壞。

等待隊列指針:由等待使用該設(shè)備的進(jìn)程所連接成的隊列,隊首及隊尾指針放入DCT的此項(xiàng)目中。

COCT指針:凡是與該設(shè)備相聯(lián)的控制器排成鏈表,其隊首指針放入DCT的該項(xiàng)中。

驅(qū)動程序入口:驅(qū)動設(shè)備用的驅(qū)動程序的入口位置。

重復(fù)操作次數(shù):允許傳送出錯后,反復(fù)再傳送的最大重復(fù)次數(shù)。

DCT的排隊指針:每個DCT表為了管理上的方便,可以按類型連接起來,形成一條DCT鏈。

3.控制器控制表COCT(ControllerControlTable)

每個控制器都有一張控制器控制表COCT,用于登錄某控制器的使用分配情況及與該控制器相連的通道的情況。具體情況如下:

控制器號:控制器的內(nèi)部標(biāo)識符。

控制器狀態(tài):控制器忙/閑,好/壞的狀態(tài)標(biāo)志。

通道指針:指向與該控制器相聯(lián)的通道控制表CHCT。當(dāng)控制器與若干通道連接時該項(xiàng)內(nèi)含多個指針。

等待隊列指針:指向等待該控制器的I/O進(jìn)程隊列。4.通道控制表CHCT(ChannelControlTable):

CHCT表反映了通道的情況,系統(tǒng)中的每個通道一張CHCT。其內(nèi)容如下:

通道號:通道內(nèi)部標(biāo)識符。

通道狀態(tài):通道的各種狀態(tài)(好/壞,已分/未分等)的反映。

等待隊列指針:等待該通道的I/O進(jìn)程隊列的首位置。

SDT,DCT,COCT,CHCT的結(jié)構(gòu)如圖所示:5.4.3設(shè)備分配

1.設(shè)備分配的基本要求:設(shè)備分配受設(shè)備的固有特性,設(shè)備在系統(tǒng)中的配置數(shù)量,用戶應(yīng)用需求等多方面的限制。不同類型的設(shè)備在分配上所采取的方式不同,算法的設(shè)計思路上也不可能一致,但不論形式上千差萬別,在實(shí)質(zhì)上所追求的都是兩方面的目標(biāo)。

在系統(tǒng)方面,最大限度地發(fā)揮設(shè)備的效率,分配盡量合理化,避免分配完成后使占用的進(jìn)程組出現(xiàn)不安全性,引發(fā)死鎖現(xiàn)象;從用戶一方考慮,應(yīng)使分配體現(xiàn)設(shè)備獨(dú)立性,使用戶面對的是邏輯設(shè)備,與物理設(shè)備結(jié)合不緊密,減輕用戶編程的負(fù)擔(dān),提高應(yīng)用程序的靈活性。圍繞這樣的目標(biāo),在設(shè)計操作系統(tǒng)的設(shè)備分配算法時,應(yīng)權(quán)衡各方面的要求,作出合理的分配方案的設(shè)計。2.設(shè)備分配方式:在設(shè)備分配中起作用的分配方式主要有兩種:靜態(tài)分配與動態(tài)分配。靜態(tài)分配方式主要適用對獨(dú)占型設(shè)備的分配,這種類型的分配在使用上必須是互斥地占用,所以往往是在某個作業(yè)執(zhí)行之前,根據(jù)作業(yè)需求,全部一次性分出,當(dāng)作業(yè)撤離時,再由系統(tǒng)收回。由于是預(yù)分配,一般不會引起不安全因素。這種方式主要用于分配設(shè)備,而對數(shù)量較少的通道和設(shè)備控制器的分配不能采用此方式。

動態(tài)分配的方式則是由進(jìn)程在執(zhí)行中再來動態(tài)申請外設(shè),資源分配的靈活性大,利用率高。在此方式下,設(shè)備不是進(jìn)行預(yù)分配,而是用時才分,運(yùn)行中的進(jìn)程當(dāng)需要與外界交換信息時,通過執(zhí)行系統(tǒng)中的訪管指令,形成訪管中斷,系統(tǒng)響應(yīng)后進(jìn)入訪管中斷處理,啟動分配程序工作,完成分配任務(wù)。

由于在系統(tǒng)中,進(jìn)程的數(shù)量一般都會超出系統(tǒng)擁有的外設(shè)資源數(shù)量,故有些進(jìn)程在I/O請求完成后,不能立即分到所要的外設(shè),這些進(jìn)程必須排成等設(shè)備的等待隊列。當(dāng)?shù)却犃谐霈F(xiàn)后,系統(tǒng)對設(shè)備分配的先后次序的確定必須要有一定的措施。常見的措施主要是先請求先分配或優(yōu)先級高優(yōu)先級分配兩種。(1)先請求先分配當(dāng)若干進(jìn)程申請某一設(shè)備的請求得不到滿足時,必須排入等隊列中。這些進(jìn)程由于申請的有先后次序,故排入等待隊列的次序也是不相同的。當(dāng)該設(shè)備被歸還給系統(tǒng)后,就可以重新分配,此時,系統(tǒng)按進(jìn)程在等待隊列中排隊的先后次序,將設(shè)備分給最早排入隊列的那個進(jìn)程。(2)優(yōu)先級高優(yōu)先分配在此分配對策中,進(jìn)程的優(yōu)先級起了決定作用。當(dāng)從等待某設(shè)備的進(jìn)程隊列中挑選下一個可占用設(shè)備的進(jìn)程時,按進(jìn)程所具有的優(yōu)先級處理。高優(yōu)先級的進(jìn)程先分配,同優(yōu)先級的,先申請先分配。3.設(shè)備分配算法:在具有通道的I/O系統(tǒng)中,分配算法對各資源的分配順序?yàn)椋?a)設(shè)備、(b)控制器、(c)通道。具體分配流程圖如下:5.4.2I/O中斷處理

I/O中斷的發(fā)生是在通道,設(shè)備以及設(shè)備控制器正?;虍惓=Y(jié)束時,I/O中斷是CPU與通道交往協(xié)調(diào)的一種手段。CPU根據(jù)I/O中斷信號來判斷操作的完成情況,作出相應(yīng)的處理。正常的與異常的I/O中斷,系統(tǒng)在處理上所采用的方式不相同,產(chǎn)生的結(jié)果也不一樣。1.正常I/O中斷處理:當(dāng)通道程序順利執(zhí)行完成后,一次I/O操作正常完成,此時,I/O中斷信號發(fā)出,請求CPU干預(yù)。CPU進(jìn)行中斷響應(yīng)后,轉(zhuǎn)入中斷處理。中斷處理過程中應(yīng)完成下列任務(wù):

保護(hù)正在CPU上運(yùn)行的當(dāng)前進(jìn)程的現(xiàn)場信息(現(xiàn)場信息被保存在該進(jìn)程的PCB的現(xiàn)場部分中);

將原來由于有I/O請求,執(zhí)行過訪管指令而被置為等待態(tài)的進(jìn)程喚醒,變?yōu)榫途w態(tài)插入就緒隊列中。因?yàn)樵瓉碛蠭/O請求的進(jìn)程在操作正常結(jié)束后,所需的輸入信息已由指定的設(shè)備傳送過來,或者是將輸出信息已送到了指定的設(shè)備上輸出完畢,所以應(yīng)將它從等待隊列轉(zhuǎn)入到就緒隊列,以便可以完成后續(xù)任務(wù)。

查看當(dāng)前被釋放出的I/O設(shè)備的等待隊列中是否還有別的進(jìn)程在排隊,如果還有,則說明在設(shè)備被使用時,有進(jìn)程曾經(jīng)來申請設(shè)備未成功,被置為等待態(tài),當(dāng)設(shè)備歸還給系統(tǒng)后,有義務(wù)將等設(shè)備的進(jìn)程喚醒,從等待態(tài)變?yōu)榫途w態(tài),使它有可能去訪問設(shè)備。

重新啟動進(jìn)程調(diào)度程序工作。2.異常的I/O中斷處理:當(dāng)I/O操作時,發(fā)生了數(shù)據(jù)傳輸線路上的I/O異常中斷,這說明I/O操作沒有完成,可能產(chǎn)生了故障或是特殊事件,系統(tǒng)要分情況進(jìn)行處理。對故障原因引發(fā)的中斷,可以組織通道程序復(fù)執(zhí),例如,當(dāng)送入的是無效命令碼時,操作系統(tǒng)可重新啟動通道再讀一遍。若復(fù)執(zhí)后故障被排除,則繼續(xù)往下執(zhí)行;若多次復(fù)執(zhí)后故障仍不能排除,則必須請求人工干預(yù),由操作員檢測,排除故障,然后從控制臺打入一條命令給操作系統(tǒng),繼續(xù)控制程序的執(zhí)行。

而對設(shè)備特殊事件,引發(fā)事件原因往往是設(shè)備上的卷用完,比如打印機(jī)用完,磁帶結(jié)束等,此時系統(tǒng)應(yīng)給操作員提示,進(jìn)行換卷工作,完成后通知操作系統(tǒng)繼續(xù)控制轉(zhuǎn)入正常執(zhí)行。5.5共享設(shè)備的驅(qū)動調(diào)度 配置在計算機(jī)中的共享設(shè)備,由于在使用特征上表現(xiàn)為在同一時間段內(nèi)允許多作業(yè)的進(jìn)程交替占用,故這類設(shè)備在分配方式上就不可能將設(shè)備只分給某個進(jìn)程使用,別的進(jìn)程不能使用。所以,對共享設(shè)備的分配,實(shí)質(zhì)上變成了決定設(shè)備在某一時刻到底應(yīng)該被啟動、為誰服務(wù)的問題。也就是常說的驅(qū)動調(diào)度問題。不同的共享設(shè)備,由于其構(gòu)造特征不同,所采用的驅(qū)動調(diào)度策略也會有差別。下面針對比較熟悉的共享設(shè)備磁盤來討論驅(qū)動調(diào)度問題。5.5.1磁盤的訪問時間構(gòu)成磁盤的物理構(gòu)造(如圖x-15)決定了一次磁盤的I/O操作,物理記錄的位置必須由柱面號,磁頭號(盤面號),扇區(qū)號三個參數(shù)共同確定。如何確定這三個參數(shù)是磁盤訪問成功的關(guān)鍵。

找柱面,實(shí)質(zhì)上是由磁臂帶動磁頭沿半徑方向平行移動到指定柱面的工作。在磁盤中,每個盤面都對應(yīng)一個磁頭,所有磁頭都被固定在唯一的磁臂上,一旦柱面被找到,所有磁頭指向的都是同一柱面。系統(tǒng)中找柱面的操作被稱為查找操作,所花費(fèi)的移臂時間稱為查找時間。

柱面找出后,磁頭并不與磁道接觸,而要等想訪問的扇區(qū)轉(zhuǎn)到磁頭所在位置時,磁頭才與扇區(qū)接觸,完成對物理記錄的讀/寫操作。扇區(qū)轉(zhuǎn)動到磁頭位置的時間稱為旋轉(zhuǎn)延遲時間。一般外設(shè)與主存相連時,在它們之間有一條數(shù)據(jù)通路,數(shù)據(jù)在數(shù)據(jù)通路上傳輸要花費(fèi)一定時間。磁盤也不例外,磁頭將扇區(qū)的信息讀到主存或是將主存的信息寫入扇區(qū)都需要時間,這個稱為傳輸時間。

由查找時間、旋轉(zhuǎn)延遲時間、傳輸時間三部分之和構(gòu)成了一次磁盤I/O訪問的時間。要使磁盤利用率高,應(yīng)盡量減少每次I/O操作的訪問時間,增加單位時間內(nèi)的I/O操作吞吐量。為了實(shí)現(xiàn)這一目的,系統(tǒng)應(yīng)采用一定的管理對策,決定出當(dāng)有多個訪問請求發(fā)生時,讓哪個訪問者被先訪問,這個管理對策被稱為“驅(qū)動調(diào)度”。具體的磁盤驅(qū)動調(diào)度算法分為兩部分:“移臂調(diào)度算法”和“旋轉(zhuǎn)調(diào)度算法”。“移臂調(diào)度”控制的是查找操作的先后次序;而“旋轉(zhuǎn)調(diào)度”控制的是哪個扇區(qū)先被訪問的問題。磁盤工作時,應(yīng)先完成“移臂調(diào)度”,然后再進(jìn)行“旋轉(zhuǎn)調(diào)度”。5.5.2移臂調(diào)度移臂調(diào)度算法有若干種,但著眼點(diǎn)都放在查詢優(yōu)化上,即查找時間盡量短,吞吐量盡量大。目前廣泛使用的查找策略有下列幾種:1.先來先服務(wù)查找算法(FCFS):這是一種最簡單的移臂調(diào)度算法,它只考慮對磁盤請求的先后次序,而不考慮訪問的物理位置,所有對磁盤有I/O請求的進(jìn)程先去等待隊列中排隊,排在先的先給予服務(wù)。該算法對于訪問進(jìn)程是平等的,先提I/O請求的進(jìn)程,磁盤先分給它使用。(如圖x-16)。這種算法當(dāng)訪問請求分布不好時,可能會造成磁臂反復(fù)來回移動,增加總的訪問時間,無法實(shí)現(xiàn)查找優(yōu)化,只適用于訪問請求不太多的情況。2.最短查找時間優(yōu)先的算法(SSFT,Shortest-Seek-Time-First)這個算法是FCFS算法的改進(jìn)。它總是選擇請求隊列中離當(dāng)前磁頭所在柱面最近的下一個柱面作為即將訪問的對象,而不管請求訪問者到達(dá)請求隊列的先后次序(如圖x-17)。此算法克服了FCFS算法中磁臂大幅度來回移動的缺陷,在吞吐量上有所提高。但對訪問者的服務(wù)機(jī)會是不均衡的,有時會造成內(nèi)/外邊緣磁道上的請求被無限推遲響應(yīng)的現(xiàn)象。

圖x-16FCFS算法圖x-17SSFT算法3.掃描算法(SCAN):該算法是為了克服SSTF算法的缺點(diǎn)而提出的一種查找優(yōu)化的算法,在SSTF算法中只考慮了請求訪問的柱面與磁頭當(dāng)前所處位置的距離,而不考慮磁臂的移動方向。而SCAN算法則既要考慮距離,也要考慮方向,且方向優(yōu)先考慮。SCAN算法在選下一個訪問者時,先選與磁臂移動方向一致的訪問請求,在此基礎(chǔ)上,選出與磁頭當(dāng)前柱面最近距離的柱面作為下一個訪問對象。也就是說,如果磁臂目前向內(nèi)移動,則下一個訪問對象,應(yīng)該是磁頭當(dāng)前所在柱面以內(nèi)的那些柱面中,距磁頭最近的那個柱面。下一個訪問對象仍這樣選擇,直到該方向上沒有更內(nèi)側(cè)的請求為止。磁頭改變方向轉(zhuǎn)向外,邊移動邊服務(wù),完后又轉(zhuǎn)向內(nèi)服務(wù),反復(fù)掃描訪問請求,依次給予服務(wù)。此方法與自然界中電梯工作的方式極為相象,故也稱“電梯調(diào)度”算法。SCAN算法是一種高效率的算法。它很好地解決了磁頭來回移動浪費(fèi)時間的現(xiàn)象,使系統(tǒng)I/O吞吐量增大,資源利用率好。圖x-18是此算法的示例。在實(shí)際的磁盤調(diào)度策略的使用中,多以SCAN算法為主。在此基礎(chǔ)上又演變出了下面的兩種算法:N步掃描法與循環(huán)掃描法。

圖x-18SCAN算法4.N步掃描與循環(huán)掃描法N步掃描與循環(huán)算法的服務(wù)方式與SCAN方法一致,但它們在向外或向內(nèi)的移動過程中,只對在磁頭改變方向以前已提出申請的訪問請求作出服務(wù),新到達(dá)的訪問請求本次不予訪問,留待下次再服務(wù)。 循環(huán)掃描法也稱單向掃描,它對請求者的服務(wù)總是每次從0柱面號開始,然后移動至最大柱面。遇著訪問進(jìn)行服務(wù)。一次完后,磁頭再版返回0號柱面,又重復(fù)上述步驟。圖x-19(a)N步掃描(b)循環(huán)掃描5.5.3旋轉(zhuǎn)調(diào)度

通過移臂調(diào)度后,確定了訪問的柱面號,當(dāng)在同一柱面上有多個訪問者等待訪問時,如何安排訪問者的訪問次序?這就是旋轉(zhuǎn)調(diào)度應(yīng)解決的問題。旋轉(zhuǎn)調(diào)度應(yīng)以盡量減少旋轉(zhuǎn)延遲時間為目的。 用于旋轉(zhuǎn)調(diào)度的方法也有很多種,各種方法都試圖通過對各個訪問請求進(jìn)行巧妙的排序來實(shí)現(xiàn)旋轉(zhuǎn)優(yōu)化,從而達(dá)到減少旋轉(zhuǎn)延遲時間的目的。下面介紹一種常見的“最短延遲時間優(yōu)化”的策略。

該方法以時間為衡量指標(biāo),對同一柱面上扇區(qū)的訪問請求不是按申請的先后次序來讀/寫,而是經(jīng)過重新排序后再處理,使時間上大大縮短。例如:假設(shè)10號柱面上有四個訪問者,它們的訪問請求次序如下:

請求次序柱面號磁頭號扇區(qū)號(1)1031(2)1026(3)1013(4)1049

若如不進(jìn)行優(yōu)化處理,處理完這四個訪問請求可能需要兩周的旋轉(zhuǎn)時間。而采用(1),(3),(2),(4)的次序處理,一周就可全部訪問完畢,節(jié)省了一半的時間。 有時幾個訪問請求所需的可能是同一柱面,不同磁頭號所對應(yīng)的同一扇區(qū),這樣會造成這些扇區(qū)同時到達(dá)磁頭位置下,這時候可以按請求的先后次序,先請求的先讀/寫。5.6虛擬設(shè)備5.6.1虛擬設(shè)備技術(shù)的發(fā)展:

虛擬設(shè)備實(shí)際上是一種提高獨(dú)占設(shè)備利用率而采用的管理技術(shù)。在計算機(jī)系統(tǒng)中,一些慢速的獨(dú)占設(shè)備(如象打印機(jī),卡片機(jī)

溫馨提示

  • 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

提交評論