版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 第5章 設(shè)備管理 設(shè)備管理是操作系統(tǒng)中最繁雜且與硬件關(guān)系最密切的部分。通過本章學習,讀者應(yīng)該掌握以下內(nèi)容:數(shù)據(jù)傳輸方式中斷技術(shù)緩沖技術(shù)設(shè)備分配技術(shù)設(shè)備獨立性設(shè)備驅(qū)動7/21/20225.1. I/O系統(tǒng) 5.2. I/O控制方式 5.3. 緩沖管理 5.4. I/O軟件 5.5. 設(shè)備分配 5.6. 磁盤存儲器的管理7/21/2022設(shè)備管理的目標 根據(jù)設(shè)備請求的情況,按照一定的算法,選擇和分配輸入輸出設(shè)備以便進行數(shù)據(jù)傳輸操作; 控制輸入輸入設(shè)備和CPU或內(nèi)存之間交換數(shù)據(jù),同時提高設(shè)備和設(shè)備之間、CPU和設(shè)備之間,以及進程和進程之間的并行操作度,以使操作系統(tǒng)獲得最佳效率; 為用戶提供一個友好
2、的透明接口,把用戶和設(shè)備硬件特性分開,使得用戶在編制應(yīng)用程序時不必涉及具體設(shè)備,系統(tǒng)按用戶要求控制設(shè)備工作。7/21/2022設(shè)備管理功能設(shè)備分配與回收緩沖管理設(shè)備處理虛擬設(shè)備7/21/2022511 I/O設(shè)備 計算機系統(tǒng)的外圍設(shè)備包括:顯示器、鍵盤、紙帶閱讀器、紙帶穿孔機、打印機、磁帶、磁盤、光盤、激光打印機、繪圖儀、圖形數(shù)字化儀、鼠標器、聲音輸入、聲音輸出設(shè)備以及辦公自動化設(shè)備等等,種類相當繁多,可從不同的角度對它們進行分類。 5.1 I/O系統(tǒng)7/21/2022系統(tǒng)設(shè)備:在操作系統(tǒng)生成時已配置好的的標準設(shè)備。 如:鍵盤、顯示器、打印機、磁盤等。 用戶設(shè)備:指系統(tǒng)設(shè)備之外的非標準設(shè)備,一
3、般由用戶提供設(shè)備及其處理程序,并通過適當?shù)氖侄伟阉鼈兗{入系統(tǒng)中,由系統(tǒng)實施管理。 如:網(wǎng)卡、調(diào)制解調(diào)器、繪圖儀等。 1設(shè)備的從屬關(guān)系分類7/21/2022塊設(shè)備:指以數(shù)據(jù)塊為單位存儲和傳輸數(shù)據(jù)的設(shè)備 如磁盤、磁帶等。字符設(shè)備:指以單個字符為單位來傳送信息的設(shè)備。 如鍵盤、顯示器、打印機等。2設(shè)備中的信息交換單位方式分類7/21/2022存儲設(shè)備:它是計算機用來存儲永久性信息的設(shè)備 如,磁帶、磁盤(軟盤、硬盤)、光盤等。輸入設(shè)備:將外部信息送給計算機的設(shè)備。 如,鍵盤、鼠標、掃描儀、手寫筆、數(shù)碼相機、麥克風、游戲手柄等輸出設(shè)備:將計算機加工后的信息傳送給外界的設(shè)備。 如,顯示器、打印機、投影儀等
4、。3按設(shè)備的使用特性分類7/21/2022獨占設(shè)備:這類設(shè)備在用戶作業(yè)的整個運行期間必須為此用戶所占有,即多個作業(yè)對某一外設(shè)的訪問應(yīng)該是互斥的,一旦系統(tǒng)將這類設(shè)備分配給某個作業(yè),便由該設(shè)備獨占,直至釋放該資源。 大多數(shù)低速I/O設(shè)備,如用戶終端、打印機等共享設(shè)備:指在同一時間段內(nèi)可以同時讓幾個作業(yè)使用的設(shè)備,當然,在某一時刻,該設(shè)備只能為一個作業(yè)服務(wù)。 適應(yīng)于高速設(shè)備,如磁盤虛擬設(shè)備:根據(jù)設(shè)備的使用性質(zhì)來決定一臺設(shè)備可以分給幾個進程以提高該設(shè)備的使用率。 如虛擬打印機4按資源分配的角度分類7/21/2022 1、按( )分類可將設(shè)備分為塊設(shè)備和字符設(shè)備。 A.從屬關(guān)系 B.操作特性 C.共享屬
5、性 D.信息交換單位 2、大多數(shù)低速設(shè)備都屬于( ) 設(shè)備。 A獨占 B共享 C虛擬 DSpooling3、從資源分配的角度看,可以把設(shè)備分為獨占設(shè)備、共享設(shè)備和 虛擬設(shè)備 ,打印機屬于_ 設(shè)備,而磁盤屬于_設(shè)備。7/21/2022 5.1.2 設(shè)備控制器1.設(shè)備控制器的概念 設(shè)備控制器是CPU與外圍設(shè)備之間的接口,是一個可編址設(shè)備,每一個地址對應(yīng)一個設(shè)備。 它接收從CPU發(fā)來的命令,并去控制輸入輸出設(shè)備的工作,使CPU從繁雜的設(shè)備控制事務(wù)中解脫出來,提高CPU的使用效率。7/21/20222.作用:接收從CPU發(fā)來的命令,控制I/O設(shè)備工作3.功能:接收和識別命令數(shù)據(jù)交換地址識別標識和報告設(shè)
6、備的狀態(tài)差錯控制7/21/20224.設(shè)備控制器的組成(1).設(shè)備控制器與處理機的接口(2).設(shè)備控制器與設(shè)備的接口(3).I/O邏輯7/21/2022I/O系統(tǒng)的結(jié)構(gòu)CPU磁盤控制器存儲器打印機控制器其他控制器一、微型機I/O系統(tǒng) :總線結(jié)構(gòu)磁盤驅(qū)動器打印機7/21/2022二、主機系統(tǒng)輸入輸出結(jié)構(gòu)當主機所配置的輸入輸出設(shè)備較多時,特別是配有較多的高速外設(shè)時,采用總線型輸入輸出系統(tǒng)結(jié)構(gòu)會加重CPU與總線的負擔。 因此,在這樣的輸入輸出系統(tǒng)中不宜采用單總線結(jié)構(gòu),而是增加一級輸入輸出通道,用來代替CPU與各設(shè)備控制器進行通信,實現(xiàn)對控制器的控制。7/21/2022 7/21/20225.1.3
7、I/O通道1、通道的引入 為了提高計算機系統(tǒng)的運行效率,就要使CPU擺脫繁忙的I/O事務(wù),而配置專門處理I/O事務(wù)的機構(gòu)通道。 通道的引入是為了建立獨立的I/O操作。它不僅要求數(shù)據(jù)傳送獨立于CPU,而且要求I/O操作的組織、管理、結(jié)束等也盡量獨立,以保證CPU有更多的時間從事計算。這樣就可以實現(xiàn)CPU計算和I/O操作的并行工作。7/21/2022思考題一 什么是通道? 通道有哪些類型?7/21/20222、I/O通道概念 通道是一種硬件機構(gòu),又稱I/O處理機。輸入輸出通道是指專門負責輸入輸出工作的處理器。 它有自己的指令系統(tǒng)(包含數(shù)據(jù)傳送指令和設(shè)備控制指令),獨立執(zhí)行自己的通道程序來實現(xiàn)內(nèi)存與
8、外設(shè)之間的數(shù)據(jù)傳輸,從而使系統(tǒng)獲得CPU與外設(shè)并行處理的能力。7/21/20223、通道的類型 根據(jù)信息交換方式的不同,可把通道分成字節(jié)多路通道、數(shù)組多路通道和選擇通道三種。(1)字節(jié)多路通道 通常都含有許多非分配型子通道,其數(shù)量可以從幾十到數(shù)百個,每一個子通道連接一臺輸入輸出設(shè)備,這些子通道按時間片輪轉(zhuǎn)方式共享主通道。 字節(jié)多路通道連接低速或中速設(shè)備時,不會丟失信息。7/21/2022 選擇通道的數(shù)據(jù)傳送是按成批的方式進行的,故傳送速率很高。(2)數(shù)據(jù)選擇通道選擇通道 它適用于連接高速I/O設(shè)備,如磁帶、磁盤等。選擇通道只有一個分配型子通道,即這個子通道可以連接多臺設(shè)備,但每次只能把子通道分
9、配給一臺設(shè)備使用。一旦分配給某臺設(shè)備,子通道就被它獨占,即使暫時出現(xiàn)空閑,也不允許其他設(shè)備利用該子通道。直到它被釋放,再選擇另一臺設(shè)備為其服務(wù)。因此選擇通道的利用率是很低的。7/21/2022 這種通道綜合了字節(jié)多路通道分時并行工作和選擇通道傳輸速率高的特點。 它具有多個非分配型子通道,每個子通道連接一臺中、高速I/O設(shè)備,如:磁帶、磁鼓、磁盤等,因而通道所連接的幾個設(shè)備可以并行工作。 數(shù)組多路通道技術(shù)相當于通道程序的多道程序設(shè)計技術(shù)。(3)數(shù)組多路通道7/21/2022 CPU字節(jié)多路通道 打印機1 打印機2 I/O控制器 I/O控制器 內(nèi)存 選擇通道 成組多路通道 磁盤 I/O控制器 磁盤
10、 I/O控制器 I/O控 制器 I/O 控制器 磁帶 磁帶 存在這三種通道的計算機系統(tǒng)的各硬件的連接關(guān)系如圖所示:7/21/2022思考題二 設(shè)備管理中,什么是“瓶頸”現(xiàn)象? 如何解決?7/21/2022 通道命令和通道程序 通道有自己的指令系統(tǒng),為了與CPU的指令相區(qū)別,通道的指令被稱為“通道命令字”。通道命令字條數(shù)不多,主要涉及控制、轉(zhuǎn)移、讀、寫及查詢等功能。0 7 8 31 32 47 48 63 每條通道命令由四個字段組成: (1) 操作碼(07): 表示通道要執(zhí)行的命令; (2) 數(shù)據(jù)主存始址: 表示本命令要訪問的主存數(shù)據(jù)區(qū)的起始地址; (3) 特征位(3247, 只使用了 3236
11、 位, 其余未用): 3739 位必須置 0,否則認為通道命令錯。 7/21/2022 通道程序存放在內(nèi)存中,由I/O指令啟動執(zhí)行。用戶請求I/O時,CPU對通道的通信是向通道發(fā)出查詢、啟動和停止通道程序工作,而通道向CPU的通信則采用中斷方式。其執(zhí)行過程如圖所示。7/21/2022用戶I/O請求 查詢設(shè)備忙閑? 調(diào)用通道程序 執(zhí)行通道程序 I/O操作完成,發(fā)中斷請求 CPU響應(yīng)中斷,進行結(jié)束處理 以I/O指令啟動通道 結(jié)束通道工作 進入設(shè)備請求隊列,等待 忙 不忙 通道程序的執(zhí)行過程 7/21/20225、通道工作過程 (1) 當進程有I/O請求時,系統(tǒng)首先查詢設(shè)備狀態(tài)。若忙,進程進入設(shè)備請
12、求隊列等待;若閑,CPU發(fā)指令指明I/O操作、設(shè)備號和對應(yīng)通道。 (2) 對應(yīng)通道收到CPU發(fā)來的啟動指令后,讀出內(nèi)存中的通道指令程序、設(shè)置對應(yīng)設(shè)備的控制狀態(tài)寄存器的初值。 (3) 設(shè)備按通道指令的求,把數(shù)據(jù)送往內(nèi)存指定區(qū)域。 (4) 若傳送結(jié)束,I/O控制器通過中斷請求線發(fā)中斷信號請求CPU做中斷處理。 (5) 中斷處理結(jié)束后,CPU返回到被中斷進程處繼續(xù)執(zhí)行。 (6) 當進程調(diào)度程序選中這個已得到數(shù)據(jù)的進程后,才能進行加工處理。7/21/2022思考題三 通道的作用是什么? 通道是一個獨立于CPU的專管輸入/輸出控制的處理器,它控制內(nèi)存與外部設(shè)備直接進行數(shù)據(jù)交換。 它有自己的通道指令,這些
13、通道指令受CPU啟動,并在操作結(jié)束時向 CPU發(fā)中斷信號。 通道方式進一步減輕了CPU的工作負擔,增加了計算機系統(tǒng)的并行工作程度。 7/21/20225.1.4 總線系統(tǒng)1、總線基本概念 在計算機系統(tǒng)內(nèi)各種子系統(tǒng),如CPU、內(nèi)存、I/O設(shè)備等之間,構(gòu)建公用的信號或數(shù)據(jù)傳輸通道 這種可共享的傳輸通道稱為總線。7/21/20222、總線的分類7/21/2022 當用戶進程通過系統(tǒng)調(diào)用提出I/O請求時,從系統(tǒng)響應(yīng)此請求開始,至系統(tǒng)完成用戶要求的I/O操作,并喚醒相應(yīng)的等待I/O完成的進程為止,這整個過程稱為I/O控制過程。52 I/O控制方式7/21/2022I/O控制過程包括以下步驟: (1)響應(yīng)
14、I/O請求,為在具體物理設(shè)備上進行I/O操作做準備。包括將邏輯設(shè)備名轉(zhuǎn)換為物理設(shè)備名(設(shè)備分配)、I/O請求的合法性等。 (2)設(shè)備驅(qū)動,控制設(shè)備完成I/O操作,對每類設(shè)備分別設(shè)置不同的設(shè)備驅(qū)動程序。 (3)中斷處理,I/O操作完成之后,設(shè)備控制器向CPU發(fā)送中斷信號,CPU響應(yīng)后轉(zhuǎn)向相應(yīng)的中斷處理程序進行善后處理。7/21/2022I/O操作的控制方式一般有四種:查詢方式中斷方式直接內(nèi)存存取方式通道方式 它們的主要差別在于處理器和外設(shè)并行工作的方式和程度的不同。7/21/2022查詢方式是最簡單的I/O控制方式。在設(shè)備控制器中有兩個寄存器,一個是狀態(tài)寄存器,由其中的一個狀態(tài)位的值反映設(shè)備的忙
15、或閑;另一個是數(shù)據(jù)緩沖寄存器。當設(shè)備啟動時,狀態(tài)寄存器的啟動位為1,此時外設(shè)把數(shù)據(jù)送往數(shù)據(jù)緩沖寄存器,并將狀態(tài)寄存器的狀態(tài)位置1。CPU執(zhí)行完一條指令后就測試狀態(tài)位,如果為1,就把數(shù)據(jù)寄存器中的數(shù)據(jù)取到內(nèi)存;若狀態(tài)位為0,則再測試,直到狀態(tài)寄存器的狀態(tài)位為1,然后再讀取數(shù)據(jù)。所以此種方式也稱循環(huán)測試I/O方式521 查詢方式7/21/2022就緒向設(shè)備控制器發(fā)讀命令讀設(shè)備控制器的狀態(tài)檢查狀態(tài)從設(shè)備控制器中讀入字向存儲器中寫字傳送完成CPU-I/OCPU-內(nèi)存I/O - CPU出錯I/O - CPU完成下條指令未完成未就緒7/21/2022步驟: (1) 當用戶需要輸入數(shù)據(jù)時,由處理器向設(shè)備控制
16、器發(fā)出一條輸入輸出指令,啟動設(shè)備進行輸入 (2) 當用戶進程需要向設(shè)備輸出數(shù)據(jù)時,也必須同樣發(fā)出啟動命令啟動設(shè)備輸出,并等待輸出操作完成。特點: 工作過程簡單,CPU的利用率低。在要求不高的場合下常被采用,而且不能支持多道程序。程序直接控制方式適用于早期的無中斷的計算機系統(tǒng)。7/21/2022 查詢方式是主機向外設(shè)詢問,而引入中斷后,每當設(shè)備完成I/O操作,它便以中斷請求方式主動向CPU匯報。 因此,CPU一旦啟動I/O設(shè)備后便可轉(zhuǎn)去處理其他程序,僅在接到I/O中斷信息請求時才花費極少時間去處理。 522 中斷方式7/21/20221、中斷概念 所謂中斷,是指處理機在執(zhí)行進程的過程中, 由于某
17、些事件的出現(xiàn), 中止當前進程的運行, 轉(zhuǎn)而去處理出現(xiàn)的事件, 待處理完畢后返回原來被中斷處繼續(xù)執(zhí)行或調(diào)度其他進程執(zhí)行。2、中斷源 引起中斷的事件稱為中斷源。 (1)強迫性中斷源 硬件故障、程序性錯誤、外部事件、I/O中斷事件(2)自愿性中斷源7/21/20223、步驟 (1)進程需要數(shù)據(jù)時,將允許啟動和允許中斷的控制字寫入設(shè)備控制狀態(tài)寄存器中,啟動該設(shè)備進行輸入操作。 (2)該進程放棄處理機,等待輸入的完成。操作系統(tǒng)進程調(diào)度程序調(diào)度其他就緒進程占用處理機。 (3)當輸入完成時,輸入設(shè)備通過中斷請求線向CPU發(fā)出中斷請求信號。CPU在接收到中斷信號之后,轉(zhuǎn)向中斷處理程序。 (4)中斷處理程序首先
18、保護現(xiàn)場,然后把輸入緩沖寄存器中的數(shù)據(jù)傳送到某一特定單元中去,同時將等待輸入完成的那個進程喚醒,進入就緒狀態(tài),最后恢復現(xiàn)場,并返回到被中斷的進程繼續(xù)執(zhí)行。 (5)在以后的某一時刻,操作系統(tǒng)進程調(diào)度程序選中提出的請求并得到獲取數(shù)據(jù)的進程,該進程從約定的內(nèi)存特定單元中取出數(shù)據(jù)繼續(xù)工作7/21/2022向設(shè)備控制器發(fā)讀命令讀設(shè)備控制器的狀態(tài)檢查狀態(tài)從設(shè)備控制器中讀入字向存儲器中寫字傳送完成完成下條指令CPU-I/OCPU-內(nèi)存I/O - CPU出錯I/O - CPU未完成CPU做其他中斷7/21/2022例如,打印機每打一行需要60ms,在查詢方式中,大約有59.99ms,CPU都處于循環(huán)等待中,而
19、以中斷方式處理的話,CPU僅花費0.1ms時間來處理I/O設(shè)備發(fā)來的中斷,其余的59.99ms都可以用來做別的事情。所以中斷方式比查詢方式節(jié)省CPU的時間。7/21/2022 中斷方式的方法是當設(shè)備完成I/O操作后,主動向CPU報告,CPU只用少量時間處理I/O中斷,并將數(shù)據(jù)取回。 在多道程序中的環(huán)境下,一個程序或進程啟動I/O設(shè)備并允許中斷后,不是自己主動去執(zhí)行別的程序或繼續(xù)執(zhí)行主流程,而是應(yīng)當把自己掛起,控制權(quán)交還給進程調(diào)度程序。在中斷處理程序中,完成指定的I/O操作之后應(yīng)把等待此結(jié)果的進程喚醒,而后由進程調(diào)度程序在適當時機把此進程投入運行。7/21/2022 某進程 其他進程輸入中斷處理
20、 中斷 調(diào)度 調(diào)度喚醒啟動I/O并允許中斷 阻塞等待 處理輸入的數(shù)據(jù) 保護現(xiàn)場 輸入處理 喚醒等待進程 恢復現(xiàn)場 多道程序下的中斷處理方式7/21/20224、特點 中斷控制方式比程序直接控制方式提高了CPU的利用率。每輸入輸出一個數(shù)據(jù)都會發(fā)生中斷,傳輸一組數(shù)據(jù)需要多次中斷,浪費了CPU的處理時間。中斷控制方式應(yīng)用于現(xiàn)代計算機系統(tǒng)中。7/21/20221、DMA控制方式的引入 引入的原因:中斷處理方式提高了主機的利用率,但是每次中斷都要保存現(xiàn)場信息,恢復現(xiàn)場等,仍占用CPU時間。在傳送數(shù)據(jù)量大、速度高的情況下,中斷方式就不適應(yīng)了。 為了進一步減少CPU對外設(shè)操作干預而引入直接存儲器訪問方式。
21、523 直接內(nèi)存存取方式7/21/20222、DMA控制方式 是指對I/O設(shè)備的控制由DMA控制器完成,在DMA控制器的作用下,設(shè)備和主存之間可以成批地進行數(shù)據(jù)交換,而不用CPU的干涉。 523 直接內(nèi)存存取方式7/21/20223、DMA控制器的組成: DMA控制器的組成命令控制器與設(shè)備接口主機控制器接口內(nèi)存CPU系統(tǒng)總線I/O控制邏輯CRMARDCDRcount7/21/20224、DMA工作步驟: 當進程要求設(shè)備輸入一批數(shù)據(jù)時,CPU將設(shè)備存放輸入數(shù)據(jù)的內(nèi)存始址以及要傳送的字節(jié)數(shù)分別送入DMA控制器中的地址寄存器和傳送字節(jié)計數(shù)器;另外,還要將中斷位和啟動位置為1,以啟動設(shè)備開始進行數(shù)據(jù)輸
22、入并允許中斷。 發(fā)出數(shù)據(jù)要求的進程進入等待狀態(tài),進程調(diào)度程序調(diào)度其他進程占據(jù)CPU。 輸入設(shè)備不斷地挪用CPU工作周期,將數(shù)據(jù)寄存器中的數(shù)據(jù)源源不斷地寫入內(nèi)存,直到所要求的字節(jié)全部傳送完畢。 DMA控制器在傳送字節(jié)數(shù)完成時,通過中斷請求線發(fā)出中斷信號,CPU收到中斷信號后轉(zhuǎn)中斷處理程序,喚醒等待輸入完成的進程,并返回被中斷的程序。 在以后的某個時刻,進程調(diào)度程序選中提出請求輸入的進程,該進程從指定的內(nèi)存始址取出數(shù)據(jù)做進一步處理。7/21/2022CPU向控制器發(fā)出啟動DMA通知和有關(guān)參數(shù)控制器向內(nèi)存發(fā)出詢問請求訪問內(nèi)存(讀、寫)計數(shù)器減1結(jié)束否發(fā)中斷NYDMA的實現(xiàn)流程7/21/20225、D
23、MA方式特點: (1) 數(shù)據(jù)傳送的基本單位是數(shù)據(jù)塊; (2) 所傳送的數(shù)據(jù)是從設(shè)備直接送入內(nèi)存,或者相反; (3) 僅在傳送一個或多個數(shù)據(jù)塊的開始和結(jié)束時,才需中斷CPU,請求干預,整塊數(shù)據(jù)的傳送是在DMA控制器控制下完成的。 缺點: DMA方式只能完成簡單的數(shù)據(jù)傳送、計數(shù)、內(nèi)存地址加1或減1等操作,不能滿足復雜的I/O操作要求。 7/21/20226、DMA方式與中斷的主要區(qū)別 (1) 中斷方式是在數(shù)據(jù)緩沖寄存區(qū)滿后,發(fā)中斷請求,CPU進行中斷處理; DMA方式則是在所要求傳送的數(shù)據(jù)塊全部傳送結(jié)束時要求CPU進行中斷處理,大大減少了CPU進行中斷處理的次數(shù)。 (2) 中斷方式的數(shù)據(jù)傳送是由C
24、PU控制完成的; DMA方式則是在DMA控制器的控制下不經(jīng)過CPU控制完成的。7/21/20225.2.4 I/O通道控制方式1、概念 通道控制方式是一種以主存為中心,是設(shè)備與主存直接交換數(shù)據(jù)的控制方式。 CPU只需要發(fā)出啟動指令,指出通道相應(yīng)的操作和輸入輸出設(shè)備,該指令就可以啟動通道并使該通道從主存中調(diào)出相應(yīng)的通道指令執(zhí)行,完成一組數(shù)據(jù)塊的輸入/輸出。 7/21/20222、通道控制方式步驟 (1)當進程要求設(shè)備輸入時,CPU發(fā)指令指明I/O操作、設(shè)備號和對應(yīng)通道。 (2)對應(yīng)通道收到CPU發(fā)來的啟動指令后,讀出內(nèi)存中的通道指令程序、設(shè)置對應(yīng)設(shè)備的控制狀態(tài)寄存器的初值。 (3)設(shè)備按通道指令
25、的要求,把數(shù)據(jù)送往內(nèi)存指定區(qū)域。 (4)若傳送結(jié)束,I/O控制器通過中斷請求線發(fā)中斷信號請求CPU做中斷處理。 (5)中斷處理結(jié)束后,CPU返回到被中斷進程處繼續(xù)執(zhí)行。 (6)當進程調(diào)度程序選中這個已得到數(shù)據(jù)的進程后,才能進行加工處理。7/21/20223、特點 通道所需要的CPU干預更少,并可以實現(xiàn)CPU、通道和輸入輸出設(shè)備三者之間的并行操作,從而更有效地提高整個系統(tǒng)資源的利用率。 通道控制方式適用于現(xiàn)代計算機系統(tǒng)中的大量數(shù)據(jù)交換。7/21/2022通道和DMA控制器的區(qū)別 (1)一個DMA控制器只能連接同類外設(shè),且如果是多臺同類外設(shè),則它們只能是以串行方式工作。 一個通道可以連接多個不同類
26、型的設(shè)備控制器,而一個設(shè)備控制器又可以管理一臺或多臺外圍設(shè)備,這就構(gòu)成了典型的多級層次結(jié)構(gòu),眾多外設(shè)均可在通道控制下同時工作; (2)DMA控制是借助硬件完成數(shù)據(jù)交換的,而通道是執(zhí)行通道程序完成數(shù)據(jù)的; (3)DMA控制器需要CPU對多個外設(shè)進行初始化。CPU只需發(fā)一個I/O指令啟動通道,由通道自己完成外設(shè)的初始化。7/21/2022 綜上所述,在前三種I/O控制方式中,CPU直接對設(shè)備控制器和I/O接口編程,可以簡化接口的設(shè)計。 對于非DMA傳送,需要CPU實際去完成數(shù)據(jù)傳送。對于高速數(shù)據(jù)傳送可以使用DMA,但還是需要CPU設(shè)置設(shè)備控制器,初始化DMA操作和操作完畢去檢查端口傳送狀態(tài)。 而通
27、道不同于DMA控制器,它能夠去取和執(zhí)行它自己的指令; 而且這些指令的功能已不僅僅是數(shù)據(jù)傳送,還包括檢索、分支轉(zhuǎn)移,甚至一些簡單的算術(shù)、邏輯運算。7/21/2022 大、中型計算機系統(tǒng)普遍用通道方式去控制設(shè)備完成I/O操作,以提高CPU與外設(shè),外設(shè)與外設(shè)并行的程度。一些小型機和絕大多數(shù)微型機都是以CPU直接控制設(shè)備接口和設(shè)備控制器以查詢、中斷或DMA方式完成I/O操作,以降低系統(tǒng)造價。7/21/2022思考題四 綜上所述的4種I/O控制方式,分別適合用于何種場合?7/21/2022課堂練習題1、從下面關(guān)于設(shè)備屬性的論述中,選擇一條正確的描述。( )A字符設(shè)備的一個基本特征是可尋址的,即能指定輸入
28、時的源地址和輸出時的目標地址B共享設(shè)備必須是可尋址的和隨機訪問的設(shè)備C共享設(shè)備是指在同一時刻,允許多個進程同時訪問的設(shè)備D在分配共享設(shè)備和獨占設(shè)備時,都可能引起進程死鎖2、( )在一般大型計算機系統(tǒng)中,主機對外圍設(shè)備的控制可通過通道、控制器和設(shè)備三個層次來實現(xiàn)。從下述敘述中選出一條正確的敘述。A 控制器可控制通道,設(shè)備在通道控制下工作B 通道控制控制器,設(shè)備在控制器控制下工作C 通道和控制器分別控制設(shè)備D 控制器控制通道和設(shè)備的工作7/21/20221、通過硬件和軟件的擴充,把原來獨立的設(shè)備改造成能為若干用戶共享的設(shè)備,這種設(shè)備稱為 ? 。 2、引起中斷發(fā)生的事件稱為 ? 。 3、如果I/O設(shè)
29、備與存儲設(shè)備進行數(shù)據(jù)交換不經(jīng)過CPU來完成,這種數(shù)據(jù)交換方式是 ? 。4、常用的I/O控制方式有程序I/O方式、 ? 、? 、?.5、DMA是指允許 ? 和 ? 之間直接交換數(shù)據(jù)的設(shè)備。在DMA中必須設(shè)置地址寄存器,用于存放 ? ,還必須設(shè)置 ? 寄存器,用來暫存交換的數(shù)據(jù)。 6、設(shè)備控制器是 ? 和 ? 之間的接口,它接受來自 ? 的I/O命令,并用于控制 ? 的工作。 7、按從屬關(guān)系對I/O設(shè)備分類,可分為系統(tǒng)設(shè)備和 ? 兩類。7/21/20225.3 緩沖管理5.3.1 緩沖的引入 1、引入的原因 (1)緩和CPU與輸入輸出設(shè)備間速度不匹配的矛盾 (2)減少對CPU的中斷頻率,放寬對中斷
30、響應(yīng)時間的限制。 (3)提高CPU與輸入輸出設(shè)備間的并行性。7/21/20222、緩沖技術(shù)的實現(xiàn)思想 建立一個緩沖區(qū),當進程要執(zhí)行讀寫操作時,首先向申請一塊內(nèi)存區(qū)域作為緩沖區(qū),然后,將要傳送的數(shù)據(jù)高速送到緩沖區(qū)。 如果是讀操作,則根據(jù)進程要求,把當前需要的邏輯記錄從緩沖區(qū)中選出并傳送給進程。若為寫操作,則不斷把數(shù)據(jù)填到緩沖區(qū),直到它被填滿為止。7/21/20223、實現(xiàn)緩沖的方法 (1) 硬件緩沖。硬件緩沖采用專用硬件緩沖器,一般由外設(shè)自帶的專用寄存器構(gòu)成。 (2)軟件緩沖。在內(nèi)存中專門開辟若干單元作為緩沖區(qū)為各種設(shè)備服務(wù)。7/21/20225.3.2 單緩沖和雙緩沖一、單緩沖 單緩沖即是在發(fā)
31、送者和接收者之間只有一個緩沖區(qū) 過程:當一個用戶進程要求輸入數(shù)據(jù)時,操作系統(tǒng)控制輸入設(shè)備將數(shù)據(jù)送往緩沖區(qū)存放,再送往用戶進程的數(shù)據(jù)存儲區(qū)。7/21/2022特點 在主存中只有一個緩沖區(qū)。對于塊設(shè)備,該緩沖區(qū)可以存放一塊數(shù)據(jù),對于字符設(shè)備,該緩沖區(qū)可以存放一行數(shù)據(jù)。設(shè)備和處理器對緩沖區(qū)的操作是串行的,傳輸速度慢。在任一時刻,只能進行單向的數(shù)據(jù)傳輸,并且傳輸數(shù)據(jù)量較少。 優(yōu)點是設(shè)計簡單,容易實現(xiàn) 缺點是發(fā)送者和接收者不能并行工作7/21/2022二、雙緩沖 雙緩沖可在發(fā)送者與接收者之間設(shè)兩個緩沖區(qū)緩沖區(qū)1和緩沖區(qū)2。 過程:發(fā)送者將數(shù)據(jù)送滿緩沖區(qū)1,接收者從緩沖區(qū)1取數(shù)據(jù)時,發(fā)送者則可將數(shù)據(jù)送入緩
32、沖區(qū)2,當接收者將緩沖區(qū)1取空后,又可到緩沖區(qū)2中取數(shù)據(jù),這時發(fā)送者再將數(shù)據(jù)送入緩沖區(qū)1。 于是,發(fā)送者和接收者交替使用兩個緩沖區(qū),達到了并行工作的目的。7/21/2022特點 在主存中設(shè)置兩個緩沖區(qū),完成數(shù)據(jù)的傳輸。兩個緩沖區(qū)可以交替使用,提高了處理器和輸入設(shè)備的并行操作能力。 在任一時刻,可以進行雙向的數(shù)據(jù)傳輸。一個緩沖區(qū)用于輸入,另一個用于輸出。 適用于輸入/輸出、生產(chǎn)者/消費者速度基本相匹配的情況。 當傳輸數(shù)據(jù)量較大,或者兩者的速度相差較遠時,雙緩沖區(qū)效率較低,還是不能解決兩者并行工作問題。7/21/2022三、循環(huán)緩沖 由于雙緩沖并不能真正解決實際系統(tǒng)中的并行操作,為了能夠進一步提高
33、系統(tǒng)操作的并行程度,可以通過增加緩沖區(qū)的個數(shù),即實現(xiàn)多緩沖區(qū)方式。為了更好地控制和使用這些緩沖區(qū),將多個緩沖區(qū)組成環(huán)形,稱為循環(huán)緩沖技術(shù)。 循環(huán)緩沖技術(shù)是在內(nèi)存中分配大小相等的存儲區(qū)作為緩沖區(qū),并將這些緩沖區(qū)連接起來,每個緩沖區(qū)中有一個指向下一個緩沖區(qū)的指針,最后一個緩沖區(qū)的指針指向第一個緩沖區(qū)7/21/2022 為了充分利用這些緩沖資源,使進程的處理和I/O設(shè)備的工作具有較好的連續(xù)性,提高設(shè)備的利用率,將緩沖區(qū)分為以下兩種類型: (1) 空緩沖區(qū)。準備接收輸入的數(shù)據(jù)。 (2) 滿緩沖區(qū)。用于存放可供使用的數(shù)據(jù)。過程: 當循環(huán)緩沖接收數(shù)據(jù)時,將待傳送的數(shù)據(jù)送入EMPTY指向的空緩沖區(qū),填滿后,
34、讓EMPTY指向下一個空緩沖區(qū)。每次申請一個空緩沖區(qū)時,需要判斷EMPTY是否與FULL相等。若相等,表示系統(tǒng)中已沒有空緩沖區(qū),輸入進程需要等待;否則,可以繼續(xù)輸入。 若要從緩沖區(qū)取數(shù)據(jù)時,直接到FULL所指向的緩沖區(qū)中取,然后讓FULL指向下一個滿緩沖區(qū)。同樣,每次FULL指針移動時,需要判斷FULL是否與EMPTY相等。若相等,表示緩沖區(qū)已無數(shù)據(jù)可取,等待緩沖區(qū)滿后繼續(xù)操作。7/21/2022特點: 在主存中設(shè)置多個緩沖區(qū)。讀和寫可以并行處理,適用于某種特定的輸入輸出進程和計算進程,如輸入/輸出、生產(chǎn)者/消費者速度不相匹配的情況。 循環(huán)緩沖區(qū)屬于專用緩沖區(qū)。當系統(tǒng)較大時,使用多個這樣的緩沖
35、區(qū)要消耗大量的主存空間,降低緩沖區(qū)的使用效率。 兩個缺點: (1)當系統(tǒng)的資源較多時,就要占用大量的緩沖區(qū),增加內(nèi)存開銷。 (2)可能會出現(xiàn)某個設(shè)備的緩沖不夠用,而其他設(shè)備有多個空閑緩沖區(qū)的情況,導致循環(huán)緩沖的利用率不高。7/21/2022四、緩沖池 上述的循環(huán)緩沖區(qū)僅適用于某特定的I/O進程和計算進程,是專用緩沖結(jié)構(gòu),而不是針對整個系統(tǒng)的公用緩沖結(jié)構(gòu)。當系統(tǒng)較大時,會有很多這樣的緩沖結(jié)構(gòu),這不僅要消耗大量的內(nèi)存空間,而且其利用率不高。 為了提高緩沖區(qū)的利用率,目前普遍采用公用緩沖池結(jié)構(gòu),在緩沖池中設(shè)置了可供多個并發(fā)進程共享的緩沖區(qū)。7/21/2022 如圖所示,緩沖池是由多個大小相同的緩沖區(qū)
36、組成,同管理程序統(tǒng)一對緩沖池進行管理。當某個進程需要使用緩沖區(qū)時,由管理程序?qū)⒕彌_池中合適的緩沖區(qū)分配給它,使用完畢,再將緩沖區(qū)釋放回緩沖池。 7/21/2022 為便于管理,系統(tǒng)將相同類型的緩沖區(qū)鏈成一個隊列,緩沖池中共有三種隊列: (1) 空緩沖隊列。 (2) 輸入隊列。 (3) 輸出隊列。 這三種隊列各有指向其首緩沖區(qū)的隊首指針和指向尾緩沖區(qū)的隊尾指針。系統(tǒng)根據(jù)需要從這三種隊列中取出緩沖區(qū),對緩沖區(qū)進行存數(shù)據(jù)、取數(shù)據(jù)操作。這些緩沖區(qū)稱為工作緩沖區(qū)。緩沖池中有四種工作緩沖區(qū): (1) 收容輸入工作緩沖區(qū)。 (2) 提取輸入工作緩沖區(qū)。 (3) 收容輸出工作緩沖區(qū)。 (4) 提取輸出工作緩沖
37、區(qū)。7/21/2022對緩沖池管理提供兩個基本操作(過程): (1) getbuf(type):用于從type所指定的隊列的隊首, 摘下一個緩沖區(qū); (2) putbuf(type,number):用于將用參數(shù)number所指示的緩沖區(qū), 掛在type隊列上。7/21/2022 下面是緩沖池在具體的工作過程中,對緩沖池中的緩沖區(qū)實施管理和使用的情況: (1) 當輸入設(shè)備要進行數(shù)據(jù)輸入時,先從空緩沖區(qū)隊列的隊首摘取一個空緩沖區(qū),將它作為收容輸入工作緩沖區(qū),在其裝滿輸入數(shù)據(jù)后,再將它掛到輸入數(shù)據(jù)隊列的隊尾。 (2) 當某個計算進程需要輸入數(shù)據(jù)時,從輸入隊列中取出一個緩沖區(qū)作為輸入工作緩沖區(qū),進程從
38、中提取數(shù)據(jù),取空后,將該緩沖區(qū)掛到空緩沖區(qū)隊列的隊尾。 (3) 當某個計算進程想輸出數(shù)據(jù)時,從空緩沖區(qū)隊首摘下一個空緩沖區(qū)作為收容輸出工作緩沖區(qū),在其裝滿計算進程的輸出數(shù)據(jù)后,將它掛到輸出隊列的隊尾。 (4) 當輸出設(shè)備進行數(shù)據(jù)輸出時,從輸出隊列取下一個緩沖區(qū)作為提取輸出工作緩沖區(qū),當其數(shù)據(jù)全送到輸出設(shè)備后,再將它掛到空緩沖隊列尾。7/21/2022特點 緩沖池結(jié)構(gòu)復雜,在主存中設(shè)置公用緩沖池,在池中設(shè)置多個可以供多個進程共享的緩沖區(qū)。緩沖區(qū)既可以用于輸入,又可以用于輸出(即共享)。緩沖池的設(shè)置,減少了主存空間的消耗,提高了主存的利用率,適應(yīng)于現(xiàn)代操作系統(tǒng)。 無論是多緩沖,還是緩沖池,由于緩沖
39、器是臨界資源,因此在使用緩沖區(qū)時都有一個申請、釋放和互斥的問題。 7/21/2022緩沖和緩存的差異 緩沖與緩存的基本原理和作用是相似的,如果不加區(qū)分的話,都可以稱之為緩沖。 但兩者之間確實存在細微的差異: 緩沖的作用在于協(xié)調(diào)速度不匹配的I/O傳輸過程; 而緩存的作用在于減少對設(shè)備的實際訪問次數(shù)。這個差異導致了兩者的管理方法有所不同。7/21/2022 一般來說,緩沖區(qū)的生命期較短,當進程開始數(shù)據(jù)傳輸時建立,一旦數(shù)據(jù)傳輸完畢,將立即釋放緩沖區(qū),它只起暫存數(shù)據(jù)的作用。 而緩存區(qū)的生命期較長,緩存的數(shù)據(jù)可以長時間地保存在緩存區(qū)中,服務(wù)于各種應(yīng)用目的。如文件系統(tǒng)中的i節(jié)點緩存、目錄項緩存等在整個系統(tǒng)
40、運行期間都存在于內(nèi)存中,由文件系統(tǒng)管理和使用。 7/21/2022 另外,緩沖區(qū)的管理相對簡單,系統(tǒng)只需提供簡單的分配算法以及同步機制即可。 而緩存區(qū)的管理則需要利用更復雜的算法,以提高訪問的命中率,最大限度地發(fā)揮緩存的作用。例如,磁盤的緩存算法要確定哪些數(shù)據(jù)應(yīng)存放在緩存中,哪些數(shù)據(jù)應(yīng)從緩存中撤出等。 在應(yīng)用上,進程間的通信多使用緩沖技術(shù),而設(shè)備的I/O往 往使用緩沖兼緩存技術(shù)。7/21/20225.4I/O軟件 分層結(jié)構(gòu)的底層是設(shè)備相關(guān)部分,稱為設(shè)備驅(qū)動程序。它們直接和相應(yīng)的設(shè)備打交道,負責設(shè)備的具體驅(qū)動和控制。上層通常是和設(shè)備無關(guān)的,這個部分接受來自用戶層的訪問請求,并把這些訪問請求傳給具
41、體的設(shè)備驅(qū)動程序,再將驅(qū)動程序的執(zhí)行結(jié)果進行轉(zhuǎn)換,傳給用戶7/21/20225.4I/O軟件的設(shè)計目標和原則設(shè)備無關(guān)性錯誤處理同步/異步傳輸必須能處理獨占設(shè)備和共享設(shè)備的I/O操作7/21/2022 為實現(xiàn)以上四個目標, I/O系統(tǒng)應(yīng)組織成以下四個層次: (1) 中斷處理程序 (2) 設(shè)備驅(qū)動程序 (3) 與設(shè)備無關(guān)的I/O軟件 (4) 用戶空間的I/O軟件7/21/20225.4.2中斷處理程序 中斷事件通常由硬件發(fā)現(xiàn)。對出現(xiàn)的事件進行處理的程序稱為中斷處理程序。 中斷處理程序是由操作系統(tǒng)處理的,屬于操作系統(tǒng)的組成部分。 中斷處理程序位于I/O系統(tǒng)的最低層。當進程需要進行I/O操作時,操作系
42、統(tǒng)應(yīng)將該進程掛起,即進入阻塞,直至I/O操作結(jié)束并發(fā)生中斷。當中斷發(fā)生時,中斷處理程序執(zhí)行相應(yīng)的操作,以解除相應(yīng)進程的阻塞狀態(tài)。7/21/2022一個完整的中斷處理過程包括以下四步: (1) 中斷請求:由中斷源向CPU提出中斷請求(軟中斷除外)。 (2) 中斷響應(yīng):CPU在收到中斷請求并具備響應(yīng)條件的情況下,進行中斷響應(yīng),以實現(xiàn)向中斷服務(wù)程序的過渡。 (3) 中斷服務(wù):CPU在執(zhí)行中斷服務(wù)程序期間,要進行具體的中斷服務(wù)。 (4) 中斷返回:中斷服務(wù)程序的最后一條指令應(yīng)是中斷返回指令。當執(zhí)行到該指令時,便返回到被終止的程序,從斷點處繼續(xù)執(zhí)行。7/21/2022中斷請求: 中斷源需要通過中斷線送到
43、中斷控制器的輸入端,這稱為中斷請求。 中斷控制器是一個硬件裝置,它負責捕獲中斷請求,并以一定的方式向CPU提交中斷。由于同時可能會有多個中斷信號產(chǎn)生,它們需要共用有限的中斷線。 因此,當設(shè)備要使用中斷線時就要先進行中斷請求(IRQ),以獲得中斷線的使用權(quán)。7/21/2022中斷響應(yīng) 對中斷請求的整個處理過程是由硬件和軟件相結(jié)合的一整套中斷機構(gòu)實施的。中斷響應(yīng)由硬件實施,中斷處理主要由軟件實施。 中斷響應(yīng)是CPU對中斷源中斷請求的響應(yīng),包括保護斷點和將程序轉(zhuǎn)向中斷服務(wù)程序的入口地址。 在處理器執(zhí)行完一條指令后,硬件的中斷裝置就立即檢查有無中斷事件發(fā)生。若無,繼續(xù)執(zhí)行下一條指令;若有,則停止現(xiàn)行進
44、程,由操作系統(tǒng)中的中斷處理程序占用處理器,這一過程稱為“中斷響應(yīng)”。7/21/2022一般說來,中斷響應(yīng)過程順序執(zhí)行下述動作: (1) 中止當前進程的執(zhí)行; (2) 對被響應(yīng)的中斷進行應(yīng)答; (3) 保存當前進程的斷點信息(主要是程序狀態(tài)字PSW和程序計數(shù)器PC); (4) 轉(zhuǎn)到中斷處理程序入口。7/21/2022中斷處理 中斷處理主要由軟件實施。響應(yīng)中斷后,CPU轉(zhuǎn)去執(zhí)行相應(yīng)的中斷處理程序。每個中斷都對應(yīng)一個特定的中斷處理程序,因而系統(tǒng)中會有許多中斷處理程序,如時鐘中斷處理程序、鍵盤中斷處理程序等。在設(shè)備的驅(qū)動程序中包含了對該設(shè)備所有中斷的處理程序。7/21/2022中斷處理過程: 當中斷裝
45、置發(fā)現(xiàn)中斷事件后,先把中斷事件存放到程序狀態(tài)字寄存器中的中斷碼位置。 把程序狀態(tài)字寄存器中的“當前PSW”作為“舊 PSW”保存到預先約定的主存的固定單元中。 根據(jù)中斷碼,把該類事件處理程序的“新PSW”送入程序狀態(tài)字寄存器。 處理器按新PSW控制處理該事件的中斷處理程序執(zhí)行。 當中斷程序處理完后,再恢復現(xiàn)場,繼續(xù)執(zhí)行原先被中斷的進程7/21/2022中斷處理程序的處理過程如下: 1喚醒被阻塞的驅(qū)動程序進程 2保護被中斷進程的現(xiàn)場 3分析中斷原因、轉(zhuǎn)入相應(yīng)的設(shè)備中斷處理程序 4進行中斷處理 5恢復被中斷進程的現(xiàn)場 中斷處理程序的工作是對傳輸?shù)慕Y(jié)果進行必要的處理。7/21/2022多中斷的處理
46、對于中斷處理過程中又發(fā)生中斷,引起多中斷處理的問題,通常有兩種處理方法。 (1) 處理一個中斷時禁止中斷對任何新中斷置之不理,在此期間發(fā)生的中斷將保持掛起狀態(tài),當再次允許中斷時,新中斷信號被處理器檢測到再予以處理 (2) 中斷按照優(yōu)先權(quán)分級允許優(yōu)先級高的中斷打斷優(yōu)先級低的中斷處理過程7/21/20225.4.3 設(shè)備驅(qū)動程序 設(shè)備驅(qū)動程序是驅(qū)動物理設(shè)備直接進行各種操作的軟件,它可看作I/O系統(tǒng)和物理設(shè)備的接口。 設(shè)備驅(qū)動程序包括了所有與設(shè)備有關(guān)的代碼。每一個設(shè)備驅(qū)動程序只處理一種設(shè)備或者一類密切相關(guān)的設(shè)備。 7/21/2022設(shè)備驅(qū)動程序的功能: (1)實現(xiàn)邏輯設(shè)備到物理設(shè)備的轉(zhuǎn)換。 (2)發(fā)
47、出I/O命令,啟動相應(yīng)的I/O設(shè)備,完成相應(yīng)的I/O操作。7/21/2022設(shè)備驅(qū)動程序與設(shè)備控制器交互的大致過程 驅(qū)動程序?qū)⒖刂泼畎l(fā)到控制器的命令寄存器中,控制器啟動設(shè)備進行I/O操作。 當數(shù)據(jù)準備好后,驅(qū)動程序負責與控制器交互,完成數(shù)據(jù)傳輸工作。 控制器將設(shè)備產(chǎn)生的狀態(tài)信息存入狀態(tài)寄存器中,供驅(qū)動程序查詢。 當有設(shè)備中斷事件發(fā)生時,控制器發(fā)出中斷請求信號,系統(tǒng)進入中斷處理程序進行處理。7/21/2022設(shè)備處理方式有三類: 一是為每一類設(shè)備設(shè)置一個進程,專門執(zhí)行這類設(shè)備的輸入輸出操作。 二是在整個系統(tǒng)中設(shè)置一個輸入輸出進程,專門負責對系統(tǒng)中所有各類設(shè)備的輸入輸出操作。 三是不設(shè)置專門的設(shè)
48、備處理進程,只為各類設(shè)備設(shè)置相應(yīng)的設(shè)備處理程序,供用戶進程或系統(tǒng)進程調(diào)用。7/21/2022設(shè)備驅(qū)動程序的特點 (1) 驅(qū)動程序主要是在請求輸入輸出的進程與設(shè)備控制器之間的一個通信程序。 (2) 驅(qū)動程序與輸入輸出設(shè)備的特性密切相關(guān)。因而對不同類型的設(shè)備應(yīng)配置不同的驅(qū)動程序 (3) 驅(qū)動程序與輸入輸出控制方式緊密相關(guān)。 (4) 驅(qū)動程序與硬件緊密相關(guān),其部分被固化在ROM 中。7/21/2022設(shè)備驅(qū)動程序的處理過程: 1將抽象要求轉(zhuǎn)化為具體要求 2檢查輸入輸出請求的合法性 3讀出和檢查設(shè)備的狀態(tài) 4傳送必要的參數(shù) 5設(shè)置工作方式 6啟動輸入輸出設(shè)備7/21/20225.4.4 設(shè)備獨立性軟件
49、 為了實現(xiàn)設(shè)備獨立性而引入了邏輯設(shè)備和物理設(shè)備這兩個概念。 在應(yīng)用程序中, 使用邏輯設(shè)備名稱來請求使用某類設(shè)備;而系統(tǒng)在實際執(zhí)行時, 還必須使用物理設(shè)備名稱。 因此,系統(tǒng)須具有將邏輯設(shè)備名稱轉(zhuǎn)換為某物理設(shè)備名稱的功能,這非常類似于存儲器管理中所介紹的邏輯地址和物理地址的概念。 7/21/20221 邏輯設(shè)備與物理設(shè)備的概念 物理設(shè)備是一個具體的設(shè)備。系統(tǒng)為了能識別全部外設(shè),給每臺外設(shè)分配一個唯一不變的名字,稱為物理設(shè)備名。系統(tǒng)在實際工作時使用物理設(shè)備名。 邏輯設(shè)備是對實際物理設(shè)備屬性的抽象,它并不限于某個具體設(shè)備。用戶在編程時,不用關(guān)心系統(tǒng)具體配置了哪些設(shè)備,也不需要了解各種設(shè)備的物理特性,而
50、只是按照慣例為所用的設(shè)備起個邏輯名字,稱為邏輯設(shè)備名。7/21/20222 設(shè)備獨立性 設(shè)備獨立性也稱設(shè)備無關(guān)性,指用戶編程時所使用的設(shè)備與實際使用的設(shè)備無關(guān)。 為此,要求用戶程序?qū)斎胼敵鲈O(shè)備的請求采用邏輯設(shè)備名; 而在程序?qū)嶋H執(zhí)行時使用物理設(shè)備名,它們之間的關(guān)系類似存儲管理中的邏輯地址和物理地址的關(guān)系。7/21/2022 用戶程序以邏輯設(shè)備名來請求使用某類設(shè)備時,系統(tǒng)將在該類設(shè)備中,根據(jù)設(shè)備的使用情況,將任一臺合適的物理設(shè)備分配給程序。 在實現(xiàn)了設(shè)備獨立性的功能后, 可帶來以下兩方面的好處: 1) 設(shè)備分配時的靈活性 2) 易于實現(xiàn)I/O重定向7/21/20225.4.5 用戶層I/O軟件
51、 盡管大部分I/O軟件屬于操作系統(tǒng),但是也有一小部分是與用戶程序鏈接在一起的庫例程,甚至是在核心外運行的完整程序。 系統(tǒng)調(diào)用, 包括I/O系統(tǒng)調(diào)用,通常是庫例程調(diào)用。在如下C語句: count=write(fd, buffer, nbyte); 中, 所調(diào)用的庫函數(shù)write( )將與用戶程序鏈接在一起, 并包含在運行時的二進制代碼中。這一類庫例程顯然也是I/O系統(tǒng)的一部分。標準I/O庫包含相當多涉及I/O的庫例程,它們作為用戶程序的一部分運行。 7/21/2022總結(jié)I/O系統(tǒng)各層的主要功能如下: (1) 用戶進程層執(zhí)行輸入/輸出系統(tǒng)調(diào)用,對I/O數(shù)據(jù)進行格式化,為假脫機輸入/輸出做準備。
52、(2) 獨立于設(shè)備的軟件實現(xiàn)設(shè)備的命名、設(shè)備的保護、成塊處理、緩沖技術(shù)和設(shè)備分配。 (3) 設(shè)備驅(qū)動程序設(shè)置設(shè)備寄存器、檢查設(shè)備的執(zhí)行狀態(tài)。 (4) 中斷處理程序負責I/O完成時,喚醒設(shè)備驅(qū)動程序進程,進行中斷處理。 (5) 硬件層實現(xiàn)物理I/O的操作。7/21/20225.5 設(shè)備分配 設(shè)備分配是由I/O系統(tǒng)中的設(shè)備分配程序完成的。 每當進程提出I/O請求時,設(shè)備分配程序便按照一定的策略把所需的設(shè)備分配給進程使用。 設(shè)備分配的原則是要盡可能地讓設(shè)備忙碌,充分發(fā)揮設(shè)備的使用效率。7/21/20225.5.1 設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)設(shè)備控制表 DCT控制器控制表 COCT系統(tǒng)設(shè)備表 SDT通道控制
53、表CHCT(有時有)7/21/20221.設(shè)備控制表 系統(tǒng)為每個設(shè)備配置一張設(shè)備控制表,用于記錄設(shè)備的特性及與輸入輸出控制器連接的情況。 該表在系統(tǒng)生成時或在該設(shè)備和系統(tǒng)連接時創(chuàng)建,但表中的內(nèi)容則根據(jù)系統(tǒng)執(zhí)行情況而被動態(tài)地修改。7/21/2022表目1 設(shè)備控制表集合 設(shè)備控制表 設(shè)備控制表 7/21/20222.系統(tǒng)設(shè)備表SDT 系統(tǒng)設(shè)備表也稱為設(shè)備類表,整個系統(tǒng)配置一張。它記錄了已被連接到系統(tǒng)中的所有物理設(shè)備的情況,并為每個物理設(shè)備設(shè)一個表項。7/21/2022表目1 系統(tǒng)設(shè)備表 7/21/20223.控制器控制表COCT 系統(tǒng)為每個控制器配置了一張控制器控制表,以反映控制器的使用狀態(tài)。7
54、/21/2022表目1 控制器表 控制器表 其中控制器表中包括:控制器標識符、控制器狀態(tài)、與控制器連接的通道表指針、控制器隊列的隊首指針和隊尾指針。與設(shè)備控制表的表目類似,不再重復。7/21/20224.通道控制表CHCT 系統(tǒng)為每個通道配置一張通道控制表,以反映通道的使用狀態(tài)。 該表只在通道控制方式的系統(tǒng)中存在,每個通道一張。7/21/2022表目1 通道表通道表 其中通道表中包括:通道標識符、通道狀態(tài)、與通道連接的控制器表首址、通道隊列的隊首指針和隊尾指針。與設(shè)備控制表的表目類似,不再重復。7/21/2022這幾張表的關(guān)系: 在系統(tǒng)設(shè)備表中有指向設(shè)備控制表的指針,在設(shè)備控制表中有指向該設(shè)備
55、控制器控制表的指針,在控制器控制表中有指向與該控制器連接的通道控制表的指針。系統(tǒng)就是通過這種關(guān)系進行設(shè)備的分配與回收的。7/21/20225.5.2 設(shè)備分配時應(yīng)考慮的因素1設(shè)備的使用性質(zhì) 按照設(shè)備自身的使用性質(zhì),可以采用以下三種不同的分配方式:獨享分配、共享分配、虛擬分配。 獨享分配適用于大多數(shù)低速設(shè)備,如打印機。 共享分配適應(yīng)于高速設(shè)備,如磁盤。 虛擬分配適應(yīng)于虛擬設(shè)備。根據(jù)設(shè)備的使用性質(zhì)來決定一臺設(shè)備可以分給幾個進程。7/21/20222.設(shè)備分配的算法 當有多個進程同時請求設(shè)備時,系統(tǒng)應(yīng)采用某種策略決定將設(shè)備分配給哪個進程使用。主要的分配策略有先來先服務(wù)和優(yōu)先級兩種。 (1)先來先服務(wù)
56、算法根據(jù)進程對某設(shè)備提出請求的先后次序,將這些進程排成一個設(shè)備請求隊列,設(shè)備分配程序總是把設(shè)備首先分配給隊首的進程。先來先服務(wù)的算法簡單、公平,但無法滿足某些緊迫進程對I/O響應(yīng)時間的要求。 (2)優(yōu)先級算法的策略是對高優(yōu)先權(quán)進程的I/O請求也賦予高優(yōu)先權(quán),這有助于這種進程盡快完成。在利用該算法形成設(shè)備隊列時,將優(yōu)先級高的進程排在設(shè)備請求隊列的前面,而對于同優(yōu)先級的I/O請求,則按先來先服務(wù)的原則排隊。7/21/20223. 設(shè)備分配的安全性 設(shè)備分配的安全性是指在設(shè)備分配中應(yīng)防止發(fā)生進程的死鎖。設(shè)備分配的安全性采用的方法有靜態(tài)分配策略和動態(tài)分配策略,它們可以防止進程死鎖。 (1)靜態(tài)分配策略
57、。靜態(tài)分配策略是在作業(yè)級進行的,用戶作業(yè)開始執(zhí)行前,由系統(tǒng)一次分配給該作業(yè)所要求的全部設(shè)備、控制器和通道,直到該作業(yè)撤消為止。靜態(tài)分配不會出現(xiàn)死鎖,但是,設(shè)備利用率低。 (2)動態(tài)分配策略。動態(tài)分配策略是在進程執(zhí)行過程中,根據(jù)執(zhí)行的需要所進行的設(shè)備分配。動態(tài)分配提高了設(shè)備的利用率,但是分配不當,會造成進程的死鎖。7/21/20224. 設(shè)備的獨立性 設(shè)備的獨立性是指用戶在編制程序時所使用的設(shè)備與實際使用的設(shè)備無關(guān)。為此,要求用戶程序?qū)斎胼敵鲈O(shè)備的請求采用邏輯設(shè)備名,而在程序?qū)嶋H執(zhí)行時使用物理設(shè)備名,它們之間的關(guān)系類似存儲管理中的邏輯地址和物理地址的關(guān)系。7/21/20225.5.3 獨占設(shè)備
58、的分配程序 在一個具有I/O通道的系統(tǒng)中,當進程提出I/O請求時,對獨占設(shè)備的分配過程是: 首先為其進行分配合適的設(shè)備,然后分配控制器,最后分配通道。7/21/20221分配設(shè)備 分配設(shè)備的過程如圖示: 當進程提出I/O請求后,首先根據(jù)進程提出的邏輯設(shè)備名,查找到與之對應(yīng)的物理設(shè)備名,檢索系統(tǒng)設(shè)備表SDT,以獲得該設(shè)備的設(shè)備控制表DCT。查看設(shè)備控制表中設(shè)備的狀態(tài)。 若設(shè)備忙,將該進程PCB放入設(shè)備請求隊列中; 否則,系統(tǒng)可根據(jù)一定的算法判定分配此設(shè)備給進程是否安全。 若不安全,將進程的PCB塊也放入設(shè)備請求隊列。 若有設(shè)備空閑,且分配安全,就將該設(shè)備分配給進程。7/21/2022121第七章
59、 設(shè)備管理 2分配控制器 在系統(tǒng)把設(shè)備分配給請求輸入輸出的進程后, 再到設(shè)備控制表中找到與該設(shè)備相連的控制器控制表,從該表的狀態(tài)字段中可知該控制器是否忙碌。 若控制器忙,則將進程插入到等待該控制器的隊列; 否則,將該控制器分配給進程,即修改控制器控制表,把狀態(tài)字段的值由“0”改為進程名。7/21/2022122第七章 設(shè)備管理 3分配通道 在分配完設(shè)備控制器后,從控制器控制表中找到與該控制器相連的通道控制表,從該表的狀態(tài)字段中可知該通道是否忙碌。 若通道處于忙碌狀態(tài),則將該進程插入到等待該通道的隊列; 否則,將該通道分配給進程,即修改通道控制表,把狀態(tài)字段的值由“0”改為進程名。7/21/20
60、22123第七章 設(shè)備管理 設(shè)備回收 當進程撤消或設(shè)備使用完畢后,要進行設(shè)備的回收,設(shè)備回收的過程如圖所示。設(shè)備回收的步驟:(1)系統(tǒng)根據(jù)進程名在設(shè)備分配表中找到相應(yīng)的記錄,把設(shè)備狀態(tài)修改為“0”表示未分配,若該設(shè)備的等待隊列不空,則喚醒隊首進程,進行設(shè)備分配;(2)到該設(shè)備的控制器控制表中,把其狀態(tài)由進程名改為“0”,若該控制器的等待隊列不空,則喚醒隊首進程,進行控制器分配;(3)到該控制器的通道控制表中,把其狀態(tài)由進程名改為“0”,若該通道的等待隊列不空,則喚醒隊首進程,進行通道分配;(4)在系統(tǒng)設(shè)備表中,把回收設(shè)備臺數(shù)添加到“現(xiàn)存設(shè)備臺數(shù)”中。 7/21/2022124第七章 設(shè)備管理
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 軟件開發(fā)與服務(wù)協(xié)議書
- 砌筑勞務(wù)分包合作協(xié)議
- 幼兒園轉(zhuǎn)讓合同協(xié)議模板
- 鍋爐房工程招投標實務(wù)
- 拆除建筑垃圾清運項目合同
- 建筑行業(yè)分包勞務(wù)協(xié)議
- 稅務(wù)減免顧問合作協(xié)議
- 電力電纜供應(yīng)協(xié)議
- 模板工程分包協(xié)議范本
- 租賃合同續(xù)簽合同簽訂合同應(yīng)注意
- 楊柳煤礦“三量”動態(tài)變化情況分析報告(3)
- 醫(yī)療垃圾收集辦法及流程圖
- 復古中古風非遺之蘇繡文化介紹PPT模板
- 大氣課程設(shè)計-—袋式除塵器
- 手衛(wèi)生流程圖
- 旅行社踩線邀請函
- 叉車自檢報告模板(1)
- 水泥攪拌樁水灰比及漿液用量計算表(自動計算)
- 建筑物放線驗線技術(shù)報告
- 下庫進出水口攔污柵2X320KN雙向門機安裝方案
- 壓縮固結(jié)試驗
評論
0/150
提交評論