第7章-輸入輸出管理_第1頁
第7章-輸入輸出管理_第2頁
第7章-輸入輸出管理_第3頁
第7章-輸入輸出管理_第4頁
第7章-輸入輸出管理_第5頁
已閱讀5頁,還剩17頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

操作系統(tǒng)原理第7章輸入/輸出管理內(nèi)容摘要I/O管理概述I/O軟件層次輸入/輸出控制方式緩沖技術(shù)設(shè)備分配Linux的I/O管理2I/O設(shè)備分類按設(shè)備的使用特性分類:存儲(chǔ)設(shè)備、I/O設(shè)備按設(shè)備的共享屬性分類:獨(dú)占設(shè)備:在一段時(shí)間內(nèi)只允許一個(gè)用戶進(jìn)程使用的設(shè)備;共享設(shè)備:在一段時(shí)間內(nèi)允許多個(gè)進(jìn)程使用的設(shè)備;虛擬設(shè)備:通過虛擬技術(shù)將一臺(tái)獨(dú)占設(shè)備改造成若干臺(tái)邏輯設(shè)備;按信息交換單位分類:塊設(shè)備、字符設(shè)備;按傳輸速度分類:低速設(shè)備、中速設(shè)備、高速設(shè)備;3I/O設(shè)備管理功能設(shè)備分配:按照設(shè)備類型和相應(yīng)的分配算法決定將I/O分配給哪一個(gè)要求使用該設(shè)備的進(jìn)程;設(shè)備處理:實(shí)現(xiàn)CPU和設(shè)備控制器之間的通信;緩沖管理:緩和CPU與I/O設(shè)備速度不匹配的矛盾;設(shè)備獨(dú)立性:應(yīng)用程序獨(dú)立于實(shí)際使用的物理設(shè)備;4設(shè)備控制器設(shè)備控制器:設(shè)備的電子部分,應(yīng)具有:接收和識(shí)別來自CPU的各種命令;實(shí)現(xiàn)CPU與設(shè)備控制器、設(shè)備控制器與設(shè)備之間的數(shù)據(jù)交換;記錄設(shè)備的狀態(tài)供CPU查詢;可識(shí)別控制的每個(gè)設(shè)備的地址;5I/O通道I/O通道,具備功能:接收CPU發(fā)來的I/O指令,選擇外圍設(shè)備連接;執(zhí)行CPU為通道組織的通道程序;給出外圍設(shè)備的有關(guān)地址;給出主存緩沖區(qū)的首地址;控制外圍設(shè)備與主存緩沖區(qū)之間數(shù)據(jù)交換的個(gè)數(shù),計(jì)數(shù),判斷是否結(jié)束;指定傳送工作結(jié)束時(shí)要進(jìn)行的操作;檢查外圍設(shè)備的工作狀態(tài)是否正?;蚬收?;在數(shù)據(jù)傳輸過程中完成必要的格式變換;6I/O通道(續(xù))根據(jù)信息交換方式的不同:字符多路通道:以字節(jié)為單位傳輸信息,可以分時(shí)地執(zhí)行多個(gè)通道程序;主要用于連接以字節(jié)為單位的低速I/O設(shè)備;數(shù)組選擇通道:可以連接多臺(tái)高速設(shè)備,只含有一個(gè)分配型子通道,在一段時(shí)間內(nèi)只能執(zhí)行一道通道程序;數(shù)組多路通道:先為一臺(tái)設(shè)備執(zhí)行一條通道指令,然后自動(dòng)轉(zhuǎn)接,為另一臺(tái)設(shè)備執(zhí)行通道指令;7I/O軟件層次I/O軟件設(shè)計(jì)基本思想:將設(shè)備管理軟件組織成一種層次結(jié)構(gòu)。底層軟件與硬件相關(guān),用來屏蔽硬件的具體細(xì)節(jié);高層軟件為用戶提供一個(gè)友好、清晰而統(tǒng)一的接口。分為4層:中斷處理程序、設(shè)備驅(qū)動(dòng)程序、與設(shè)備無關(guān)的軟件、用戶空間的軟件;8中斷處理程序中斷是指計(jì)算機(jī)系統(tǒng)內(nèi)發(fā)生了某一急需處理的事件,使得CPU暫時(shí)中止當(dāng)前正在執(zhí)行的程序,而轉(zhuǎn)去執(zhí)行相應(yīng)的事件處理程序,待處理完畢后又返回到原來被中斷處繼續(xù)執(zhí)行;當(dāng)設(shè)備完成I/O操作時(shí),便向CPU發(fā)送一個(gè)中斷信號(hào),CPU響應(yīng)中斷后便轉(zhuǎn)入中斷處理程序;9中斷處理程序(續(xù))中斷處理過程步驟:?jiǎn)拘驯蛔枞尿?qū)動(dòng)程序進(jìn)程;保存被中斷進(jìn)程的CPU環(huán)境;分析中斷原因,轉(zhuǎn)入相應(yīng)的設(shè)備中斷處理程序;進(jìn)行中斷處理,判斷設(shè)備狀態(tài),做相應(yīng)處理;恢復(fù)被中斷進(jìn)程的現(xiàn)場(chǎng);10設(shè)備驅(qū)動(dòng)程序所有與設(shè)備相關(guān)的代碼放在設(shè)備驅(qū)動(dòng)程序中,應(yīng)為每一類設(shè)備配置一個(gè)驅(qū)動(dòng)程序,或?yàn)橐活惷芮邢嚓P(guān)的設(shè)備配置一個(gè)驅(qū)動(dòng)程序;任務(wù):接收來自與設(shè)備無關(guān)的上層軟件的抽象請(qǐng)求,將這些請(qǐng)求轉(zhuǎn)換成設(shè)備控制器可以接受的具體命令,再將這些命令發(fā)送給設(shè)備控制器,并監(jiān)督這些命令是否正確執(zhí)行;空閑則立即執(zhí)行,否則插入等待隊(duì)列;磁盤驅(qū)動(dòng)程序:第一步將抽象請(qǐng)求轉(zhuǎn)換成具體形式,計(jì)算請(qǐng)求塊實(shí)際在磁盤上的位置,檢查驅(qū)動(dòng)器的電機(jī)是否正在運(yùn)轉(zhuǎn),確定磁頭是否定位在正確的柱面上;決定需要設(shè)備控制器做哪些操作,以及按照什么樣的次序執(zhí)行操作;11設(shè)備驅(qū)動(dòng)程序(續(xù))設(shè)備驅(qū)動(dòng)程序發(fā)出命令后,系統(tǒng)處理方式:設(shè)備驅(qū)動(dòng)程序必須等待控制器完成操作,所以設(shè)備驅(qū)動(dòng)程序阻塞自己,直到中斷信號(hào)將其喚醒;操作很快完成,基本沒有延遲,設(shè)備驅(qū)動(dòng)程序不需要阻塞;操作完成后,檢查是否有錯(cuò);若正常,設(shè)備驅(qū)動(dòng)程序負(fù)責(zé)將數(shù)據(jù)傳送到與設(shè)備無關(guān)的軟件層;向調(diào)用者返回一些用于錯(cuò)誤報(bào)告的狀態(tài)信息;若還有其他未完成請(qǐng)求在排隊(duì),則選擇一個(gè)啟動(dòng)執(zhí)行;若隊(duì)列中沒有未完成的請(qǐng)求,則等待下一個(gè)請(qǐng)求;12與設(shè)備無關(guān)的I/O軟件基本任務(wù):實(shí)現(xiàn)一般設(shè)備都需要的I/O功能,并向用戶空間軟件提供一個(gè)統(tǒng)一的接口;設(shè)備命名:負(fù)責(zé)把設(shè)備的符號(hào)名映射到相應(yīng)的設(shè)備驅(qū)動(dòng)程序上;設(shè)備保護(hù):對(duì)設(shè)備進(jìn)行必要的保護(hù),防止無授權(quán)的應(yīng)用或用戶非法使用;提供與設(shè)備無關(guān)的邏輯塊:向高層軟件隱蔽物理細(xì)節(jié),并給上層提供統(tǒng)一的邏輯塊接口;13與設(shè)備無關(guān)的I/O軟件(續(xù))4.緩沖:塊設(shè)備,硬件一般一次讀寫一個(gè)完整的塊,而用戶進(jìn)程是按任意單位讀寫數(shù)據(jù)的;字符設(shè)備,當(dāng)用戶進(jìn)程輸出數(shù)據(jù)的速度快于設(shè)備輸出數(shù)據(jù)的速度時(shí),必須使用緩沖;5.存儲(chǔ)設(shè)備的塊分配:在創(chuàng)建一個(gè)文件并向其中寫入數(shù)據(jù)時(shí),通常要為該文件分配新的存儲(chǔ)塊;空閑磁盤塊表或位示圖、分配算法與設(shè)備無關(guān);6.獨(dú)占設(shè)備的分配和釋放:對(duì)設(shè)備的使用請(qǐng)求進(jìn)行檢查,并根據(jù)設(shè)備的可用狀況決定是否接收該請(qǐng)求;7.出錯(cuò)處理:大多數(shù)出錯(cuò)處理由設(shè)備驅(qū)動(dòng)程序完成;向調(diào)用者報(bào)告錯(cuò)誤;打印錯(cuò)誤信息;14用戶空間的I/O軟件I/O系統(tǒng)調(diào)用,庫函數(shù):格式化輸入/輸出;Spooling系統(tǒng),多道程序設(shè)計(jì)系統(tǒng)中處理獨(dú)占I/O設(shè)備一種方法:守護(hù)進(jìn)程、特殊目錄;打印機(jī)、網(wǎng)絡(luò)傳輸、Internet郵件;15程序直接控制方式早期計(jì)算機(jī)系統(tǒng),沒有中斷機(jī)構(gòu);數(shù)據(jù)輸入為例,由處理機(jī)向設(shè)備控制器發(fā)出一條I/O指令,啟動(dòng)設(shè)備進(jìn)行輸入,在設(shè)備輸入數(shù)據(jù)期間,處理機(jī)通過循環(huán)執(zhí)行測(cè)試指令,不間斷檢測(cè)設(shè)備狀態(tài)寄存器的值,當(dāng)狀態(tài)寄存器的值顯示設(shè)備輸入完成時(shí),處理機(jī)將數(shù)據(jù)寄存器中的數(shù)據(jù)取出,送入內(nèi)存指定單元;工作過程簡(jiǎn)單,由于CPU的高速性和I/O設(shè)備的低速性之間的矛盾,CPU的絕大部分時(shí)間都處于循環(huán)測(cè)試中,致使CPU的利用率相當(dāng)?shù)停?6中斷控制方式現(xiàn)代計(jì)算機(jī)系統(tǒng)廣泛采用,減少CPU等待時(shí)間,提高CPU與設(shè)備的并行工作程度;數(shù)據(jù)輸入為例,由CPU向設(shè)備控制器發(fā)出指令啟動(dòng)外設(shè)輸入數(shù)據(jù);在設(shè)備輸入數(shù)據(jù)的同時(shí),CPU可以去做其他工作;當(dāng)設(shè)備輸入完成時(shí),設(shè)備控制器會(huì)向CPU發(fā)送一個(gè)中斷信號(hào),CPU接收到中斷信號(hào)之后,執(zhí)行設(shè)備中斷處理程序;中斷處理程序?qū)⑤斎霐?shù)據(jù)寄存器中的數(shù)據(jù)傳送到某一特定內(nèi)存單元中,供要求輸入的進(jìn)程使用;與直接控制方式相比,大大提高CPU利用率,支持CPU與設(shè)備的并行工作;輸入/輸出數(shù)據(jù)時(shí),中斷發(fā)生次數(shù)較多,耗費(fèi)大量的CPU時(shí)間;17直接內(nèi)存存取控制方式DMA,用于高速外部設(shè)備與內(nèi)存之間批量數(shù)據(jù)的傳輸;DMA控制器包括:地址總線、數(shù)據(jù)總線和控制寄存器;基本思想:在外圍設(shè)備和內(nèi)存之間開辟直接的數(shù)據(jù)交換通路;使用專門的DMA控制器,利用總線程控制權(quán)的方法,由DMA控制器送出內(nèi)存地址和發(fā)出內(nèi)存讀、設(shè)備寫或設(shè)備讀、內(nèi)存寫的控制信號(hào),完成內(nèi)存和設(shè)備之間的直接數(shù)據(jù)傳送,不用CPU干預(yù);當(dāng)本次DMA傳送的數(shù)據(jù)全部完成時(shí)才產(chǎn)生中斷,請(qǐng)求CPU進(jìn)行結(jié)束處理;DMA控制方式與中斷控制方式的主要區(qū)別:中斷控制方式在每個(gè)數(shù)據(jù)傳送完成后中斷CPU,DMA控制方式在所要求傳送的數(shù)據(jù)全部傳送結(jié)束時(shí)中斷CPU;中斷控制方式的數(shù)據(jù)傳送是在中斷處理時(shí)由CPU控制完成,DMA控制方式的數(shù)據(jù)傳送則是在DMA控制器的控制下完成。18通道控制方式與DMA方式類似,以內(nèi)存為中心,實(shí)現(xiàn)設(shè)備與內(nèi)存直接交換數(shù)據(jù)的控制方式;數(shù)據(jù)輸入為例,CPU發(fā)出啟動(dòng)指令明確要執(zhí)行的I/O操作、所使用的設(shè)備和通道;當(dāng)對(duì)應(yīng)通道接收到CPU發(fā)來的啟動(dòng)指令后,把存放在內(nèi)存中的通道程序讀出,并執(zhí)行通道程序,控制設(shè)備將數(shù)據(jù)傳送到內(nèi)存中指定的區(qū)域;在設(shè)備進(jìn)行輸入的同時(shí),CPU可以去做其他工作;當(dāng)數(shù)據(jù)傳送結(jié)束時(shí),設(shè)備控制器向CPU發(fā)送中斷請(qǐng)求;CPU收到中斷信號(hào)后轉(zhuǎn)去執(zhí)行中斷處理程序,中斷結(jié)束后返回中斷程序;相當(dāng)于一個(gè)功能簡(jiǎn)單的處理機(jī);19緩沖技術(shù)的引入引入原因:改善CPU與I/O設(shè)備間速度不匹配的矛盾;可以減少對(duì)CPU的中斷頻率,放寬對(duì)中斷響應(yīng)時(shí)間的限制;提高CPU和I/O設(shè)備之間的并行性,提高系統(tǒng)的吞吐量和設(shè)備的利用率;實(shí)現(xiàn)方法:采用硬件緩沖器實(shí)現(xiàn);緩沖區(qū):在內(nèi)存中劃出一塊存儲(chǔ)區(qū),專門用來臨時(shí)存放輸入/輸出數(shù)據(jù);20緩沖的分類單緩沖:最簡(jiǎn)單的緩沖形式,在設(shè)備和處理機(jī)之間設(shè)置一個(gè)緩沖器;設(shè)備和處理機(jī)交換數(shù)據(jù)時(shí),先把被交換數(shù)據(jù)寫入緩沖器,然后,需要數(shù)據(jù)的設(shè)備或處理機(jī)從緩沖器取走數(shù)據(jù);緩沖器屬于臨界資源;雙緩沖:提高處理機(jī)與設(shè)備的并行操作程度;輪換使用兩個(gè)緩沖區(qū);循環(huán)緩沖:包含多個(gè)大小相等的緩沖區(qū),

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論