操作系統(tǒng)設(shè)備管理培訓(xùn)教材(PPT 89頁(yè)).ppt_第1頁(yè)
操作系統(tǒng)設(shè)備管理培訓(xùn)教材(PPT 89頁(yè)).ppt_第2頁(yè)
操作系統(tǒng)設(shè)備管理培訓(xùn)教材(PPT 89頁(yè)).ppt_第3頁(yè)
操作系統(tǒng)設(shè)備管理培訓(xùn)教材(PPT 89頁(yè)).ppt_第4頁(yè)
操作系統(tǒng)設(shè)備管理培訓(xùn)教材(PPT 89頁(yè)).ppt_第5頁(yè)
已閱讀5頁(yè),還剩84頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、第七章 設(shè)備管理,概述 I/O硬件特點(diǎn) I/O軟件的組成 有關(guān)技術(shù) 設(shè)備處理,I/O管理示意,應(yīng)用程序,文件管理,設(shè)備驅(qū)動(dòng)程序,控制寄存器,數(shù)據(jù)寄存器,狀態(tài)寄存器,設(shè)備控制器,應(yīng)用編程接口,硬件接口,一、概述,1、I/O的特點(diǎn) CPU與I/O的速度差別大 盡量使兩者交疊運(yùn)行 減少由于速度差異造成的整體性能開銷 (1)I/O性能經(jīng)常成為系統(tǒng)性能的瓶頸 (2)操作系統(tǒng)龐大復(fù)雜的原因之一: 資源多、雜,并發(fā),均來(lái)自I/O 外設(shè)種類繁多,結(jié)構(gòu)各異 輸入輸出數(shù)據(jù)信號(hào)類型不同 速度差異很大 (3)與其他功能聯(lián)系密切,特別是文件系統(tǒng),(1)按功能特性分 存儲(chǔ)型設(shè)備 輸入輸出型設(shè)備(交互型設(shè)備) 數(shù)據(jù)通信設(shè)備

2、,2、設(shè)備的分類,(2)按數(shù)據(jù)組織分 塊設(shè)備 以數(shù)據(jù)塊為單位存儲(chǔ)、傳輸信息 傳輸速率較高、可尋址(隨機(jī)讀寫) 字符設(shè)備 以字符為單位存儲(chǔ)、傳輸信息 傳輸速率高、不可尋址,設(shè)備的分類(續(xù)1),(3)按資源分配角度分 獨(dú)占設(shè)備 在一段時(shí)間內(nèi)只能有一個(gè)進(jìn)程使用的設(shè)備,一般為低速I/O設(shè)備(如打印機(jī),磁帶等) 共享設(shè)備 在一段時(shí)間內(nèi)可有多個(gè)進(jìn)程共同使用的設(shè)備,多個(gè)進(jìn)程以交叉的方式來(lái)使用設(shè)備,其資源利用率高(如硬盤),設(shè)備的分類(續(xù)2),虛設(shè)備 在一類設(shè)備上模擬另一類設(shè)備,常用共享設(shè)備模擬獨(dú)占設(shè)備,用高速設(shè)備模擬低速設(shè)備,被模擬的設(shè)備稱為虛設(shè)備 目的:將慢速的獨(dú)占設(shè)備改造成多個(gè)用戶可共享的設(shè)備,提高設(shè)備

3、的利用率 (實(shí)例:SPOOLing技術(shù),利用虛設(shè)備技術(shù) 用硬盤模擬輸入輸出設(shè)備),設(shè)備的分類(續(xù)3),SPOOLing技術(shù) 為解決獨(dú)立設(shè)備數(shù)量少,速度慢,不能滿足眾多進(jìn)程的要求,而且在進(jìn)程獨(dú)占設(shè)備期間,設(shè)備利用率比較低而提出的一種設(shè)備管理技術(shù) 另一種資源轉(zhuǎn)換技術(shù),設(shè)備的分類(續(xù)4),(1)按照用戶的請(qǐng)求,控制設(shè)備的各種操作,完成I/O設(shè)備與內(nèi)存之間的數(shù)據(jù)交換,最終完成用戶的I/O請(qǐng)求 設(shè)備分配與回收 記錄設(shè)備的狀態(tài) 根據(jù)用戶的請(qǐng)求和設(shè)備的類型,采用一定的分配算法,選擇一條數(shù)據(jù)通路 執(zhí)行設(shè)備驅(qū)動(dòng)程序,實(shí)現(xiàn)真正的I/O操作 設(shè)備中斷處理:處理外部設(shè)備的中斷 緩沖區(qū)管理:管理I/O緩沖區(qū),3.設(shè)備管

4、理的目標(biāo)和任務(wù),(2)建立方便、統(tǒng)一的獨(dú)立于設(shè)備的接口 方便性:向用戶提供使用外部設(shè)備的方便接口,使用戶編程時(shí)不考慮設(shè)備的復(fù)雜物理特性 統(tǒng)一性:對(duì)不同的設(shè)備采取統(tǒng)一的操作方式,在用戶程序中使用的是邏輯設(shè)備 邏輯設(shè)備與物理設(shè)備、屏蔽硬件細(xì)節(jié)(設(shè)備的物理細(xì)節(jié),錯(cuò)誤處理,不同I/O的差異性),設(shè)備管理的目標(biāo)和任務(wù)(續(xù)1),設(shè)備獨(dú)立性(設(shè)備無(wú)關(guān)性),目的: 提高操作系統(tǒng)的可適應(yīng)性和可擴(kuò)展性 從用戶角度:用戶在編制程序時(shí),使用邏輯設(shè)備名,由系統(tǒng)實(shí)現(xiàn)從邏輯設(shè)備到物理設(shè)備(實(shí)際設(shè)備)的轉(zhuǎn)換,并實(shí)施I/O操作 從系統(tǒng)角度:設(shè)計(jì)并實(shí)現(xiàn)IO軟件時(shí),除了直接與設(shè)備打交道的低層軟件之外,其他部分的軟件不依賴于硬件,好

5、處: 設(shè)備分配時(shí)的靈活性 易于實(shí)現(xiàn)I/O重定向,(3)充分利用各種技術(shù)(通道,中斷,緩沖,異步I/O等)提高CPU與設(shè)備、設(shè)備與設(shè)備之間的并行工作能力,充分利用資源,提高資源利用率 并行性 均衡性(使設(shè)備充分忙碌),設(shè)備管理的目標(biāo)和任務(wù)(續(xù)3),(4)保護(hù) 設(shè)備傳送或管理的數(shù)據(jù)應(yīng)該是安全的、不被破壞的、保密的,設(shè)備管理的目標(biāo)和任務(wù)(續(xù)4),1.設(shè)備組成 IO設(shè)備一般由機(jī)械和電子兩部分組成 把這兩部分分開處理,以提供更加模塊化,更加通用的設(shè)計(jì),二、I/O硬件特點(diǎn),設(shè)備組成(續(xù)1),(1)物理設(shè)備 機(jī)械部分是設(shè)備本身(物理裝置) (2)設(shè)備控制器 電子部分叫做設(shè)備控制器或適配器 完成設(shè)備與主機(jī)間的

6、連接和通信 在小型和微型機(jī)中,它常采用印刷電路卡插入計(jì)算機(jī)主板上的總線插槽 通過(guò)若干接口寄存器或接口緩沖區(qū)與CPU通信,設(shè)備組成(續(xù)2),電子部分完成的工作 (端口)地址譯碼 按照主機(jī)與設(shè)備之間約定的格式和過(guò)程 接受計(jì)算機(jī)發(fā)來(lái)的數(shù)據(jù)和控制信號(hào) 向主機(jī)發(fā)送數(shù)據(jù)和狀態(tài)信號(hào) 將計(jì)算機(jī)的數(shù)字信號(hào)轉(zhuǎn)換成機(jī)械部分能識(shí)別的模擬信號(hào),或反之 實(shí)現(xiàn)設(shè)備內(nèi)部硬件緩沖、數(shù)據(jù)加工等提高性能或增強(qiáng)功能,2.設(shè)備接口,操作系統(tǒng)將命令寫入控制器的接口寄存器(或接口緩沖區(qū))中,以實(shí)現(xiàn)輸入輸出,并從接口寄存器讀取狀態(tài)信息或結(jié)果信息 例如:IBM PC的軟盤控制器可接收15條命令,READ、WRITE、FORMAT、SEEK、R

7、ECALIBRATE,命令可以帶參數(shù),它們被一起送入控制器的寄存器中 當(dāng)控制器接受一條命令后,可獨(dú)立于CPU完成指定操作,CPU可以轉(zhuǎn)去執(zhí)行其它運(yùn)算。命令完成時(shí),控制器產(chǎn)生一個(gè)中斷,CPU響應(yīng)中斷,控制轉(zhuǎn)給操作系統(tǒng)。CPU通過(guò)讀控制器寄存器中的信息,獲得操作結(jié)果和設(shè)備狀態(tài),控制器與設(shè)備之間的接口常常是一個(gè)低級(jí)接口。例如磁盤,可以按每個(gè)磁道8扇區(qū),每個(gè)扇區(qū)512個(gè)字節(jié)進(jìn)行格式化。然而,實(shí)際從驅(qū)動(dòng)器出來(lái)的卻是一連串的位流,以一個(gè)頭標(biāo)(preamble)開始,然后是一個(gè)扇區(qū)的4096位(5128),最后是檢查和或錯(cuò)誤校驗(yàn)碼(ErrorC一C:ECC)。頭標(biāo)是在對(duì)磁盤格式化時(shí)寫上的,它包括柱面和扇區(qū)數(shù)

8、,扇區(qū)的大小和類似的一些數(shù)據(jù) 控制器的任務(wù)是把串行的位流轉(zhuǎn)換為字節(jié)塊,并進(jìn)行必要的錯(cuò)誤修正。首先,控制器按位進(jìn)行組裝,然后存入控制器內(nèi)部的緩沖區(qū)中形成以字節(jié)為單位的塊。在對(duì)塊驗(yàn)證檢查和并證明無(wú)錯(cuò)誤時(shí),再將它復(fù)制到內(nèi)存中,設(shè)備接口(續(xù)1),接口電路中:多個(gè)寄存器 每個(gè)寄存器有唯一的一個(gè)地址,該地址稱為I/O端口地址 I/O指令形式與I/O地址是相互關(guān)聯(lián)的 主要有兩種形式: 內(nèi)存映像編址(內(nèi)存映像I/O模式) I/O獨(dú)立編址(I/O專用指令),3.I/O端口地址,存儲(chǔ)映像編址,分配給系統(tǒng)中所有端口的地址空間與內(nèi)存的地址空間統(tǒng)一編址 主機(jī)把I/O端口看作一個(gè)存儲(chǔ)單元,對(duì)I/O的讀寫操作等同于對(duì)存儲(chǔ)器

9、的操作 優(yōu)點(diǎn) 凡是可對(duì)存儲(chǔ)器操作的指令都可對(duì)I/O端口操作 不需要專門的I/O指令 I/O端口可占有較大的地址空間 缺點(diǎn):占用內(nèi)存空間,I/O獨(dú)立編址,分配給系統(tǒng)中所有端口的地址空間是完全獨(dú)立的,與內(nèi)存的地址空間沒(méi)有關(guān)系 主機(jī)使用專門的I/O指令對(duì)端口進(jìn)行操作 優(yōu)點(diǎn) 外部設(shè)備不占用內(nèi)存的地址空間 程序設(shè)計(jì)時(shí),易于區(qū)分是對(duì)內(nèi)存操作還是對(duì)I/O端口操作 缺點(diǎn):對(duì)I/O端口操作的指令類型少,操作不靈活 例子:8086/8088,分配給I/O端口的地址空間64K,0000H0FFFFH,只能用IN和OUT指令對(duì)其進(jìn)行讀寫操作,1、直接I/O(輪詢) 由CPU負(fù)責(zé)在機(jī)器內(nèi)存與設(shè)備控制器數(shù)據(jù)寄存器之間進(jìn)行

10、數(shù)據(jù)傳送 2、中斷驅(qū)動(dòng)I/O 為了減少設(shè)備驅(qū)動(dòng)程序不斷地詢問(wèn)控制器狀態(tài)寄存器的開銷 當(dāng)I/O操作結(jié)束后,由設(shè)備控制器主動(dòng)通知設(shè)備驅(qū)動(dòng)程序 3、DMA 4、通道,4.I/O控制方式,I/O控制方式(續(xù)1),設(shè)備驅(qū)動(dòng)程序,控制寄存器,數(shù)據(jù)寄存器,狀態(tài)寄存器,設(shè)備控制器,從設(shè)備上讀數(shù)據(jù) ,數(shù)據(jù),應(yīng)用程序,系統(tǒng)接口,硬件接口,I/O控制方式(續(xù)2),設(shè)備驅(qū)動(dòng)程序,控制寄存器,數(shù)據(jù)寄存器,狀態(tài)寄存器,設(shè)備控制器,從設(shè)備上讀數(shù)據(jù) ,數(shù)據(jù),應(yīng)用程序,設(shè)備處理程序,中斷處理程序,設(shè)備狀態(tài)表,IO軟件設(shè)計(jì)的基本思想分層 把軟件組織成為一系列的層 較低層軟件考慮硬件的特性,并向較高層軟件提供接口 較高層軟件不依賴

11、于硬件,并向用戶提供一個(gè)友好的、清晰的、簡(jiǎn)單的、功能更強(qiáng)的接口,三、I/O軟件的組成,1.IO軟件的層次,I/O軟件各層的功能,(1)用戶進(jìn)程層執(zhí)行輸入輸出系統(tǒng)調(diào)用,對(duì)IO數(shù)據(jù)進(jìn)行格式化,為假脫機(jī)輸入輸出作準(zhǔn)備 (2)獨(dú)立于設(shè)備的軟件實(shí)現(xiàn)設(shè)備的命名、設(shè)備的保護(hù)、成塊處理、緩沖技術(shù)和設(shè)備分配 (3)設(shè)備驅(qū)動(dòng)程序設(shè)置設(shè)備寄存器、檢查設(shè)備的執(zhí)行狀態(tài) (4)中斷處理程序負(fù)責(zé)IO完成時(shí),喚醒設(shè)備驅(qū)動(dòng)程序進(jìn)程,進(jìn)行中斷處理 (5)硬件層實(shí)現(xiàn)物理IO的操作,2.設(shè)備驅(qū)動(dòng)程序,與設(shè)備密切相關(guān)的代碼放在設(shè)備驅(qū)動(dòng)程序中,每個(gè)設(shè)備驅(qū)動(dòng)程序處理一種設(shè)備類型 每一個(gè)控制器都設(shè)有一個(gè)或多個(gè)設(shè)備寄存器,用來(lái)存放向設(shè)備發(fā)送的

12、命令和參數(shù)。設(shè)備驅(qū)動(dòng)程序負(fù)責(zé)釋放這些命令,并監(jiān)督它們正確執(zhí)行,設(shè)備驅(qū)動(dòng)程序(續(xù)1),一般,設(shè)備驅(qū)動(dòng)程序的任務(wù)是接收來(lái)自與設(shè)備無(wú)關(guān)的上層軟件的抽象請(qǐng)求,并執(zhí)行這個(gè)請(qǐng)求 在設(shè)備驅(qū)動(dòng)程序的進(jìn)程釋放一條或多條命令后,系統(tǒng)有兩種處理方式,多數(shù)情況下,執(zhí)行設(shè)備驅(qū)動(dòng)程序的進(jìn)程必須等待命令完成,這樣,在命令開始執(zhí)行后,它阻塞自已,直到中斷處理時(shí)將它解除阻塞為止。而在其它情況下,命令執(zhí)行不必延遲就很快完成,3.設(shè)備獨(dú)立的軟件,雖然IO軟件中一部分是設(shè)備專用的,但大部分軟件是與設(shè)備無(wú)關(guān)的。設(shè)備驅(qū)動(dòng)程序與設(shè)備獨(dú)立軟件之間的確切界限是依賴于具體系統(tǒng)的,設(shè)備獨(dú)立的軟件(續(xù)1),設(shè)備獨(dú)立的軟件(續(xù)2),1.獨(dú)立于設(shè)備的軟

13、件的基本任務(wù)是實(shí)現(xiàn)所有設(shè)備都需要的功能,并且向用戶級(jí)軟件提供一個(gè)統(tǒng)一的接口 2.如何給文件和設(shè)備這樣的對(duì)象命名是操作系統(tǒng)中的一個(gè)主要課題。獨(dú)立于設(shè)備的軟件負(fù)責(zé)把設(shè)備的符號(hào)名映射到正確的設(shè)備驅(qū)動(dòng)上 3.設(shè)備保護(hù) 系統(tǒng)如何防止無(wú)權(quán)存取設(shè)備的用戶存取設(shè)備呢?,設(shè)備獨(dú)立的軟件(續(xù)3),4.不同的磁盤可以采用不同的扇區(qū)尺寸。向較高層軟件掩蓋這一事實(shí)并提供大小統(tǒng)一的塊尺寸,這正是設(shè)備獨(dú)立軟件的一個(gè)任務(wù)。它可將若干扇區(qū)合成一個(gè)邏輯塊。這樣,較高層的軟件只與抽象設(shè)備打交道,獨(dú)立于物理扇區(qū)的尺寸而使用等長(zhǎng)的邏輯塊 5.緩沖技術(shù) 6.設(shè)備分配 7.出錯(cuò)處理,4.用戶空間的IO軟件,盡管大部分IO軟件都包含在操作系

14、統(tǒng)中,但仍有一小部分是由與用戶程序連接在一起的庫(kù)過(guò)程,甚至完全由運(yùn)行于核外的程序構(gòu)成。系統(tǒng)調(diào)用,包括IO系統(tǒng)調(diào)用,通常由庫(kù)過(guò)程實(shí)現(xiàn) 這些過(guò)程所做的工作只是將系統(tǒng)調(diào)用時(shí)所用的參數(shù)放在合適的位置,由其它的IO過(guò)程實(shí)際實(shí)現(xiàn)真正的操作,四、設(shè)備相關(guān)技術(shù),1.Spooling(虛擬設(shè)備)技術(shù) 一個(gè)虛擬設(shè)備 一個(gè)資源轉(zhuǎn)換技術(shù) (用空間,如輸入,輸出等換取CPU時(shí)間) 解決問(wèn)題: 在進(jìn)程所需物理設(shè)備不存在或被占用時(shí)使用該設(shè)備,假若進(jìn)程打開打印機(jī)特殊文件后幾小時(shí)內(nèi)無(wú)所事事,其他進(jìn)程什么都打印不了! 解決方案: 創(chuàng)建值班(精靈)進(jìn)程(daemon)、SPOOLing目錄 進(jìn)程首先生成要打印的文件,放入SPOOL

15、ing目錄 值班進(jìn)程:唯一獲準(zhǔn)使用打印機(jī)特殊文件的進(jìn)程 用以打印SPOOLing目錄里的文件 通過(guò)禁止對(duì)特殊文件的直接使用、提高了使用效率,打印機(jī)的SPOOLing值班進(jìn)程,網(wǎng)絡(luò)的SPOOLing值班進(jìn)程,SPOOLing技術(shù)今天仍被廣泛使用 網(wǎng)絡(luò)文件傳送 先把文件送到網(wǎng)絡(luò)SPOOLing目錄,然后網(wǎng)絡(luò)值班進(jìn)程把它取出并傳遞到目標(biāo)地址 Internet電子郵件系統(tǒng) 為了寄郵,調(diào)用電子郵件程序 待發(fā)信存在SPOOLing中供以后傳輸 注意:SPOOLing只提高設(shè)備利用率,縮短用戶程序執(zhí)行時(shí)間,并不提高CPU利用率,(1)定義:通道是獨(dú)立于CPU的專門負(fù)責(zé)數(shù)據(jù)輸入/輸出傳輸工作的處理機(jī),對(duì)外部設(shè)

16、備實(shí)現(xiàn)統(tǒng)一管理,代替CPU對(duì)輸入/輸出操作進(jìn)行控制,從而使輸入,輸出操作可與CPU并行操作。 可以執(zhí)行通道程序 (2)引入通道的目的 為了使CPU從I/O事務(wù)中解脫出來(lái),同時(shí)為了提高CPU與設(shè)備,設(shè)備與設(shè)備之間的并行工作能力,2.通道技術(shù),字節(jié)多路通道 字節(jié)多路通道以字節(jié)為單位傳輸信息,它可以分時(shí)地執(zhí)行多個(gè)通道程序。當(dāng)一個(gè)通道程序控制某臺(tái)設(shè)備傳送一個(gè)字節(jié)后,通道硬件就控制轉(zhuǎn)去執(zhí)行另一個(gè)通道程序,控制另一臺(tái)設(shè)備傳送信息 主要連接以字節(jié)為單位的低速I/O設(shè)備,如打印機(jī),終端 以字節(jié)為單位交叉?zhèn)鬏敚?dāng)一臺(tái)傳送一個(gè)字節(jié)后,立即轉(zhuǎn)去為另一臺(tái)傳送字節(jié),(3)分類,分類(續(xù)1),選擇通道 選擇通道是以成組方

17、式工作的,即每次傳送一批數(shù)據(jù),故傳送速度很高。選擇通道在一段時(shí)間內(nèi)只能執(zhí)行一個(gè)通道程序,只允許一臺(tái)設(shè)備進(jìn)行數(shù)據(jù)傳輸,分類(續(xù)2),當(dāng)這臺(tái)設(shè)備數(shù)據(jù)傳輸完成后,再選擇與通道連接的另一臺(tái)設(shè)備,執(zhí)行相應(yīng)的通道程序 主要連接磁盤,磁帶等高速I/O設(shè)備,選擇通道,分類(續(xù)3),成組多路通道 它結(jié)合了選擇通道傳送速度高和字節(jié)多路通道能進(jìn)行分時(shí)并行操作的優(yōu)點(diǎn)。它先為一臺(tái)設(shè)備執(zhí)行一條通道指令,然后自動(dòng)轉(zhuǎn)接,為另一臺(tái)設(shè)備執(zhí)行一條通道指令 主要連接高速設(shè)備 這樣,對(duì)于連接多臺(tái)磁盤機(jī)的數(shù)組多路通道,它可以啟動(dòng)它們同時(shí)執(zhí)行移臂定位操作,然后,按序交叉地傳輸一批批數(shù)據(jù)。數(shù)據(jù)多路通道實(shí)際上是對(duì)通道程序采用多道程序設(shè)計(jì)的硬件

18、實(shí)現(xiàn),(4)硬件連接結(jié)構(gòu),通道:執(zhí)行通道程序,向控制器發(fā)出命令,并具有向CPU發(fā)中斷信號(hào)的功能。 一旦CPU發(fā)出指令,啟動(dòng)通道,則通道獨(dú)立于CPU工作。一個(gè)通道可連接多個(gè)控制器,一個(gè)控制器可連接多個(gè)設(shè)備,形成樹形交叉連接 主要目的是啟動(dòng)外設(shè)時(shí): 提高了控制器效率 提高可靠性 提高并行度,通道連接,交叉連接,(5)通道工作原理 通道相當(dāng)于一個(gè)功能簡(jiǎn)單的處理機(jī),包含通道指令(空操作,讀操作,寫操作,控制,轉(zhuǎn)移操作),并可執(zhí)行用這些指令編寫的通道程序,通道工作原理,通道運(yùn)算控制部件 通道地址字 CAW: 記錄通道程序在內(nèi)存中的地址 通道命令字 CCW: 保存正在執(zhí)行的通道指令 通道狀態(tài)字 CSW:

19、存放通道執(zhí)行后的返回結(jié)果 通道數(shù)據(jù)字 CDW:存放傳輸數(shù)據(jù) 通道和CPU共用內(nèi)存,通過(guò)周期竊取方式取得,通道工作原理(續(xù)1),通道命令及格式 用于I/O操作的命令主要有兩種: I/O指令:?jiǎn)?dòng)通道程序 通道命令:對(duì)I/O操作進(jìn)行控制 讀、反讀、寫、測(cè)試設(shè)備狀態(tài)的數(shù)據(jù)傳輸命令、用于設(shè)備控制的命令(磁帶反繞、換頁(yè))、實(shí)現(xiàn)通道程序內(nèi)部控制的轉(zhuǎn)移命令,通道工作原理(續(xù)2),命令格式一般包括:操作碼、數(shù)據(jù)傳輸內(nèi)存地址、特征位、計(jì)數(shù)器 編制一個(gè)通道程序,從磁帶機(jī)上讀入200字節(jié)的信息,送入內(nèi)存(1000)16 開始的單元。 通道命令碼:“07”反繞 “02”讀 CCW1 X “07” * X “40” 1

20、; CCW2 X “02” 1000 X “00” 200;,通道工作原理(續(xù)3),工作原理 CPU:執(zhí)行用戶程序,當(dāng)遇到I/O請(qǐng)求時(shí),可根據(jù)該請(qǐng)求生成通道程序放入內(nèi)存(也可事先編好放入內(nèi)存),并將該通道程序的首地址放入CAW中;之后執(zhí)行“啟動(dòng)I/O”指令,啟動(dòng)通道工作,通道工作原理(續(xù)4),通道:接收到“啟動(dòng)I/O”指令后,從CAW中取出通道程序的首地址,并根據(jù)首地址取出第一條指令放入CCW中,同時(shí)向CPU發(fā)回答信號(hào),使CPU可繼續(xù)執(zhí)行其他程序,而通道則開始執(zhí)行通道程序,完成傳輸工作,通道工作原理(續(xù)5),(通道程序完成實(shí)際I/O,啟動(dòng)I/O設(shè)備,執(zhí)行完畢后,如果還有下一條指令,則繼續(xù)執(zhí)行,

21、 否則表示傳輸完成) 當(dāng)通道傳輸完成最后一條指令時(shí),向CPU發(fā)I/O中斷,并且通道停止工作。CPU接收中斷信號(hào),從CSW中取得有關(guān)信息,決定下一步做什么,通道工作原理(續(xù)6),通道的發(fā)展,新的通道思想綜合了許多新的技術(shù) 在個(gè)人計(jì)算機(jī)中,芯片組中專門I/O處理的芯片,稱為IOP(IO Processor),發(fā)揮通道的作用 IBM 390 中,沿用了輸入輸出通道概念 IBM于1998年推出光纖通道技術(shù)(稱為FICON),可通過(guò) FICON 連接多達(dá)127個(gè)大容量I/O設(shè)備。傳輸速度是333MHzs,未來(lái)將達(dá)到1GHzs。 光纖通道技術(shù)具有數(shù)據(jù)傳輸速率高、傳輸距離遠(yuǎn),可簡(jiǎn)化大型存儲(chǔ)系統(tǒng)設(shè)計(jì)的優(yōu)點(diǎn) 在

22、大容量高速存儲(chǔ),如大型數(shù)據(jù)庫(kù)、多媒體、數(shù)字影像等應(yīng)用領(lǐng)域,有廣泛前景,3.DMA技術(shù),不用DMA時(shí),磁盤如何讀: 首先,控制器從磁盤驅(qū)動(dòng)器串行地一位一位地讀一個(gè)塊,直到將整塊信息放入控制器的內(nèi)部緩沖區(qū)中 其次,它做和校驗(yàn)計(jì)算,以核實(shí)沒(méi)有讀錯(cuò)誤發(fā)生 然后控制器產(chǎn)生一個(gè)中斷。CPU響應(yīng)中斷,控制轉(zhuǎn)給操作系統(tǒng)。當(dāng)操作系統(tǒng)開始運(yùn)行時(shí),它重復(fù)地從控制器緩沖區(qū)中一次一個(gè)字節(jié)或一個(gè)字地讀這個(gè)磁盤塊的信息,并將其送入內(nèi)存中,DMA技術(shù),數(shù)據(jù)在內(nèi)存與I/O設(shè)備間的直接成塊傳送 CPU在開始時(shí)向設(shè)備發(fā)“傳送一塊”命令,結(jié)束時(shí)進(jìn)行相應(yīng)處理,實(shí)際操作由DMA硬件直接完成 DMA的功能可以以獨(dú)立的DMA部件在系統(tǒng)I/O

23、總線上完成,也可整合到I/O部件中完成 DMA通過(guò)系統(tǒng)總線代替CPU管理數(shù)據(jù)的存入或取出 當(dāng)CPU不需要系統(tǒng)總線時(shí)可以使用總線 DMA可以強(qiáng)迫CPU暫時(shí)延遲其他操作,獲取一個(gè)總線周期(周期竊取) 不需要CPU介入,因而減輕了CPU負(fù)擔(dān),控制器按照指定存儲(chǔ)器地址,把第一個(gè)字節(jié)送入內(nèi)存 然后,按指定字節(jié)數(shù)進(jìn)行數(shù)據(jù)傳送 每當(dāng)傳送一個(gè)字節(jié)后,字節(jié)計(jì)數(shù)器值減1,直到字節(jié)計(jì)數(shù)器等于0 此時(shí),控制器引發(fā)中斷,通知操作系統(tǒng),操作完成,CPU提供 待讀取塊的磁盤地址 目標(biāo)存儲(chǔ)地址 待讀取字節(jié)數(shù) 整塊數(shù)據(jù)讀進(jìn)緩沖區(qū) 核準(zhǔn)校驗(yàn),DMA工作示例 (以硬盤為例),(1)緩沖技術(shù)的引入 最早引入:CPU與I/O設(shè)備之間

24、凡是數(shù)據(jù)到達(dá)和離去速度不匹配的地方均可采用緩沖技術(shù) 目的: 緩解CPU與I/O設(shè)備之間速度不匹配的矛盾 提高CPU與I/O設(shè)備之間的并行性 減少了I/O設(shè)備對(duì)CPU的中斷請(qǐng)求次數(shù),放寬CPU對(duì)中斷響應(yīng)時(shí)間的要求,4. 緩沖技術(shù),(2)緩沖區(qū)設(shè)置 硬緩沖: 在設(shè)備中設(shè)置緩沖區(qū),由硬件實(shí)現(xiàn) 軟緩沖: 在內(nèi)存中開辟一個(gè)空間,用作緩沖區(qū),緩沖技術(shù)(續(xù)1),(3)緩沖區(qū)管理 單緩沖 當(dāng)用戶進(jìn)程發(fā)出I/O請(qǐng)求時(shí),操作系統(tǒng)在內(nèi)存的系統(tǒng)空間為該操作分配一個(gè)緩沖區(qū),可以實(shí)現(xiàn)預(yù)讀和滯后寫 雙緩沖 可以實(shí)現(xiàn)用戶數(shù)據(jù)區(qū)緩沖區(qū)之間交換數(shù)據(jù)和緩沖區(qū)外設(shè)之間交換數(shù)據(jù)的并行,緩沖技術(shù)(續(xù)2),緩沖池: 又稱循環(huán)緩沖 多個(gè)緩沖

25、區(qū)連接起來(lái)統(tǒng)一管理 引入系統(tǒng)緩沖池,采用有限緩沖區(qū)的生產(chǎn)者/消費(fèi)者模型對(duì)緩沖池中的緩沖區(qū)進(jìn)行循環(huán)使用 常采用多緩沖管理 緩沖區(qū)結(jié)合預(yù)讀和滯后寫技術(shù)對(duì)具有重復(fù)性及陣發(fā)性I/O進(jìn)程、提高I/O速度很有幫助,緩沖技術(shù)(續(xù)3),(4)例子 終端輸入軟件中的鍵盤驅(qū)動(dòng)程序 任務(wù)之一:收集字符 兩種常見(jiàn)的字符緩沖方法: 公共緩沖池(驅(qū)動(dòng)程序中) 終端數(shù)據(jù)結(jié)構(gòu)緩沖,緩沖技術(shù)(續(xù)4),緩沖技術(shù)(續(xù)5),緩沖技術(shù)(續(xù)6),(5)UNIX的緩沖技術(shù) 采用緩沖池技術(shù),來(lái)平滑和加快文件信息從內(nèi)存到磁盤的傳輸 并充分利用以前從磁盤讀入已傳入用戶區(qū)、但仍在緩沖區(qū)的數(shù)據(jù) 即:當(dāng)從磁盤上讀數(shù)據(jù)時(shí),如果數(shù)據(jù)已經(jīng)在緩沖區(qū)中,則系統(tǒng)

26、直接從緩沖區(qū)中讀出,而不必從盤上讀;當(dāng)數(shù)據(jù)不在緩沖區(qū)時(shí),系統(tǒng)首先把數(shù)據(jù)從磁盤傳送到緩沖區(qū),再?gòu)木彌_區(qū)讀出 好處:盡可能減少磁盤I/O的次數(shù),提高系統(tǒng)運(yùn)行的速度,緩沖技術(shù)(續(xù)7),UNIX System 由200個(gè)緩沖區(qū)組成的緩沖池 每個(gè)緩沖區(qū)的長(zhǎng)度可以是512字節(jié)或1024字節(jié) 每個(gè)緩沖區(qū)由兩部分組成: 緩沖數(shù)據(jù)區(qū):存放數(shù)據(jù)的區(qū)域 緩沖控制塊或緩沖首部:用于控制的區(qū)域 系統(tǒng)通過(guò)緩沖控制塊來(lái)實(shí)現(xiàn)對(duì)緩沖區(qū)的管理,緩沖技術(shù)(續(xù)8),說(shuō)明: 邏輯設(shè)備號(hào)和盤塊號(hào)分別標(biāo)志出文件系統(tǒng)和數(shù)據(jù)所在的盤塊號(hào),是緩沖區(qū)的唯一標(biāo)志 狀態(tài)項(xiàng)指明了該緩沖區(qū)當(dāng)前的狀態(tài):忙閑、上鎖開鎖、是否延遲寫、數(shù)據(jù)有效性等 兩組指針(a

27、v和b)用于對(duì)緩沖池的分配管理,緩沖技術(shù)(續(xù)9),緩沖池結(jié)構(gòu): 空閑緩沖區(qū)隊(duì)列(空閑av隊(duì)列) 隊(duì)列頭部為bfreelist 系統(tǒng)初始化時(shí),所有緩沖區(qū)按序號(hào)大小掛在空閑av隊(duì)列上,當(dāng)申請(qǐng)一個(gè)緩沖區(qū)時(shí),從空閑av隊(duì)列隊(duì)首取下一個(gè)緩沖區(qū),而釋放一個(gè)緩沖區(qū)時(shí)將其掛入空閑av隊(duì)列隊(duì)尾,緩沖技術(shù)(續(xù)10),散列隊(duì)列(設(shè)備緩沖隊(duì)列、設(shè)備b鏈) 鏈接所有分配給各類設(shè)備使用的緩沖區(qū) buf用b雙向鏈,可以有64個(gè)隊(duì)列,每個(gè)隊(duì)列頭部有頭標(biāo) 設(shè)備為b_dev上的邏輯塊b在散列隊(duì)列的頭標(biāo)為: i=(b_dev+b) mod 64 設(shè)備IO請(qǐng)求隊(duì)列:buf用av單向鏈 空設(shè)備隊(duì)列:buf用b雙向鏈,隊(duì)列頭部為bfre

28、elist,緩沖技術(shù)(續(xù)11),每個(gè)buf同時(shí)在av鏈和b鏈: 開始:在空閑av鏈和空設(shè)備隊(duì)列 開始IO請(qǐng)求:在設(shè)備IO請(qǐng)求隊(duì)列和散列隊(duì)列 IO完成:在空閑av鏈和散列隊(duì)列 后續(xù)IO請(qǐng)求:在設(shè)備IO請(qǐng)求隊(duì)列和散列隊(duì)列,在散列隊(duì)列改變隊(duì)列,緩沖技術(shù)(續(xù)12),當(dāng)進(jìn)程想從指定的盤塊讀取數(shù)據(jù)時(shí),系統(tǒng)根據(jù)盤塊號(hào)從散列隊(duì)列中查找,如找到緩沖區(qū),則將該緩沖區(qū)狀態(tài)標(biāo)記為“忙”,并從空閑av隊(duì)列中取下,接著完成從緩沖區(qū)到內(nèi)存用戶區(qū)的數(shù)據(jù)傳送。如果在散列隊(duì)列中未找到時(shí),則從空閑av隊(duì)列隊(duì)首摘取一個(gè)緩沖區(qū),插入設(shè)備I/O請(qǐng)求隊(duì)列;并從原散列隊(duì)列中取下,插入由讀入信息盤塊號(hào)確定的新的散列隊(duì)列中。當(dāng)數(shù)據(jù)從磁盤塊讀入到

29、緩沖區(qū)后,緩沖區(qū)從設(shè)備I/O請(qǐng)求隊(duì)列取下。當(dāng)系統(tǒng)完成從緩沖區(qū)到內(nèi)存用戶區(qū)的數(shù)據(jù)傳送后,要把緩沖區(qū)釋放,鏈入空閑av隊(duì)列隊(duì)尾,緩沖技術(shù)(續(xù)13),當(dāng)數(shù)據(jù)從磁盤塊讀入到緩沖區(qū),并傳送到內(nèi)存用戶區(qū)后,該緩沖區(qū)一直保留在原散列隊(duì)列中,即它的數(shù)據(jù)一直有效。如它又要被使用,則又要從空閑av隊(duì)列鏈中取下,使用完后插入到空閑av隊(duì)列隊(duì)尾。如它一直未使用,則該緩沖區(qū)從空閑av隊(duì)列隊(duì)尾慢慢升到隊(duì)首,最后被重新分配,舊的盤塊數(shù)據(jù)才被置換 系統(tǒng)對(duì)緩沖區(qū)的分配是采用近似LRU算法。,1. 設(shè)備的分配與回收 當(dāng)某進(jìn)程向系統(tǒng)提出I/O請(qǐng)求時(shí),設(shè)備分配程序按一定策略分配設(shè)備、控制器和通道,形成一條數(shù)據(jù)傳輸通路,以供主機(jī)和設(shè)備

30、間信息交換,五、設(shè)備管理,(1)設(shè)備管理有關(guān)的數(shù)據(jù)結(jié)構(gòu) 描述設(shè)備、控制器等部件的表格:系統(tǒng)中常常為每一個(gè)部件、每一臺(tái)設(shè)備分別設(shè)置一張表格,常稱為設(shè)備表或部件控制塊。這類表格具體描述設(shè)備的類型、標(biāo)識(shí)符、狀態(tài),以及當(dāng)前使用者的進(jìn)程標(biāo)識(shí)符等 建立同類資源的隊(duì)列:系統(tǒng)為了方便對(duì)I/O設(shè)備的分配管理,通常在設(shè)備表的基礎(chǔ)上通過(guò)指針將相同物理屬性的設(shè)備連成隊(duì)列(稱設(shè)備隊(duì)列) 面向進(jìn)程I/O請(qǐng)求的動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu):每當(dāng)進(jìn)程發(fā)出I/O請(qǐng)求時(shí),系統(tǒng)建立一張表格(稱I/O請(qǐng)求包),將此次I/O請(qǐng)求的參數(shù)填入表中,同時(shí)也將該I/O有關(guān)的系統(tǒng)緩沖區(qū)地址等信息填入表中。I/O請(qǐng)求包隨著I/O的完成而被刪除 建立I/O隊(duì)列:如

31、請(qǐng)求包隊(duì)列,設(shè)備分配與回收(續(xù)2),(2)設(shè)備有關(guān)的數(shù)據(jù)結(jié)構(gòu) 設(shè)備控制塊DCB(設(shè)備控制表DCT) 控制器控制塊COCB(控制器控制表COCT) 通道控制塊CHCB(通道控制表CHCT) 系統(tǒng)設(shè)備表SDT 根據(jù)用戶請(qǐng)求的I/O設(shè)備的邏輯名,查找邏輯設(shè)備和物理設(shè)備的映射表;以物理設(shè)備為索引,查找SDT,找到該設(shè)備所連接的DCT;繼續(xù)查找與該設(shè)備連接的COCT和CHCT,就找到了一條通路,設(shè)備分配與回收(續(xù)3),獨(dú)占設(shè)備的分配 在申請(qǐng)?jiān)O(shè)備時(shí),如果設(shè)備空閑,就將其獨(dú)占,不再允許其他進(jìn)程申請(qǐng)使用,一直等到該設(shè)備被釋放,才允許被其他進(jìn)程申請(qǐng)使用 考慮效率問(wèn)題,并避免由于不合理的分配策略造成死鎖 靜態(tài)分配

32、: 在進(jìn)程運(yùn)行前, 完成設(shè)備分配;運(yùn)行結(jié)束時(shí),收回設(shè)備 缺點(diǎn):設(shè)備利用率低 動(dòng)態(tài)分配: 在進(jìn)程運(yùn)行過(guò)程中,當(dāng)用戶提出設(shè)備要求時(shí),進(jìn)行分配,一旦停止使用立即收回 優(yōu)點(diǎn):效率好;缺點(diǎn):分配策略不好時(shí), 產(chǎn)生死鎖,2.設(shè)備分配策略,分時(shí)式共享設(shè)備分配 所謂分時(shí)式共享就是以一次I/O為單位分時(shí)使用設(shè)備,不同進(jìn)程的I/O操作請(qǐng)求以排隊(duì)方式分時(shí)地占用設(shè)備進(jìn)行I/O 由于同時(shí)有多個(gè)進(jìn)程同時(shí)訪問(wèn),且訪問(wèn)頻繁,就會(huì)影響整個(gè)設(shè)備使用效率,影響系統(tǒng)效率。因此要考慮多個(gè)訪問(wèn)請(qǐng)求到達(dá)時(shí)服務(wù)的順序,使平均服務(wù)時(shí)間越短越好,設(shè)備分配策略(續(xù)1),以SPOOLing方式使用外設(shè) SPOOLing 技術(shù)是在批處理操作系統(tǒng)時(shí)代引

33、入的,即所謂假脫機(jī)輸入/輸出技術(shù)。把這種技術(shù)用于對(duì)設(shè)備的使用實(shí)質(zhì)就是對(duì)輸入輸出操作成批處理。 例如:所有輸出數(shù)據(jù)已經(jīng)寫到文件當(dāng)中,并排到打印輸出隊(duì)列,打印進(jìn)程申請(qǐng)占用打印機(jī)后,成批讀出文件中數(shù)據(jù),并送打印機(jī)打印出去,設(shè)備分配策略(續(xù)2),為了控制I/O傳輸,系統(tǒng)為每類設(shè)備編制設(shè)備驅(qū)動(dòng)程序 任務(wù):主要負(fù)責(zé)接收和分析從設(shè)備分配轉(zhuǎn)來(lái)的信息,并根據(jù)設(shè)備分配的結(jié)果,結(jié)合具體物理設(shè)備特性完成以下具體工作,3.設(shè)備驅(qū)動(dòng)程序,(1) 接受來(lái)自上層、與設(shè)備無(wú)關(guān)軟件的抽象I/O請(qǐng)求,將該請(qǐng)求排在請(qǐng)求隊(duì)列末尾,檢查I/O請(qǐng)求的合法性 (2)執(zhí)行特定的緩沖區(qū)策略:根據(jù)請(qǐng)求傳輸?shù)臄?shù)據(jù)量,組織I/O緩沖隊(duì)列,利用I/O緩沖對(duì)數(shù)據(jù)進(jìn)行加工,包括數(shù)據(jù)格式處理和編碼轉(zhuǎn)換 (3)對(duì)各種可能的有關(guān)設(shè)備排隊(duì)、掛起、喚醒等操作進(jìn)行處理 (4)向有關(guān)的輸入輸出設(shè)備的各種控制器發(fā)出控制命

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論