![計算機操作系統(tǒng)10_第1頁](http://file4.renrendoc.com/view/08055245df2d573dc178e4cce7239beb/08055245df2d573dc178e4cce7239beb1.gif)
![計算機操作系統(tǒng)10_第2頁](http://file4.renrendoc.com/view/08055245df2d573dc178e4cce7239beb/08055245df2d573dc178e4cce7239beb2.gif)
![計算機操作系統(tǒng)10_第3頁](http://file4.renrendoc.com/view/08055245df2d573dc178e4cce7239beb/08055245df2d573dc178e4cce7239beb3.gif)
![計算機操作系統(tǒng)10_第4頁](http://file4.renrendoc.com/view/08055245df2d573dc178e4cce7239beb/08055245df2d573dc178e4cce7239beb4.gif)
![計算機操作系統(tǒng)10_第5頁](http://file4.renrendoc.com/view/08055245df2d573dc178e4cce7239beb/08055245df2d573dc178e4cce7239beb5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、三、輸入/輸出軟件中斷處理程序設(shè)備驅(qū)動程序與設(shè)備無關(guān)的I/O軟件用戶層的輸入/輸出軟件1. 層次結(jié)構(gòu):進(jìn)行I/O調(diào)用:格式化I/O執(zhí)行I/O操作命名、保護(hù)、阻塞、緩沖、分配I/O結(jié)束時,喚醒設(shè)備服務(wù)子程序設(shè)置設(shè)備寄存器、檢測狀態(tài)4-用戶進(jìn)程3-設(shè)備無關(guān)軟件2-設(shè)備驅(qū)動程序硬 件設(shè)備服務(wù)子程序1-中斷處理程序I/O請求I/O應(yīng)答(1)用戶進(jìn)程層執(zhí)行輸入輸出系統(tǒng)調(diào)用,對IO數(shù)據(jù)進(jìn)行格式化,為假脫機輸入輸出作準(zhǔn)備(2)獨立于設(shè)備的軟件實現(xiàn)設(shè)備的命名、設(shè)備的保護(hù)、成塊處理、緩沖技術(shù)和設(shè)備分配(3)設(shè)備驅(qū)動程序設(shè)置設(shè)備寄存器、檢查設(shè)備的執(zhí)行狀態(tài)(4)中斷處理程序負(fù)責(zé)IO完成時,喚醒設(shè)備驅(qū)動程序進(jìn)程,進(jìn)行
2、中斷處理(5)硬件層實現(xiàn)物理IO的操作 程序直接控制方式 中斷方式 DMA方式 通道控制方式2. 數(shù)據(jù)傳送控制方式:1)程序直接控制方式(循環(huán)I/O測試方式)由處理器提供I/O相關(guān)指令來實現(xiàn)I/O處理單元處理請求并設(shè)置I/O狀態(tài)寄存器相關(guān)位不中斷處理器,也不給處理器警告信息處理器定期輪詢I/O單元的狀態(tài),直到處理完畢I/O軟件包含直接操縱I/O的指令控制指令: 用于激活外設(shè),并告訴它做什么狀態(tài)指令: 用于測試I/O控制中的各種狀態(tài)和條件數(shù)據(jù)傳送指令: 用于設(shè)備和主存之間來回傳送數(shù)據(jù)主要缺陷:處理器必須關(guān)注I/O處理單元的狀態(tài),因而耗費大量時間輪詢信息,嚴(yán)重地降低了系統(tǒng)性能否外圍設(shè)備做接收或發(fā)送
3、數(shù)據(jù)準(zhǔn)備接收到start命令標(biāo)志觸發(fā)器置“done”等待CPU來的下條指令準(zhǔn)備完畢?是否CPU發(fā)start命令等 待執(zhí)行下條指令開始數(shù)據(jù)傳送設(shè)備標(biāo)志觸發(fā)器為done”?是(a)(b)2)中斷方式 為了解決程序控制I/O方法的主要問題 應(yīng)該讓處理器從輪詢?nèi)蝿?wù)中解放出來 使I/O操作和指令執(zhí)行并行起來 具體作法: 當(dāng)I/O處理單元準(zhǔn)備好與設(shè)備交互的時候 通過物理信號通知處理器,即中斷處理器I/O控制器1I/O控制器nI/O設(shè)備1I/O設(shè)備n地址線數(shù)據(jù)線控制線intCPU內(nèi)存start啟動位中斷位信號線控制狀態(tài)寄存器數(shù)據(jù)緩沖寄存器中斷控制方式的處理過程接收到CPU發(fā)來的start指令準(zhǔn)備數(shù)據(jù)并將其置
4、入緩沖寄存器緩沖寄存器滿嗎?控制器發(fā)中斷信號向設(shè)備發(fā)start指令將中斷允許位置1調(diào)度程序調(diào)度其他進(jìn)程其他進(jìn)程執(zhí)行收到中斷信號了嗎?中斷處理被中斷進(jìn)程執(zhí)行否否是設(shè)備CPU3)DMA方式DMA方式下的數(shù)據(jù)傳輸 數(shù)據(jù)傳輸處理過程如下: 當(dāng)進(jìn)程要求設(shè)備輸入數(shù)據(jù)時,CPU把準(zhǔn)備存放輸入數(shù)據(jù)的內(nèi)存始址及要傳輸?shù)淖止?jié)數(shù)分別送入DMA控制器中的內(nèi)存地址寄存器和傳送字節(jié)計數(shù)器;另外,還要把控制/狀態(tài)寄存器中的中斷允許位和啟動位置1,從而啟動設(shè)備,開始數(shù)據(jù)輸入。 發(fā)出數(shù)據(jù)輸入要求的進(jìn)程進(jìn)入阻塞狀態(tài), 進(jìn)程調(diào)度程序調(diào)度其它進(jìn)程占有CPU。 輸入設(shè)備不斷地挪用CPU工作周期, 將數(shù)據(jù)從內(nèi)部緩沖區(qū)源源不斷地送入內(nèi)存,
5、直至所要求的字節(jié)數(shù)全部傳送完畢。 DMA控制器在傳輸完成時通過中斷請求線發(fā)出中斷信號, CPU接到中斷信號后轉(zhuǎn)中斷處理程序進(jìn)行相應(yīng)處理。 中斷處理結(jié)束后, CPU返回被中斷的進(jìn)程或去運行重新被調(diào)度的進(jìn)程。 DMA方式否CPU發(fā)start命令內(nèi)存地址 內(nèi)存始址寄存器傳送字節(jié)數(shù)字節(jié)計數(shù)器允許中斷位與啟動位置1當(dāng)前進(jìn)程被阻塞,調(diào)度程序調(diào)度其他進(jìn)程運行被調(diào)度的進(jìn)程執(zhí)行接收到中斷信號嗎?是轉(zhuǎn)中斷處理設(shè)備啟動設(shè)備準(zhǔn)備數(shù)據(jù)DMA控制器接收到start指令緩沖寄存器內(nèi)容入內(nèi)存改變傳送字節(jié)數(shù)計數(shù)器與內(nèi)存地址寄存器內(nèi)容否傳送字節(jié)數(shù)0?嗎?數(shù)據(jù)入數(shù)據(jù)緩沖寄存器發(fā)中斷信號停止I/O操作是DMA方式與中斷的主要區(qū)別中斷
6、方式是在數(shù)據(jù)緩沖寄存區(qū)滿后,發(fā)中斷請求,CPU進(jìn)行中斷處理 DMA方式則是在所要求傳送的數(shù)據(jù)塊全部傳送結(jié)束時要求CPU進(jìn)行中斷處理 大大減少了CPU進(jìn)行中斷處理的次數(shù)中斷方式的數(shù)據(jù)傳送是由CPU控制完成的 DMA方式則是在DMA控制器的控制下不經(jīng)過CPU控制完成的 通道相當(dāng)于一個功能簡單的處理機,包含通道指令(空操作,讀操作,寫操作,控制,轉(zhuǎn)移操作),并可執(zhí)行用這些指令編寫的通道程序通道運算控制部件通道地址字 CAW: 記錄通道程序在內(nèi)存中的地址通道命令字 CCW: 保存正在執(zhí)行的通道指令通道狀態(tài)字 CSW: 存放通道執(zhí)行后的返回結(jié)果通道數(shù)據(jù)字 CDW:存放傳輸數(shù)據(jù) 通道和CPU共用內(nèi)存,通過
7、周期竊取方式取得4)通道通道命令及格式 用于I/O操作的命令主要有兩種:I/O指令:啟動通道程序通道命令:對I/O操作進(jìn)行控制讀、反讀、寫、測試設(shè)備狀態(tài)的數(shù)據(jù)傳輸命令用于設(shè)備控制的命令(磁帶反繞、換頁)實現(xiàn)通道程序內(nèi)部控制的轉(zhuǎn)移命令工作原理 CPU:執(zhí)行用戶程序,當(dāng)遇到I/O請求時,可根據(jù)該請求生成通道程序放入內(nèi)存(也可事先編好放入內(nèi)存),并將該通道程序的首地址放入CAW中;之后執(zhí)行“啟動I/O”指令,啟動通道工作通道地址字CAW -首地址寄存器通道命令字CCW -控制寄存器通道狀態(tài)字CSW -狀態(tài)寄存器通道數(shù)據(jù)字CDW -數(shù)據(jù)寄存器 通道:接收到“啟動I/O”指令后,從CAW中取出通道程序的
8、首地址,并根據(jù)首地址取出第一條指令放入CCW中,同時向CPU發(fā)回答信號,使CPU可繼續(xù)執(zhí)行其他程序,而通道則開始執(zhí)行通道程序,完成傳輸工作。 當(dāng)通道傳輸完成最后一條指令時,向CPU發(fā)I/O中斷,并且通道停止工作。CPU接收中斷信號,從CSW中取得有關(guān)信息,決定下一步做什么。 通道連接:一個通道可連接多個控制器,一個控制器可連接多個設(shè)備,形成樹形交叉連接 主要目的是啟動外設(shè)時:提高了控制器效率提高可靠性提高并行度通道連接3. 中斷處理技術(shù)指令執(zhí)行的過程中,外部設(shè)備或計算機內(nèi)部可能會發(fā)來急需處理的信號,需要處理機暫停正在執(zhí)行的程序,轉(zhuǎn)去執(zhí)行相應(yīng)的緊急事件,待處理完畢再返回原處繼續(xù)執(zhí)行,這一過程稱為
9、中斷。用戶程序.指令i指令i+1中斷中斷處理程序中斷執(zhí)行過程 中斷處理時的指令執(zhí)行周期 開始讀入下一條指令執(zhí)行當(dāng)前指令結(jié)束允許中斷嗎?檢查中斷位讀入中斷處理指令YN關(guān)中斷保存被中斷現(xiàn)場分析中斷原因轉(zhuǎn)中斷處理子程序執(zhí)行中斷處理子程序恢復(fù)現(xiàn)場開中斷返回中斷點中斷處理過程4.設(shè)備驅(qū)動程序設(shè)備密切相關(guān)的代碼放在設(shè)備驅(qū)動程序中,每個設(shè)備驅(qū)動程序處理一種設(shè)備類型每一個控制器都設(shè)有一個或多個設(shè)備寄存器,用來存放向設(shè)備發(fā)送的命令和參數(shù)。設(shè)備驅(qū)動程序負(fù)責(zé)釋放這些命令,并監(jiān)督它們正確執(zhí)行設(shè)備驅(qū)動程序的任務(wù)是接收來自與設(shè)備無關(guān)的上層軟件的抽象請求,并執(zhí)行這個請求。在設(shè)備驅(qū)動程序的進(jìn)程釋放一條或多條命令后,系統(tǒng)有兩種
10、處理方式,多數(shù)情況下,執(zhí)行設(shè)備驅(qū)動程序的進(jìn)程必須等待命令完成,這樣,在命令開始執(zhí)行后,它阻塞自已,直到中斷處理時將它解除阻塞為止。而在其它情況下,命令執(zhí)行不必延遲就很快完成用戶進(jìn)程文件系統(tǒng)設(shè)備驅(qū)動程序設(shè)備控制器設(shè)備本身驅(qū)動程序所處地位用戶進(jìn)程請求設(shè)備服務(wù)的流程5.設(shè)備獨立的軟件 雖然IO軟件中一部分是設(shè)備專用的,但大部分軟件是與設(shè)備無關(guān)的。設(shè)備驅(qū)動程序與設(shè)備獨立軟件之間的確切界限是依賴于具體系統(tǒng)的1.獨立于設(shè)備的軟件的基本任務(wù)是實現(xiàn)所有設(shè)備都需要的功能,并且向用戶級軟件提供一個統(tǒng)一的接口2.如何給文件和設(shè)備這樣的對象命名是操作系統(tǒng)中的一個主要課題。獨立于設(shè)備的軟件負(fù)責(zé)把設(shè)備的符號名映射到正確的
11、設(shè)備驅(qū)動上(linux上文件映射)3.設(shè)備保護(hù):系統(tǒng)防止無權(quán)存取設(shè)備的用戶存取設(shè)備4.不同的磁盤可以采用不同的扇區(qū)尺寸。設(shè)備獨立軟件向較高層軟件掩蓋這一事實并提供大小統(tǒng)一的塊尺寸。它可將若干扇區(qū)合成一個邏輯塊。較高層的軟件只與抽象設(shè)備打交道,獨立于物理扇區(qū)的尺寸而使用等長的邏輯塊5.緩沖技術(shù)6.設(shè)備分配7.出錯處理 6.用戶層的IO軟件盡管大部分IO軟件都包含在操作系統(tǒng)中,但仍有一小部分是由與用戶程序連接在一起的庫過程,甚至完全由運行于核外的程序構(gòu)成。系統(tǒng)調(diào)用,包括IO系統(tǒng)調(diào)用,通常由庫過程實現(xiàn)這些過程所做的工作只是將系統(tǒng)調(diào)用時所用的參數(shù)放在合適的位置,由其它的IO過程實際實現(xiàn)真正的操作7.設(shè)
12、備分配設(shè)備分配與回收 當(dāng)某進(jìn)程向系統(tǒng)提出I/O請求時,設(shè)備分配程序按一定策略分配設(shè)備、控制器和通道,形成一條數(shù)據(jù)傳輸通路,以供主機和設(shè)備間信息交換強調(diào) 設(shè)備獨立性 即:不能因為設(shè)備的忙碌、故障或更換而影響程序的運行, 向用戶屏蔽物理設(shè)備, 呈現(xiàn)給用戶一個操作簡單的邏輯設(shè)備強調(diào) 抽象的I/O 操作 即:設(shè)計一類通用的I/O指令,它們的含義對不同類型設(shè)備作不同解釋,而且,在操作系統(tǒng)中,提供了若干I/O系統(tǒng)調(diào)用,由系統(tǒng)將抽象的I/O 操作映射到專門的設(shè)備驅(qū)動程序設(shè)置數(shù)據(jù)結(jié)構(gòu):設(shè)備控制表DCT系統(tǒng)設(shè)備表SDT控制器表COCT通道控制表CHCT表目1表目i設(shè)備類型設(shè)備標(biāo)識獲得設(shè)備的進(jìn)程DCT指針系統(tǒng)設(shè)備
13、表STD控制器標(biāo)識控制忙/閑標(biāo)記CHCT指針控制器等待隊列首控制器等待隊列尾COCT 通道標(biāo)識通道忙/閑標(biāo)記通道等待隊列首通道等待隊列尾CHCT 設(shè)備類型設(shè)備標(biāo)識設(shè)備忙/閑標(biāo)記COCT指針設(shè)備等待隊列首設(shè)備等待隊列尾驅(qū)動程序地址DCT 設(shè)備分配原則設(shè)備分配策略靜態(tài)分配動態(tài)分配設(shè)備使用率低有可能造成死鎖先請求先分配優(yōu)先級高者先分配設(shè)備分配流程圖由進(jìn)程P來的I/O請求搜索SDT找到DCT指針按分配策略選取占據(jù)該設(shè)備的進(jìn)程進(jìn)程P被選中?查DCT該設(shè)備忙?檢查該設(shè)備分配給進(jìn)程P的安全性安全嗎?該設(shè)備分配給進(jìn)程PA按分配策略選取占據(jù)該設(shè)備的進(jìn)程進(jìn)程P按分配策略入I/O等待隊列進(jìn)程P等待該設(shè)備空閑是是否否
14、是否進(jìn)程P等待控制器搜索DCT指針,找到COCT指針控制器忙嗎?A分配控制器給進(jìn)程P搜索COCT找到CHCT指針通道忙?分配通道給進(jìn)程P啟動I/O進(jìn)程P等待通道是是否否I/O系統(tǒng)的設(shè)備分配按如下步驟實施設(shè)備分配:(1) 分配設(shè)備。 (2) 分配控制器。 (3) 分配通道。 8. I/O控制中斷原因分析喚醒中斷處理程序I/O請求設(shè)備設(shè)備分配程序緩沖區(qū)管理中斷響應(yīng)啟動I/O指令、設(shè)備驅(qū)動程序或通道程序I/O控制I/O控制的實現(xiàn)I/O控制過程在系統(tǒng)中可以按三種方式實現(xiàn)作為請求I/O操作的進(jìn)程的一部分實現(xiàn)作為當(dāng)前進(jìn)程的一部分實現(xiàn)I/O控制由專門的系統(tǒng)進(jìn)程 I/O進(jìn)程完成:每類(個)設(shè)備設(shè)一專門的I/O
15、進(jìn)程,且該進(jìn)程只能在系統(tǒng)態(tài)下執(zhí)行整個系統(tǒng)設(shè)一I/O進(jìn)程,全面負(fù)責(zé)系統(tǒng)的數(shù)據(jù)傳送工作每類(個)設(shè)備設(shè)一個專門的I/O進(jìn)程,但該進(jìn)程既可在用戶態(tài)也可在系統(tǒng)態(tài)下執(zhí)行9.緩沖技術(shù)(1)緩沖技術(shù)的引入: 凡是數(shù)據(jù)到達(dá)和離去速度不匹配的地方均可采用緩沖技術(shù) 在操作系統(tǒng)中采用緩沖是為了實現(xiàn)數(shù)據(jù)的I/O操作,以緩解CPU與外部設(shè)備之間速度不匹配的矛盾,提高資源利用率減少了I/O設(shè)備對處理器的中斷請求次數(shù)簡化了中斷機制節(jié)省了系統(tǒng)開銷(2)緩沖的種類 單緩沖 當(dāng)用戶進(jìn)程發(fā)出I/O請求時,操作系統(tǒng)在主存的系統(tǒng)空間為該操作分配一個緩沖區(qū),可以實現(xiàn)預(yù)讀和滯后寫 雙緩沖 可以實現(xiàn)用戶數(shù)據(jù)區(qū)緩沖區(qū)之間交換數(shù)據(jù)和緩沖區(qū)外設(shè)之間交換數(shù)據(jù)的并行 多緩沖: 多個緩沖區(qū)連接起來組成兩部分(輸入和輸出) 緩沖池: (又稱循環(huán)緩沖) 多個緩沖區(qū)連接起來統(tǒng)一管理,既可輸入,也可輸出 設(shè)備號數(shù)據(jù)塊號緩沖區(qū)號互斥標(biāo)示位鏈指針: :空緩沖區(qū)inout緩沖區(qū)操作函數(shù):getbuf、putbuf等等緩沖首部設(shè)備無關(guān)性:提
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 粵人版地理八年級上冊《第二節(jié) 工業(yè)》聽課評課記錄1
- 八年級數(shù)學(xué)上冊 12.3 角的平分線的性質(zhì) 第2課時 角的平分線的判定聽評課記錄 新人教版
- 指導(dǎo)青年教師開展課題研究協(xié)議書(2篇)
- 電力傳輸合同(2篇)
- 人教版數(shù)學(xué)八年級下冊《閱讀與思考海倫-秦九韶公式》聽評課記錄1
- 【2022年新課標(biāo)】部編版七年級上冊道德與法治7.2 愛在家人間 聽課評課記錄
- 小學(xué)數(shù)學(xué)-六年級下冊-4-3-5 用比例解決問題 聽評課記錄
- 華東師大版八年級上冊數(shù)學(xué)聽評課記錄《13.4尺規(guī)作圖(2)》
- 湘教版數(shù)學(xué)八年級上冊1.3.3《整數(shù)指數(shù)冪的運算法則》聽評課記錄1
- 蘇科版數(shù)學(xué)九年級上冊第2章《弧長及扇形的面積》聽評課記錄
- 2025年魯泰集團(tuán)招聘170人高頻重點提升(共500題)附帶答案詳解
- 2024-2025學(xué)年成都高新區(qū)七上數(shù)學(xué)期末考試試卷【含答案】
- 企業(yè)員工食堂管理制度框架
- 《辣椒主要病蟲害》課件
- 電力溝施工組織設(shè)計-電纜溝
- 2024年煤礦安全生產(chǎn)知識培訓(xùn)考試必答題庫及答案(共190題)
- 《法律援助》課件
- 小兒肺炎治療與護(hù)理
- GB/T 36547-2024電化學(xué)儲能電站接入電網(wǎng)技術(shù)規(guī)定
- 學(xué)校物業(yè)管理投標(biāo)書范本
- 《高處作業(yè)安全》課件
評論
0/150
提交評論