




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、第五章第五章 設(shè)備管理設(shè)備管理 目錄目錄1. 設(shè)備管理概述設(shè)備管理概述2. I/O控制方式控制方式 3.緩沖管理緩沖管理 4.I/O軟件軟件 5.設(shè)備分配設(shè)備分配 I/O系統(tǒng)結(jié)構(gòu)系統(tǒng)結(jié)構(gòu) CPU存儲器存儲器控制器控制器設(shè)備設(shè)備控制器控制器設(shè)備設(shè)備總線(數(shù)據(jù)、地址、控制)總線(數(shù)據(jù)、地址、控制)5.1 設(shè)備管理概述設(shè)備管理概述1. 微機(jī)微機(jī)I/O系統(tǒng)結(jié)構(gòu):總線型系統(tǒng)結(jié)構(gòu):總線型I/O系統(tǒng)結(jié)構(gòu):系統(tǒng)結(jié)構(gòu):總線:總線:是一組線和一組嚴(yán)格定義的可以描述在線上傳輸信息的協(xié)是一組線和一組嚴(yán)格定義的可以描述在線上傳輸信息的協(xié)議,這一組線用來連接多個(gè)設(shè)備,這種連接稱為總線。議,這一組線用來連接多個(gè)設(shè)備,這種連
2、接稱為總線。一個(gè)典型的一個(gè)典型的PC總線結(jié)構(gòu):總線結(jié)構(gòu):5.1 5.1 設(shè)備管理概述設(shè)備管理概述 I/O系統(tǒng)結(jié)構(gòu)系統(tǒng)結(jié)構(gòu) 2、主機(jī)、主機(jī)I/O系統(tǒng)結(jié)構(gòu):加入通道結(jié)構(gòu):系統(tǒng)結(jié)構(gòu):加入通道結(jié)構(gòu):CPU存儲器存儲器控制器控制器設(shè)備設(shè)備控制器控制器設(shè)備設(shè)備通道通道1通道通道2控制器控制器設(shè)備設(shè)備設(shè)備設(shè)備 I/O通道是一種通道是一種特殊的處理機(jī)特殊的處理機(jī),它控制設(shè)備與內(nèi)存直接進(jìn)行數(shù)據(jù)交換它控制設(shè)備與內(nèi)存直接進(jìn)行數(shù)據(jù)交換 。 I/O通道與一般的處理機(jī)的區(qū)別:通道與一般的處理機(jī)的區(qū)別: 通道的指令類型單一,主要局限于與通道的指令類型單一,主要局限于與I/O操作有關(guān)的指令;操作有關(guān)的指令;通道沒有自己的內(nèi)存
3、,是與通道沒有自己的內(nèi)存,是與CPU共享內(nèi)存。共享內(nèi)存。二二 .I/O.I/O設(shè)備的類型設(shè)備的類型 按信息交換的單位分類:按信息交換的單位分類:5.1 5.1 設(shè)備管理概述設(shè)備管理概述 1、塊設(shè)備:、塊設(shè)備:以以數(shù)據(jù)塊數(shù)據(jù)塊為單位來傳送數(shù)據(jù)的設(shè)備,如磁盤為單位來傳送數(shù)據(jù)的設(shè)備,如磁盤.特點(diǎn):特點(diǎn):1)信息交換的單位為等長數(shù)據(jù)塊;)信息交換的單位為等長數(shù)據(jù)塊; 2)可尋址;)可尋址; 3)I/O控制采用控制采用DMA方式。方式。 4)信息存儲設(shè)備)信息存儲設(shè)備二二 .I/O.I/O設(shè)備的類型設(shè)備的類型 5.1 5.1 設(shè)備管理概述設(shè)備管理概述 2、字符設(shè)備:、字符設(shè)備: 以以單個(gè)字符單個(gè)字符為單
4、位來傳送信息的設(shè)備,如終端、打印機(jī)為單位來傳送信息的設(shè)備,如終端、打印機(jī) 特點(diǎn):特點(diǎn):1)信息交換的單位為字符或字節(jié);)信息交換的單位為字符或字節(jié); 2)不可尋址;)不可尋址; 3)I/O控制采用中斷驅(qū)動(dòng)方式??刂撇捎弥袛囹?qū)動(dòng)方式。 4)信息輸入輸出設(shè)備)信息輸入輸出設(shè)備3、網(wǎng)絡(luò)設(shè)備:、網(wǎng)絡(luò)設(shè)備: 負(fù)責(zé)計(jì)算機(jī)之間的信息傳輸,兼具字符設(shè)備和塊設(shè)備的特點(diǎn)負(fù)責(zé)計(jì)算機(jī)之間的信息傳輸,兼具字符設(shè)備和塊設(shè)備的特點(diǎn),如調(diào)制解調(diào)器、網(wǎng)卡等。,如調(diào)制解調(diào)器、網(wǎng)卡等。三三. 設(shè)備管理功能:設(shè)備管理功能:跟蹤設(shè)備狀態(tài):跟蹤設(shè)備狀態(tài):動(dòng)態(tài)地記錄各種設(shè)備的狀態(tài)動(dòng)態(tài)地記錄各種設(shè)備的狀態(tài)設(shè)備分配:設(shè)備分配:獨(dú)占設(shè)備;共享設(shè)
5、備;虛擬設(shè)備獨(dú)占設(shè)備;共享設(shè)備;虛擬設(shè)備 靜態(tài)分配靜態(tài)分配 應(yīng)用程序級或作業(yè)級應(yīng)用程序級或作業(yè)級 程序進(jìn)入系統(tǒng)時(shí)進(jìn)行分配,退出系統(tǒng)時(shí)收回全部資源 動(dòng)態(tài)分配動(dòng)態(tài)分配 進(jìn)程級進(jìn)程級 進(jìn)程提出設(shè)備申請時(shí)進(jìn)行分配,使用完畢后立即收回3. 緩沖管理:緩沖管理:緩和緩和CPU與設(shè)備間速度不匹配的矛盾與設(shè)備間速度不匹配的矛盾4. 設(shè)備控制:設(shè)備控制:設(shè)備驅(qū)動(dòng)設(shè)備驅(qū)動(dòng)+中斷處理中斷處理 5.1 設(shè)備管理概述設(shè)備管理概述3 合理分配設(shè)備合理分配設(shè)備 提高設(shè)備與提高設(shè)備與CPU、各外部設(shè)備之間的并行性、各外部設(shè)備之間的并行性 提供使用方便且獨(dú)立于設(shè)備的界面提供使用方便且獨(dú)立于設(shè)備的界面 統(tǒng)一:統(tǒng)一:對各種不同的設(shè)
6、備提供一致的界面對各種不同的設(shè)備提供一致的界面 獨(dú)立于設(shè)備:獨(dú)立于設(shè)備:用戶使用的設(shè)備與物理設(shè)備無關(guān)用戶使用的設(shè)備與物理設(shè)備無關(guān)5.1 設(shè)備管理概述設(shè)備管理概述5.2 I/O5.2 I/O控制方式控制方式 程序程序I/OI/O方式方式 (或稱循環(huán)測試或稱循環(huán)測試I/O方式)方式)設(shè)備選中,設(shè)備選中,CPU向設(shè)備控制器發(fā)向設(shè)備控制器發(fā)I/O指令,啟動(dòng)設(shè)備指令,啟動(dòng)設(shè)備將控制器中的狀態(tài)寄存器的值將控制器中的狀態(tài)寄存器的值busy置為置為1CPU循環(huán)測試循環(huán)測試busy的值,直到的值,直到busy=0;設(shè)備控制器控制設(shè)備執(zhí)行設(shè)備控制器控制設(shè)備執(zhí)行I/O操作操作設(shè)備控制器置設(shè)備控制器置busy=0同時(shí)
7、進(jìn)同時(shí)進(jìn)行行CPU傳傳送到內(nèi)存送到內(nèi)存I/O完成完成5.2 I/O5.2 I/O控制方式控制方式 二、中斷驅(qū)動(dòng)二、中斷驅(qū)動(dòng)I/OI/O控制方式控制方式 :設(shè)備選中,設(shè)備選中,CPU向設(shè)備控制器發(fā)向設(shè)備控制器發(fā)I/O指令,啟指令,啟動(dòng)設(shè)備,并置狀態(tài)寄存器的允許中斷位動(dòng)設(shè)備,并置狀態(tài)寄存器的允許中斷位=1將控制器中的狀態(tài)寄存器的將控制器中的狀態(tài)寄存器的busy置為置為1當(dāng)前進(jìn)程阻塞,當(dāng)前進(jìn)程阻塞,CPU調(diào)度其他進(jìn)程執(zhí)行調(diào)度其他進(jìn)程執(zhí)行設(shè)備控制器控制設(shè)備執(zhí)行設(shè)備控制器控制設(shè)備執(zhí)行I/O操作操作設(shè)備控制器向設(shè)備控制器向CPU發(fā)中斷發(fā)中斷同時(shí)進(jìn)行同時(shí)進(jìn)行CPU響應(yīng)中響應(yīng)中斷,傳送斷,傳送數(shù)據(jù)到內(nèi)存數(shù)據(jù)到
8、內(nèi)存I/O完成完成常用于字符設(shè)備常用于字符設(shè)備的的I/O控制控制三三. 直接存儲器訪問(直接存儲器訪問(DMA )I/O控制方式控制方式 1. DMA控制方式的特征:控制方式的特征: 數(shù)據(jù)傳輸?shù)幕締挝皇菙?shù)據(jù)塊;數(shù)據(jù)傳輸?shù)幕締挝皇菙?shù)據(jù)塊; 數(shù)據(jù)傳送是在設(shè)備與內(nèi)存之間直接進(jìn)行的;數(shù)據(jù)傳送是在設(shè)備與內(nèi)存之間直接進(jìn)行的; 整塊數(shù)據(jù)的傳送是在整塊數(shù)據(jù)的傳送是在DMA控制器的控制下完成控制器的控制下完成的,僅在傳送一個(gè)或多個(gè)數(shù)據(jù)塊的開始和結(jié)束時(shí),才的,僅在傳送一個(gè)或多個(gè)數(shù)據(jù)塊的開始和結(jié)束時(shí),才需需CPU干預(yù)。干預(yù)。5.2 I/O5.2 I/O控制方式控制方式 常用于塊設(shè)備常用于塊設(shè)備的的I/O控制控制
9、三三. 直接存儲器訪問(直接存儲器訪問(DMA )I/O控制方式控制方式 2、 DMA控制器的組成及作用:控制器的組成及作用: 3、 DMA傳送過程:傳送過程: (1 1)DMADMA傳送前預(yù)處理傳送前預(yù)處理: (CPUCPU完成)完成)u測試設(shè)備狀態(tài)測試設(shè)備狀態(tài)uCPUCPU初始化初始化DMADMA控制器:控制器: 主存緩沖區(qū)首址主存緩沖區(qū)首址 MAR; 傳送數(shù)據(jù)字節(jié)數(shù)傳送數(shù)據(jù)字節(jié)數(shù) DC; 設(shè)置傳輸方式設(shè)置傳輸方式u 啟動(dòng)設(shè)備。啟動(dòng)設(shè)備。三三. 直接存儲器訪問(直接存儲器訪問(DMA )I/O控制方式控制方式 2. DMA傳送過程:傳送過程: DR1B或一個(gè)字或一個(gè)字?jǐn)?shù)據(jù)總線數(shù)據(jù)總線 MA
10、R所指主存單元所指主存單元(2 2)DMADMA控制器控制完成設(shè)備與主存間的數(shù)據(jù)傳送控制器控制完成設(shè)備與主存間的數(shù)據(jù)傳送 磁盤控制器磁盤控制器將整塊數(shù)據(jù)從磁盤讀入磁盤控制器的將整塊數(shù)據(jù)從磁盤讀入磁盤控制器的DRDR中;中; 磁盤控制器校驗(yàn)讀入的數(shù)據(jù);磁盤控制器校驗(yàn)讀入的數(shù)據(jù); 磁盤控制器向磁盤控制器向DMA控制器發(fā)控制器發(fā)DMA請求請求DMA控制器向控制器向CPU請求總線周期,獲得總線控制器權(quán)后:請求總線周期,獲得總線控制器權(quán)后: DC-;DC=0?是是向向CPU發(fā)中斷發(fā)中斷否否 轉(zhuǎn)轉(zhuǎn) MAR+;(3 3)CPUCPU響應(yīng)中斷進(jìn)行后處理響應(yīng)中斷進(jìn)行后處理:(CPUCPU完成)完成)思考:思考:
11、 DMA控制方式與中斷驅(qū)動(dòng)控制方式的區(qū)別:控制方式與中斷驅(qū)動(dòng)控制方式的區(qū)別: (1 1)對)對CPUCPU的中斷頻率不同;的中斷頻率不同; (2 2)數(shù)據(jù)傳輸控制不同。)數(shù)據(jù)傳輸控制不同。 四四. I/O. I/O通道控制方式通道控制方式 1. 通道的運(yùn)算控制部件:通道的運(yùn)算控制部件: 通道地址字(通道地址字(CAWCAW):):記錄下一條通道指令的地址,其功記錄下一條通道指令的地址,其功能類似于中央處理機(jī)的指令計(jì)數(shù)器。能類似于中央處理機(jī)的指令計(jì)數(shù)器。 通道命令字(通道命令字(CCWCCW):):記錄正在執(zhí)行的通道指令,其作用記錄正在執(zhí)行的通道指令,其作用相當(dāng)于中央處理機(jī)的指令寄存器。相當(dāng)于中
12、央處理機(jī)的指令寄存器。 通道狀態(tài)字(通道狀態(tài)字(CSWCSW):):記錄通道、控制器、設(shè)備的狀態(tài),記錄通道、控制器、設(shè)備的狀態(tài),包括包括I/OI/O傳輸完成信息、出錯(cuò)信息、重復(fù)執(zhí)行次數(shù)等。傳輸完成信息、出錯(cuò)信息、重復(fù)執(zhí)行次數(shù)等。 通道控制方式是一種以內(nèi)存為中心,實(shí)現(xiàn)設(shè)備和內(nèi)存間通道控制方式是一種以內(nèi)存為中心,實(shí)現(xiàn)設(shè)備和內(nèi)存間直接交換數(shù)據(jù)的控制方式。直接交換數(shù)據(jù)的控制方式。 四四. I/O. I/O通道控制方式通道控制方式 2. 通道程序:通道程序:保存在主存中保存在主存中 操作碼:操作碼:規(guī)定指令所執(zhí)行的操作。規(guī)定指令所執(zhí)行的操作。 內(nèi)存地址:內(nèi)存地址:內(nèi)存緩沖區(qū)首址。內(nèi)存緩沖區(qū)首址。 計(jì)數(shù):
13、計(jì)數(shù):本條指令要讀寫的字節(jié)數(shù)。本條指令要讀寫的字節(jié)數(shù)。 通道程序結(jié)束位通道程序結(jié)束位P:P=1P=1表示本條指令是通道程序最后表示本條指令是通道程序最后 一條指令。一條指令。 記錄結(jié)束標(biāo)志記錄結(jié)束標(biāo)志R:R=0R=0表示本條指令與下一條指令所處表示本條指令與下一條指令所處 理的數(shù)據(jù)屬同一條記錄。理的數(shù)據(jù)屬同一條記錄。 由一系列通道指令構(gòu)成。由一系列通道指令構(gòu)成。 通道指令內(nèi)容如下:通道指令內(nèi)容如下:四四. I/O. I/O通道控制方式通道控制方式 2. 通道程序:通道程序:CPU根據(jù)用戶的根據(jù)用戶的I/O請求生成通道程序請求生成通道程序 ;將其;將其放到內(nèi)存中,并將其首地址放入放到內(nèi)存中,并將
14、其首地址放入CAW中中 CPU執(zhí)行執(zhí)行“啟動(dòng)啟動(dòng)I/O”指令,啟動(dòng)通道工作指令,啟動(dòng)通道工作 通道向通道向CPU發(fā)應(yīng)答信號,通知發(fā)應(yīng)答信號,通知“啟動(dòng)啟動(dòng)I/O”指令完成,指令完成,CPU可繼續(xù)執(zhí)行其他進(jìn)程可繼續(xù)執(zhí)行其他進(jìn)程通道取出通道程序的下一條指令,通道取出通道程序的下一條指令,放入放入CCW中,并執(zhí)行之中,并執(zhí)行之通道向通道向CPU發(fā)中斷發(fā)中斷CPU響應(yīng)中斷響應(yīng)中斷否否四四. I/O. I/O通道控制方式通道控制方式 3. I/O控制過程:控制過程: 是最后一條指令嗎?是最后一條指令嗎?是是5.3 5.3 緩沖管理緩沖管理 二二. . 緩沖的引入緩沖的引入 (1 1)緩和)緩和CPUCP
15、U與與I/OI/O設(shè)備間速度不匹配的矛盾。設(shè)備間速度不匹配的矛盾。 (2 2)提高)提高CPUCPU和和I/OI/O設(shè)備之間的并行性。設(shè)備之間的并行性。(3 3)解決數(shù)據(jù)處理單位與傳輸單位不匹配的問題。)解決數(shù)據(jù)處理單位與傳輸單位不匹配的問題。(4 4)減少對)減少對CPUCPU的中斷頻率,的中斷頻率, 放寬對放寬對CPUCPU中斷響應(yīng)時(shí)間的限中斷響應(yīng)時(shí)間的限制。制。 什么是緩沖什么是緩沖 緩沖是兩種不同速度的設(shè)備之間傳輸信息時(shí)平滑傳輸過程緩沖是兩種不同速度的設(shè)備之間傳輸信息時(shí)平滑傳輸過程的常用手段的常用手段1 1位緩沖位緩沖9.6 Kb/s8 位緩沖寄存器位緩沖寄存器送內(nèi)存送內(nèi)存9.6 Kb
16、/s(b)(a)例:在一個(gè)遠(yuǎn)程通信系統(tǒng)中,在本地接收從遠(yuǎn)程例:在一個(gè)遠(yuǎn)程通信系統(tǒng)中,在本地接收從遠(yuǎn)程終端發(fā)來的數(shù)據(jù),速率為終端發(fā)來的數(shù)據(jù),速率為9.6kb/s。送內(nèi)存送內(nèi)存CPUCPU中斷頻率:中斷頻率:9.6K9.6K;CPUCPU響應(yīng)時(shí)間:響應(yīng)時(shí)間:0.1ms0.1ms;CPUCPU中斷頻率:中斷頻率:1.2K1.2K;CPUCPU響應(yīng)時(shí)間:響應(yīng)時(shí)間:0.1ms0.1ms;兩個(gè)兩個(gè)8 8位緩沖寄存器位緩沖寄存器9.6 Kb/s送內(nèi)存送內(nèi)存(c)CPUCPU中斷頻率:中斷頻率:1.2K1.2K;CPUCPU響應(yīng)時(shí)間:響應(yīng)時(shí)間:0.8ms0.8ms;送內(nèi)存送內(nèi)存12三三. 利用緩沖技術(shù)如何進(jìn)行
17、利用緩沖技術(shù)如何進(jìn)行I/O操作操作 (1) (1) 進(jìn)程活動(dòng)期間,請求從某設(shè)備讀入數(shù)據(jù)進(jìn)程活動(dòng)期間,請求從某設(shè)備讀入數(shù)據(jù) 進(jìn)程請求從輸入設(shè)備進(jìn)行讀操作的圖示進(jìn)程請求從輸入設(shè)備進(jìn)行讀操作的圖示輸入設(shè)備輸入設(shè)備BUF進(jìn)程進(jìn)程 圖中的操作與圖中的操作與 操作需要同步操作需要同步 5.3 5.3 緩沖管理緩沖管理 13三三. 利用緩沖技術(shù)如何進(jìn)行利用緩沖技術(shù)如何進(jìn)行I/O操作操作(1) (1) 進(jìn)程活動(dòng)期間,請求從某設(shè)備讀入數(shù)據(jù)進(jìn)程活動(dòng)期間,請求從某設(shè)備讀入數(shù)據(jù) 進(jìn)程請求從輸入設(shè)備進(jìn)行讀操作的步驟進(jìn)程請求從輸入設(shè)備進(jìn)行讀操作的步驟 當(dāng)用戶要求在某個(gè)設(shè)備上進(jìn)行讀操作時(shí),首先從系統(tǒng) 中獲得一個(gè)空的緩沖區(qū)
18、(圖中標(biāo)注的操作); 將一個(gè)物理記錄送到緩沖區(qū)中 (圖中標(biāo)注的存在) ; 當(dāng)用戶請求這些數(shù)據(jù)時(shí),系統(tǒng)將依據(jù)邏輯記錄特性從 緩沖區(qū)中提取并發(fā)送到用戶進(jìn)程存儲區(qū)中 (圖中標(biāo)注的 操作) ; 當(dāng)緩沖區(qū)空而進(jìn)程又要從中取用數(shù)據(jù)時(shí)該進(jìn)程被迫等 待。此時(shí),操作系統(tǒng)需要重新送數(shù)據(jù)填滿緩沖區(qū),進(jìn) 程才能從中取數(shù)據(jù)繼續(xù)運(yùn)行。14(2) 進(jìn)程活動(dòng)期間,請求從輸出設(shè)備輸出數(shù)據(jù)進(jìn)程活動(dòng)期間,請求從輸出設(shè)備輸出數(shù)據(jù) 進(jìn)程請求從輸出設(shè)備進(jìn)行寫操作的圖示進(jìn)程請求從輸出設(shè)備進(jìn)行寫操作的圖示 圖中的操作與圖中的操作與 操作需要同步操作需要同步 輸出設(shè)備輸出設(shè)備BUF進(jìn)程進(jìn)程 5.3 5.3 緩沖管理緩沖管理 三三. 利用緩沖技
19、術(shù)如何進(jìn)行利用緩沖技術(shù)如何進(jìn)行I/O操作操作15 進(jìn)程請求從輸出設(shè)備進(jìn)行寫操作的步驟進(jìn)程請求從輸出設(shè)備進(jìn)行寫操作的步驟 當(dāng)用戶要求進(jìn)行寫操作時(shí),首先從系統(tǒng)中獲得一個(gè)空 的緩沖區(qū) (圖中標(biāo)注的操作) ; 將一個(gè)邏輯記錄從進(jìn)程存儲區(qū)傳送到緩沖區(qū)中 (圖中標(biāo) 注操作) ; 當(dāng)緩沖區(qū)寫滿時(shí),系統(tǒng)將緩沖區(qū)的內(nèi)容作為物理記錄 文件寫到設(shè)備上,使緩沖區(qū)再次為空 (圖中標(biāo)注的操作 ) ; 只有在系統(tǒng)還來不及騰空緩沖區(qū)之前,進(jìn)程又企圖輸 出信息時(shí),它才需要等待。三三. 利用緩沖技術(shù)如何進(jìn)行利用緩沖技術(shù)如何進(jìn)行I/O操作操作(2) 進(jìn)程活動(dòng)期間,請求從輸出設(shè)備輸出數(shù)據(jù)進(jìn)程活動(dòng)期間,請求從輸出設(shè)備輸出數(shù)據(jù)四四. 單
20、緩沖和雙緩沖單緩沖和雙緩沖 1. 1. 單緩沖單緩沖(Single Buffer) (Single Buffer) 系統(tǒng)對一塊數(shù)據(jù)的處理時(shí)間:系統(tǒng)對一塊數(shù)據(jù)的處理時(shí)間:Max(C,T)+MMax(C,T)+M 5.3 5.3 緩沖管理緩沖管理 2. 2. 雙緩沖雙緩沖(Double Buffer)(Double Buffer) 系統(tǒng)對一塊數(shù)據(jù)的處理時(shí)間:系統(tǒng)對一塊數(shù)據(jù)的處理時(shí)間:Max(C+M,T)Max(C+M,T) T T M M C C 四四. 單緩沖和雙緩沖單緩沖和雙緩沖 5.3 5.3 緩沖管理緩沖管理 五五. . 緩沖池緩沖池(Buffer Pool) (Buffer Pool)
21、1 1、緩沖隊(duì)列管理、緩沖隊(duì)列管理 由內(nèi)存中一組緩沖區(qū)組成,由系統(tǒng)統(tǒng)一管理。由內(nèi)存中一組緩沖區(qū)組成,由系統(tǒng)統(tǒng)一管理。 輸入隊(duì)列輸入隊(duì)列inq;輸出隊(duì)列輸出隊(duì)列outq。 空緩沖區(qū):空緩沖區(qū):空緩沖隊(duì)列空緩沖隊(duì)列emq; 裝滿輸入數(shù)據(jù)的緩沖區(qū):裝滿輸入數(shù)據(jù)的緩沖區(qū): 裝滿輸出數(shù)據(jù)的緩沖區(qū):裝滿輸出數(shù)據(jù)的緩沖區(qū):5.3 5.3 緩沖管理緩沖管理 五五. . 緩沖池緩沖池(Buffer Pool) (Buffer Pool) 2 2、緩沖池的使用:、緩沖池的使用: Getbuf ( type): 申請一個(gè)緩沖區(qū);申請一個(gè)緩沖區(qū); Putbuf (type, number): 釋放一個(gè)緩沖區(qū);釋放一個(gè)
22、緩沖區(qū);信號量設(shè)置:信號量設(shè)置:資源信號量:資源信號量:表示某類緩沖隊(duì)列中緩沖區(qū)的數(shù)量:表示某類緩沖隊(duì)列中緩沖區(qū)的數(shù)量: RS(emq)=n; RS(inq)=0; RS(outq)=0;互斥信號量:互斥信號量:實(shí)現(xiàn)相應(yīng)緩沖隊(duì)列的互斥使用:實(shí)現(xiàn)相應(yīng)緩沖隊(duì)列的互斥使用: MS(emq)=MS(inq)=MS(outq)=1;(2) Getbuf過程過程 Procedure Getbuf(type) begin Wait(RS(type); Wait(MS(type); B(number) = Takebuf(type); Signal(MS(type); end 五五. . 緩沖池緩沖池(Buf
23、fer Pool) (Buffer Pool) 2. 2. 緩沖池的使用:緩沖池的使用: Procedure Putbuf(type, number) begin Wait(MS(type); Addbuf(type, number); Signal(MS(type); Signal(RS(type); end (3)Putbuf過程過程 五五. . 緩沖池緩沖池(Buffer Pool) (Buffer Pool) 2. 2. 緩沖池的使用:緩沖池的使用: 3 3、 緩沖池的工作方式緩沖池的工作方式 輸入隊(duì)列輸入隊(duì)列 空緩沖隊(duì)列空緩沖隊(duì)列 輸出隊(duì)列輸出隊(duì)列Getbuf(emq)收容輸入收容輸
24、入Putbuf(inq)Putbuf(outq)Getbuf(emq)Getbuf(inq)Putbuf(emq)Getbuf(outq)Putbuf(emq)提取輸入提取輸入收容輸出收容輸出提取輸出提取輸出五五. . 緩沖池緩沖池(Buffer Pool) (Buffer Pool) 5.3 5.3 緩沖管理緩沖管理 20 加快系統(tǒng)響應(yīng)、增加系統(tǒng)吞吐量加快系統(tǒng)響應(yīng)、增加系統(tǒng)吞吐量 減少對磁盤的減少對磁盤的I/O操作次數(shù)操作次數(shù)5.3 5.3 緩沖管理緩沖管理 20 當(dāng)進(jìn)程要從磁盤讀數(shù)據(jù)時(shí),首先考慮從高速緩沖當(dāng)進(jìn)程要從磁盤讀數(shù)據(jù)時(shí),首先考慮從高速緩沖中讀中讀 當(dāng)進(jìn)程要寫數(shù)據(jù)到磁盤時(shí),先寫入高速
25、緩沖中當(dāng)進(jìn)程要寫數(shù)據(jù)到磁盤時(shí),先寫入高速緩沖中緩沖讀緩沖讀高速緩沖高速緩沖 用戶用戶數(shù)據(jù)區(qū)數(shù)據(jù)區(qū)用戶進(jìn)程用戶進(jìn)程磁盤磁盤緩沖寫緩沖寫高速緩沖高速緩沖 用戶用戶數(shù)據(jù)區(qū)數(shù)據(jù)區(qū)用戶進(jìn)程用戶進(jìn)程磁盤磁盤21 緩沖區(qū)的組成緩沖區(qū)的組成 緩存數(shù)組緩存數(shù)組含有磁盤上的數(shù)據(jù)的存儲器數(shù)組含有磁盤上的數(shù)據(jù)的存儲器數(shù)組 緩存首部緩存首部描述緩沖區(qū)特性的數(shù)據(jù)結(jié)構(gòu)描述緩沖區(qū)特性的數(shù)據(jù)結(jié)構(gòu)5.3 5.3 緩沖管理緩沖管理 22 緩存首部結(jié)構(gòu)緩存首部結(jié)構(gòu)設(shè)備號設(shè)備號 dev塊號塊號 blkno狀態(tài)狀態(tài) flag指向數(shù)據(jù)區(qū)域的指針指向數(shù)據(jù)區(qū)域的指針傳送字節(jié)數(shù)傳送字節(jié)數(shù)返回的返回的I/ /O出錯(cuò)信息出錯(cuò)信息b_forw 設(shè)備緩
26、沖區(qū)隊(duì)列前向指針設(shè)備緩沖區(qū)隊(duì)列前向指針b_back 設(shè)備緩沖區(qū)隊(duì)列后向指針設(shè)備緩沖區(qū)隊(duì)列后向指針av_forw 空閑緩沖區(qū)隊(duì)列前向指針空閑緩沖區(qū)隊(duì)列前向指針 av_back 空閑緩沖區(qū)隊(duì)列后向指針空閑緩沖區(qū)隊(duì)列后向指針 設(shè)備號設(shè)備號dev 緩沖區(qū)所包含的信息所屬設(shè)備的設(shè)備號緩沖區(qū)所包含的信息所屬設(shè)備的設(shè)備號 塊號塊號blknoblkno 由設(shè)備號指出的設(shè)備上相對于第由設(shè)備號指出的設(shè)備上相對于第0塊的塊號塊的塊號 狀態(tài)狀態(tài)flagflag描述了緩沖區(qū)當(dāng)前的狀態(tài)描述了緩沖區(qū)當(dāng)前的狀態(tài) 忙標(biāo)志忙標(biāo)志BUSY:緩沖區(qū)當(dāng)前正:緩沖區(qū)當(dāng)前正“忙忙” 有效位有效位AVE:緩沖包含的數(shù)據(jù)有效:緩沖包含的數(shù)據(jù)有
27、效 延遲寫延遲寫DELWR :核心在某緩沖區(qū)重新分:核心在某緩沖區(qū)重新分配出去之前必須把緩沖區(qū)內(nèi)容寫到磁盤上配出去之前必須把緩沖區(qū)內(nèi)容寫到磁盤上 寫標(biāo)志寫標(biāo)志W(wǎng)RITE: 核心當(dāng)前正把緩沖區(qū)的內(nèi)核心當(dāng)前正把緩沖區(qū)的內(nèi)容寫到磁盤容寫到磁盤 讀標(biāo)志讀標(biāo)志READ:核心當(dāng)前正從磁盤往緩沖區(qū):核心當(dāng)前正從磁盤往緩沖區(qū)寫信息寫信息等待位等待位 WAIT: 一個(gè)進(jìn)程當(dāng)前正在等候緩一個(gè)進(jìn)程當(dāng)前正在等候緩沖區(qū)變?yōu)榭臻e沖區(qū)變?yōu)榭臻e23 緩沖區(qū)隊(duì)列結(jié)構(gòu)緩沖區(qū)隊(duì)列結(jié)構(gòu) 設(shè)備緩沖區(qū)隊(duì)列設(shè)備緩沖區(qū)隊(duì)列 與某類設(shè)備有關(guān)的所有緩沖區(qū)組成的隊(duì)列稱為設(shè)備緩與某類設(shè)備有關(guān)的所有緩沖區(qū)組成的隊(duì)列稱為設(shè)備緩 沖區(qū)隊(duì)列,簡稱沖區(qū)隊(duì)列,
28、簡稱b鏈。鏈。 b_forw b_back b_forw b_back b_forw b_back b_forw b_back設(shè)備緩沖區(qū)隊(duì)列設(shè)備緩沖區(qū)隊(duì)列24 緩沖區(qū)隊(duì)列結(jié)構(gòu)緩沖區(qū)隊(duì)列結(jié)構(gòu) 空閑緩沖區(qū)隊(duì)列空閑緩沖區(qū)隊(duì)列 可供重新分配使用的緩沖區(qū)組成的隊(duì)列稱為空閑緩沖可供重新分配使用的緩沖區(qū)組成的隊(duì)列稱為空閑緩沖 區(qū)區(qū)隊(duì)列,簡稱隊(duì)列,簡稱av鏈。鏈。 av_forwav_backav_forwav_backav_forwav_backav_forwav_back空閑緩沖區(qū)隊(duì)列空閑緩沖區(qū)隊(duì)列26分配一個(gè)分配一個(gè)buf讀讀/寫某設(shè)備上的塊:寫某設(shè)備上的塊: 首先尋找該設(shè)備的首先尋找該設(shè)備的b鏈,若找
29、到:鏈,若找到: 1)B_BUSY=0:移出:移出av鏈,鏈,B_BUSY=1 ;使用完后,;使用完后, B_BUSY=0,鏈入,鏈入av鏈隊(duì)尾。鏈隊(duì)尾。 2)B_ BUSY=1:緩沖區(qū)不在:緩沖區(qū)不在avav鏈上,該進(jìn)程睡眠鏈上,該進(jìn)程睡眠 若若b鏈中找不到:鏈中找不到: 取取av鏈鏈 (空閑空閑buf隊(duì)列隊(duì)列) 的首元素:的首元素: 1)若無延遲寫標(biāo)記,直接分配,插入)若無延遲寫標(biāo)記,直接分配,插入b鏈,鏈,B_BUSY=1 ;用完后,鏈入用完后,鏈入av鏈隊(duì)尾,鏈隊(duì)尾, B_BUSY=0 2)若有延遲寫標(biāo)記:分配下一個(gè)空閑緩沖區(qū),然后同)若有延遲寫標(biāo)記:分配下一個(gè)空閑緩沖區(qū),然后同1)2
30、7(2) 對延遲寫的處理對延遲寫的處理 當(dāng)一個(gè)具有延遲寫標(biāo)記的當(dāng)一個(gè)具有延遲寫標(biāo)記的buf移到移到av鏈頭,要用于分配時(shí),立鏈頭,要用于分配時(shí),立即進(jìn)行寫操作:從即進(jìn)行寫操作:從av鏈上摘除,使用完后又送入鏈上摘除,使用完后又送入av頭部,同時(shí)頭部,同時(shí)仍保留在原仍保留在原b鏈中。鏈中。(3)釋放一個(gè)緩沖區(qū):)釋放一個(gè)緩沖區(qū): 緩沖區(qū)讀寫操作結(jié)束后,保留在緩沖區(qū)讀寫操作結(jié)束后,保留在b鏈,并插入鏈,并插入av鏈尾鏈尾27272727I/O 應(yīng)答應(yīng)答進(jìn)行進(jìn)行I/O調(diào)用;格式化調(diào)用;格式化I/O命名、保護(hù)、緩沖、分配命名、保護(hù)、緩沖、分配設(shè)備驅(qū)動(dòng)設(shè)備驅(qū)動(dòng)+中斷處理中斷處理當(dāng)當(dāng)I/O結(jié)束時(shí),進(jìn)行中斷
31、處理結(jié)束時(shí),進(jìn)行中斷處理執(zhí)行執(zhí)行I/O操作操作I/O 請求請求用戶層軟件用戶層軟件設(shè)備獨(dú)立性軟件設(shè)備獨(dú)立性軟件設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序中斷處理程序中斷處理程序硬件硬件5.4 I/O軟軟件件I/OI/O軟件的組成:軟件的組成:I/OI/O控制模塊控制模塊邏輯邏輯I/O層層設(shè)備設(shè)備I/O層層內(nèi)核空間內(nèi)核空間40 1、以設(shè)備處理進(jìn)程的方式:、以設(shè)備處理進(jìn)程的方式:2、 將設(shè)備與文件一樣對待:將設(shè)備與文件一樣對待:UNIX、linux 將設(shè)備與文件一樣對待,使用文件系統(tǒng)的系統(tǒng)調(diào)用命令進(jìn)將設(shè)備與文件一樣對待,使用文件系統(tǒng)的系統(tǒng)調(diào)用命令進(jìn) 行設(shè)備的讀、寫,由文件系統(tǒng)統(tǒng)一管理。行設(shè)備的讀、寫,由文件系統(tǒng)統(tǒng)一
32、管理。 5.4 I/O軟件軟件 I/O控制模塊控制模塊 I/O進(jìn)程:接口程序,面向用戶進(jìn)程:接口程序,面向用戶 設(shè)備處理進(jìn)程:設(shè)備驅(qū)動(dòng)程序,面向設(shè)備設(shè)備處理進(jìn)程:設(shè)備驅(qū)動(dòng)程序,面向設(shè)備 設(shè)備文件名設(shè)備文件名 目錄檢索目錄檢索 i節(jié)點(diǎn)節(jié)點(diǎn) 設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序Linux塊設(shè)備處塊設(shè)備處理:理:用戶層軟件用戶層軟件:read()虛擬文件系統(tǒng)虛擬文件系統(tǒng)VFS:通過塊設(shè)備文件操作表調(diào)用相關(guān):通過塊設(shè)備文件操作表調(diào)用相關(guān)VFS的的sys_read()()磁盤高速緩存磁盤高速緩存文件系統(tǒng)映射層文件系統(tǒng)映射層:字節(jié)偏移量:字節(jié)偏移量邏輯塊號邏輯塊號物理塊號,對塊設(shè)備發(fā)讀請求物理塊號,對塊設(shè)備發(fā)讀請求通
33、用塊層通用塊層:以物理塊號、操作類型為參數(shù),向:以物理塊號、操作類型為參數(shù),向I/O調(diào)度程序發(fā)啟動(dòng)磁盤讀調(diào)度程序發(fā)啟動(dòng)磁盤讀操作命令操作命令塊設(shè)備驅(qū)動(dòng)程序塊設(shè)備驅(qū)動(dòng)程序塊設(shè)備驅(qū)動(dòng)程序塊設(shè)備驅(qū)動(dòng)程序磁盤磁盤磁盤磁盤41 系統(tǒng)功能調(diào)用的形式系統(tǒng)功能調(diào)用的形式: doio(ldev,mode,amount,addr); ldev: 邏輯設(shè)備名邏輯設(shè)備名 mode: 操作模式操作模式 amount:傳輸數(shù)據(jù)的數(shù)目:傳輸數(shù)據(jù)的數(shù)目 addr: 傳送地址傳送地址 例如:例如:fd1=open(“/dev/lp”,O_WRONLY); n=write(fd1,buf1,count1); 5.4 I/O軟件軟
34、件42 將邏輯設(shè)備轉(zhuǎn)換為物理設(shè)備將邏輯設(shè)備轉(zhuǎn)換為物理設(shè)備 獲得獲得 I/O系統(tǒng)調(diào)用中給出的邏輯設(shè)備名系統(tǒng)調(diào)用中給出的邏輯設(shè)備名 (ldev); 根據(jù)邏輯設(shè)備描述器,將邏輯設(shè)備名轉(zhuǎn)換為物理設(shè)備名。根據(jù)邏輯設(shè)備描述器,將邏輯設(shè)備名轉(zhuǎn)換為物理設(shè)備名。 合法性檢查合法性檢查 獲得獲得 I/O系統(tǒng)調(diào)用中給出的操作模式系統(tǒng)調(diào)用中給出的操作模式mode; 根據(jù)根據(jù)DCB中命令轉(zhuǎn)換表中允許的操作,檢查操作的合中命令轉(zhuǎn)換表中允許的操作,檢查操作的合 法性。法性。 形成形成I/O請求塊,發(fā)消息給對應(yīng)的設(shè)備處理進(jìn)程請求塊,發(fā)消息給對應(yīng)的設(shè)備處理進(jìn)程 根據(jù)請求的參數(shù)形成根據(jù)請求的參數(shù)形成I/O請求塊請求塊 (IORB
35、); 將將I/O請求塊請求塊 (IORB)掛到對應(yīng)的設(shè)備請求隊(duì)列。掛到對應(yīng)的設(shè)備請求隊(duì)列。44 while (該進(jìn)程的邏輯設(shè)備描述器隊(duì)列不空該進(jìn)程的邏輯設(shè)備描述器隊(duì)列不空) if (與與ldev相聯(lián)結(jié)的物理設(shè)備找到相聯(lián)結(jié)的物理設(shè)備找到) break; / *找到找到* / if (該進(jìn)程的邏輯設(shè)備描述器隊(duì)列為空該進(jìn)程的邏輯設(shè)備描述器隊(duì)列為空) return(錯(cuò)誤碼錯(cuò)誤碼); / * 設(shè)備邏輯名錯(cuò)設(shè)備邏輯名錯(cuò)* / 檢查參數(shù)與該設(shè)備特性是否一致檢查參數(shù)與該設(shè)備特性是否一致; if (不一致不一致) return (錯(cuò)誤碼錯(cuò)誤碼); / * 傳送參數(shù)錯(cuò)傳送參數(shù)錯(cuò) * / 構(gòu)造構(gòu)造iorb; 把把i
36、orb插入到該設(shè)備的請求隊(duì)列中;插入到該設(shè)備的請求隊(duì)列中; 喚醒因等待喚醒因等待I/O請求塊而睡眠的設(shè)備處理進(jìn)程;請求塊而睡眠的設(shè)備處理進(jìn)程; I/O進(jìn)程的處理算法描述:進(jìn)程的處理算法描述:45 process io l: while (設(shè)備請求隊(duì)列不空設(shè)備請求隊(duì)列不空) 取一個(gè)取一個(gè)iorb; 提取請求的詳細(xì)信息;提取請求的詳細(xì)信息; 啟動(dòng)啟動(dòng)I/O操作;操作; sleep (事件:事件:I/O完成完成) /* I/O操作操作* / /* 等等I/O完成后,進(jìn)入中斷處理程序,并在那里喚醒設(shè)備處理進(jìn)程完成后,進(jìn)入中斷處理程序,并在那里喚醒設(shè)備處理進(jìn)程* / if (出錯(cuò)出錯(cuò)) 將錯(cuò)誤信息寫在該
37、設(shè)備的將錯(cuò)誤信息寫在該設(shè)備的dcb中;中; 傳送數(shù)據(jù)到目的地;傳送數(shù)據(jù)到目的地; 喚醒請求此喚醒請求此I/O操作的進(jìn)程;操作的進(jìn)程; 刪除刪除iorb; sleep (事件:因無事件:因無I/O請求請求); goto l ; 46中斷處理程序中斷處理程序 doio(ldev,mode,amount,addr);/* 等等I/ /O完成完成*/ 標(biāo)識設(shè)備;標(biāo)識設(shè)備;執(zhí)行出錯(cuò)檢查;執(zhí)行出錯(cuò)檢查;構(gòu)成構(gòu)成iocb;將將iocb送入設(shè)備請送入設(shè)備請求隊(duì)列;求隊(duì)列;喚醒因等待喚醒因等待I/ /O請請求塊而睡眠的求塊而睡眠的I/ /O處理進(jìn)程;處理進(jìn)程;取取iocb;如無如無iocb則等待;則等待;啟動(dòng)啟
38、動(dòng)I/ /O操作;操作;/*等等I/ /O完成完成*/執(zhí)行出錯(cuò)檢查;執(zhí)行出錯(cuò)檢查; 喚醒等待喚醒等待I/ /O完成完成的進(jìn)程;的進(jìn)程;I/ /O設(shè)備設(shè)備 中斷服務(wù);中斷服務(wù); 喚醒喚醒I/ /O處理處理進(jìn)程;進(jìn)程; 用戶進(jìn)程用戶進(jìn)程I/ /O進(jìn)程進(jìn)程I/ /O處理進(jìn)程處理進(jìn)程啟動(dòng)啟動(dòng)設(shè)備設(shè)備中斷信號中斷信號控制關(guān)系控制關(guān)系同步關(guān)系同步關(guān)系用戶進(jìn)程調(diào)用外部設(shè)備的過程用戶進(jìn)程調(diào)用外部設(shè)備的過程 5.4 I/O5.4 I/O軟件軟件三三. . 中斷處理程序:中斷處理程序:喚醒被阻塞的喚醒被阻塞的驅(qū)動(dòng)程序進(jìn)程驅(qū)動(dòng)程序進(jìn)程對被中斷進(jìn)程的對被中斷進(jìn)程的CPUCPU環(huán)境進(jìn)行保護(hù)環(huán)境進(jìn)行保護(hù)中斷請求信號中斷請
39、求信號PSW程序狀態(tài)字程序狀態(tài)字PC程序計(jì)數(shù)器程序計(jì)數(shù)器R0Rn寄存器寄存器中斷棧中斷棧PSWPCR0Rn硬件完成硬件完成軟件完成軟件完成分析中斷原因,轉(zhuǎn)入分析中斷原因,轉(zhuǎn)入相應(yīng)的中斷處理程序相應(yīng)的中斷處理程序終端中斷終端中斷處理程序處理程序打印機(jī)中斷打印機(jī)中斷處理程序處理程序磁盤中斷磁盤中斷處理程序處理程序恢復(fù)被中斷進(jìn)恢復(fù)被中斷進(jìn)程的程的CPU 現(xiàn)場現(xiàn)場5.4 I/O軟軟件件四四. . 設(shè)備驅(qū)動(dòng)程序:設(shè)備驅(qū)動(dòng)程序:1. 1. 設(shè)備驅(qū)動(dòng)程序的功能:設(shè)備驅(qū)動(dòng)程序的功能: (1) 接收由上層軟件發(fā)來的抽象命令,接收由上層軟件發(fā)來的抽象命令, 將其轉(zhuǎn)換為具體要求,將其轉(zhuǎn)換為具體要求,并插入請求隊(duì)列。
40、并插入請求隊(duì)列。 (2) 完成完成I/O操作的初始化工作:檢查用戶操作的初始化工作:檢查用戶I/O請求的合法性,請求的合法性,了解了解I/O設(shè)備的狀態(tài),傳遞有關(guān)參數(shù),設(shè)置設(shè)備的工作方式。設(shè)備的狀態(tài),傳遞有關(guān)參數(shù),設(shè)置設(shè)備的工作方式。 (3) 發(fā)出發(fā)出I/O命令,啟動(dòng)命令,啟動(dòng)I/O設(shè)備。設(shè)備。 (4) 及時(shí)響應(yīng)由控制器或通道發(fā)來的中斷請求。及時(shí)響應(yīng)由控制器或通道發(fā)來的中斷請求。 (5) 根據(jù)用戶的根據(jù)用戶的I/O請求,自動(dòng)地構(gòu)成通道程序。請求,自動(dòng)地構(gòu)成通道程序。 (1) 驅(qū)動(dòng)程序是請求驅(qū)動(dòng)程序是請求I/O的進(jìn)程與設(shè)備控制器之間的一個(gè)通的進(jìn)程與設(shè)備控制器之間的一個(gè)通信和轉(zhuǎn)換程序。信和轉(zhuǎn)換程序。
41、 (2) 驅(qū)動(dòng)程序與設(shè)備控制器和驅(qū)動(dòng)程序與設(shè)備控制器和I/O設(shè)備的硬件特性緊密相關(guān),設(shè)備的硬件特性緊密相關(guān), 因而對不同類型的設(shè)備應(yīng)配置不同的驅(qū)動(dòng)程序。因而對不同類型的設(shè)備應(yīng)配置不同的驅(qū)動(dòng)程序。 (3) 驅(qū)動(dòng)程序與驅(qū)動(dòng)程序與I/O設(shè)備所采用的設(shè)備所采用的I/O控制方式緊密相關(guān)??刂品绞骄o密相關(guān)。 (4) 由于驅(qū)動(dòng)程序與硬件緊密相關(guān),由于驅(qū)動(dòng)程序與硬件緊密相關(guān), 因而其中的一部分代因而其中的一部分代碼必須用匯編語言書寫。碼必須用匯編語言書寫。 (5) 驅(qū)動(dòng)程序不允許系統(tǒng)調(diào)用驅(qū)動(dòng)程序不允許系統(tǒng)調(diào)用2. 2. 設(shè)備驅(qū)動(dòng)程序的特點(diǎn)設(shè)備驅(qū)動(dòng)程序的特點(diǎn) 五五. . 設(shè)備獨(dú)立性軟件設(shè)備獨(dú)立性軟件 設(shè)備獨(dú)立性
42、的概念設(shè)備獨(dú)立性的概念(1 1)什么是設(shè)備獨(dú)立性)什么是設(shè)備獨(dú)立性 是指是指用戶在程序中使用的設(shè)備與實(shí)際使用的設(shè)備無關(guān),即用戶在程序中使用的設(shè)備與實(shí)際使用的設(shè)備無關(guān),即在用戶程序中僅使用邏輯設(shè)備名在用戶程序中僅使用邏輯設(shè)備名。也稱為設(shè)備無關(guān)性。也稱為設(shè)備無關(guān)性。物理設(shè)備名物理設(shè)備名物理設(shè)備名物理設(shè)備名用戶給出的用戶給出的可變的可變的不變的不變的系統(tǒng)給出的系統(tǒng)給出的設(shè)備地址設(shè)備地址物理設(shè)備名物理設(shè)備名邏輯設(shè)備名邏輯設(shè)備名邏輯名與物理設(shè)備名分開邏輯名與物理設(shè)備名分開5.4 I/O軟軟件件五五. . 設(shè)備獨(dú)立性軟件設(shè)備獨(dú)立性軟件 設(shè)備獨(dú)立性的概念設(shè)備獨(dú)立性的概念(2 2)物理設(shè)備名)物理設(shè)備名 是系
43、統(tǒng)提供的設(shè)備的標(biāo)準(zhǔn)名稱,它是永久的、不可更改的。是系統(tǒng)提供的設(shè)備的標(biāo)準(zhǔn)名稱,它是永久的、不可更改的。(3 3)邏輯設(shè)備名)邏輯設(shè)備名 是用戶自己指定的設(shè)備名是用戶自己指定的設(shè)備名 (或設(shè)備號或設(shè)備號),它是暫時(shí)的、可更改,它是暫時(shí)的、可更改的。的。 fd = open(“/dev/lp” ,mode) ; fd = open(“./file1.txt”,mode);5.4 I/O軟軟件件五五. . 設(shè)備獨(dú)立性軟件設(shè)備獨(dú)立性軟件 2.2.(1 1) 一個(gè)程序獨(dú)立于分配給它的某種類型的具體設(shè)備一個(gè)程序獨(dú)立于分配給它的某種類型的具體設(shè)備 系統(tǒng)可以根據(jù)設(shè)備的使用情況,動(dòng)態(tài)地分配給程序某類設(shè)系統(tǒng)可以根據(jù)
44、設(shè)備的使用情況,動(dòng)態(tài)地分配給程序某類設(shè) 備中的任一臺物理設(shè)備,程序都能正確地執(zhí)行。備中的任一臺物理設(shè)備,程序都能正確地執(zhí)行。(2 2) 程序應(yīng)盡可能與它所使用的程序應(yīng)盡可能與它所使用的I/O設(shè)備類型無關(guān)設(shè)備類型無關(guān) 在輸入在輸入 (或輸出或輸出)信息時(shí),信息可以從不同類型的輸入信息時(shí),信息可以從不同類型的輸入 (或或 輸出輸出)設(shè)備上輸入設(shè)備上輸入 (或輸出或輸出),若要改變輸入,若要改變輸入 (或輸出或輸出) 設(shè)備設(shè)備 的類型,程序只需進(jìn)行最少的修改。的類型,程序只需進(jìn)行最少的修改。 5.4 I/O軟軟件件7(1)在高級語言中用軟通道實(shí)現(xiàn))在高級語言中用軟通道實(shí)現(xiàn) 使用高級語言提供的指派語句
45、,通過指派一個(gè)邏輯設(shè)備名使用高級語言提供的指派語句,通過指派一個(gè)邏輯設(shè)備名 (通道號通道號)來定義一個(gè)設(shè)備或文件。來定義一個(gè)設(shè)備或文件。 如:如:fd = open(“/dev/lp” ,mode) ; n=write(fd,buf1,count);(2)在交互系統(tǒng)中,用指派命令來定義)在交互系統(tǒng)中,用指派命令來定義 如:如:PDP系列機(jī)上的系列機(jī)上的RT11系統(tǒng)系統(tǒng) ASSIGN 設(shè)備物理名設(shè)備物理名 設(shè)備邏輯名設(shè)備邏輯名 如:如:assign lp :7 則程序中所有對邏輯設(shè)備號則程序中所有對邏輯設(shè)備號7的引用都在行式打印機(jī)上的引用都在行式打印機(jī)上輸出。輸出。五五. . 設(shè)備獨(dú)立性軟件設(shè)備
46、獨(dú)立性軟件 5.4 I/O軟軟件件7(3)邏輯設(shè)備描述器)邏輯設(shè)備描述器ldd(又稱邏輯設(shè)備表(又稱邏輯設(shè)備表ldt) 描述了進(jìn)程中邏輯設(shè)備名與物理設(shè)備名的對應(yīng)關(guān)系。描述了進(jìn)程中邏輯設(shè)備名與物理設(shè)備名的對應(yīng)關(guān)系。 每個(gè)進(jìn)程建立一個(gè)每個(gè)進(jìn)程建立一個(gè)ldd鏈表。鏈表。五五. . 設(shè)備獨(dú)立性軟件設(shè)備獨(dú)立性軟件 5.4 I/O軟軟件件7 方便用戶方便用戶 改善設(shè)備利用率改善設(shè)備利用率 提高系統(tǒng)的可擴(kuò)展性和可適應(yīng)性提高系統(tǒng)的可擴(kuò)展性和可適應(yīng)性五五. . 設(shè)備獨(dú)立性軟件設(shè)備獨(dú)立性軟件 5.4 I/O軟軟件件 判斷題判斷題1.設(shè)備獨(dú)立性是指設(shè)備由用戶獨(dú)占使用設(shè)備獨(dú)立性是指設(shè)備由用戶獨(dú)占使用答案:錯(cuò)答案:錯(cuò)5
47、.5 5.5 設(shè)備分配設(shè)備分配 1.1.設(shè)備控制塊設(shè)備控制塊系統(tǒng)為每一臺設(shè)備都配置了一個(gè)用來記錄設(shè)備的硬件特系統(tǒng)為每一臺設(shè)備都配置了一個(gè)用來記錄設(shè)備的硬件特 性、性、連接和使用情況的一組數(shù)據(jù),稱為設(shè)備控制塊。連接和使用情況的一組數(shù)據(jù),稱為設(shè)備控制塊。設(shè)備名設(shè)備名設(shè)備屬性設(shè)備屬性指向設(shè)備開關(guān)表的指針指向設(shè)備開關(guān)表的指針在在I/ /O總線上的設(shè)備地址總線上的設(shè)備地址設(shè)備狀態(tài)設(shè)備狀態(tài)當(dāng)前用戶進(jìn)程指針當(dāng)前用戶進(jìn)程指針I(yè)/O請求隊(duì)列指針請求隊(duì)列指針 設(shè)備名設(shè)備名 設(shè)備的系統(tǒng)名,即設(shè)備的物理名。設(shè)備的系統(tǒng)名,即設(shè)備的物理名。 設(shè)備屬性設(shè)備屬性 描述設(shè)備現(xiàn)行狀態(tài)的一組屬性。描述設(shè)備現(xiàn)行狀態(tài)的一組屬性。 設(shè)備
48、開關(guān)表設(shè)備開關(guān)表 轉(zhuǎn)換表包含設(shè)備特定的轉(zhuǎn)換表包含設(shè)備特定的I/O例程入例程入口地口地 址,不具備相應(yīng)功能的設(shè)備址,不具備相應(yīng)功能的設(shè)備在其在其 例程地址上可以填例程地址上可以填“-1”。一一. . 設(shè)備分配概述:設(shè)備分配概述:2. 2. 設(shè)備分配算法設(shè)備分配算法先來先服務(wù)。先來先服務(wù)。 (2) 優(yōu)先級高者優(yōu)先。優(yōu)先級高者優(yōu)先。 3. 3. 設(shè)備分配中的安全性設(shè)備分配中的安全性 (1)安全分配方式)安全分配方式 (2)不安全分配方式)不安全分配方式 5.5 5.5 設(shè)備分配設(shè)備分配 一一. . 設(shè)備分配概述:設(shè)備分配概述:4. 4. 設(shè)備分配方式:設(shè)備分配方式: 獨(dú)占分配:獨(dú)占分配:靜態(tài)分配,在
49、作業(yè)調(diào)度一級靜態(tài)分配,在作業(yè)調(diào)度一級 :獨(dú)占設(shè)備:獨(dú)占設(shè)備 (2) (2) 共享分配共享分配: : 動(dòng)態(tài)分配:高速、大容量的直接存取存儲設(shè)備動(dòng)態(tài)分配:高速、大容量的直接存取存儲設(shè)備 (3) (3) 虛擬分配:虛擬分配:利用共享設(shè)備實(shí)現(xiàn)獨(dú)占設(shè)備的功能:利用共享設(shè)備實(shí)現(xiàn)獨(dú)占設(shè)備的功能:SpoolingSpooling4. 4. 設(shè)備分配方式:設(shè)備分配方式:(3) (3) 虛擬分配:虛擬分配:利用共享設(shè)備實(shí)現(xiàn)獨(dú)占設(shè)備的功能利用共享設(shè)備實(shí)現(xiàn)獨(dú)占設(shè)備的功能虛寬行虛寬行1虛寬行虛寬行2進(jìn)程進(jìn)程A進(jìn)程進(jìn)程B進(jìn)程進(jìn)程C進(jìn)程進(jìn)程D輸入井輸入井輸出井輸出井輸入機(jī)輸入機(jī)打印機(jī)打印機(jī)虛輸入機(jī)虛輸入機(jī)1虛輸入機(jī)虛輸入機(jī)232 SPOOLing系統(tǒng)提供外圍設(shè)備同時(shí)聯(lián)機(jī)操作的功能。系統(tǒng)提供外圍設(shè)備同時(shí)聯(lián)機(jī)操作的功能。 預(yù)輸入預(yù)輸入 由由OS預(yù)先將程序所需數(shù)據(jù)輸入到輔存輸入井存放;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人教版(2024)七年級英語下冊Unit 8 學(xué)情調(diào)研測試卷(含答案)
- 第12課《四季循環(huán)》教學(xué)設(shè)計(jì)-2023-2024學(xué)年科學(xué)五年級下冊蘇教版
- 酒店電纜基礎(chǔ)施工方案
- 2025年新高考地理全真模擬試卷5(含答案解析)
- 2025年中考物理二輪復(fù)習(xí):選擇題 實(shí)驗(yàn)題 能力提升練習(xí)題(含答案解析)
- 廁所建造合同范本
- 公園管護(hù)合同范例
- 班級氛圍營造的實(shí)踐方法計(jì)劃
- 品牌在市場競爭中的演變與適應(yīng)計(jì)劃
- 企業(yè)借貸抵押合同范例
- 《中華人民共和國文物保護(hù)法》知識專題培訓(xùn)
- 2024年高考全國甲卷英語試卷(含答案)
- 四年級數(shù)學(xué)(四則混合運(yùn)算)計(jì)算題專項(xiàng)練習(xí)與答案匯編
- 8年級上冊(人教版)物理電子教材-初中8~9年級物理電子課本
- 人教版高中英語新教材必修2單詞默寫表
- 中金公司在線測評真題
- 項(xiàng)目資金管理統(tǒng)籌實(shí)施方案
- 2024年秋新滬科版物理八年級上冊 6.3來自地球的力 教學(xué)課件
- 定密培訓(xùn)課件教學(xué)課件
- 三、種植芽苗菜(教學(xué)設(shè)計(jì))魯科版二年級下冊綜合實(shí)踐活動(dòng)
- 2025屆東北師大附屬中學(xué)高考物理五模試卷含解析
評論
0/150
提交評論