操作系統(tǒng)輸入輸出系統(tǒng)os5-2._第1頁
操作系統(tǒng)輸入輸出系統(tǒng)os5-2._第2頁
操作系統(tǒng)輸入輸出系統(tǒng)os5-2._第3頁
操作系統(tǒng)輸入輸出系統(tǒng)os5-2._第4頁
操作系統(tǒng)輸入輸出系統(tǒng)os5-2._第5頁
已閱讀5頁,還剩36頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息 學(xué)學(xué) 院院 三、輸入/輸出軟件中斷處理程序中斷處理程序設(shè)備驅(qū)動程序設(shè)備驅(qū)動程序與設(shè)備無關(guān)的與設(shè)備無關(guān)的I/OI/O軟件軟件用戶層的輸入用戶層的輸入/ /輸出軟件輸出軟件1. 1. 層次結(jié)構(gòu):層次結(jié)構(gòu): 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息 學(xué)學(xué) 院院 進(jìn)行進(jìn)行I/OI/O調(diào)用:格式化調(diào)用:格式化I/OI/O執(zhí)行執(zhí)行I/OI/O操作操作命名、保護(hù)、阻塞、緩沖、分命名、保護(hù)、阻塞、緩沖、分配配I/OI/O結(jié)束時,喚醒設(shè)備服務(wù)子程結(jié)束時,喚醒設(shè)備服務(wù)子程序序設(shè)置設(shè)備寄存器、檢測狀態(tài)設(shè)置設(shè)備寄存器、檢測狀態(tài)4-4-用戶進(jìn)程用戶進(jìn)程3-3-設(shè)備

2、無關(guān)軟件設(shè)備無關(guān)軟件2-2-設(shè)備設(shè)備驅(qū)動程驅(qū)動程序序硬硬 件件設(shè)備服務(wù)子程序設(shè)備服務(wù)子程序1-1-中斷處理程序中斷處理程序I/OI/O請求請求I/OI/O應(yīng)答應(yīng)答 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息 學(xué)學(xué) 院院 (1 1)用戶進(jìn)程層用戶進(jìn)程層執(zhí)行執(zhí)行輸入輸出系統(tǒng)調(diào)用輸入輸出系統(tǒng)調(diào)用,對,對I IO O數(shù)數(shù)據(jù)進(jìn)行格式化,為假脫機(jī)輸入輸出作準(zhǔn)備據(jù)進(jìn)行格式化,為假脫機(jī)輸入輸出作準(zhǔn)備(2 2)獨立于設(shè)備的軟件獨立于設(shè)備的軟件實現(xiàn)設(shè)備的命名、設(shè)備的保實現(xiàn)設(shè)備的命名、設(shè)備的保護(hù)、成塊處理、緩沖技術(shù)和設(shè)備分配護(hù)、成塊處理、緩沖技術(shù)和設(shè)備分配(3 3)設(shè)備驅(qū)動程序設(shè)備驅(qū)動程序設(shè)置設(shè)備寄存器、檢查設(shè)

3、備的執(zhí)設(shè)置設(shè)備寄存器、檢查設(shè)備的執(zhí)行狀態(tài)行狀態(tài)(4 4)中斷處理程序中斷處理程序負(fù)責(zé)負(fù)責(zé)I IO O完成時,喚醒設(shè)備驅(qū)動完成時,喚醒設(shè)備驅(qū)動程序進(jìn)程,進(jìn)行中斷處理程序進(jìn)程,進(jìn)行中斷處理(5 5)硬件層硬件層實現(xiàn)物理實現(xiàn)物理I IO O的操作的操作 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息 學(xué)學(xué) 院院 程序直接控制方式程序直接控制方式 中斷方式中斷方式 DMA DMA方式方式 通道控制方式通道控制方式2. 數(shù)據(jù)傳送控制方式: 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息 學(xué)學(xué) 院院 1)程序直接控制方式(循環(huán)I/O測試方式) 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息 學(xué)學(xué) 院院 否

4、否外圍設(shè)備外圍設(shè)備做接收或發(fā)送數(shù)據(jù)準(zhǔn)備做接收或發(fā)送數(shù)據(jù)準(zhǔn)備接收到接收到startstart命令命令標(biāo)志觸發(fā)器置標(biāo)志觸發(fā)器置“done”done”等待等待CPUCPU來的下條指令來的下條指令準(zhǔn)備完畢?準(zhǔn)備完畢?是是否否CPUCPU發(fā)發(fā)startstart命令命令等等 待待執(zhí)行下條指令執(zhí)行下條指令開始數(shù)據(jù)傳送開始數(shù)據(jù)傳送設(shè)備標(biāo)志觸發(fā)設(shè)備標(biāo)志觸發(fā)器為器為done”done”?是是( (a)a)( (b)b) 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息 學(xué)學(xué) 院院 2)2)中斷方式中斷方式 為了解決為了解決程序控制程序控制I/OI/O方法方法的主要問題的主要問題 應(yīng)該讓應(yīng)該讓處理器從輪詢?nèi)蝿?wù)處理器

5、從輪詢?nèi)蝿?wù)中解放出來中解放出來 使使I/OI/O操作和指令執(zhí)行操作和指令執(zhí)行并行并行起來起來 具體作法:具體作法: 當(dāng)當(dāng)I/OI/O處理單元準(zhǔn)備好與設(shè)備交互的時候處理單元準(zhǔn)備好與設(shè)備交互的時候 通過物理信號通知處理器,即通過物理信號通知處理器,即中斷處理器中斷處理器 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息 學(xué)學(xué) 院院 I/OI/O控制器控制器1 1I/OI/O控制器控制器n nI/OI/O設(shè)備設(shè)備1 1I/OI/O設(shè)備設(shè)備n n地址線地址線數(shù)據(jù)線數(shù)據(jù)線控制線控制線intintCPUCPU內(nèi)存內(nèi)存startstart啟動位啟動位中斷位中斷位信號線信號線控制狀態(tài)寄存器控制狀態(tài)寄存器數(shù)據(jù)緩沖

6、寄存器數(shù)據(jù)緩沖寄存器 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息 學(xué)學(xué) 院院 中斷控制方式的處理過程中斷控制方式的處理過程接收到接收到CPUCPU發(fā)來的發(fā)來的startstart指令指令準(zhǔn)備數(shù)據(jù)并將其準(zhǔn)備數(shù)據(jù)并將其置入緩沖寄存器置入緩沖寄存器緩沖寄存器滿嗎?緩沖寄存器滿嗎?控制器發(fā)中斷信號控制器發(fā)中斷信號向設(shè)備發(fā)向設(shè)備發(fā)startstart指令指令將中斷允許位置將中斷允許位置1 1調(diào)度程序調(diào)度其調(diào)度程序調(diào)度其他進(jìn)程他進(jìn)程其他進(jìn)程執(zhí)行其他進(jìn)程執(zhí)行收到中斷信號了嗎?收到中斷信號了嗎?中斷處理中斷處理被中斷進(jìn)程執(zhí)行被中斷進(jìn)程執(zhí)行否否否否是是設(shè)備設(shè)備CPUCPU 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué)

7、 信信 息息 學(xué)學(xué) 院院 3)DMA方式DMADMA方式下的數(shù)據(jù)傳輸方式下的數(shù)據(jù)傳輸 CPU內(nèi)存內(nèi)存計數(shù)計數(shù)系統(tǒng)總線系統(tǒng)總線內(nèi)存地址內(nèi)存地址計數(shù)計數(shù)磁盤磁盤控制器控制器驅(qū)動器驅(qū)動器緩沖器緩沖器DMA寄存器寄存器 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息 學(xué)學(xué) 院院 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息 學(xué)學(xué) 院院 DMADMA方式方式否否CPUCPU發(fā)發(fā)startstart命令命令內(nèi)存地址內(nèi)存地址 內(nèi)存始址寄存器內(nèi)存始址寄存器傳送字節(jié)數(shù)傳送字節(jié)數(shù)字節(jié)計數(shù)器字節(jié)計數(shù)器允許中斷位與啟動位置允許中斷位與啟動位置1 1當(dāng)前進(jìn)程被阻塞,當(dāng)前進(jìn)程被阻塞,調(diào)度程序調(diào)度其他進(jìn)程運行調(diào)度程序調(diào)度

8、其他進(jìn)程運行被調(diào)度的進(jìn)程執(zhí)行被調(diào)度的進(jìn)程執(zhí)行接收到中斷接收到中斷信號嗎?信號嗎?是是轉(zhuǎn)中斷處理轉(zhuǎn)中斷處理設(shè)備設(shè)備啟動設(shè)備準(zhǔn)備數(shù)據(jù)啟動設(shè)備準(zhǔn)備數(shù)據(jù)DMADMA控制器接收到控制器接收到startstart指令指令緩沖寄存器內(nèi)容入內(nèi)存緩沖寄存器內(nèi)容入內(nèi)存改變傳送字節(jié)數(shù)計數(shù)器改變傳送字節(jié)數(shù)計數(shù)器與內(nèi)存地址寄存器內(nèi)容與內(nèi)存地址寄存器內(nèi)容否否傳送字節(jié)數(shù)傳送字節(jié)數(shù)0 0?嗎?嗎?數(shù)據(jù)入數(shù)據(jù)緩沖寄存器數(shù)據(jù)入數(shù)據(jù)緩沖寄存器發(fā)中斷信號發(fā)中斷信號停止停止I/OI/O操作操作是是 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息 學(xué)學(xué) 院院 DMA方式與中斷的主要區(qū)別n中斷方式中斷方式是在數(shù)據(jù)緩沖寄存區(qū)滿后,發(fā)中斷請求

9、,是在數(shù)據(jù)緩沖寄存區(qū)滿后,發(fā)中斷請求,CPUCPU進(jìn)行中斷處理進(jìn)行中斷處理 DMADMA方式方式則是在所要求傳送的數(shù)據(jù)塊全部傳送結(jié)束則是在所要求傳送的數(shù)據(jù)塊全部傳送結(jié)束時要求時要求CPUCPU進(jìn)行中斷處理進(jìn)行中斷處理 大大減少了大大減少了CPUCPU進(jìn)行中斷處理的次數(shù)進(jìn)行中斷處理的次數(shù)n中斷方式中斷方式的數(shù)據(jù)傳送是由的數(shù)據(jù)傳送是由CPUCPU控制完成的控制完成的 DMADMA方式方式則是在則是在DMADMA控制器的控制下不經(jīng)過控制器的控制下不經(jīng)過CPUCPU控制控制完成的完成的 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息 學(xué)學(xué) 院院 通道相當(dāng)于一個通道相當(dāng)于一個功能簡單的處理機(jī)功能簡單的處

10、理機(jī),包含通道,包含通道指令(空操作,讀操作,寫操作,控制,轉(zhuǎn)移指令(空操作,讀操作,寫操作,控制,轉(zhuǎn)移操作),并可執(zhí)行用這些指令編寫的通道程序操作),并可執(zhí)行用這些指令編寫的通道程序n通道運算控制部件通道運算控制部件通道地址字通道地址字 CAWCAW: 記錄通道程序在內(nèi)存中的地址記錄通道程序在內(nèi)存中的地址通道命令字通道命令字 CCWCCW: 保存正在執(zhí)行的通道指令保存正在執(zhí)行的通道指令通道狀態(tài)字通道狀態(tài)字 CSWCSW: 存放通道執(zhí)行后的返回結(jié)果存放通道執(zhí)行后的返回結(jié)果通道數(shù)據(jù)字通道數(shù)據(jù)字 CDWCDW:存放傳輸數(shù)據(jù)存放傳輸數(shù)據(jù) 通道和通道和CPUCPU共用內(nèi)存,通過周期竊取方式取得共用內(nèi)存

11、,通過周期竊取方式取得4)通道 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息 學(xué)學(xué) 院院 n通道命令及格式通道命令及格式 用于用于I/OI/O操作的命令主要有兩種:操作的命令主要有兩種:1.1. I/OI/O指令:指令:啟動通道程序啟動通道程序2.2. 通道命令:通道命令:對對I/OI/O操作進(jìn)行控制操作進(jìn)行控制1)1)讀、反讀、寫、測試設(shè)備狀態(tài)的讀、反讀、寫、測試設(shè)備狀態(tài)的數(shù)據(jù)傳輸命令數(shù)據(jù)傳輸命令2)2)用于用于設(shè)備控制的命令設(shè)備控制的命令(磁帶反繞、換頁)(磁帶反繞、換頁)3)3)實現(xiàn)通道程序內(nèi)部控制的實現(xiàn)通道程序內(nèi)部控制的轉(zhuǎn)移命令轉(zhuǎn)移命令 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息

12、 學(xué)學(xué) 院院 n工作原理工作原理 CPUCPU:執(zhí)行用戶程序,當(dāng)遇到執(zhí)行用戶程序,當(dāng)遇到I/OI/O請求請求時,可根據(jù)該請求時,可根據(jù)該請求生成生成通道程序放入內(nèi)通道程序放入內(nèi)存(也可事先編好存(也可事先編好放入放入內(nèi)存),并將該內(nèi)存),并將該通道程序的首地址放入通道程序的首地址放入CAWCAW中;之后執(zhí)行中;之后執(zhí)行“啟動啟動I/OI/O”指令,啟動通道工作指令,啟動通道工作通道地址字通道地址字CAW -CAW -首地址寄存器首地址寄存器通道命令字通道命令字CCW -CCW -控制寄存器控制寄存器通道狀態(tài)字通道狀態(tài)字CSW -CSW -狀態(tài)寄存器狀態(tài)寄存器通道數(shù)據(jù)字通道數(shù)據(jù)字CDW -CDW

13、 -數(shù)據(jù)寄存器數(shù)據(jù)寄存器 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息 學(xué)學(xué) 院院 通道:通道:接收到接收到“啟動啟動I/O”I/O”指令指令后,從后,從CAWCAW中取出通道程序的首地址,并根據(jù)首中取出通道程序的首地址,并根據(jù)首地址地址取出第一條指令放入取出第一條指令放入CCWCCW中,同時中,同時向向CPUCPU發(fā)回答信號發(fā)回答信號,使,使CPUCPU可繼續(xù)執(zhí)行其他可繼續(xù)執(zhí)行其他程序,而通道則開始執(zhí)行通道程序,完程序,而通道則開始執(zhí)行通道程序,完成傳輸工作。成傳輸工作。 當(dāng)當(dāng)通道傳輸完成最后一條指令通道傳輸完成最后一條指令時,向時,向CPUCPU發(fā)發(fā)I/OI/O中斷中斷,并且通道停止工作

14、。,并且通道停止工作。CPUCPU接收中斷信號,從接收中斷信號,從CSWCSW中取得有關(guān)信息中取得有關(guān)信息,決定下一步做什么。決定下一步做什么。 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息 學(xué)學(xué) 院院 通道連接:通道連接:一個通道可連接多個控制器,一一個通道可連接多個控制器,一個控制器可連接多個設(shè)備,形成樹形交叉連接個控制器可連接多個設(shè)備,形成樹形交叉連接 主要目的主要目的是啟動外設(shè)時:是啟動外設(shè)時:提高了控制器效率提高了控制器效率提高可靠性提高可靠性提高并行度提高并行度通道連接 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息 學(xué)學(xué) 院院 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息 學(xué)

15、學(xué) 院院 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息 學(xué)學(xué) 院院 3. 中斷處理技術(shù)n指令執(zhí)行的過程中,外部設(shè)備或計算機(jī)內(nèi)部可能指令執(zhí)行的過程中,外部設(shè)備或計算機(jī)內(nèi)部可能會發(fā)來會發(fā)來急需處理的信號急需處理的信號,需要處理機(jī)暫停正在執(zhí),需要處理機(jī)暫停正在執(zhí)行的程序,轉(zhuǎn)去執(zhí)行相應(yīng)的緊急事件,待處理完行的程序,轉(zhuǎn)去執(zhí)行相應(yīng)的緊急事件,待處理完畢再返回原處繼續(xù)執(zhí)行,這一過程稱為畢再返回原處繼續(xù)執(zhí)行,這一過程稱為中斷中斷。用戶程序用戶程序.指令指令i i指令指令i+1i+1中斷中斷中斷處理中斷處理程序程序中斷執(zhí)行過程中斷執(zhí)行過程 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息 學(xué)學(xué) 院院 中斷處理時

16、的指令執(zhí)行周期 開始開始讀入下讀入下一條指令一條指令執(zhí)行執(zhí)行當(dāng)前指令當(dāng)前指令結(jié)束結(jié)束允許允許中斷嗎?中斷嗎?檢查檢查中斷位中斷位讀入中斷讀入中斷處理指令處理指令YN 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息 學(xué)學(xué) 院院 關(guān)中斷關(guān)中斷保存被中斷現(xiàn)場保存被中斷現(xiàn)場分析中斷原因分析中斷原因轉(zhuǎn)中斷處理子程序轉(zhuǎn)中斷處理子程序執(zhí)行中斷處理子程序執(zhí)行中斷處理子程序恢復(fù)現(xiàn)場恢復(fù)現(xiàn)場開中斷開中斷返回中斷點返回中斷點中斷處理過程中斷處理過程 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息 學(xué)學(xué) 院院 4.設(shè)備驅(qū)動程序設(shè)備設(shè)備密切相關(guān)的代碼密切相關(guān)的代碼放在設(shè)備驅(qū)動程序中,每個設(shè)備驅(qū)動放在設(shè)備驅(qū)動程序中,每個

17、設(shè)備驅(qū)動程序程序處理一種處理一種設(shè)備類型設(shè)備類型每每一個一個控制器都設(shè)有控制器都設(shè)有一個或多個一個或多個設(shè)備寄存器,用來存放向設(shè)備寄存器,用來存放向設(shè)備發(fā)送的命令和參數(shù)。設(shè)備驅(qū)動程序負(fù)責(zé)釋放這些命令,設(shè)備發(fā)送的命令和參數(shù)。設(shè)備驅(qū)動程序負(fù)責(zé)釋放這些命令,并監(jiān)督它們正確執(zhí)行并監(jiān)督它們正確執(zhí)行設(shè)備驅(qū)動程序的設(shè)備驅(qū)動程序的任務(wù)是接收來自與任務(wù)是接收來自與設(shè)備無關(guān)的上層軟件設(shè)備無關(guān)的上層軟件的的抽象請求,并執(zhí)行這個請求抽象請求,并執(zhí)行這個請求。在設(shè)備驅(qū)動程序的進(jìn)程釋放一條或多條命令后,系統(tǒng)有在設(shè)備驅(qū)動程序的進(jìn)程釋放一條或多條命令后,系統(tǒng)有兩兩種處理方式種處理方式,多數(shù)情況下,執(zhí)行設(shè)備驅(qū)動程序的進(jìn)程必須,

18、多數(shù)情況下,執(zhí)行設(shè)備驅(qū)動程序的進(jìn)程必須等待命令完成等待命令完成,這樣,在命令開始執(zhí)行后,它阻塞自已,這樣,在命令開始執(zhí)行后,它阻塞自已,直到中斷處理時將它解除直到中斷處理時將它解除阻塞阻塞為止。而在其它情況下,命為止。而在其它情況下,命令執(zhí)行不必延遲就很快完成令執(zhí)行不必延遲就很快完成 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息 學(xué)學(xué) 院院 用戶進(jìn)程用戶進(jìn)程文件系統(tǒng)文件系統(tǒng)設(shè)備驅(qū)動程序設(shè)備驅(qū)動程序設(shè)備控制器設(shè)備控制器設(shè)備本身設(shè)備本身驅(qū)動程序所處地位用戶進(jìn)程請求設(shè)備服務(wù)的流程用戶進(jìn)程請求設(shè)備服務(wù)的流程 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息 學(xué)學(xué) 院院 5.設(shè)備獨立的軟件 雖然雖然I

19、IO O軟件中軟件中一部一部分分是設(shè)備專用的,但是設(shè)備專用的,但大部分大部分軟件是與設(shè)備軟件是與設(shè)備無關(guān)的。設(shè)備驅(qū)動程無關(guān)的。設(shè)備驅(qū)動程序與設(shè)備獨立軟件之序與設(shè)備獨立軟件之間的間的確切界限是依賴確切界限是依賴于具體系統(tǒng)于具體系統(tǒng)的的 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息 學(xué)學(xué) 院院 1.1.獨立于設(shè)備的軟件的基本任務(wù)是獨立于設(shè)備的軟件的基本任務(wù)是實現(xiàn)所有設(shè)備都需要實現(xiàn)所有設(shè)備都需要的功能,并且向用戶級軟件提供一個統(tǒng)一的接口的功能,并且向用戶級軟件提供一個統(tǒng)一的接口2.2.如何給文件和設(shè)備這樣的如何給文件和設(shè)備這樣的對象命名對象命名是操作系統(tǒng)中的一是操作系統(tǒng)中的一個主要課題。獨立于設(shè)備

20、的軟件負(fù)責(zé)把設(shè)備的符號名個主要課題。獨立于設(shè)備的軟件負(fù)責(zé)把設(shè)備的符號名映射到正確的設(shè)備驅(qū)動上映射到正確的設(shè)備驅(qū)動上(linuxlinux上文件映射)上文件映射)3.3.設(shè)備保護(hù):系統(tǒng)防止無權(quán)存取設(shè)備的用戶存取設(shè)備設(shè)備保護(hù):系統(tǒng)防止無權(quán)存取設(shè)備的用戶存取設(shè)備4.4.不同的磁盤可以采用不同的扇區(qū)尺寸。不同的磁盤可以采用不同的扇區(qū)尺寸。設(shè)備獨立軟件設(shè)備獨立軟件向較高層軟件向較高層軟件掩蓋掩蓋這一事實并提供大小統(tǒng)一的塊尺寸。這一事實并提供大小統(tǒng)一的塊尺寸。它可將若干扇區(qū)合成一個邏輯塊。較高層的軟件只與它可將若干扇區(qū)合成一個邏輯塊。較高層的軟件只與抽象設(shè)備抽象設(shè)備打交道,打交道,獨立于物理扇區(qū)的尺寸而使

21、用等長獨立于物理扇區(qū)的尺寸而使用等長的邏輯塊的邏輯塊5.5.緩沖技術(shù)緩沖技術(shù)6.6.設(shè)備分配設(shè)備分配7.7.出錯處理出錯處理 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息 學(xué)學(xué) 院院 6.用戶層的IO軟件Z盡管大部分盡管大部分I IO O軟件都包含在操作系統(tǒng)中,但仍軟件都包含在操作系統(tǒng)中,但仍有有一小部分一小部分是由與用戶程序連接在一起的庫過程,是由與用戶程序連接在一起的庫過程,甚至完全由運行于核外的程序構(gòu)成。系統(tǒng)調(diào)用,甚至完全由運行于核外的程序構(gòu)成。系統(tǒng)調(diào)用,包括包括I IO O系統(tǒng)調(diào)用,通常由庫過程實現(xiàn)系統(tǒng)調(diào)用,通常由庫過程實現(xiàn)Z這些過程所做的工作只是這些過程所做的工作只是將系統(tǒng)調(diào)用時所

22、用的參將系統(tǒng)調(diào)用時所用的參數(shù)放在合適的位置,數(shù)放在合適的位置,由其它的由其它的I IO O過程實際實現(xiàn)過程實際實現(xiàn)真正的操作真正的操作 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息 學(xué)學(xué) 院院 7.設(shè)備分配設(shè)備分配與回收設(shè)備分配與回收 當(dāng)某進(jìn)程向系統(tǒng)提出當(dāng)某進(jìn)程向系統(tǒng)提出I/OI/O請求時,設(shè)備分配程序請求時,設(shè)備分配程序按一定策略分配設(shè)備、控制器和通道,形成一條按一定策略分配設(shè)備、控制器和通道,形成一條數(shù)據(jù)傳輸通路,以供主機(jī)和設(shè)備間信息交換數(shù)據(jù)傳輸通路,以供主機(jī)和設(shè)備間信息交換n強(qiáng)調(diào)強(qiáng)調(diào) 設(shè)備獨立性設(shè)備獨立性 即:不能因為設(shè)備的忙碌、故障或更換而影響程序的即:不能因為設(shè)備的忙碌、故障或更換

23、而影響程序的運行運行, , 向用戶屏蔽物理設(shè)備向用戶屏蔽物理設(shè)備, , 呈現(xiàn)給用戶一個操作簡單呈現(xiàn)給用戶一個操作簡單的邏輯設(shè)備的邏輯設(shè)備n強(qiáng)調(diào)強(qiáng)調(diào) 抽象的抽象的I/O I/O 操作操作 即:設(shè)計一類通用的即:設(shè)計一類通用的I/OI/O指令,它們的含義對不同類型指令,它們的含義對不同類型設(shè)備作不同解釋,而且,在操作系統(tǒng)中,提供了若干設(shè)備作不同解釋,而且,在操作系統(tǒng)中,提供了若干I/OI/O系統(tǒng)調(diào)用,由系統(tǒng)將抽象的系統(tǒng)調(diào)用,由系統(tǒng)將抽象的I/O I/O 操作映射到專門的操作映射到專門的設(shè)備驅(qū)動程序設(shè)備驅(qū)動程序 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息 學(xué)學(xué) 院院 設(shè)置數(shù)據(jù)結(jié)構(gòu):n設(shè)備控制表設(shè)

24、備控制表DCTDCTn系統(tǒng)設(shè)備表系統(tǒng)設(shè)備表SDTSDTn控制器表控制器表COCTCOCTn通道控制表通道控制表CHCTCHCT 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息 學(xué)學(xué) 院院 表目表目1 1表目表目i i設(shè)備類型設(shè)備類型設(shè)備標(biāo)識設(shè)備標(biāo)識獲得設(shè)備的進(jìn)程獲得設(shè)備的進(jìn)程DCTDCT指針指針系統(tǒng)設(shè)備表系統(tǒng)設(shè)備表STDSTD控制器標(biāo)識控制器標(biāo)識控制忙控制忙/ /閑標(biāo)記閑標(biāo)記CHCTCHCT指針指針控制器等待隊列首控制器等待隊列首控制器等待隊列尾控制器等待隊列尾COCTCOCT 通道標(biāo)識通道標(biāo)識通道忙通道忙/ /閑標(biāo)記閑標(biāo)記通道等待隊列首通道等待隊列首通道等待隊列尾通道等待隊列尾CHCTCHC

25、T 設(shè)備類型設(shè)備類型設(shè)備標(biāo)識設(shè)備標(biāo)識設(shè)備忙設(shè)備忙/ /閑標(biāo)記閑標(biāo)記COCTCOCT指針指針設(shè)備等待隊列首設(shè)備等待隊列首設(shè)備等待隊列尾設(shè)備等待隊列尾驅(qū)動程序地址驅(qū)動程序地址DCTDCT 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息 學(xué)學(xué) 院院 設(shè)備分配原則設(shè)備分配原則設(shè)備分配策略設(shè)備分配策略靜態(tài)分配靜態(tài)分配動態(tài)分配動態(tài)分配設(shè)備使用率低設(shè)備使用率低有可能造成死鎖有可能造成死鎖先請求先分配先請求先分配優(yōu)先級高者先分配優(yōu)先級高者先分配 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息 學(xué)學(xué) 院院 設(shè)備分配流程圖設(shè)備分配流程圖由進(jìn)程由進(jìn)程P P來的來的I/OI/O請請求求搜索搜索SDTSDT找到找到DC

26、TDCT指針指針按分配策略選取按分配策略選取占據(jù)該設(shè)備的進(jìn)程占據(jù)該設(shè)備的進(jìn)程進(jìn)程進(jìn)程P P被選中被選中?查查DCTDCT該設(shè)備忙?該設(shè)備忙?檢查該設(shè)備分配給檢查該設(shè)備分配給進(jìn)程進(jìn)程P P的安全性的安全性安全嗎?安全嗎?該設(shè)備分配給進(jìn)程該設(shè)備分配給進(jìn)程P PA A按分配策略選取按分配策略選取占據(jù)該設(shè)備的進(jìn)程占據(jù)該設(shè)備的進(jìn)程進(jìn)程進(jìn)程P P按分配策略按分配策略入入I/OI/O等待隊列等待隊列進(jìn)程進(jìn)程P P等待該設(shè)備空等待該設(shè)備空閑閑是是是是否否否否是是否否進(jìn)程進(jìn)程P P等待控制器等待控制器搜索搜索DCTDCT指針,指針,找到找到COCTCOCT指針指針控制器忙嗎控制器忙嗎?A A分配控制器給進(jìn)程分配

27、控制器給進(jìn)程P P搜索搜索COCTCOCT找到找到CHCTCHCT指針指針通道忙?通道忙?分配通道給進(jìn)程分配通道給進(jìn)程P P啟動啟動I/OI/O進(jìn)程進(jìn)程P P等待通道等待通道是是是是否否否否 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息 學(xué)學(xué) 院院 I/OI/O系統(tǒng)的設(shè)備分配系統(tǒng)的設(shè)備分配按如下步驟實施設(shè)備分配:按如下步驟實施設(shè)備分配:(1)(1) 分配設(shè)備。分配設(shè)備。 ( (2)2) 分配控制器。分配控制器。 ( (3)3) 分配通道分配通道。 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息 學(xué)學(xué) 院院 8. I/O控制中斷原因分析中斷原因分析喚醒中斷喚醒中斷處理程序處理程序I/OI/O請

28、求設(shè)備請求設(shè)備設(shè)備分配程序設(shè)備分配程序緩沖區(qū)管理緩沖區(qū)管理中斷響應(yīng)中斷響應(yīng)啟動啟動I/OI/O指令、設(shè)備驅(qū)動指令、設(shè)備驅(qū)動程序或通道程序程序或通道程序I/OI/O控制控制 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息 學(xué)學(xué) 院院 I/O控制的實現(xiàn)I/OI/O控制過程在系統(tǒng)中可以按三種方式實現(xiàn)控制過程在系統(tǒng)中可以按三種方式實現(xiàn)作為請求作為請求I/OI/O操作的進(jìn)程的一部分實現(xiàn)操作的進(jìn)程的一部分實現(xiàn)作為當(dāng)前進(jìn)程的一部分實現(xiàn)作為當(dāng)前進(jìn)程的一部分實現(xiàn)I/OI/O控制由專門的系統(tǒng)進(jìn)程控制由專門的系統(tǒng)進(jìn)程 I/OI/O進(jìn)程完成進(jìn)程完成:每類每類( (個個) )設(shè)備設(shè)一專門的設(shè)備設(shè)一專門的I/OI/O進(jìn)程

29、,且該進(jìn)程只能進(jìn)程,且該進(jìn)程只能在系統(tǒng)態(tài)下執(zhí)行在系統(tǒng)態(tài)下執(zhí)行整個系統(tǒng)設(shè)一整個系統(tǒng)設(shè)一I/OI/O進(jìn)程,全面負(fù)責(zé)系統(tǒng)的數(shù)據(jù)傳送進(jìn)程,全面負(fù)責(zé)系統(tǒng)的數(shù)據(jù)傳送工作工作每類每類( (個個) )設(shè)備設(shè)一個專門的設(shè)備設(shè)一個專門的I/OI/O進(jìn)程,但該進(jìn)程既進(jìn)程,但該進(jìn)程既可在用戶態(tài)也可在系統(tǒng)態(tài)下執(zhí)行可在用戶態(tài)也可在系統(tǒng)態(tài)下執(zhí)行 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息 學(xué)學(xué) 院院 9.緩沖技術(shù)(1 1)緩沖技術(shù)的引入)緩沖技術(shù)的引入: : 凡是數(shù)據(jù)到達(dá)和離凡是數(shù)據(jù)到達(dá)和離去速度不匹配的地方均可采用緩沖技術(shù)去速度不匹配的地方均可采用緩沖技術(shù) 在操作系統(tǒng)中采用緩沖是為了實現(xiàn)數(shù)在操作系統(tǒng)中采用緩沖是為了實現(xiàn)數(shù)據(jù)的據(jù)的I/OI/O操作,以緩解操作,以緩解CPUCPU與外部設(shè)備之與外部設(shè)備之間速度不匹配的矛盾,提高資源利用率間速度不匹配的矛盾,提高資源利用率n減少了減少了I/OI/O設(shè)備對處理器的中斷請求次數(shù)設(shè)備對處理器的中斷請求次數(shù)n簡化了中斷機(jī)制簡化了中斷機(jī)制n節(jié)省了系統(tǒng)開銷節(jié)省了系統(tǒng)開銷 北北 京京 林林 業(yè)業(yè) 大大 學(xué)學(xué) 信信 息息 學(xué)學(xué) 院院 (2 2)緩沖的種類)緩沖的種類 單緩沖單緩沖 當(dāng)用戶進(jìn)程發(fā)出當(dāng)用

溫馨提示

  • 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

提交評論