版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
第五章設(shè)備管理目錄1.設(shè)備管理概述2.I/O控制方式3.緩沖管理4.I/O軟件5.設(shè)備分配I/O系統(tǒng)結(jié)構(gòu)
CPU存儲(chǔ)器控制器設(shè)備控制器設(shè)備總線(數(shù)據(jù)、地址、控制)5.1設(shè)備管理概述1.微機(jī)I/O系統(tǒng)結(jié)構(gòu):總線型I/O系統(tǒng)結(jié)構(gòu):總線:是一組線和一組嚴(yán)格定義的可以描述在線上傳輸信息的協(xié)議,這一組線用來連接多個(gè)設(shè)備,這種連接稱為總線。一個(gè)典型的PC總線結(jié)構(gòu):5.1設(shè)備管理概述I/O系統(tǒng)結(jié)構(gòu)
2、主機(jī)I/O系統(tǒng)結(jié)構(gòu):加入通道結(jié)構(gòu):CPU存儲(chǔ)器控制器設(shè)備控制器設(shè)備通道1通道2控制器設(shè)備設(shè)備I/O通道是一種特殊的處理機(jī),它控制設(shè)備與內(nèi)存直接進(jìn)行數(shù)據(jù)交換。
I/O通道與一般的處理機(jī)的區(qū)別:
通道的指令類型單一,主要局限于與I/O操作有關(guān)的指令;通道沒有自己的內(nèi)存,是與CPU共享內(nèi)存。二.I/O設(shè)備的類型
按信息交換的單位分類:5.1設(shè)備管理概述1、塊設(shè)備:以數(shù)據(jù)塊為單位來傳送數(shù)據(jù)的設(shè)備,如磁盤.特點(diǎn):1)信息交換的單位為等長數(shù)據(jù)塊;
2)可尋址;
3)I/O控制采用DMA方式。
4)信息存儲(chǔ)設(shè)備二.I/O設(shè)備的類型
5.1設(shè)備管理概述2、字符設(shè)備:以單個(gè)字符為單位來傳送信息的設(shè)備,如終端、打印機(jī)
特點(diǎn):1)信息交換的單位為字符或字節(jié);
2)不可尋址;
3)I/O控制采用中斷驅(qū)動(dòng)方式。
4)信息輸入輸出設(shè)備3、網(wǎng)絡(luò)設(shè)備:
負(fù)責(zé)計(jì)算機(jī)之間的信息傳輸,兼具字符設(shè)備和塊設(shè)備的特點(diǎn),如調(diào)制解調(diào)器、網(wǎng)卡等。三.設(shè)備管理功能:跟蹤設(shè)備狀態(tài):動(dòng)態(tài)地記錄各種設(shè)備的狀態(tài)設(shè)備分配:獨(dú)占設(shè)備;共享設(shè)備;虛擬設(shè)備①
靜態(tài)分配——應(yīng)用程序級(jí)或作業(yè)級(jí)程序進(jìn)入系統(tǒng)時(shí)進(jìn)行分配,退出系統(tǒng)時(shí)收回全部資源②動(dòng)態(tài)分配——進(jìn)程級(jí)進(jìn)程提出設(shè)備申請(qǐng)時(shí)進(jìn)行分配,使用完畢后立即收回3.緩沖管理:緩和CPU與設(shè)備間速度不匹配的矛盾4.設(shè)備控制:設(shè)備驅(qū)動(dòng)+中斷處理
5.1設(shè)備管理概述3四.設(shè)備管理的目標(biāo)
1、提高設(shè)備利用率①合理分配設(shè)備②
提高設(shè)備與CPU、各外部設(shè)備之間的并行性
2、方便用戶的使用提供使用方便且獨(dú)立于設(shè)備的界面①
統(tǒng)一:對(duì)各種不同的設(shè)備提供一致的界面②
獨(dú)立于設(shè)備:用戶使用的設(shè)備與物理設(shè)備無關(guān)5.1設(shè)備管理概述5.2I/O控制方式程序I/O方式
(或稱循環(huán)測試I/O方式)設(shè)備選中,CPU向設(shè)備控制器發(fā)I/O指令,啟動(dòng)設(shè)備將控制器中的狀態(tài)寄存器的值busy置為1CPU循環(huán)測試busy的值,直到busy=0;設(shè)備控制器控制設(shè)備執(zhí)行I/O操作設(shè)備控制器置busy=0同時(shí)進(jìn)行CPU傳送到內(nèi)存I/O完成5.2I/O控制方式二、中斷驅(qū)動(dòng)I/O控制方式:設(shè)備選中,CPU向設(shè)備控制器發(fā)I/O指令,啟動(dòng)設(shè)備,并置狀態(tài)寄存器的允許中斷位=1將控制器中的狀態(tài)寄存器的busy置為1當(dāng)前進(jìn)程阻塞,CPU調(diào)度其他進(jìn)程執(zhí)行設(shè)備控制器控制設(shè)備執(zhí)行I/O操作設(shè)備控制器向CPU發(fā)中斷同時(shí)進(jìn)行CPU響應(yīng)中斷,傳送數(shù)據(jù)到內(nèi)存I/O完成常用于字符設(shè)備的I/O控制三.直接存儲(chǔ)器訪問(DMA)I/O控制方式
1.DMA控制方式的特征:
①數(shù)據(jù)傳輸?shù)幕締挝皇菙?shù)據(jù)塊;②數(shù)據(jù)傳送是在設(shè)備與內(nèi)存之間直接進(jìn)行的;③整塊數(shù)據(jù)的傳送是在DMA控制器的控制下完成的,僅在傳送一個(gè)或多個(gè)數(shù)據(jù)塊的開始和結(jié)束時(shí),才需CPU干預(yù)。5.2I/O控制方式常用于塊設(shè)備的I/O控制三.直接存儲(chǔ)器訪問(DMA)I/O控制方式
2、DMA控制器的組成及作用:
3、DMA傳送過程:(1)DMA傳送前預(yù)處理:(CPU完成)測試設(shè)備狀態(tài)CPU初始化DMA控制器:主存緩沖區(qū)首址→MAR;傳送數(shù)據(jù)字節(jié)數(shù)→DC;設(shè)置傳輸方式啟動(dòng)設(shè)備。三.直接存儲(chǔ)器訪問(DMA)I/O控制方式2.DMA傳送過程:
DR1B或一個(gè)字?jǐn)?shù)據(jù)總線MAR所指主存單元(2)DMA控制器控制完成設(shè)備與主存間的數(shù)據(jù)傳送①磁盤控制器將整塊數(shù)據(jù)從磁盤讀入磁盤控制器的DR中;②磁盤控制器校驗(yàn)讀入的數(shù)據(jù);③磁盤控制器向DMA控制器發(fā)DMA請(qǐng)求④DMA控制器向CPU請(qǐng)求總線周期,獲得總線控制器權(quán)后:⑤
DC--;DC==0?是向CPU發(fā)中斷否
轉(zhuǎn)④MAR++;(3)CPU響應(yīng)中斷進(jìn)行后處理:(CPU完成)思考:
DMA控制方式與中斷驅(qū)動(dòng)控制方式的區(qū)別:(1)對(duì)CPU的中斷頻率不同;(2)數(shù)據(jù)傳輸控制不同。
四.I/O通道控制方式1.通道的運(yùn)算控制部件:
①通道地址字(CAW):記錄下一條通道指令的地址,其功能類似于中央處理機(jī)的指令計(jì)數(shù)器。
②通道命令字(CCW):記錄正在執(zhí)行的通道指令,其作用相當(dāng)于中央處理機(jī)的指令寄存器。
③通道狀態(tài)字(CSW):記錄通道、控制器、設(shè)備的狀態(tài),包括I/O傳輸完成信息、出錯(cuò)信息、重復(fù)執(zhí)行次數(shù)等。
通道控制方式是一種以內(nèi)存為中心,實(shí)現(xiàn)設(shè)備和內(nèi)存間直接交換數(shù)據(jù)的控制方式。四.I/O通道控制方式2.通道程序:保存在主存中
①操作碼:規(guī)定指令所執(zhí)行的操作。
②內(nèi)存地址:內(nèi)存緩沖區(qū)首址。
③計(jì)數(shù):本條指令要讀寫的字節(jié)數(shù)。
④通道程序結(jié)束位P:P=1表示本條指令是通道程序最后一條指令。
⑤記錄結(jié)束標(biāo)志R:R=0表示本條指令與下一條指令所處理的數(shù)據(jù)屬同一條記錄。
由一系列通道指令構(gòu)成。
通道指令內(nèi)容如下:四.I/O通道控制方式2.通道程序:CPU根據(jù)用戶的I/O請(qǐng)求生成通道程序;將其放到內(nèi)存中,并將其首地址放入CAW中CPU執(zhí)行“啟動(dòng)I/O”指令,啟動(dòng)通道工作
通道向CPU發(fā)應(yīng)答信號(hào),通知“啟動(dòng)I/O”指令完成,CPU可繼續(xù)執(zhí)行其他進(jìn)程通道取出通道程序的下一條指令,放入CCW中,并執(zhí)行之通道向CPU發(fā)中斷CPU響應(yīng)中斷否四.I/O通道控制方式3.I/O控制過程:
是最后一條指令嗎?是5.3緩沖管理
二.緩沖的引入(1)緩和CPU與I/O設(shè)備間速度不匹配的矛盾。(2)提高CPU和I/O設(shè)備之間的并行性。(3)解決數(shù)據(jù)處理單位與傳輸單位不匹配的問題。(4)減少對(duì)CPU的中斷頻率,放寬對(duì)CPU中斷響應(yīng)時(shí)間的限制。什么是緩沖緩沖是兩種不同速度的設(shè)備之間傳輸信息時(shí)平滑傳輸過程的常用手段1位緩沖9.6Kb/s8位緩沖寄存器送內(nèi)存9.6Kb/s(b)(a)例:在一個(gè)遠(yuǎn)程通信系統(tǒng)中,在本地接收從遠(yuǎn)程終端發(fā)來的數(shù)據(jù),速率為9.6kb/s。送內(nèi)存CPU中斷頻率:9.6K;CPU響應(yīng)時(shí)間:0.1ms;CPU中斷頻率:1.2K;CPU響應(yīng)時(shí)間:0.1ms;兩個(gè)8位緩沖寄存器9.6Kb/s送內(nèi)存(c)CPU中斷頻率:1.2K;CPU響應(yīng)時(shí)間:0.8ms;送內(nèi)存12三.利用緩沖技術(shù)如何進(jìn)行I/O操作
(1)進(jìn)程活動(dòng)期間,請(qǐng)求從某設(shè)備讀入數(shù)據(jù)
①
進(jìn)程請(qǐng)求從輸入設(shè)備進(jìn)行讀操作的圖示輸入設(shè)備BUF進(jìn)程①②③
圖中的操作②與操作③需要同步
5.3緩沖管理
13三.利用緩沖技術(shù)如何進(jìn)行I/O操作(1)進(jìn)程活動(dòng)期間,請(qǐng)求從某設(shè)備讀入數(shù)據(jù)②
進(jìn)程請(qǐng)求從輸入設(shè)備進(jìn)行讀操作的步驟ⅰ當(dāng)用戶要求在某個(gè)設(shè)備上進(jìn)行讀操作時(shí),首先從系統(tǒng)中獲得一個(gè)空的緩沖區(qū)(圖中標(biāo)注的操作①);ⅱ將一個(gè)物理記錄送到緩沖區(qū)中(圖中標(biāo)注的存在②)
;ⅲ當(dāng)用戶請(qǐng)求這些數(shù)據(jù)時(shí),系統(tǒng)將依據(jù)邏輯記錄特性從緩沖區(qū)中提取并發(fā)送到用戶進(jìn)程存儲(chǔ)區(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)期間,請(qǐng)求從輸出設(shè)備輸出數(shù)據(jù)①
進(jìn)程請(qǐng)求從輸出設(shè)備進(jìn)行寫操作的圖示
圖中的操作②與操作③需要同步
①②③輸出設(shè)備BUF進(jìn)程5.3緩沖管理
三.利用緩沖技術(shù)如何進(jìn)行I/O操作15②進(jìn)程請(qǐng)求從輸出設(shè)備進(jìn)行寫操作的步驟
ⅰ當(dāng)用戶要求進(jìn)行寫操作時(shí),首先從系統(tǒng)中獲得一個(gè)空的緩沖區(qū)(圖中標(biāo)注的操作①)
;ⅱ將一個(gè)邏輯記錄從進(jìn)程存儲(chǔ)區(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)行I/O操作(2)進(jìn)程活動(dòng)期間,請(qǐng)求從輸出設(shè)備輸出數(shù)據(jù)四.單緩沖和雙緩沖1.單緩沖(SingleBuffer)系統(tǒng)對(duì)一塊數(shù)據(jù)的處理時(shí)間:Max(C,T)+M
5.3緩沖管理
2.雙緩沖(DoubleBuffer)
系統(tǒng)對(duì)一塊數(shù)據(jù)的處理時(shí)間:Max(C+M,T)
T
M
C四.單緩沖和雙緩沖5.3緩沖管理
五.緩沖池(BufferPool)1、緩沖隊(duì)列管理
由內(nèi)存中一組緩沖區(qū)組成,由系統(tǒng)統(tǒng)一管理。
輸入隊(duì)列inq;輸出隊(duì)列outq。
①空緩沖區(qū):空緩沖隊(duì)列emq;②裝滿輸入數(shù)據(jù)的緩沖區(qū):③裝滿輸出數(shù)據(jù)的緩沖區(qū):5.3緩沖管理
五.緩沖池(BufferPool)2、緩沖池的使用:
①Getbuf(type):
申請(qǐng)一個(gè)緩沖區(qū);
②
Putbuf(type,number):
釋放一個(gè)緩沖區(qū);信號(hào)量設(shè)置:資源信號(hào)量:表示某類緩沖隊(duì)列中緩沖區(qū)的數(shù)量:
RS(emq)=n;RS(inq)=0;RS(outq)=0;互斥信號(hào)量:實(shí)現(xiàn)相應(yīng)緩沖隊(duì)列的互斥使用:
MS(emq)=MS(inq)=MS(outq)=1;(2)Getbuf過程
ProcedureGetbuf(type)beginWait(RS(type));Wait(MS(type));B(number)=Takebuf(type);Signal(MS(type));end
五.緩沖池(BufferPool)2.緩沖池的使用:
ProcedurePutbuf(type,number)beginWait(MS(type));Addbuf(type,number);Signal(MS(type));Signal(RS(type));end(3)Putbuf過程五.緩沖池(BufferPool)2.緩沖池的使用:
3、
緩沖池的工作方式
輸入隊(duì)列
空緩沖隊(duì)列
輸出隊(duì)列Getbuf(emq)收容輸入Putbuf(inq)Putbuf(outq)Getbuf(emq)Getbuf(inq)Putbuf(emq)Getbuf(outq)Putbuf(emq)提取輸入收容輸出提取輸出五.緩沖池(BufferPool)5.3緩沖管理
20UNIX系統(tǒng)的緩沖區(qū)管理1.概述
(1)UNIX系統(tǒng)緩沖管理的目的加快系統(tǒng)響應(yīng)、增加系統(tǒng)吞吐量減少對(duì)磁盤的I/O操作次數(shù)5.3緩沖管理
20UNIX系統(tǒng)的緩沖區(qū)管理
1、概述
(2)UNIX系統(tǒng)緩沖管理的思路預(yù)先緩存:當(dāng)進(jìn)程要從磁盤讀數(shù)據(jù)時(shí),首先考慮從高速緩沖中讀延遲發(fā)送當(dāng)進(jìn)程要寫數(shù)據(jù)到磁盤時(shí),先寫入高速緩沖中
緩沖讀高速緩沖
用戶數(shù)據(jù)區(qū)用戶進(jìn)程磁盤緩沖寫高速緩沖
用戶數(shù)據(jù)區(qū)用戶進(jìn)程磁盤212、
緩沖管理數(shù)據(jù)結(jié)構(gòu)①
緩沖區(qū)的組成
ⅰ緩存數(shù)組
——含有磁盤上的數(shù)據(jù)的存儲(chǔ)器數(shù)組
ⅱ緩存首部
——描述緩沖區(qū)特性的數(shù)據(jù)結(jié)構(gòu)5.3緩沖管理
UNIX系統(tǒng)的緩沖區(qū)管理22
②緩存首部結(jié)構(gòu)設(shè)備號(hào)dev塊號(hào)blkno狀態(tài)flag指向數(shù)據(jù)區(qū)域的指針傳送字節(jié)數(shù)返回的I/O出錯(cuò)信息b_forw
設(shè)備緩沖區(qū)隊(duì)列前向指針b_back
設(shè)備緩沖區(qū)隊(duì)列后向指針av_forw
空閑緩沖區(qū)隊(duì)列前向指針av_back
空閑緩沖區(qū)隊(duì)列后向指針
ⅰ設(shè)備號(hào)dev緩沖區(qū)所包含的信息所屬設(shè)備的設(shè)備號(hào)
ⅱ塊號(hào)blkno由設(shè)備號(hào)指出的設(shè)備上相對(duì)于第0塊的塊號(hào)
ⅲ狀態(tài)flag——描述了緩沖區(qū)當(dāng)前的狀態(tài)忙標(biāo)志BUSY:緩沖區(qū)當(dāng)前正“忙”有效位AVE:緩沖包含的數(shù)據(jù)有效延遲寫DELWR:核心在某緩沖區(qū)重新分配出去之前必須把緩沖區(qū)內(nèi)容寫到磁盤上寫標(biāo)志W(wǎng)RITE:核心當(dāng)前正把緩沖區(qū)的內(nèi)容寫到磁盤讀標(biāo)志READ:核心當(dāng)前正從磁盤往緩沖區(qū)寫信息等待位
WAIT:一個(gè)進(jìn)程當(dāng)前正在等候緩沖區(qū)變?yōu)榭臻e2、
緩沖管理數(shù)據(jù)結(jié)構(gòu)23③緩沖區(qū)隊(duì)列結(jié)構(gòu)
ⅰ設(shè)備緩沖區(qū)隊(duì)列與某類設(shè)備有關(guān)的所有緩沖區(qū)組成的隊(duì)列稱為設(shè)備緩沖區(qū)隊(duì)列,簡稱b鏈。UNIX系統(tǒng)的緩沖區(qū)管理2.緩沖管理數(shù)據(jù)結(jié)構(gòu)b_forwb_backb_forwb_backb_forwb_backb_forwb_back設(shè)備緩沖區(qū)隊(duì)列24UNIX系統(tǒng)的緩沖區(qū)管理③緩沖區(qū)隊(duì)列結(jié)構(gòu)
ⅱ空閑緩沖區(qū)隊(duì)列可供重新分配使用的緩沖區(qū)組成的隊(duì)列稱為空閑緩沖區(qū)隊(duì)列,簡稱av鏈。
2.緩沖管理數(shù)據(jù)結(jié)構(gòu)av_forwav_backav_forwav_backav_forwav_backav_forwav_back空閑緩沖區(qū)隊(duì)列26(1)分配一個(gè)buf讀/寫某設(shè)備上的塊:①首先尋找該設(shè)備的b鏈,若找到:1)B_BUSY=0:移出av鏈,B_BUSY=1;使用完后,B_BUSY=0,鏈入av鏈隊(duì)尾。2)B_BUSY=1:緩沖區(qū)不在av鏈上,該進(jìn)程睡眠②若b鏈中找不到:取av鏈(空閑buf隊(duì)列)的首元素:1)若無延遲寫標(biāo)記,直接分配,插入b鏈,B_BUSY=1;用完后,鏈入av鏈隊(duì)尾,B_BUSY=02)若有延遲寫標(biāo)記:分配下一個(gè)空閑緩沖區(qū),然后同1)UNIX系統(tǒng)的緩沖區(qū)管理UNIX緩沖管理算法:LRU算法27(2)
對(duì)延遲寫的處理當(dāng)一個(gè)具有延遲寫標(biāo)記的buf移到av鏈頭,要用于分配時(shí),立即進(jìn)行寫操作:從av鏈上摘除,使用完后又送入av頭部,同時(shí)仍保留在原b鏈中。(3)釋放一個(gè)緩沖區(qū):
緩沖區(qū)讀寫操作結(jié)束后,保留在b鏈,并插入av鏈尾UNIX系統(tǒng)的緩沖區(qū)管理UNIX緩沖管理算法27UNIX系統(tǒng)的緩沖區(qū)管理緩沖區(qū)的檢索算法(1)分配一個(gè)緩沖區(qū):27UNIX系統(tǒng)的緩沖區(qū)管理緩沖區(qū)的檢索算法(2)釋放一個(gè)緩沖區(qū):27UNIX系統(tǒng)的緩沖區(qū)管理5.讀磁盤塊與寫次盤塊(1)讀磁盤塊:27UNIX系統(tǒng)的緩沖區(qū)管理5.讀磁盤塊與寫次盤塊(2)寫磁盤塊:I/O應(yīng)答進(jìn)行I/O調(diào)用;格式化I/O命名、保護(hù)、緩沖、分配設(shè)備驅(qū)動(dòng)+中斷處理當(dāng)I/O結(jié)束時(shí),進(jìn)行中斷處理執(zhí)行I/O操作I/O請(qǐng)求用戶層軟件設(shè)備獨(dú)立性軟件設(shè)備驅(qū)動(dòng)程序中斷處理程序硬件5.4I/O軟件I/O軟件的組成:I/O控制模塊邏輯I/O層設(shè)備I/O層內(nèi)核空間40二.I/O控制模塊的實(shí)現(xiàn)方式:即驅(qū)動(dòng)程序的調(diào)用方式
1、以設(shè)備處理進(jìn)程的方式:2、
將設(shè)備與文件一樣對(duì)待:UNIX、linux將設(shè)備與文件一樣對(duì)待,使用文件系統(tǒng)的系統(tǒng)調(diào)用命令進(jìn)行設(shè)備的讀、寫,由文件系統(tǒng)統(tǒng)一管理。
5.4I/O軟件I/O控制模塊I/O進(jìn)程:接口程序,面向用戶
設(shè)備處理進(jìn)程:設(shè)備驅(qū)動(dòng)程序,面向設(shè)備
設(shè)備文件名
目錄檢索i節(jié)點(diǎn)
設(shè)備驅(qū)動(dòng)程序Linux塊設(shè)備處理:用戶層軟件:read()虛擬文件系統(tǒng)VFS:通過塊設(shè)備文件操作表調(diào)用相關(guān)VFS的sys_read()磁盤高速緩存文件系統(tǒng)映射層:字節(jié)偏移量→邏輯塊號(hào)→物理塊號(hào),對(duì)塊設(shè)備發(fā)讀請(qǐng)求通用塊層:以物理塊號(hào)、操作類型為參數(shù),向I/O調(diào)度程序發(fā)啟動(dòng)磁盤讀操作命令塊設(shè)備驅(qū)動(dòng)程序塊設(shè)備驅(qū)動(dòng)程序磁盤磁盤413.設(shè)備處理進(jìn)程方式的I/O控制過程:
(1)用戶進(jìn)程請(qǐng)求I/O的系統(tǒng)功能調(diào)用
系統(tǒng)功能調(diào)用的形式:doio(ldev,mode,amount,addr); ldev:邏輯設(shè)備名
mode:操作模式
amount:傳輸數(shù)據(jù)的數(shù)目
addr:傳送地址
例如:fd1=open(“/dev/lp”,O_WRONLY);n=write(fd1,buf1,count1);
5.4I/O軟件二.I/O控制模塊的實(shí)現(xiàn)方式423.設(shè)備處理進(jìn)程方式的I/O控制過程:(2)I/O進(jìn)程處理過程:I/O接口程序①
將邏輯設(shè)備轉(zhuǎn)換為物理設(shè)備
ⅰ獲得I/O系統(tǒng)調(diào)用中給出的邏輯設(shè)備名(ldev);
ⅱ根據(jù)邏輯設(shè)備描述器,將邏輯設(shè)備名轉(zhuǎn)換為物理設(shè)備名。②
合法性檢查
ⅰ獲得I/O系統(tǒng)調(diào)用中給出的操作模式mode;
ⅱ根據(jù)DCB中命令轉(zhuǎn)換表中允許的操作,檢查操作的合法性。③
形成I/O請(qǐng)求塊,發(fā)消息給對(duì)應(yīng)的設(shè)備處理進(jìn)程
ⅰ根據(jù)請(qǐng)求的參數(shù)形成I/O請(qǐng)求塊(IORB);
ⅱ將I/O請(qǐng)求塊(IORB)掛到對(duì)應(yīng)的設(shè)備請(qǐng)求隊(duì)列。二.I/O控制模塊的實(shí)現(xiàn)方式44{while(該進(jìn)程的邏輯設(shè)備描述器隊(duì)列不空){if(與ldev相聯(lián)結(jié)的物理設(shè)備找到)break;/*找到*/}if(該進(jìn)程的邏輯設(shè)備描述器隊(duì)列為空)return(錯(cuò)誤碼);/*設(shè)備邏輯名錯(cuò)*/
檢查參數(shù)與該設(shè)備特性是否一致;if(不一致)return(錯(cuò)誤碼);/*傳送參數(shù)錯(cuò)*/
構(gòu)造iorb;把iorb插入到該設(shè)備的請(qǐng)求隊(duì)列中;喚醒因等待I/O請(qǐng)求塊而睡眠的設(shè)備處理進(jìn)程;
}④I/O進(jìn)程的處理算法描述:45(3)設(shè)備處理進(jìn)程:
processio{l:while(設(shè)備請(qǐng)求隊(duì)列不空){取一個(gè)iorb;提取請(qǐng)求的詳細(xì)信息;啟動(dòng)I/O操作;
sleep(事件:I/O完成)/*I/O操作*//*等I/O完成后,進(jìn)入中斷處理程序,并在那里喚醒設(shè)備處理進(jìn)程*/if(出錯(cuò))將錯(cuò)誤信息寫在該設(shè)備的dcb中;傳送數(shù)據(jù)到目的地;喚醒請(qǐng)求此I/O操作的進(jìn)程;刪除iorb;
}sleep(事件:因無I/O請(qǐng)求);
gotol;
}3.設(shè)備處理進(jìn)程方式的I/O控制過程:46中斷處理程序
doio(ldev,mode,amount,addr);/*等I/O完成*/
標(biāo)識(shí)設(shè)備;執(zhí)行出錯(cuò)檢查;構(gòu)成iocb;將iocb送入設(shè)備請(qǐng)求隊(duì)列;喚醒因等待I/O請(qǐng)求塊而睡眠的I/O處理進(jìn)程;取iocb;如無iocb則等待;啟動(dòng)I/O操作;/*等I/O完成*/執(zhí)行出錯(cuò)檢查;
喚醒等待I/O完成的進(jìn)程;I/O設(shè)備
中斷服務(wù);喚醒I/O處理進(jìn)程;
用戶進(jìn)程I/O進(jìn)程I/O處理進(jìn)程啟動(dòng)設(shè)備中斷信號(hào)控制關(guān)系同步關(guān)系用戶進(jìn)程調(diào)用外部設(shè)備的過程3.設(shè)備處理進(jìn)程方式的I/O控制過程:(4)請(qǐng)求I/O的進(jìn)程、I/O進(jìn)程、設(shè)備處理進(jìn)程、中斷處理程序之間的同步關(guān)系
5.4I/O軟件三.中斷處理程序:喚醒被阻塞的驅(qū)動(dòng)程序進(jìn)程對(duì)被中斷進(jìn)程的CPU環(huán)境進(jìn)行保護(hù)中斷請(qǐng)求信號(hào)PSW程序狀態(tài)字PC程序計(jì)數(shù)器R0Rn…寄存器中斷棧PSWPCR0……Rn硬件完成軟件完成分析中斷原因,轉(zhuǎn)入相應(yīng)的中斷處理程序終端中斷處理程序打印機(jī)中斷處理程序磁盤中斷處理程序…恢復(fù)被中斷進(jìn)程的CPU現(xiàn)場…5.4I/O軟件四.設(shè)備驅(qū)動(dòng)程序:1.設(shè)備驅(qū)動(dòng)程序的功能:(1)接收由上層軟件發(fā)來的抽象命令,將其轉(zhuǎn)換為具體要求,并插入請(qǐng)求隊(duì)列。
(2)完成I/O操作的初始化工作:檢查用戶I/O請(qǐng)求的合法性,了解I/O設(shè)備的狀態(tài),傳遞有關(guān)參數(shù),設(shè)置設(shè)備的工作方式。
(3)發(fā)出I/O命令,啟動(dòng)I/O設(shè)備。
(4)及時(shí)響應(yīng)由控制器或通道發(fā)來的中斷請(qǐng)求。
(5)根據(jù)用戶的I/O請(qǐng)求,自動(dòng)地構(gòu)成通道程序。
(1)驅(qū)動(dòng)程序是請(qǐng)求I/O的進(jìn)程與設(shè)備控制器之間的一個(gè)通信和轉(zhuǎn)換程序。
(2)驅(qū)動(dòng)程序與設(shè)備控制器和I/O設(shè)備的硬件特性緊密相關(guān),因而對(duì)不同類型的設(shè)備應(yīng)配置不同的驅(qū)動(dòng)程序。
(3)驅(qū)動(dòng)程序與I/O設(shè)備所采用的I/O控制方式緊密相關(guān)。
(4)由于驅(qū)動(dòng)程序與硬件緊密相關(guān),因而其中的一部分代碼必須用匯編語言書寫。
(5)驅(qū)動(dòng)程序不允許系統(tǒng)調(diào)用2.設(shè)備驅(qū)動(dòng)程序的特點(diǎn)
五.設(shè)備獨(dú)立性軟件
設(shè)備獨(dú)立性的概念(1)什么是設(shè)備獨(dú)立性是指用戶在程序中使用的設(shè)備與實(shí)際使用的設(shè)備無關(guān),即在用戶程序中僅使用邏輯設(shè)備名。也稱為設(shè)備無關(guān)性。物理設(shè)備名物理設(shè)備名用戶給出的可變的不變的系統(tǒng)給出的——設(shè)備地址物理設(shè)備名邏輯設(shè)備名邏輯名與物理設(shè)備名分開5.4I/O軟件五.設(shè)備獨(dú)立性軟件
設(shè)備獨(dú)立性的概念(2)物理設(shè)備名是系統(tǒng)提供的設(shè)備的標(biāo)準(zhǔn)名稱,它是永久的、不可更改的。(3)邏輯設(shè)備名是用戶自己指定的設(shè)備名(或設(shè)備號(hào)),它是暫時(shí)的、可更改的。fd=open(“/dev/lp”,mode);fd=open(“./file1.txt”,mode);5.4I/O軟件五.設(shè)備獨(dú)立性軟件
2.兩種類型的設(shè)備獨(dú)立性(1)一個(gè)程序獨(dú)立于分配給它的某種類型的具體設(shè)備
系統(tǒng)可以根據(jù)設(shè)備的使用情況,動(dòng)態(tài)地分配給程序某類設(shè)備中的任一臺(tái)物理設(shè)備,程序都能正確地執(zhí)行。(2)程序應(yīng)盡可能與它所使用的I/O設(shè)備類型無關(guān)
在輸入(或輸出)信息時(shí),信息可以從不同類型的輸入(或輸出)設(shè)備上輸入(或輸出),若要改變輸入(或輸出)設(shè)備的類型,程序只需進(jìn)行最少的修改。5.4I/O軟件73、設(shè)備獨(dú)立性的實(shí)現(xiàn)(1)在高級(jí)語言中用軟通道實(shí)現(xiàn)使用高級(jí)語言提供的指派語句,通過指派一個(gè)邏輯設(shè)備名
(通道號(hào))來定義一個(gè)設(shè)備或文件。如:fd=open(“/dev/lp”,mode);n=write(fd,buf1,count);(2)在交互系統(tǒng)中,用指派命令來定義
如:PDP系列機(jī)上的RT11系統(tǒng)
ASSIGN設(shè)備物理名設(shè)備邏輯名
如:assignlp:7
則程序中所有對(duì)邏輯設(shè)備號(hào)7的引用都在行式打印機(jī)上輸出。五.設(shè)備獨(dú)立性軟件
5.4I/O軟件73、設(shè)備獨(dú)立性的實(shí)現(xiàn)(3)邏輯設(shè)備描述器ldd(又稱邏輯設(shè)備表ldt)描述了進(jìn)程中邏輯設(shè)備名與物理設(shè)備名的對(duì)應(yīng)關(guān)系。
每個(gè)進(jìn)程建立一個(gè)ldd鏈表。五.設(shè)備獨(dú)立性軟件
5.4I/O軟件73、引入設(shè)備獨(dú)立性的優(yōu)點(diǎn)方便用戶改善設(shè)備利用率提高系統(tǒng)的可擴(kuò)展性和可適應(yīng)性五.設(shè)備獨(dú)立性軟件
5.4I/O軟件判斷題1.設(shè)備獨(dú)立性是指設(shè)備由用戶獨(dú)占使用答案:錯(cuò)5.5設(shè)備分配
1.設(shè)備控制塊系統(tǒng)為每一臺(tái)設(shè)備都配置了一個(gè)用來記錄設(shè)備的硬件特性、連接和使用情況的一組數(shù)據(jù),稱為設(shè)備控制塊。設(shè)備名設(shè)備屬性指向設(shè)備開關(guān)表的指針在I/O總線上的設(shè)備地址設(shè)備狀態(tài)當(dāng)前用戶進(jìn)程指針I(yè)/O請(qǐng)求隊(duì)列指針①
設(shè)備名
設(shè)備的系統(tǒng)名,即設(shè)備的物理名。②設(shè)備屬性描述設(shè)備現(xiàn)行狀態(tài)的一組屬性。③設(shè)備開關(guān)表轉(zhuǎn)換表包含設(shè)備特定的I/O例程入口地址,不具備相應(yīng)功能的設(shè)備在其例程地址上可以填“-1”。一.設(shè)備分配概述:2.設(shè)備分配算法先來先服務(wù)。(2)優(yōu)先級(jí)高者優(yōu)先。
3.設(shè)備分配中的安全性
(1)安全分配方式(2)不安全分配方式
5.5設(shè)備分配
一.設(shè)備分配概述:4.設(shè)備分配方式:
獨(dú)占分配:靜態(tài)分配,在作業(yè)調(diào)度一級(jí):獨(dú)占設(shè)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年建筑電氣工程招標(biāo)合同
- 北師大版一年級(jí)下冊(cè)數(shù)學(xué)第四單元 有趣的圖形 測試卷含完整答案(必刷)
- 安徽省亳州市利辛縣縣直初中2024-2025學(xué)年八年級(jí)上學(xué)期11月期中物理試題
- 滬教版三年級(jí)下冊(cè)數(shù)學(xué)第二單元 用兩位數(shù)乘除 測試卷及完整答案(全優(yōu))
- 2024年度光伏電池銷售合同
- 2024年度物聯(lián)網(wǎng)智能安防產(chǎn)品采購與安裝合同
- 2024年度教育培訓(xùn)合同標(biāo)的及培訓(xùn)服務(wù)具體規(guī)定
- 健康險(xiǎn)營銷策略
- 基于云計(jì)算的固網(wǎng)服務(wù)技術(shù)創(chuàng)新
- 2024年度林地油茶栽培承包合同
- 新課標(biāo)下小學(xué)生運(yùn)算能力的培養(yǎng)研究的開題報(bào)告
- 餐飲行業(yè)初期投資預(yù)算分析
- 遼寧省重點(diǎn)高中沈陽市郊聯(lián)體2023-2024學(xué)年高三上學(xué)期期中生物試題(解析版)
- 剪映:手機(jī)短視頻制作-配套課件
- 西氣東輸二線25標(biāo)段山嶺隧道內(nèi)管道安裝技術(shù)
- 防校園欺凌-課件(共28張PPT)
- 第6章 智能網(wǎng)聯(lián)汽車測評(píng)技術(shù)
- 單向板結(jié)構(gòu)設(shè)計(jì)
- 普通高等學(xué)校學(xué)生轉(zhuǎn)學(xué)申請(qǐng)表
- 房租、水、電費(fèi)(專用)收據(jù)Excel模板
評(píng)論
0/150
提交評(píng)論