計(jì)算機(jī)操作系統(tǒng)-第四版-湯小丹-梁紅兵-哲鳳屏-第6章(2016-2017-1)_第1頁(yè)
計(jì)算機(jī)操作系統(tǒng)-第四版-湯小丹-梁紅兵-哲鳳屏-第6章(2016-2017-1)_第2頁(yè)
計(jì)算機(jī)操作系統(tǒng)-第四版-湯小丹-梁紅兵-哲鳳屏-第6章(2016-2017-1)_第3頁(yè)
計(jì)算機(jī)操作系統(tǒng)-第四版-湯小丹-梁紅兵-哲鳳屏-第6章(2016-2017-1)_第4頁(yè)
計(jì)算機(jī)操作系統(tǒng)-第四版-湯小丹-梁紅兵-哲鳳屏-第6章(2016-2017-1)_第5頁(yè)
已閱讀5頁(yè),還剩61頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

計(jì)算機(jī)操作系統(tǒng)-第四版-湯小丹-梁紅兵-哲鳳屏-第6章(2016-2017-1)第一頁(yè),共67頁(yè)。6.1I/O系統(tǒng)的功能、模型和接口6.1.1I/O系統(tǒng)的基本功能1.隱藏物理設(shè)備的細(xì)節(jié)I/O系統(tǒng)必須通過(guò)對(duì)設(shè)備加以適當(dāng)?shù)某橄?,以隱藏物理設(shè)備的實(shí)現(xiàn)細(xì)節(jié),僅向上層進(jìn)程提供少量的、抽象的讀/寫命令。2.與設(shè)備的無(wú)關(guān)性方便用戶對(duì)設(shè)備的使用。一方面,用戶不僅可以使用抽象的I/O命令,還可使用抽象的邏輯設(shè)備名來(lái)使用設(shè)備;另一方面,可有效提高OS的可移植性和易適應(yīng)性。第二頁(yè),共67頁(yè)。6.1.1I/O系統(tǒng)的基本功能3.提高處理機(jī)和I/O設(shè)備的利用率該功能盡可能讓處理機(jī)和I/O設(shè)備并行操作。處理機(jī)應(yīng)能快速響應(yīng)用戶的I/O請(qǐng)求;減少在每個(gè)I/O設(shè)備運(yùn)行時(shí)處理機(jī)的干預(yù)時(shí)間。4.對(duì)I/O設(shè)備進(jìn)行控制有四種控制方式:①采用輪詢的可編程I/O方式;②采用中斷的可編程I/O方式;③直接存儲(chǔ)器方式;④I/O通道方式。具體采用何種控制方式,與I/O設(shè)備的傳輸速率、傳輸?shù)臄?shù)據(jù)單位等因素有關(guān)。第三頁(yè),共67頁(yè)。6.1.1I/O系統(tǒng)的基本功能5.確保對(duì)設(shè)備的正確共享(1)獨(dú)占設(shè)備,進(jìn)程互斥地訪問(wèn)這類設(shè)備,即系統(tǒng)一旦把這類設(shè)備分配給某進(jìn)程后,便由該進(jìn)程獨(dú)占,直至用完釋放。(2)共享設(shè)備,一段時(shí)間內(nèi)允許多個(gè)進(jìn)程同時(shí)訪問(wèn)的設(shè)備。6.錯(cuò)誤處理臨時(shí)性錯(cuò)誤和持久性錯(cuò)誤。對(duì)于臨時(shí)性錯(cuò)誤,可通過(guò)重試操作來(lái)糾正;對(duì)于持久性錯(cuò)誤,向上層報(bào)告。第四頁(yè),共67頁(yè)。6.1.2I/O系統(tǒng)的層次結(jié)構(gòu)和模型I/O軟件涉及的面很寬,向下與硬件有密切關(guān)系,向上與文件系統(tǒng)、虛擬存儲(chǔ)器系統(tǒng)和用戶直接交互。1.I/O軟件的層次結(jié)構(gòu):通常把I/O軟件組織成四個(gè)層次:第五頁(yè),共67頁(yè)。2.I/O系統(tǒng)中各種模塊之間的層次視圖第六頁(yè),共67頁(yè)。6.1.2I/O系統(tǒng)的層次結(jié)構(gòu)和模型2.I/O系統(tǒng)的分層(1)中斷處理程序。處于I/O系統(tǒng)的底層,直接與硬件進(jìn)行交互。當(dāng)有I/O設(shè)備發(fā)來(lái)中斷請(qǐng)求信號(hào)時(shí),在中斷硬件做了初步處理后,便轉(zhuǎn)向中斷處理程序。(2)設(shè)備驅(qū)動(dòng)程序。處于I/O系統(tǒng)的次底層,是進(jìn)程和設(shè)備控制器之間的通信程序。將上層發(fā)來(lái)的抽象I/O請(qǐng)求轉(zhuǎn)換為對(duì)I/O設(shè)備的具體命令和參數(shù),并把它裝入到設(shè)備控制器中的命令和參數(shù)寄存器中,或者相反。(3)設(shè)備獨(dú)立性軟件。I/O軟件獨(dú)立于具體使用的物理設(shè)備。第七頁(yè),共67頁(yè)。6.1.3I/O系統(tǒng)接口1.塊設(shè)備接口塊設(shè)備指數(shù)據(jù)的存取和傳輸都是以數(shù)據(jù)塊為單位的設(shè)備。塊設(shè)備特征:傳輸速率較高;可尋址,即能指定數(shù)據(jù)的輸入源地址及輸出的目標(biāo)地址,可隨機(jī)地讀/寫磁盤中任一塊。將抽象命令映射為低層操作。將上層發(fā)來(lái)的對(duì)文件或設(shè)備的打開(kāi)、讀、寫和關(guān)閉等抽象命令映射為設(shè)備能識(shí)別的較低層具體操作。隱藏了磁盤的二維結(jié)構(gòu)。塊設(shè)備接口將磁盤上的所有扇區(qū)從0到n-1依次編號(hào),則將磁盤的二維結(jié)構(gòu)改為一種線性序列。塊設(shè)備管理程序與高層之間的接口。第八頁(yè),共67頁(yè)。6.1.3I/O系統(tǒng)接口2.流設(shè)備接口又稱字符設(shè)備接口,反映了字符設(shè)備的本質(zhì)特征。字符設(shè)備。指數(shù)據(jù)的存取和傳輸是以字符為單位的設(shè)備,其傳輸率較低、不可尋址。常采用中斷驅(qū)動(dòng)方式。get和put操作。字符設(shè)備采取順序存取方式。通常為字符設(shè)備建立一個(gè)字符緩沖區(qū),設(shè)備的I/O字符流順序地進(jìn)入字符緩沖區(qū),或從字符緩沖區(qū)順序地送出到設(shè)備。in-control指令。該指令包含了許多參數(shù),每個(gè)參數(shù)表示一個(gè)與具體設(shè)備相關(guān)的特定功能。第九頁(yè),共67頁(yè)。6.2I/O設(shè)備和設(shè)備控制器6.2.1I/O設(shè)備1.I/O設(shè)備的類型2)按傳輸速率分類,I/O設(shè)備分為三類:低速設(shè)備、中速設(shè)備、高速設(shè)備。I/O設(shè)備由執(zhí)行I/O操作的機(jī)械部分和執(zhí)行控制I/O的電子部件組成。執(zhí)行I/O操作的機(jī)械部分是一般的I/O設(shè)備;執(zhí)行控制I/O的電子部件稱為設(shè)備控制器或適配器(adapter)。1)按使用特性分類,I/O設(shè)備分為存儲(chǔ)設(shè)備、I/O設(shè)備。第十頁(yè),共67頁(yè)。2.設(shè)備與控制器之間的接口控制信號(hào)線:設(shè)備控制器向I/O設(shè)備發(fā)送控制信號(hào)時(shí)的通路,

該信號(hào)規(guī)定了設(shè)備要執(zhí)行的操作。狀態(tài)信號(hào)線:傳送指示設(shè)備當(dāng)前狀態(tài)的信號(hào)。6.2.1I/O設(shè)備11.23+第十一頁(yè),共67頁(yè)。6.2.2設(shè)備控制器1.設(shè)備控制器的基本功能1)接收和識(shí)別命令,能接收并識(shí)別處理機(jī)發(fā)來(lái)的多種命令。2)數(shù)據(jù)交換。數(shù)據(jù)寄存器3)標(biāo)識(shí)和報(bào)告設(shè)備的狀態(tài)。狀態(tài)寄存器4)地址識(shí)別。識(shí)別控制的每個(gè)設(shè)備的地址,配置地址譯碼器5)數(shù)據(jù)緩沖。在輸出時(shí),緩沖區(qū)暫存由主機(jī)高速傳來(lái)的數(shù)據(jù);在輸入時(shí),緩沖區(qū)暫存從設(shè)備送來(lái)的數(shù)據(jù)。6)差錯(cuò)控制。控制一個(gè)或多個(gè)I/O設(shè)備,以實(shí)現(xiàn)I/O設(shè)備和計(jì)算機(jī)之間的數(shù)據(jù)交換。第十二頁(yè),共67頁(yè)。2.設(shè)備控制器的組成圖6-4設(shè)備控制器的組成6.2.2設(shè)備控制器11.25?第十三頁(yè),共67頁(yè)。6.2.4I/O通道1.I/O通道設(shè)備的引入I/O通道是一種特殊的處理機(jī),它建立了獨(dú)立的I/O操作,承擔(dān)了原來(lái)由CPU處理的I/O任務(wù)。I/O通道具有執(zhí)行I/O指令的能力,并通過(guò)執(zhí)行通道(I/O)程序來(lái)控制I/O操作。

I/O通道與一般的處理機(jī)不同:一、指令類型單一,主要局限于與I/O操作有關(guān)的指令;二、通道沒(méi)有自己的內(nèi)存,其所執(zhí)行的通道程序是放在主機(jī)的內(nèi)存中的。第十四頁(yè),共67頁(yè)。2.通道類型1)字節(jié)多路通道(ByteMultiplexorChannel)圖6-6字節(jié)多路通道的工作原理6.2.4I/O通道第十五頁(yè),共67頁(yè)。2)數(shù)組選擇通道(BlockSelectorChannel)數(shù)組選擇通道按數(shù)組方式進(jìn)行數(shù)據(jù)傳送,可以連接多臺(tái)高速設(shè)備。然而,它只含有一個(gè)分配型子通道,在一段時(shí)間內(nèi)只能執(zhí)行一道通道程序,控制一臺(tái)設(shè)備進(jìn)行數(shù)據(jù)傳送,其利用率很低。6.2.4I/O通道3)數(shù)組多路通道(BlockMultiplexorChannel)

數(shù)組多路通道將數(shù)組選擇通道傳輸速率高和字節(jié)多路通道相結(jié)合,使得各子通道分時(shí)并行操作。它含有多個(gè)非分配型子通道。第十六頁(yè),共67頁(yè)。3.“瓶頸”問(wèn)題6.2.4I/O通道圖6-8多通路I/O系統(tǒng)圖6-7單通路I/O系統(tǒng)第十七頁(yè),共67頁(yè)。6.3中斷機(jī)構(gòu)和中斷處理程序6.3.1中斷簡(jiǎn)介1.中斷和陷入中斷指CPU對(duì)I/O設(shè)備發(fā)來(lái)的中斷信號(hào)的一種響應(yīng)。CPU暫停正在執(zhí)行的程序,保留CPU環(huán)境后,自動(dòng)轉(zhuǎn)去執(zhí)行該I/O設(shè)備的中斷處理程序。執(zhí)行完后,再回到斷點(diǎn),繼續(xù)執(zhí)行原來(lái)的程序。中斷是由外部設(shè)備引起的,稱外中斷;由CPU內(nèi)部事件所引起的中斷,稱為內(nèi)中斷或陷入。中斷是多道程序得以實(shí)現(xiàn)的基礎(chǔ),也是設(shè)備管理的基礎(chǔ)。第十八頁(yè),共67頁(yè)。6.3.1中斷簡(jiǎn)介2.中斷向量表和中斷優(yōu)先級(jí)每種設(shè)備配以相應(yīng)的中斷服務(wù)程序,中斷服務(wù)程序入口地址的偏移量與段基值構(gòu)成中斷向量。所有中斷向量的集合按順序存放到存儲(chǔ)器的某一區(qū)域內(nèi),這個(gè)存儲(chǔ)區(qū)稱為中斷向量表。每一個(gè)設(shè)備的中斷請(qǐng)求規(guī)定一個(gè)中斷號(hào)。當(dāng)有多個(gè)中斷信號(hào)源,系統(tǒng)需根據(jù)它們規(guī)定的中斷優(yōu)先級(jí)確定響應(yīng)。對(duì)于多中斷信號(hào)源的情況,當(dāng)處理機(jī)正在處理一個(gè)中斷時(shí),又來(lái)了一個(gè)新的中斷請(qǐng)求時(shí),有兩種處理方式:屏蔽(禁止)中斷與嵌套中斷。第十九頁(yè),共67頁(yè)。6.3.2中斷處理程序當(dāng)一個(gè)進(jìn)程請(qǐng)求I/O操作時(shí),該進(jìn)程將被掛起,直到I/O設(shè)備完成I/O操作后,設(shè)備控制器便向CPU發(fā)送一個(gè)中斷請(qǐng)求,CPU響應(yīng)后便轉(zhuǎn)向中斷處理程序,執(zhí)行相應(yīng)的處理,處理完后解除相應(yīng)進(jìn)程的阻塞狀態(tài),整個(gè)處理過(guò)程有以下幾個(gè)步驟:(1)測(cè)定是否有未響應(yīng)的中斷信號(hào);(2)保護(hù)被中斷進(jìn)程的CPU環(huán)境;(3)轉(zhuǎn)入相應(yīng)的設(shè)備處理程序;(4)中斷處理;(5)恢復(fù)CPU的現(xiàn)場(chǎng)并退出中斷。第二十頁(yè),共67頁(yè)。圖6-10中斷現(xiàn)場(chǎng)保護(hù)示意圖

第二十一頁(yè),共67頁(yè)。圖6-11中斷處理流程

第二十二頁(yè),共67頁(yè)。6.4設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序是I/O系統(tǒng)的高層與設(shè)備控制器之間的通信程序,其主要任務(wù)是接收上層軟件發(fā)來(lái)的抽象I/O要求,再把它轉(zhuǎn)換為具體要求后,發(fā)送給設(shè)備控制器,啟動(dòng)設(shè)備去執(zhí)行;反之,它也將由設(shè)備控制器發(fā)來(lái)的信號(hào)傳送給上層軟件。第二十三頁(yè),共67頁(yè)。6.4.1設(shè)備驅(qū)動(dòng)程序概述1.設(shè)備驅(qū)動(dòng)程序的功能接收由與設(shè)備無(wú)關(guān)的軟件發(fā)來(lái)的命令和參數(shù),并將命令中的抽象要求轉(zhuǎn)換為與設(shè)備相關(guān)的低層操作序列。檢查用戶I/O請(qǐng)求的合法性,了解I/O設(shè)備的工作狀態(tài),傳遞與I/O設(shè)備操作有關(guān)的參數(shù),設(shè)置設(shè)備的工作方式.發(fā)出I/O命令。如果設(shè)備空閑,便立即啟動(dòng)I/O設(shè)備,完成指定的I/O操作;反之,則將請(qǐng)求者的請(qǐng)求塊掛在設(shè)備隊(duì)列上等待。及時(shí)響應(yīng)由設(shè)備控制器發(fā)來(lái)的中斷請(qǐng)求,并根據(jù)其中斷類型,調(diào)用相應(yīng)的中斷處理程序進(jìn)行處理。第二十四頁(yè),共67頁(yè)。6.4.1設(shè)備驅(qū)動(dòng)程序概述2.設(shè)備驅(qū)動(dòng)程序的特點(diǎn)(1)驅(qū)動(dòng)程序?qū)⑦M(jìn)程的I/O請(qǐng)求經(jīng)過(guò)轉(zhuǎn)換后,傳送給控制器;把控制器中所記錄的設(shè)備狀態(tài)和I/O操作完成情況及時(shí)地反映給請(qǐng)求I/O的進(jìn)程;(2)對(duì)不同類型的設(shè)備應(yīng)配置不同的驅(qū)動(dòng)程序;(3)驅(qū)動(dòng)程序與I/O設(shè)備所采用的I/O控制方式緊密相關(guān);(4)由于驅(qū)動(dòng)程序與硬件緊密相關(guān),因而其中的一部分必須用匯編語(yǔ)言書寫;(5)驅(qū)動(dòng)程序應(yīng)允許可重入。第二十五頁(yè),共67頁(yè)。6.4.1設(shè)備驅(qū)動(dòng)程序概述3.設(shè)備處理方式為每一類設(shè)備設(shè)置一個(gè)進(jìn)程,專門用于執(zhí)行這類設(shè)備的I/O操作;在整個(gè)系統(tǒng)中設(shè)置一個(gè)I/O進(jìn)程,專門用于執(zhí)行系統(tǒng)中所有各類設(shè)備的I/O操作;不設(shè)置專門的設(shè)備處理進(jìn)程,而只為各類設(shè)備設(shè)置相應(yīng)的設(shè)備驅(qū)動(dòng)程序,供用戶或系統(tǒng)進(jìn)程調(diào)用。在不同的操作系統(tǒng)中,所采用的設(shè)備處理方式不同:第二十六頁(yè),共67頁(yè)。6.4.2設(shè)備驅(qū)動(dòng)程序的處理過(guò)程設(shè)備驅(qū)動(dòng)程序的主要任務(wù)是啟動(dòng)指定設(shè)備,完成上層指定的I/O工作。其處理過(guò)程:將抽象要求轉(zhuǎn)換為具體要求。對(duì)服務(wù)請(qǐng)求進(jìn)行校驗(yàn)。驅(qū)動(dòng)程序在啟動(dòng)I/O設(shè)備之前,檢查用戶的I/O請(qǐng)求是不是該設(shè)備能夠執(zhí)行的。(3)檢查設(shè)備的狀態(tài)。檢查設(shè)備是否處于就緒狀態(tài)。(4)傳送必要的參數(shù)。(5)啟動(dòng)I/O設(shè)備。驅(qū)動(dòng)程序向控制器中的命令寄存器傳送相應(yīng)的控制命令。第二十七頁(yè),共67頁(yè)。6.4.3對(duì)I/O設(shè)備的控制方式在處理機(jī)向控制器發(fā)出一條I/O指令,啟動(dòng)輸入設(shè)備輸入數(shù)據(jù)時(shí),同時(shí)將狀態(tài)寄存器中的忙/閑busy標(biāo)志置為1,然后不斷循環(huán)測(cè)試busy。當(dāng)busy=1時(shí),表示輸入機(jī)尚未輸完一個(gè)字,處理機(jī)繼續(xù)對(duì)該標(biāo)志進(jìn)行測(cè)試,直至busy=0,表明輸入機(jī)已將輸入數(shù)據(jù)送入控制器的數(shù)據(jù)寄存器中。

1.使用輪詢的可編程I/O方式在程序I/O方式中,CPU的絕大部分時(shí)間都處于等待I/O設(shè)備完成數(shù)據(jù)I/O的循環(huán)測(cè)試中,造成對(duì)CPU的極大浪費(fèi)。第二十八頁(yè),共67頁(yè)。2.使用中斷的可編程I/O方式

在I/O設(shè)備輸入每個(gè)數(shù)據(jù)的過(guò)程中,由于無(wú)須CPU干預(yù),因而可使CPU與I/O設(shè)備并行工作。僅當(dāng)輸完一個(gè)數(shù)據(jù)時(shí),才需CPU花費(fèi)極短的時(shí)間去做些中斷處理。可見(jiàn),這樣可使CPU和I/O設(shè)備都處于忙碌狀態(tài),從而提高了整個(gè)系統(tǒng)的資源利用率及吞吐量。

當(dāng)某進(jìn)程要啟動(dòng)某個(gè)I/O設(shè)備工作時(shí),便由CPU向相應(yīng)的設(shè)備控制器發(fā)出一條I/O命令,然后立即返回繼續(xù)執(zhí)行原來(lái)的任務(wù)。6.4.3對(duì)I/O設(shè)備的控制方式第二十九頁(yè),共67頁(yè)。圖5-7程序I/O和中斷驅(qū)動(dòng)方式的流程第三十頁(yè),共67頁(yè)。3.直接存儲(chǔ)器訪問(wèn)方式1)DMA(DirectMemoryAccess)方式的引入該方式的特點(diǎn)是:①數(shù)據(jù)傳輸?shù)幕締挝皇菙?shù)據(jù)塊;②所傳送的數(shù)據(jù)是從設(shè)備直接送入內(nèi)存的,或者相反;③僅在傳送一個(gè)或多個(gè)數(shù)據(jù)塊的開(kāi)始和結(jié)束時(shí),才需CPU干預(yù),整塊數(shù)據(jù)的傳送是在控制器的控制下完成的。6.4.3對(duì)I/O設(shè)備的控制方式采用中斷驅(qū)動(dòng)I/O方式時(shí),CPU以字節(jié)為單位進(jìn)行干預(yù)。第三十一頁(yè),共67頁(yè)。2)DMA控制器的組成3.直接存儲(chǔ)器訪問(wèn)方式命令/狀態(tài)寄存器CR;內(nèi)存地址寄存器MAR;數(shù)據(jù)寄存器DR;數(shù)據(jù)計(jì)數(shù)器DC第三十二頁(yè),共67頁(yè)。3)DMA工作過(guò)程圖6-15DMA方式的工作流程3.直接存儲(chǔ)器訪問(wèn)方式第三十三頁(yè),共67頁(yè)。6.4.3對(duì)I/O設(shè)備的控制方式1)I/O通道控制方式的引入I/O通道方式是DMA方式的發(fā)展,可實(shí)現(xiàn)CPU、通道和I/O設(shè)備三者的并行操作,更有效地提高整個(gè)系統(tǒng)的資源利用率。4.I/O通道控制方式例如,當(dāng)CPU要完成一組相關(guān)的讀(或?qū)?操作及有關(guān)控制時(shí),只需向I/O通道發(fā)送一條I/O指令,以給出其所要執(zhí)行的通道程序的首址和要訪問(wèn)的I/O設(shè)備,通道接到該指令后,通過(guò)執(zhí)行通道程序便可完成CPU指定的I/O任務(wù)。第三十四頁(yè),共67頁(yè)。操作PR計(jì)數(shù)內(nèi)存地址WRITE0080813WRITE001401034WRITE01605830WRITE013002000WRITE002501850WRITE112507204.I/O通道控制方式2)通道程序操作碼。(2)內(nèi)存地址。(3)計(jì)數(shù)。(4)通道程序結(jié)束位P。(5)記錄結(jié)束標(biāo)志R。第三十五頁(yè),共67頁(yè)。為了實(shí)現(xiàn)設(shè)備獨(dú)立性(DeviceIndependence),在設(shè)備驅(qū)動(dòng)程序之上設(shè)置一層軟件,稱為與設(shè)備無(wú)關(guān)的I/O軟件,或設(shè)備獨(dú)立性軟件。其基本含義是:應(yīng)用程序獨(dú)立于具體使用的物理設(shè)備。

為了實(shí)現(xiàn)設(shè)備獨(dú)立性而引入了邏輯設(shè)備和物理設(shè)備這兩個(gè)概念。在應(yīng)用程序中,使用邏輯設(shè)備名稱來(lái)請(qǐng)求使用某類設(shè)備;而系統(tǒng)在實(shí)際執(zhí)行時(shí),還必須使用物理設(shè)備名稱。因此,系統(tǒng)須具有將邏輯設(shè)備名稱轉(zhuǎn)換為某物理設(shè)備名稱的功能。6.5與設(shè)備無(wú)關(guān)的I/O軟件第三十六頁(yè),共67頁(yè)。①設(shè)備驅(qū)動(dòng)程序的統(tǒng)一接口。一方面,每個(gè)設(shè)備驅(qū)動(dòng)程序與OS之間都有著相同的接口;另一方面,將抽象的設(shè)備名映射到適當(dāng)?shù)尿?qū)動(dòng)程序上。對(duì)設(shè)備進(jìn)行保護(hù),禁止用戶直接訪問(wèn)設(shè)備,防止無(wú)權(quán)訪問(wèn)的用戶使用;②緩沖管理。對(duì)字符設(shè)備和塊設(shè)備的緩沖區(qū)進(jìn)行管理,以提高I/O的效率;③差錯(cuò)控制。暫時(shí)性錯(cuò)誤、持久性錯(cuò)誤④對(duì)獨(dú)立設(shè)備的分配與回收。⑤獨(dú)立于設(shè)備的邏輯數(shù)據(jù)塊

6.5.2與設(shè)備無(wú)關(guān)的軟件與設(shè)備無(wú)關(guān)的軟件執(zhí)行所有設(shè)備的公有操作:第三十七頁(yè),共67頁(yè)。6.5.3設(shè)備分配1.設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)第三十八頁(yè),共67頁(yè)。2.設(shè)備分配時(shí)應(yīng)考慮的因素設(shè)備的固有屬性獨(dú)占設(shè)備、共享設(shè)備、虛擬設(shè)備6.5.3設(shè)備分配2)設(shè)備分配算法先來(lái)先服務(wù)、優(yōu)先級(jí)高者優(yōu)先3)設(shè)備分配中的安全性安全分配方式:破壞造成死鎖的必要條件之一不安全分配方式:得到設(shè)備后不阻塞,繼續(xù)運(yùn)行可能造成死鎖第三十九頁(yè),共67頁(yè)。

1.邏輯設(shè)備表LUT(LogicalUnitTable)

邏輯設(shè)備表用于將應(yīng)用程序中所使用的邏輯設(shè)備名映射為物理設(shè)備名。在該表的每個(gè)表目中包含了三項(xiàng):邏輯設(shè)備名、物理設(shè)備名和設(shè)備驅(qū)動(dòng)程序的入口地址。6.5.4邏輯設(shè)備名到物理設(shè)備名映射的實(shí)現(xiàn)第四十頁(yè),共67頁(yè)。

當(dāng)進(jìn)程用邏輯設(shè)備名請(qǐng)求分配I/O設(shè)備時(shí),系統(tǒng)為它分配相應(yīng)的物理設(shè)備,并在LUT上建立一個(gè)表目,填上應(yīng)用程序中使用的邏輯設(shè)備名和系統(tǒng)分配的物理設(shè)備名,以及該設(shè)備驅(qū)動(dòng)程序的入口地址。當(dāng)以后進(jìn)程再利用該邏輯設(shè)備名請(qǐng)求I/O操作時(shí),系統(tǒng)通過(guò)查找LUT,便可找到物理設(shè)備和驅(qū)動(dòng)程序。

系統(tǒng)有兩種方式設(shè)置邏輯設(shè)備表:一種方式是在整個(gè)系統(tǒng)中只設(shè)置一張LUT;另一種方式為每個(gè)用戶設(shè)置一張LUT。6.5.4邏輯設(shè)備名到物理設(shè)備名映射的實(shí)現(xiàn)第四十一頁(yè),共67頁(yè)。

用戶層軟件必須通過(guò)一組系統(tǒng)調(diào)用來(lái)取得操作系統(tǒng)服務(wù)。在現(xiàn)代的高級(jí)語(yǔ)言以及C語(yǔ)言中,通常提供了與各系統(tǒng)調(diào)用一一對(duì)應(yīng)的庫(kù)函數(shù),用戶程序通過(guò)調(diào)用對(duì)應(yīng)的庫(kù)函數(shù)使用系統(tǒng)調(diào)用。這些庫(kù)函數(shù)與調(diào)用程序連接在一起,包含在運(yùn)行時(shí)裝入在內(nèi)存的二進(jìn)制程序中,如C語(yǔ)言中的庫(kù)函數(shù)write等,顯然這些庫(kù)函數(shù)的集合也是I/O系統(tǒng)的組成部分。但在許多現(xiàn)代操作系統(tǒng)中,系統(tǒng)調(diào)用本身已經(jīng)采用C語(yǔ)言編寫,并以函數(shù)形式提供,所以在使用C語(yǔ)言編寫的用戶程序中,可以直接使用這些系統(tǒng)調(diào)用。6.6用戶層的I/O軟件6.6.1系統(tǒng)調(diào)用與庫(kù)函數(shù)第四十二頁(yè),共67頁(yè)。6.6.2SPOOling技術(shù)1.假脫機(jī)(SPOOLing)技術(shù)

為了緩和CPU的高速性與I/O設(shè)備低速性間的矛盾而引入了脫機(jī)輸入、脫機(jī)輸出技術(shù)。該技術(shù)是利用專門的外圍控制機(jī),將低速I/O設(shè)備上的數(shù)據(jù)傳送到高速磁盤上;或者相反。這樣,便可在主機(jī)的直接控制下,實(shí)現(xiàn)脫機(jī)輸入、輸出功能。此時(shí)的外圍操作與CPU對(duì)數(shù)據(jù)的處理同時(shí)進(jìn)行,這種在聯(lián)機(jī)情況下實(shí)現(xiàn)的同時(shí)外圍操作稱為SPOOLing(SimultaneausPeriphernalOperatingOn-Line),或稱為假脫機(jī)操作。第四十三頁(yè),共67頁(yè)。2.SPOOLing系統(tǒng)的組成SPOOLing系統(tǒng)主要由四部分構(gòu)成:(1)輸入井和輸出井在磁盤上開(kāi)辟出來(lái)的兩個(gè)存儲(chǔ)區(qū)域;(2)輸入緩沖區(qū)和輸出緩沖區(qū)在內(nèi)存開(kāi)辟的兩個(gè)緩沖區(qū);(3)輸入進(jìn)程和輸出進(jìn)程;(4)井管理程序。6.6.2SPOOling技術(shù)第四十四頁(yè),共67頁(yè)。3.SPOOLing系統(tǒng)的特點(diǎn)提高了I/O的速度。對(duì)數(shù)據(jù)所執(zhí)行的I/O操作,已從對(duì)低速I/O設(shè)備執(zhí)行的I/O操作演變?yōu)閷?duì)磁盤緩沖區(qū)中數(shù)據(jù)的存取。(2)將獨(dú)占設(shè)備改造為共享設(shè)備。(3)實(shí)現(xiàn)了虛擬設(shè)備功能。6.6.2SPOOling技術(shù)第四十五頁(yè),共67頁(yè)。4.假脫機(jī)打印機(jī)系統(tǒng)假脫機(jī)打印系統(tǒng)有三個(gè)部分:磁盤緩沖區(qū)、打印緩沖區(qū)、假脫機(jī)管理進(jìn)程和假脫機(jī)打印進(jìn)程。

當(dāng)用戶進(jìn)程請(qǐng)求打印輸出時(shí),SPOOLing系統(tǒng)并不真正立即把打印機(jī)分配給該用戶進(jìn)程,而完成兩項(xiàng)工作:①在磁盤緩沖區(qū)中為之申請(qǐng)一個(gè)空閑盤塊,并將要打印的數(shù)據(jù)送入其中暫存;②為用戶進(jìn)程申請(qǐng)一張空白的用戶請(qǐng)求打印表,并將用戶的打印要求填入其中,再將該表掛到假脫機(jī)文件隊(duì)列上。6.6.2SPOOling技術(shù)第四十六頁(yè),共67頁(yè)。6.7緩沖區(qū)管理6.7.1緩沖的引入緩和CPU與I/O設(shè)備間速度不匹配的矛盾。(2)減少對(duì)CPU的中斷頻率,放寬對(duì)CPU中斷響應(yīng)時(shí)間的限制。(3)解決數(shù)據(jù)粒度不匹配的問(wèn)題(4)提高CPU和I/O設(shè)備之間的并行性第四十七頁(yè),共67頁(yè)。6.7.2單緩沖區(qū)和雙緩沖區(qū)1.單緩沖區(qū)(SingleBuffer)第四十八頁(yè),共67頁(yè)。2.雙緩沖區(qū)(DoubleBuffer)6.7.2單緩沖區(qū)和雙緩沖區(qū)第四十九頁(yè),共67頁(yè)。圖5-13雙機(jī)通信時(shí)緩沖區(qū)的設(shè)置6.7.2單緩沖區(qū)和雙緩沖區(qū)第五十頁(yè),共67頁(yè)。6.7.3環(huán)形緩沖區(qū)1.環(huán)形緩沖區(qū)的組成圖

環(huán)形緩沖區(qū)第五十一頁(yè),共67頁(yè)。2.環(huán)形緩沖區(qū)的使用Getbuf過(guò)程。(2)Releasebuf過(guò)程。6.7.3環(huán)形緩沖區(qū)3.進(jìn)程之間的同步問(wèn)題Nexti指針追趕上Nextg指針。(2)Nextg指針追趕上Nexti指針。第五十二頁(yè),共67頁(yè)。6.7.4緩沖池(BufferPool)1.緩沖池的組成對(duì)于既可用于輸入又可用于輸出的公用緩沖池,其中至少應(yīng)含有以下三種類型的緩沖區(qū):①空(閑)緩沖區(qū);②裝滿輸入數(shù)據(jù)的緩沖區(qū);③裝滿輸出數(shù)據(jù)的緩沖區(qū)。

為了管理上的方便,可將相同類型的緩沖區(qū)鏈成一個(gè)隊(duì)列,于是可形成以下三個(gè)隊(duì)列:(1)空緩沖隊(duì)列emq。

(2)輸入隊(duì)列inq。

(3)輸出隊(duì)列outq。第五十三頁(yè),共67頁(yè)。2.Getbuf過(guò)程和Putbuf過(guò)程ProcedureGetbuf(type){Wait(RS(type));Wait(MS(type));B(number)=Takebuf(type);Signal(MS(type));}6.7.4緩沖池(BufferPool)voidPutbuf(type,number){Wait(MS(type));Addbuf(type,number);Signal(MS(type));Signal(RS(type));}第五十四頁(yè),共67頁(yè)。3.緩沖區(qū)的工作方式圖5-15緩沖區(qū)的工作方式6.7.4緩沖池(BufferPool)收容輸入:Getbuf(emq)->Putbuf(inq,hin)提取輸入:Getbuf(inq)->Putbuf(emq,sin)提取輸出:Getbuf(outq)->Putbuf(emq,sout)收容輸出:Getbuf(emq)->Putbuf(outq,hout)第五十五頁(yè),共67頁(yè)。思考一I/O軟件一般分為用戶層軟件、設(shè)備獨(dú)立性軟件、設(shè)備驅(qū)動(dòng)程序和終端處理程序這四個(gè)層次。請(qǐng)說(shuō)明下列工作分別是在哪一層完成的?(1)向設(shè)備寄存器寫命令。(2)檢查用戶是否有權(quán)使用設(shè)備。(3)將二進(jìn)制整數(shù)轉(zhuǎn)換成ASCII碼的格式打印。(4)緩沖管理。12.1S第五十六頁(yè),共67頁(yè)。6.8磁盤存儲(chǔ)器的性能和調(diào)度磁盤存儲(chǔ)器是計(jì)算機(jī)系統(tǒng)中最重要的存儲(chǔ)設(shè)備。改善磁盤系統(tǒng)性能的途徑:(1)通過(guò)選擇好的磁盤調(diào)度算法,以減少磁盤的尋道時(shí)間;(2)提高磁盤I/O速度,以提高對(duì)文件的訪問(wèn)速度;(3)采取冗余技術(shù),提高磁盤系統(tǒng)的可靠性。第五十七頁(yè),共67頁(yè)。6.8.1磁盤性能簡(jiǎn)述1.數(shù)據(jù)的組織和格式圖5-22磁盤的格式化第五十八頁(yè),共67頁(yè)。2.磁盤的類型1)固定頭磁盤這種磁盤在每條磁道上都有一讀/寫磁頭,所有的磁頭都被裝在一剛性磁臂中。通過(guò)這些磁頭可訪問(wèn)所有各磁道,并進(jìn)行并行讀/寫,有效地提高了磁盤的I/O速度。這種結(jié)構(gòu)的磁盤主要用于大容量磁盤上。

2)移動(dòng)頭磁盤每一個(gè)盤面僅配有一個(gè)磁頭,也被裝入磁臂中。為能訪問(wèn)該盤面上的所有磁道,該磁頭必須能移動(dòng)以進(jìn)行尋道??梢?jiàn),移動(dòng)磁頭僅能以串行方式讀/寫,致使其I/O速度較慢;但由于其結(jié)構(gòu)簡(jiǎn)單,故仍廣泛應(yīng)用于中小型磁盤設(shè)備中。6.8.1磁盤性能簡(jiǎn)述第五十九頁(yè),共67頁(yè)。3.磁盤訪問(wèn)時(shí)間1)尋道時(shí)間Ts這是指把磁臂(磁

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(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)論