![計(jì)算機(jī)操作系統(tǒng)chap5設(shè)備管理_第1頁](http://file4.renrendoc.com/view15/M00/10/33/wKhkGWefDT2AKjsGAAB7JDNu75I359.jpg)
![計(jì)算機(jī)操作系統(tǒng)chap5設(shè)備管理_第2頁](http://file4.renrendoc.com/view15/M00/10/33/wKhkGWefDT2AKjsGAAB7JDNu75I3592.jpg)
![計(jì)算機(jī)操作系統(tǒng)chap5設(shè)備管理_第3頁](http://file4.renrendoc.com/view15/M00/10/33/wKhkGWefDT2AKjsGAAB7JDNu75I3593.jpg)
![計(jì)算機(jī)操作系統(tǒng)chap5設(shè)備管理_第4頁](http://file4.renrendoc.com/view15/M00/10/33/wKhkGWefDT2AKjsGAAB7JDNu75I3594.jpg)
![計(jì)算機(jī)操作系統(tǒng)chap5設(shè)備管理_第5頁](http://file4.renrendoc.com/view15/M00/10/33/wKhkGWefDT2AKjsGAAB7JDNu75I3595.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第5章設(shè)備管理 2/2/20255.1.I/O系統(tǒng)5.2.I/O控制方式
5.3.緩沖管理
5.4.I/O軟件5.5.設(shè)備分配5.6.磁盤存儲(chǔ)器的管理2/2/2025設(shè)備管理的目標(biāo)根據(jù)設(shè)備請(qǐng)求的情況,按照一定的算法,選擇和分配輸入輸出設(shè)備以便進(jìn)行數(shù)據(jù)傳輸操作;控制輸入輸入設(shè)備和CPU或內(nèi)存之間交換數(shù)據(jù),同時(shí)提高設(shè)備和設(shè)備之間、CPU和設(shè)備之間,以及進(jìn)程和進(jìn)程之間的并行操作度,以使操作系統(tǒng)獲得最正確效率;為用戶提供一個(gè)友好的透明接口,把用戶和設(shè)備硬件特性分開,使得用戶在編制應(yīng)用程序時(shí)不必涉及具體設(shè)備,系統(tǒng)按用戶要求控制設(shè)備工作。2/2/2025設(shè)備管理功能設(shè)備分配與回收緩沖管理設(shè)備處理虛擬設(shè)備2/2/20255.1.1I/O設(shè)備
計(jì)算機(jī)系統(tǒng)的外圍設(shè)備包括:顯示器、鍵盤、紙帶閱讀器、紙帶穿孔機(jī)、打印機(jī)、磁帶、磁盤、光盤、激光打印機(jī)、繪圖儀、圖形數(shù)字化儀、鼠標(biāo)器、聲音輸入、聲音輸出設(shè)備以及辦公自動(dòng)化設(shè)備等等,種類相當(dāng)繁多,可從不同的角度對(duì)它們進(jìn)行分類。
5.1I/O系統(tǒng)2/2/2025系統(tǒng)設(shè)備:在操作系統(tǒng)生成時(shí)已配置好的的標(biāo)準(zhǔn)設(shè)備。如:鍵盤、顯示器、打印機(jī)、磁盤等。用戶設(shè)備:指系統(tǒng)設(shè)備之外的非標(biāo)準(zhǔn)設(shè)備,一般由用戶提供設(shè)備及其處理程序,并通過適當(dāng)?shù)氖侄伟阉鼈兗{入系統(tǒng)中,由系統(tǒng)實(shí)施管理。如:網(wǎng)卡、調(diào)制解調(diào)器、繪圖儀等。1.設(shè)備的附屬關(guān)系分類2/2/2025塊設(shè)備:指以數(shù)據(jù)塊為單位存儲(chǔ)和傳輸數(shù)據(jù)的設(shè)備如磁盤、磁帶等。字符設(shè)備:指以單個(gè)字符為單位來傳送信息的設(shè)備。如鍵盤、顯示器、打印機(jī)等。2.設(shè)備中的信息交換單位方式分類2/2/2025存儲(chǔ)設(shè)備:它是計(jì)算機(jī)用來存儲(chǔ)永久性信息的設(shè)備如,磁帶、磁盤〔軟盤、硬盤〕、光盤等。輸入設(shè)備:將外部信息送給計(jì)算機(jī)的設(shè)備。如,鍵盤、鼠標(biāo)、掃描儀、手寫筆、數(shù)碼相機(jī)、麥克風(fēng)、游戲手柄等輸出設(shè)備:將計(jì)算機(jī)加工后的信息傳送給外界的設(shè)備。如,顯示器、打印機(jī)、投影儀等。3.按設(shè)備的使用特性分類2/2/2025獨(dú)占設(shè)備:這類設(shè)備在用戶作業(yè)的整個(gè)運(yùn)行期間必須為此用戶所占有,即多個(gè)作業(yè)對(duì)某一外設(shè)的訪問應(yīng)該是互斥的,一旦系統(tǒng)將這類設(shè)備分配給某個(gè)作業(yè),便由該設(shè)備獨(dú)占,直至釋放該資源。大多數(shù)低速I/O設(shè)備,如用戶終端、打印機(jī)等共享設(shè)備:指在同一時(shí)間段內(nèi)可以同時(shí)讓幾個(gè)作業(yè)使用的設(shè)備,當(dāng)然,在某一時(shí)刻,該設(shè)備只能為一個(gè)作業(yè)效勞。適應(yīng)于高速設(shè)備,如磁盤虛擬設(shè)備:根據(jù)設(shè)備的使用性質(zhì)來決定一臺(tái)設(shè)備可以分給幾個(gè)進(jìn)程以提高該設(shè)備的使用率。如虛擬打印機(jī)4.按資源分配的角度分類2/2/20251、按〔〕分類可將設(shè)備分為塊設(shè)備和字符設(shè)備。A.附屬關(guān)系B.操作特性C.共享屬性D.信息交換單位2、大多數(shù)低速設(shè)備都屬于〔〕設(shè)備。A.獨(dú)占B.共享C.虛擬D.Spooling3、從資源分配的角度看,可以把設(shè)備分為獨(dú)占設(shè)備、共享設(shè)備和虛擬設(shè)備,打印機(jī)屬于________設(shè)備,而磁盤屬于__________設(shè)備。2/2/2025
5.1.2設(shè)備控制器1.設(shè)備控制器的概念
設(shè)備控制器是CPU與外圍設(shè)備之間的接口,是一個(gè)可編址設(shè)備,每一個(gè)地址對(duì)應(yīng)一個(gè)設(shè)備。它接收從CPU發(fā)來的命令,并去控制輸入輸出設(shè)備的工作,使CPU從繁雜的設(shè)備控制事務(wù)中解脫出來,提高CPU的使用效率。2/2/20252.作用:接收從CPU發(fā)來的命令,控制I/O設(shè)備工作3.功能:接收和識(shí)別命令數(shù)據(jù)交換地址識(shí)別標(biāo)識(shí)和報(bào)告設(shè)備的狀態(tài)過失控制2/2/20254.設(shè)備控制器的組成
〔1〕.設(shè)備控制器與處理機(jī)的接口〔2〕.設(shè)備控制器與設(shè)備的接口〔3〕.I/O邏輯2/2/2025I/O系統(tǒng)的結(jié)構(gòu)CPU磁盤控制器存儲(chǔ)器打印機(jī)控制器其他控制器一、微型機(jī)I/O系統(tǒng):總線結(jié)構(gòu)磁盤驅(qū)動(dòng)器打印機(jī)2/2/2025二、主機(jī)系統(tǒng)輸入輸出結(jié)構(gòu)
當(dāng)主機(jī)所配置的輸入輸出設(shè)備較多時(shí),特別是配有較多的高速外設(shè)時(shí),采用總線型輸入輸出系統(tǒng)結(jié)構(gòu)會(huì)加重CPU與總線的負(fù)擔(dān)。因此,在這樣的輸入輸出系統(tǒng)中不宜采用單總線結(jié)構(gòu),而是增加一級(jí)輸入輸出通道,用來代替CPU與各設(shè)備控制器進(jìn)行通信,實(shí)現(xiàn)對(duì)控制器的控制。2/2/2025
2/2/20255.1.3I/O通道1、通道的引入
為了提高計(jì)算機(jī)系統(tǒng)的運(yùn)行效率,就要使CPU擺脫繁忙的I/O事務(wù),而配置專門處理I/O事務(wù)的機(jī)構(gòu)——通道。
通道的引入是為了建立獨(dú)立的I/O操作。它不僅要求數(shù)據(jù)傳送獨(dú)立于CPU,而且要求I/O操作的組織、管理、結(jié)束等也盡量獨(dú)立,以保證CPU有更多的時(shí)間從事計(jì)算。這樣就可以實(shí)現(xiàn)CPU計(jì)算和I/O操作的并行工作。2/2/2025思考題一
什么是通道?通道有哪些類型?2/2/20252、I/O通道概念通道是一種硬件機(jī)構(gòu),又稱I/O處理機(jī)。輸入輸出通道是指專門負(fù)責(zé)輸入輸出工作的處理器。它有自己的指令系統(tǒng)〔包含數(shù)據(jù)傳送指令和設(shè)備控制指令〕,獨(dú)立執(zhí)行自己的通道程序來實(shí)現(xiàn)內(nèi)存與外設(shè)之間的數(shù)據(jù)傳輸,從而使系統(tǒng)獲得CPU與外設(shè)并行處理的能力。2/2/20253、通道的類型根據(jù)信息交換方式的不同,可把通道分成字節(jié)多路通道、數(shù)組多路通道和選擇通道三種?!?〕字節(jié)多路通道通常都含有許多非分配型子通道,其數(shù)量可以從幾十到數(shù)百個(gè),每一個(gè)子通道連接一臺(tái)輸入輸出設(shè)備,這些子通道按時(shí)間片輪轉(zhuǎn)方式共享主通道。字節(jié)多路通道連接低速或中速設(shè)備時(shí),不會(huì)喪失信息。2/2/2025
選擇通道的數(shù)據(jù)傳送是按成批的方式進(jìn)行的,故傳送速率很高?!?〕數(shù)據(jù)選擇通道選擇通道它適用于連接高速I/O設(shè)備,如磁帶、磁盤等。選擇通道只有一個(gè)分配型子通道,即這個(gè)子通道可以連接多臺(tái)設(shè)備,但每次只能把子通道分配給一臺(tái)設(shè)備使用。一旦分配給某臺(tái)設(shè)備,子通道就被它獨(dú)占,即使暫時(shí)出現(xiàn)空閑,也不允許其他設(shè)備利用該子通道。直到它被釋放,再選擇另一臺(tái)設(shè)備為其效勞。因此選擇通道的利用率是很低的。2/2/2025〔3〕數(shù)組多路通道2/2/2025CPU字節(jié)多路通道
打印機(jī)1打印機(jī)2I/O控制器
I/O控制器
內(nèi)存
選擇通道成組多路通道
磁盤
I/O控制器
磁盤
I/O控制器
I/O控制器I/O控制器
磁帶
磁帶
存在這三種通道的計(jì)算機(jī)系統(tǒng)的各硬件的連接關(guān)系如下圖:2/2/2025思考題二設(shè)備管理中,什么是“瓶頸〞現(xiàn)象?如何解決?2/2/2025通道命令和通道程序通道有自己的指令系統(tǒng),為了與CPU的指令相區(qū)別,通道的指令被稱為“通道命令字〞。通道命令字條數(shù)不多,主要涉及控制、轉(zhuǎn)移、讀、寫及查詢等功能。0783132474863每條通道命令由四個(gè)字段組成:(1)操作碼(0~7):表示通道要執(zhí)行的命令;(2)數(shù)據(jù)主存始址:表示本命令要訪問的主存數(shù)據(jù)區(qū)的起始地址;(3)特征位(32~47,只使用了32~36位,其余未用):37~39位必須置0,否那么認(rèn)為通道命令錯(cuò)。2/2/2025通道程序存放在內(nèi)存中,由I/O指令啟動(dòng)執(zhí)行。用戶請(qǐng)求I/O時(shí),CPU對(duì)通道的通信是向通道發(fā)出查詢、啟動(dòng)和停止通道程序工作,而通道向CPU的通信那么采用中斷方式。其執(zhí)行過程如下圖。2/2/2025用戶I/O請(qǐng)求
查詢?cè)O(shè)備忙閑?
調(diào)用通道程序
執(zhí)行通道程序
I/O操作完成,發(fā)中斷請(qǐng)求
CPU響應(yīng)中斷,進(jìn)行結(jié)束處理
以I/O指令啟動(dòng)通道結(jié)束通道工作
進(jìn)入設(shè)備請(qǐng)求隊(duì)列,等待忙不忙
通道程序的執(zhí)行過程
2/2/20255、通道工作過程〔1〕當(dāng)進(jìn)程有I/O請(qǐng)求時(shí),系統(tǒng)首先查詢?cè)O(shè)備狀態(tài)。假設(shè)忙,進(jìn)程進(jìn)入設(shè)備請(qǐng)求隊(duì)列等待;假設(shè)閑,CPU發(fā)指令指明I/O操作、設(shè)備號(hào)和對(duì)應(yīng)通道?!?〕對(duì)應(yīng)通道收到CPU發(fā)來的啟動(dòng)指令后,讀出內(nèi)存中的通道指令程序、設(shè)置對(duì)應(yīng)設(shè)備的控制狀態(tài)存放器的初值?!?〕設(shè)備按通道指令的求,把數(shù)據(jù)送往內(nèi)存指定區(qū)域?!?〕假設(shè)傳送結(jié)束,I/O控制器通過中斷請(qǐng)求線發(fā)中斷信號(hào)請(qǐng)求CPU做中斷處理?!?〕中斷處理結(jié)束后,CPU返回到被中斷進(jìn)程處繼續(xù)執(zhí)行?!?〕當(dāng)進(jìn)程調(diào)度程序選中這個(gè)已得到數(shù)據(jù)的進(jìn)程后,才能進(jìn)行加工處理。2/2/2025思考題三通道的作用是什么?
通道是一個(gè)獨(dú)立于CPU的專管輸入/輸出控制的處理器,它控制內(nèi)存與外部設(shè)備直接進(jìn)行數(shù)據(jù)交換。
它有自己的通道指令,這些通道指令受CPU啟動(dòng),并在操作結(jié)束時(shí)向CPU發(fā)中斷信號(hào)。
通道方式進(jìn)一步減輕了CPU的工作負(fù)擔(dān),增加了計(jì)算機(jī)系統(tǒng)的并行工作程度。2/2/20255.1.4總線系統(tǒng)1、總線根本概念在計(jì)算機(jī)系統(tǒng)內(nèi)各種子系統(tǒng),如CPU、內(nèi)存、I/O設(shè)備等之間,構(gòu)建公用的信號(hào)或數(shù)據(jù)傳輸通道這種可共享的傳輸通道稱為總線。2/2/20252、總線的分類2/2/2025當(dāng)用戶進(jìn)程通過系統(tǒng)調(diào)用提出I/O請(qǐng)求時(shí),從系統(tǒng)響應(yīng)此請(qǐng)求開始,至系統(tǒng)完成用戶要求的I/O操作,并喚醒相應(yīng)的等待I/O完成的進(jìn)程為止,這整個(gè)過程稱為I/O控制過程。5.2I/O控制方式2/2/2025I/O控制過程包括以下步驟:〔1〕響應(yīng)I/O請(qǐng)求,為在具體物理設(shè)備上進(jìn)行I/O操作做準(zhǔn)備。包括將邏輯設(shè)備名轉(zhuǎn)換為物理設(shè)備名〔設(shè)備分配〕、I/O請(qǐng)求的合法性等。〔2〕設(shè)備驅(qū)動(dòng),控制設(shè)備完成I/O操作,對(duì)每類設(shè)備分別設(shè)置不同的設(shè)備驅(qū)動(dòng)程序?!?〕中斷處理,I/O操作完成之后,設(shè)備控制器向CPU發(fā)送中斷信號(hào),CPU響應(yīng)后轉(zhuǎn)向相應(yīng)的中斷處理程序進(jìn)行善后處理。2/2/2025I/O操作的控制方式一般有四種:查詢方式中斷方式直接內(nèi)存存取方式通道方式它們的主要差異在于處理器和外設(shè)并行工作的方式和程度的不同。2/2/2025查詢方式是最簡(jiǎn)單的I/O控制方式。在設(shè)備控制器中有兩個(gè)存放器,一個(gè)是狀態(tài)存放器,由其中的一個(gè)狀態(tài)位的值反映設(shè)備的忙或閑;另一個(gè)是數(shù)據(jù)緩沖存放器。當(dāng)設(shè)備啟動(dòng)時(shí),狀態(tài)存放器的啟動(dòng)位為1,此時(shí)外設(shè)把數(shù)據(jù)送往數(shù)據(jù)緩沖存放器,并將狀態(tài)存放器的狀態(tài)位置1。CPU執(zhí)行完一條指令后就測(cè)試狀態(tài)位,如果為1,就把數(shù)據(jù)存放器中的數(shù)據(jù)取到內(nèi)存;假設(shè)狀態(tài)位為0,那么再測(cè)試,直到狀態(tài)存放器的狀態(tài)位為1,然后再讀取數(shù)據(jù)。所以此種方式也稱循環(huán)測(cè)試I/O方式5.2.1查詢方式2/2/2025就緒向設(shè)備控制器發(fā)讀命令讀設(shè)備控制器的狀態(tài)檢查狀態(tài)從設(shè)備控制器中讀入字向存儲(chǔ)器中寫字傳送完成CPU->I/OCPU->內(nèi)存I/O->CPU出錯(cuò)I/O->CPU完成下條指令未完成未就緒2/2/2025步驟:
(1)當(dāng)用戶需要輸入數(shù)據(jù)時(shí),由處理器向設(shè)備控制器發(fā)出一條輸入輸出指令,啟動(dòng)設(shè)備進(jìn)行輸入(2)當(dāng)用戶進(jìn)程需要向設(shè)備輸出數(shù)據(jù)時(shí),也必須同樣發(fā)出啟動(dòng)命令啟動(dòng)設(shè)備輸出,并等待輸出操作完成。特點(diǎn):
工作過程簡(jiǎn)單,CPU的利用率低。在要求不高的場(chǎng)合下常被采用,而且不能支持多道程序。程序直接控制方式適用于早期的無中斷的計(jì)算機(jī)系統(tǒng)。2/2/2025
查詢方式是主機(jī)向外設(shè)詢問,而引入中斷后,每當(dāng)設(shè)備完成I/O操作,它便以中斷請(qǐng)求方式主動(dòng)向CPU匯報(bào)。因此,CPU一旦啟動(dòng)I/O設(shè)備后便可轉(zhuǎn)去處理其他程序,僅在接到I/O中斷信息請(qǐng)求時(shí)才花費(fèi)極少時(shí)間去處理。
5.2.2中斷方式2/2/20251、中斷概念所謂中斷,是指處理機(jī)在執(zhí)行進(jìn)程的過程中,由于某些事件的出現(xiàn),中止當(dāng)前進(jìn)程的運(yùn)行,轉(zhuǎn)而去處理出現(xiàn)的事件,待處理完畢后返回原來被中斷處繼續(xù)執(zhí)行或調(diào)度其他進(jìn)程執(zhí)行。2、中斷源引起中斷的事件稱為中斷源?!?〕強(qiáng)迫性中斷源硬件故障、程序性錯(cuò)誤、外部事件、I/O中斷事件〔2〕自愿性中斷源2/2/20253、步驟〔1〕進(jìn)程需要數(shù)據(jù)時(shí),將允許啟動(dòng)和允許中斷的控制字寫入設(shè)備控制狀態(tài)存放器中,啟動(dòng)該設(shè)備進(jìn)行輸入操作?!?〕該進(jìn)程放棄處理機(jī),等待輸入的完成。操作系統(tǒng)進(jìn)程調(diào)度程序調(diào)度其他就緒進(jìn)程占用處理機(jī)?!?〕當(dāng)輸入完成時(shí),輸入設(shè)備通過中斷請(qǐng)求線向CPU發(fā)出中斷請(qǐng)求信號(hào)。CPU在接收到中斷信號(hào)之后,轉(zhuǎn)向中斷處理程序?!?〕中斷處理程序首先保護(hù)現(xiàn)場(chǎng),然后把輸入緩沖存放器中的數(shù)據(jù)傳送到某一特定單元中去,同時(shí)將等待輸入完成的那個(gè)進(jìn)程喚醒,進(jìn)入就緒狀態(tài),最后恢復(fù)現(xiàn)場(chǎng),并返回到被中斷的進(jìn)程繼續(xù)執(zhí)行?!?〕在以后的某一時(shí)刻,操作系統(tǒng)進(jìn)程調(diào)度程序選中提出的請(qǐng)求并得到獲取數(shù)據(jù)的進(jìn)程,該進(jìn)程從約定的內(nèi)存特定單元中取出數(shù)據(jù)繼續(xù)工作2/2/2025向設(shè)備控制器發(fā)讀命令讀設(shè)備控制器的狀態(tài)檢查狀態(tài)從設(shè)備控制器中讀入字向存儲(chǔ)器中寫字傳送完成完成下條指令CPU->I/OCPU->內(nèi)存I/O->CPU出錯(cuò)I/O->CPU未完成CPU做其他中斷2/2/2025例如,打印機(jī)每打一行需要60ms,在查詢方式中,大約有59.99ms,CPU都處于循環(huán)等待中,而以中斷方式處理的話,CPU僅花費(fèi)0.1ms時(shí)間來處理I/O設(shè)備發(fā)來的中斷,其余的59.99ms都可以用來做別的事情。所以中斷方式比查詢方式節(jié)省CPU的時(shí)間。2/2/2025
中斷方式的方法是當(dāng)設(shè)備完成I/O操作后,主動(dòng)向CPU報(bào)告,CPU只用少量時(shí)間處理I/O中斷,并將數(shù)據(jù)取回。在多道程序中的環(huán)境下,一個(gè)程序或進(jìn)程啟動(dòng)I/O設(shè)備并允許中斷后,不是自己主動(dòng)去執(zhí)行別的程序或繼續(xù)執(zhí)行主流程,而是應(yīng)當(dāng)把自己掛起,控制權(quán)交還給進(jìn)程調(diào)度程序。在中斷處理程序中,完成指定的I/O操作之后應(yīng)把等待此結(jié)果的進(jìn)程喚醒,而后由進(jìn)程調(diào)度程序在適當(dāng)時(shí)機(jī)把此進(jìn)程投入運(yùn)行。2/2/2025某進(jìn)程其他進(jìn)程輸入中斷處理中斷調(diào)度調(diào)度喚醒啟動(dòng)I/O并允許中斷阻塞等待處理輸入的數(shù)據(jù)保護(hù)現(xiàn)場(chǎng)輸入處理喚醒等待進(jìn)程恢復(fù)現(xiàn)場(chǎng)多道程序下的中斷處理方式2/2/20254、特點(diǎn)中斷控制方式比程序直接控制方式提高了CPU的利用率。每輸入輸出一個(gè)數(shù)據(jù)都會(huì)發(fā)生中斷,傳輸一組數(shù)據(jù)需要屢次中斷,浪費(fèi)了CPU的處理時(shí)間。中斷控制方式應(yīng)用于現(xiàn)代計(jì)算機(jī)系統(tǒng)中。2/2/20251、DMA控制方式的引入
引入的原因:中斷處理方式提高了主機(jī)的利用率,但是每次中斷都要保存現(xiàn)場(chǎng)信息,恢復(fù)現(xiàn)場(chǎng)等,仍占用CPU時(shí)間。在傳送數(shù)據(jù)量大、速度高的情況下,中斷方式就不適應(yīng)了。為了進(jìn)一步減少CPU對(duì)外設(shè)操作干預(yù)而引入直接存儲(chǔ)器訪問方式。5.2.3直接內(nèi)存存取方式2/2/20252、DMA控制方式是指對(duì)I/O設(shè)備的控制由DMA控制器完成,在DMA控制器的作用下,設(shè)備和主存之間可以成批地進(jìn)行數(shù)據(jù)交換,而不用CPU的干預(yù)。5.2.3直接內(nèi)存存取方式2/2/2025 3、DMA控制器的組成:DMA控制器的組成命令控制器與設(shè)備接口主機(jī)—控制器接口內(nèi)存CPU系統(tǒng)總線I/O控制邏輯CRMARDCDR┇count2/2/20254、DMA工作步驟:①當(dāng)進(jìn)程要求設(shè)備輸入一批數(shù)據(jù)時(shí),CPU將設(shè)備存放輸入數(shù)據(jù)的內(nèi)存始址以及要傳送的字節(jié)數(shù)分別送入DMA控制器中的地址存放器和傳送字節(jié)計(jì)數(shù)器;另外,還要將中斷位和啟動(dòng)位置為1,以啟動(dòng)設(shè)備開始進(jìn)行數(shù)據(jù)輸入并允許中斷。②發(fā)出數(shù)據(jù)要求的進(jìn)程進(jìn)入等待狀態(tài),進(jìn)程調(diào)度程序調(diào)度其他進(jìn)程占據(jù)CPU。③輸入設(shè)備不斷地挪用CPU工作周期,將數(shù)據(jù)存放器中的數(shù)據(jù)源源不斷地寫入內(nèi)存,直到所要求的字節(jié)全部傳送完畢。④DMA控制器在傳送字節(jié)數(shù)完成時(shí),通過中斷請(qǐng)求線發(fā)出中斷信號(hào),CPU收到中斷信號(hào)后轉(zhuǎn)中斷處理程序,喚醒等待輸入完成的進(jìn)程,并返回被中斷的程序。⑤在以后的某個(gè)時(shí)刻,進(jìn)程調(diào)度程序選中提出請(qǐng)求輸入的進(jìn)程,該進(jìn)程從指定的內(nèi)存始址取出數(shù)據(jù)做進(jìn)一步處理。2/2/2025CPU向控制器發(fā)出啟動(dòng)DMA通知和有關(guān)參數(shù)控制器向內(nèi)存發(fā)出詢問請(qǐng)求訪問內(nèi)存〔讀、寫〕計(jì)數(shù)器減1結(jié)束否發(fā)中斷NYDMA的實(shí)現(xiàn)流程2/2/20255、DMA方式特點(diǎn):〔1〕數(shù)據(jù)傳送的根本單位是數(shù)據(jù)塊; 〔2〕所傳送的數(shù)據(jù)是從設(shè)備直接送入內(nèi)存,或者相反; 〔3〕僅在傳送一個(gè)或多個(gè)數(shù)據(jù)塊的開始和結(jié)束時(shí),才需中斷CPU,請(qǐng)求干預(yù),整塊數(shù)據(jù)的傳送是在DMA控制器控制下完成的。
缺點(diǎn):
DMA方式只能完成簡(jiǎn)單的數(shù)據(jù)傳送、計(jì)數(shù)、內(nèi)存地址加1或減1等操作,不能滿足復(fù)雜的I/O操作要求。2/2/20256、DMA方式與中斷的主要區(qū)別〔1〕中斷方式是在數(shù)據(jù)緩沖存放區(qū)滿后,發(fā)中斷請(qǐng)求,CPU進(jìn)行中斷處理;DMA方式那么是在所要求傳送的數(shù)據(jù)塊全部傳送結(jié)束時(shí)要求CPU進(jìn)行中斷處理,大大減少了CPU進(jìn)行中斷處理的次數(shù)?!?〕中斷方式的數(shù)據(jù)傳送是由CPU控制完成的;DMA方式那么是在DMA控制器的控制下不經(jīng)過CPU控制完成的。2/2/20255.2.4I/O通道控制方式1、概念
通道控制方式是一種以主存為中心,是設(shè)備與主存直接交換數(shù)據(jù)的控制方式。CPU只需要發(fā)出啟動(dòng)指令,指出通道相應(yīng)的操作和輸入輸出設(shè)備,該指令就可以啟動(dòng)通道并使該通道從主存中調(diào)出相應(yīng)的通道指令執(zhí)行,完成一組數(shù)據(jù)塊的輸入/輸出。
2/2/20252、通道控制方式步驟〔1〕當(dāng)進(jìn)程要求設(shè)備輸入時(shí),CPU發(fā)指令指明I/O操作、設(shè)備號(hào)和對(duì)應(yīng)通道?!?〕對(duì)應(yīng)通道收到CPU發(fā)來的啟動(dòng)指令后,讀出內(nèi)存中的通道指令程序、設(shè)置對(duì)應(yīng)設(shè)備的控制狀態(tài)存放器的初值?!?〕設(shè)備按通道指令的要求,把數(shù)據(jù)送往內(nèi)存指定區(qū)域?!?〕假設(shè)傳送結(jié)束,I/O控制器通過中斷請(qǐng)求線發(fā)中斷信號(hào)請(qǐng)求CPU做中斷處理。〔5〕中斷處理結(jié)束后,CPU返回到被中斷進(jìn)程處繼續(xù)執(zhí)行?!?〕當(dāng)進(jìn)程調(diào)度程序選中這個(gè)已得到數(shù)據(jù)的進(jìn)程后,才能進(jìn)行加工處理。2/2/20253、特點(diǎn)
通道所需要的CPU干預(yù)更少,并可以實(shí)現(xiàn)CPU、通道和輸入輸出設(shè)備三者之間的并行操作,從而更有效地提高整個(gè)系統(tǒng)資源的利用率。通道控制方式適用于現(xiàn)代計(jì)算機(jī)系統(tǒng)中的大量數(shù)據(jù)交換。2/2/2025通道和DMA控制器的區(qū)別〔1〕一個(gè)DMA控制器只能連接同類外設(shè),且如果是多臺(tái)同類外設(shè),那么它們只能是以串行方式工作。一個(gè)通道可以連接多個(gè)不同類型的設(shè)備控制器,而一個(gè)設(shè)備控制器又可以管理一臺(tái)或多臺(tái)外圍設(shè)備,這就構(gòu)成了典型的多級(jí)層次結(jié)構(gòu),眾多外設(shè)均可在通道控制下同時(shí)工作;〔2〕DMA控制是借助硬件完成數(shù)據(jù)交換的,而通道是執(zhí)行通道程序完成數(shù)據(jù)的;〔3〕DMA控制器需要CPU對(duì)多個(gè)外設(shè)進(jìn)行初始化。CPU只需發(fā)一個(gè)I/O指令啟動(dòng)通道,由通道自己完成外設(shè)的初始化。2/2/20252/2/2025大、中型計(jì)算機(jī)系統(tǒng)普遍用通道方式去控制設(shè)備完成I/O操作,以提高CPU與外設(shè),外設(shè)與外設(shè)并行的程度。一些小型機(jī)和絕大多數(shù)微型機(jī)都是以CPU直接控制設(shè)備接口和設(shè)備控制器以查詢、中斷或DMA方式完成I/O操作,以降低系統(tǒng)造價(jià)。2/2/2025思考題四
綜上所述的4種I/O控制方式,分別適合用于何種場(chǎng)合?2/2/2025課堂練習(xí)題1、從下面關(guān)于設(shè)備屬性的論述中,選擇一條正確的描述。〔〕A.字符設(shè)備的一個(gè)根本特征是可尋址的,即能指定輸入時(shí)的源地址和輸出時(shí)的目標(biāo)地址B.共享設(shè)備必須是可尋址的和隨機(jī)訪問的設(shè)備C.共享設(shè)備是指在同一時(shí)刻,允許多個(gè)進(jìn)程同時(shí)訪問的設(shè)備D.在分配共享設(shè)備和獨(dú)占設(shè)備時(shí),都可能引起進(jìn)程死鎖2、〔〕在一般大型計(jì)算機(jī)系統(tǒng)中,主機(jī)對(duì)外圍設(shè)備的控制可通過通道、控制器和設(shè)備三個(gè)層次來實(shí)現(xiàn)。從下述表達(dá)中選出一條正確的表達(dá)。A控制器可控制通道,設(shè)備在通道控制下工作B通道控制控制器,設(shè)備在控制器控制下工作C通道和控制器分別控制設(shè)備D控制器控制通道和設(shè)備的工作2/2/20251、通過硬件和軟件的擴(kuò)充,把原來獨(dú)立的設(shè)備改造成能為假設(shè)干用戶共享的設(shè)備,這種設(shè)備稱為?。2、引起中斷發(fā)生的事件稱為?。3、如果I/O設(shè)備與存儲(chǔ)設(shè)備進(jìn)行數(shù)據(jù)交換不經(jīng)過CPU來完成,這種數(shù)據(jù)交換方式是?。4、常用的I/O控制方式有程序I/O方式、?、?、?.5、DMA是指允許?和?之間直接交換數(shù)據(jù)的設(shè)備。在DMA中必須設(shè)置地址存放器,用于存放?,還必須設(shè)置?存放器,用來暫存交換的數(shù)據(jù)。6、設(shè)備控制器是?和?之間的接口,它接受來自?的I/O命令,并用于控制?的工作。7、按附屬關(guān)系對(duì)I/O設(shè)備分類,可分為系統(tǒng)設(shè)備和??jī)深悺?/2/20255.3緩沖管理5.3.1緩沖的引入
1、引入的原因〔1〕緩和CPU與輸入輸出設(shè)備間速度不匹配的矛盾〔2〕減少對(duì)CPU的中斷頻率,放寬對(duì)中斷響應(yīng)時(shí)間的限制?!?〕提高CPU與輸入輸出設(shè)備間的并行性。2/2/20252/2/20253、實(shí)現(xiàn)緩沖的方法〔1〕硬件緩沖。硬件緩沖采用專用硬件緩沖器,一般由外設(shè)自帶的專用存放器構(gòu)成?!?〕軟件緩沖。在內(nèi)存中專門開辟假設(shè)干單元作為緩沖區(qū)為各種設(shè)備效勞。2/2/20255.3.2單緩沖和雙緩沖一、單緩沖
單緩沖即是在發(fā)送者和接收者之間只有一個(gè)緩沖區(qū)過程:當(dāng)一個(gè)用戶進(jìn)程要求輸入數(shù)據(jù)時(shí),操作系統(tǒng)控制輸入設(shè)備將數(shù)據(jù)送往緩沖區(qū)存放,再送往用戶進(jìn)程的數(shù)據(jù)存儲(chǔ)區(qū)。2/2/2025特點(diǎn)在主存中只有一個(gè)緩沖區(qū)。對(duì)于塊設(shè)備,該緩沖區(qū)可以存放一塊數(shù)據(jù),對(duì)于字符設(shè)備,該緩沖區(qū)可以存放一行數(shù)據(jù)。設(shè)備和處理器對(duì)緩沖區(qū)的操作是串行的,傳輸速度慢。在任一時(shí)刻,只能進(jìn)行單向的數(shù)據(jù)傳輸,并且傳輸數(shù)據(jù)量較少。優(yōu)點(diǎn)是設(shè)計(jì)簡(jiǎn)單,容易實(shí)現(xiàn)缺點(diǎn)是發(fā)送者和接收者不能并行工作2/2/2025二、雙緩沖
雙緩沖可在發(fā)送者與接收者之間設(shè)兩個(gè)緩沖區(qū)緩沖區(qū)1和緩沖區(qū)2。過程:發(fā)送者將數(shù)據(jù)送滿緩沖區(qū)1,接收者從緩沖區(qū)1取數(shù)據(jù)時(shí),發(fā)送者那么可將數(shù)據(jù)送入緩沖區(qū)2,當(dāng)接收者將緩沖區(qū)1取空后,又可到緩沖區(qū)2中取數(shù)據(jù),這時(shí)發(fā)送者再將數(shù)據(jù)送入緩沖區(qū)1。于是,發(fā)送者和接收者交替使用兩個(gè)緩沖區(qū),到達(dá)了并行工作的目的。2/2/2025特點(diǎn)在主存中設(shè)置兩個(gè)緩沖區(qū),完成數(shù)據(jù)的傳輸。兩個(gè)緩沖區(qū)可以交替使用,提高了處理器和輸入設(shè)備的并行操作能力。在任一時(shí)刻,可以進(jìn)行雙向的數(shù)據(jù)傳輸。一個(gè)緩沖區(qū)用于輸入,另一個(gè)用于輸出。適用于輸入/輸出、生產(chǎn)者/消費(fèi)者速度根本相匹配的情況。當(dāng)傳輸數(shù)據(jù)量較大,或者兩者的速度相差較遠(yuǎn)時(shí),雙緩沖區(qū)效率較低,還是不能解決兩者并行工作問題。2/2/20252/2/2025為了充分利用這些緩沖資源,使進(jìn)程的處理和I/O設(shè)備的工作具有較好的連續(xù)性,提高設(shè)備的利用率,將緩沖區(qū)分為以下兩種類型:〔1〕空緩沖區(qū)。準(zhǔn)備接收輸入的數(shù)據(jù)。〔2〕滿緩沖區(qū)。用于存放可供使用的數(shù)據(jù)。過程:當(dāng)循環(huán)緩沖接收數(shù)據(jù)時(shí),將待傳送的數(shù)據(jù)送入EMPTY指向的空緩沖區(qū),填滿后,讓EMPTY指向下一個(gè)空緩沖區(qū)。每次申請(qǐng)一個(gè)空緩沖區(qū)時(shí),需要判斷EMPTY是否與FULL相等。假設(shè)相等,表示系統(tǒng)中已沒有空緩沖區(qū),輸入進(jìn)程需要等待;否那么,可以繼續(xù)輸入。假設(shè)要從緩沖區(qū)取數(shù)據(jù)時(shí),直接到FULL所指向的緩沖區(qū)中取,然后讓FULL指向下一個(gè)滿緩沖區(qū)。同樣,每次FULL指針移動(dòng)時(shí),需要判斷FULL是否與EMPTY相等。假設(shè)相等,表示緩沖區(qū)已無數(shù)據(jù)可取,等待緩沖區(qū)滿后繼續(xù)操作。2/2/2025特點(diǎn):在主存中設(shè)置多個(gè)緩沖區(qū)。讀和寫可以并行處理,適用于某種特定的輸入輸出進(jìn)程和計(jì)算進(jìn)程,如輸入/輸出、生產(chǎn)者/消費(fèi)者速度不相匹配的情況。循環(huán)緩沖區(qū)屬于專用緩沖區(qū)。當(dāng)系統(tǒng)較大時(shí),使用多個(gè)這樣的緩沖區(qū)要消耗大量的主存空間,降低緩沖區(qū)的使用效率。兩個(gè)缺點(diǎn):〔1〕當(dāng)系統(tǒng)的資源較多時(shí),就要占用大量的緩沖區(qū),增加內(nèi)存開銷?!?〕可能會(huì)出現(xiàn)某個(gè)設(shè)備的緩沖不夠用,而其他設(shè)備有多個(gè)空閑緩沖區(qū)的情況,導(dǎo)致循環(huán)緩沖的利用率不高。2/2/2025四、緩沖池上述的循環(huán)緩沖區(qū)僅適用于某特定的I/O進(jìn)程和計(jì)算進(jìn)程,是專用緩沖結(jié)構(gòu),而不是針對(duì)整個(gè)系統(tǒng)的公用緩沖結(jié)構(gòu)。當(dāng)系統(tǒng)較大時(shí),會(huì)有很多這樣的緩沖結(jié)構(gòu),這不僅要消耗大量的內(nèi)存空間,而且其利用率不高。為了提高緩沖區(qū)的利用率,目前普遍采用公用緩沖池結(jié)構(gòu),在緩沖池中設(shè)置了可供多個(gè)并發(fā)進(jìn)程共享的緩沖區(qū)。2/2/2025如下圖,緩沖池是由多個(gè)大小相同的緩沖區(qū)組成,同管理程序統(tǒng)一對(duì)緩沖池進(jìn)行管理。當(dāng)某個(gè)進(jìn)程需要使用緩沖區(qū)時(shí),由管理程序?qū)⒕彌_池中適宜的緩沖區(qū)分配給它,使用完畢,再將緩沖區(qū)釋放回緩沖池。2/2/2025為便于管理,系統(tǒng)將相同類型的緩沖區(qū)鏈成一個(gè)隊(duì)列,緩沖池中共有三種隊(duì)列:〔1〕空緩沖隊(duì)列?!?〕輸入隊(duì)列?!?〕輸出隊(duì)列。這三種隊(duì)列各有指向其首緩沖區(qū)的隊(duì)首指針和指向尾緩沖區(qū)的隊(duì)尾指針。系統(tǒng)根據(jù)需要從這三種隊(duì)列中取出緩沖區(qū),對(duì)緩沖區(qū)進(jìn)行存數(shù)據(jù)、取數(shù)據(jù)操作。這些緩沖區(qū)稱為工作緩沖區(qū)。緩沖池中有四種工作緩沖區(qū):〔1〕收容輸入工作緩沖區(qū)?!?〕提取輸入工作緩沖區(qū)?!?〕收容輸出工作緩沖區(qū)。〔4〕提取輸出工作緩沖區(qū)。2/2/2025對(duì)緩沖池管理提供兩個(gè)根本操作(過程):(1)getbuf(type):用于從type所指定的隊(duì)列的隊(duì)首,摘下一個(gè)緩沖區(qū);(2)putbuf(type,number):用于將用參數(shù)number所指示的緩沖區(qū),掛在type隊(duì)列上。2/2/2025下面是緩沖池在具體的工作過程中,對(duì)緩沖池中的緩沖區(qū)實(shí)施管理和使用的情況:〔1〕當(dāng)輸入設(shè)備要進(jìn)行數(shù)據(jù)輸入時(shí),先從空緩沖區(qū)隊(duì)列的隊(duì)首摘取一個(gè)空緩沖區(qū),將它作為收容輸入工作緩沖區(qū),在其裝滿輸入數(shù)據(jù)后,再將它掛到輸入數(shù)據(jù)隊(duì)列的隊(duì)尾。〔2〕當(dāng)某個(gè)計(jì)算進(jìn)程需要輸入數(shù)據(jù)時(shí),從輸入隊(duì)列中取出一個(gè)緩沖區(qū)作為輸入工作緩沖區(qū),進(jìn)程從中提取數(shù)據(jù),取空后,將該緩沖區(qū)掛到空緩沖區(qū)隊(duì)列的隊(duì)尾?!?〕當(dāng)某個(gè)計(jì)算進(jìn)程想輸出數(shù)據(jù)時(shí),從空緩沖區(qū)隊(duì)首摘下一個(gè)空緩沖區(qū)作為收容輸出工作緩沖區(qū),在其裝滿計(jì)算進(jìn)程的輸出數(shù)據(jù)后,將它掛到輸出隊(duì)列的隊(duì)尾。〔4〕當(dāng)輸出設(shè)備進(jìn)行數(shù)據(jù)輸出時(shí),從輸出隊(duì)列取下一個(gè)緩沖區(qū)作為提取輸出工作緩沖區(qū),當(dāng)其數(shù)據(jù)全送到輸出設(shè)備后,再將它掛到空緩沖隊(duì)列尾。2/2/2025特點(diǎn)緩沖池結(jié)構(gòu)復(fù)雜,在主存中設(shè)置公用緩沖池,在池中設(shè)置多個(gè)可以供多個(gè)進(jìn)程共享的緩沖區(qū)。緩沖區(qū)既可以用于輸入,又可以用于輸出〔即共享〕。緩沖池的設(shè)置,減少了主存空間的消耗,提高了主存的利用率,適應(yīng)于現(xiàn)代操作系統(tǒng)。無論是多緩沖,還是緩沖池,由于緩沖器是臨界資源,因此在使用緩沖區(qū)時(shí)都有一個(gè)申請(qǐng)、釋放和互斥的問題。2/2/2025緩沖和緩存的差異緩沖與緩存的根本原理和作用是相似的,如果不加區(qū)分的話,都可以稱之為緩沖。但兩者之間確實(shí)存在細(xì)微的差異:緩沖的作用在于協(xié)調(diào)速度不匹配的I/O傳輸過程;而緩存的作用在于減少對(duì)設(shè)備的實(shí)際訪問次數(shù)。這個(gè)差異導(dǎo)致了兩者的管理方法有所不同。2/2/2025一般來說,緩沖區(qū)的生命期較短,當(dāng)進(jìn)程開始數(shù)據(jù)傳輸時(shí)建立,一旦數(shù)據(jù)傳輸完畢,將立即釋放緩沖區(qū),它只起暫存數(shù)據(jù)的作用。而緩存區(qū)的生命期較長(zhǎng),緩存的數(shù)據(jù)可以長(zhǎng)時(shí)間地保存在緩存區(qū)中,效勞于各種應(yīng)用目的。如文件系統(tǒng)中的i節(jié)點(diǎn)緩存、目錄項(xiàng)緩存等在整個(gè)系統(tǒng)運(yùn)行期間都存在于內(nèi)存中,由文件系統(tǒng)管理和使用。2/2/20252/2/20255.4I/O軟件分層結(jié)構(gòu)的底層是設(shè)備相關(guān)局部,稱為設(shè)備驅(qū)動(dòng)程序。它們直接和相應(yīng)的設(shè)備打交道,負(fù)責(zé)設(shè)備的具體驅(qū)動(dòng)和控制。上層通常是和設(shè)備無關(guān)的,這個(gè)局部接受來自用戶層的訪問請(qǐng)求,并把這些訪問請(qǐng)求傳給具體的設(shè)備驅(qū)動(dòng)程序,再將驅(qū)動(dòng)程序的執(zhí)行結(jié)果進(jìn)行轉(zhuǎn)換,傳給用戶2/2/20255.4I/O軟件的設(shè)計(jì)目標(biāo)和原那么設(shè)備無關(guān)性錯(cuò)誤處理同步/異步傳輸必須能處理獨(dú)占設(shè)備和共享設(shè)備的I/O操作2/2/2025為實(shí)現(xiàn)以上四個(gè)目標(biāo),I/O系統(tǒng)應(yīng)組織成以下四個(gè)層次:(1)中斷處理程序(2)設(shè)備驅(qū)動(dòng)程序(3)與設(shè)備無關(guān)的I/O軟件(4)用戶空間的I/O軟件2/2/20255.4.2中斷處理程序中斷事件通常由硬件發(fā)現(xiàn)。對(duì)出現(xiàn)的事件進(jìn)行處理的程序稱為中斷處理程序。中斷處理程序是由操作系統(tǒng)處理的,屬于操作系統(tǒng)的組成局部。中斷處理程序位于I/O系統(tǒng)的最低層。當(dāng)進(jìn)程需要進(jìn)行I/O操作時(shí),操作系統(tǒng)應(yīng)將該進(jìn)程掛起,即進(jìn)入阻塞,直至I/O操作結(jié)束并發(fā)生中斷。當(dāng)中斷發(fā)生時(shí),中斷處理程序執(zhí)行相應(yīng)的操作,以解除相應(yīng)進(jìn)程的阻塞狀態(tài)。2/2/2025一個(gè)完整的中斷處理過程包括以下四步:(1)中斷請(qǐng)求:由中斷源向CPU提出中斷請(qǐng)求(軟中斷除外)。
(2)中斷響應(yīng):CPU在收到中斷請(qǐng)求并具備響應(yīng)條件的情況下,進(jìn)行中斷響應(yīng),以實(shí)現(xiàn)向中斷效勞程序的過渡。(3)中斷效勞:CPU在執(zhí)行中斷效勞程序期間,要進(jìn)行具體的中斷效勞。(4)中斷返回:中斷效勞程序的最后一條指令應(yīng)是中斷返回指令。當(dāng)執(zhí)行到該指令時(shí),便返回到被終止的程序,從斷點(diǎn)處繼續(xù)執(zhí)行。2/2/2025中斷請(qǐng)求:
中斷源需要通過中斷線送到中斷控制器的輸入端,這稱為中斷請(qǐng)求。
中斷控制器是一個(gè)硬件裝置,它負(fù)責(zé)捕獲中斷請(qǐng)求,并以一定的方式向CPU提交中斷。由于同時(shí)可能會(huì)有多個(gè)中斷信號(hào)產(chǎn)生,它們需要共用有限的中斷線。因此,當(dāng)設(shè)備要使用中斷線時(shí)就要先進(jìn)行中斷請(qǐng)求(IRQ),以獲得中斷線的使用權(quán)。2/2/2025中斷響應(yīng)對(duì)中斷請(qǐng)求的整個(gè)處理過程是由硬件和軟件相結(jié)合的一整套中斷機(jī)構(gòu)實(shí)施的。中斷響應(yīng)由硬件實(shí)施,中斷處理主要由軟件實(shí)施。中斷響應(yīng)是CPU對(duì)中斷源中斷請(qǐng)求的響應(yīng),包括保護(hù)斷點(diǎn)和將程序轉(zhuǎn)向中斷效勞程序的入口地址。
在處理器執(zhí)行完一條指令后,硬件的中斷裝置就立即檢查有無中斷事件發(fā)生。假設(shè)無,繼續(xù)執(zhí)行下一條指令;假設(shè)有,那么停止現(xiàn)行進(jìn)程,由操作系統(tǒng)中的中斷處理程序占用處理器,這一過程稱為“中斷響應(yīng)〞。2/2/2025一般說來,中斷響應(yīng)過程順序執(zhí)行下述動(dòng)作:
(1)中止當(dāng)前進(jìn)程的執(zhí)行;(2)對(duì)被響應(yīng)的中斷進(jìn)行應(yīng)答;
(3)保存當(dāng)前進(jìn)程的斷點(diǎn)信息(主要是程序狀態(tài)字PSW和程序計(jì)數(shù)器PC);
(4)轉(zhuǎn)到中斷處理程序入口。2/2/2025中斷處理
中斷處理主要由軟件實(shí)施。響應(yīng)中斷后,CPU轉(zhuǎn)去執(zhí)行相應(yīng)的中斷處理程序。每個(gè)中斷都對(duì)應(yīng)一個(gè)特定的中斷處理程序,因而系統(tǒng)中會(huì)有許多中斷處理程序,如時(shí)鐘中斷處理程序、鍵盤中斷處理程序等。在設(shè)備的驅(qū)動(dòng)程序中包含了對(duì)該設(shè)備所有中斷的處理程序。
2/2/2025中斷處理過程:①當(dāng)中斷裝置發(fā)現(xiàn)中斷事件后,先把中斷事件存放到程序狀態(tài)字存放器中的中斷碼位置。②把程序狀態(tài)字存放器中的“當(dāng)前PSW〞作為“舊PSW〞保存到預(yù)先約定的主存的固定單元中。③根據(jù)中斷碼,把該類事件處理程序的“新PSW〞送入程序狀態(tài)字存放器。④處理器按新PSW控制處理該事件的中斷處理程序執(zhí)行。當(dāng)中斷程序處理完后,再恢復(fù)現(xiàn)場(chǎng),繼續(xù)執(zhí)行原先被中斷的進(jìn)程2/2/2025中斷處理程序的處理過程如下:
1.喚醒被阻塞的驅(qū)動(dòng)程序進(jìn)程2.保護(hù)被中斷進(jìn)程的現(xiàn)場(chǎng)3.分析中斷原因、轉(zhuǎn)入相應(yīng)的設(shè)備中斷處理程序4.進(jìn)行中斷處理5.恢復(fù)被中斷進(jìn)程的現(xiàn)場(chǎng)
中斷處理程序的工作是對(duì)傳輸?shù)慕Y(jié)果進(jìn)行必要的處理。2/2/2025多中斷的處理
對(duì)于中斷處理過程中又發(fā)生中斷,引起多中斷處理的問題,通常有兩種處理方法。
(1)處理一個(gè)中斷時(shí)禁止中斷對(duì)任何新中斷置之不理,在此期間發(fā)生的中斷將保持掛起狀態(tài),當(dāng)再次允許中斷時(shí),新中斷信號(hào)被處理器檢測(cè)到再予以處理(2)中斷按照優(yōu)先權(quán)分級(jí)允許優(yōu)先級(jí)高的中斷打斷優(yōu)先級(jí)低的中斷處理過程2/2/20255.4.3設(shè)備驅(qū)動(dòng)程序
設(shè)備驅(qū)動(dòng)程序是驅(qū)動(dòng)物理設(shè)備直接進(jìn)行各種操作的軟件,它可看作I/O系統(tǒng)和物理設(shè)備的接口。設(shè)備驅(qū)動(dòng)程序包括了所有與設(shè)備有關(guān)的代碼。每一個(gè)設(shè)備驅(qū)動(dòng)程序只處理一種設(shè)備或者一類密切相關(guān)的設(shè)備。
2/2/2025設(shè)備驅(qū)動(dòng)程序的功能:〔1〕實(shí)現(xiàn)邏輯設(shè)備到物理設(shè)備的轉(zhuǎn)換?!?〕發(fā)出I/O命令,啟動(dòng)相應(yīng)的I/O設(shè)備,完成相應(yīng)的I/O操作。2/2/2025設(shè)備驅(qū)動(dòng)程序與設(shè)備控制器交互的大致過程驅(qū)動(dòng)程序?qū)⒖刂泼畎l(fā)到控制器的命令存放器中,控制器啟動(dòng)設(shè)備進(jìn)行I/O操作。當(dāng)數(shù)據(jù)準(zhǔn)備好后,驅(qū)動(dòng)程序負(fù)責(zé)與控制器交互,完成數(shù)據(jù)傳輸工作??刂破鲗⒃O(shè)備產(chǎn)生的狀態(tài)信息存入狀態(tài)存放器中,供驅(qū)動(dòng)程序查詢。當(dāng)有設(shè)備中斷事件發(fā)生時(shí),控制器發(fā)出中斷請(qǐng)求信號(hào),系統(tǒng)進(jìn)入中斷處理程序進(jìn)行處理。2/2/2025設(shè)備處理方式有三類:
一是為每一類設(shè)備設(shè)置一個(gè)進(jìn)程,專門執(zhí)行這類設(shè)備的輸入輸出操作。二是在整個(gè)系統(tǒng)中設(shè)置一個(gè)輸入輸出進(jìn)程,專門負(fù)責(zé)對(duì)系統(tǒng)中所有各類設(shè)備的輸入輸出操作。三是不設(shè)置專門的設(shè)備處理進(jìn)程,只為各類設(shè)備設(shè)置相應(yīng)的設(shè)備處理程序,供用戶進(jìn)程或系統(tǒng)進(jìn)程調(diào)用。2/2/2025設(shè)備驅(qū)動(dòng)程序的特點(diǎn)(1)驅(qū)動(dòng)程序主要是在請(qǐng)求輸入輸出的進(jìn)程與設(shè)備控制器之間的一個(gè)通信程序。(2)驅(qū)動(dòng)程序與輸入輸出設(shè)備的特性密切相關(guān)。因而對(duì)不同類型的設(shè)備應(yīng)配置不同的驅(qū)動(dòng)程序(3)驅(qū)動(dòng)程序與輸入輸出控制方式緊密相關(guān)。(4)驅(qū)動(dòng)程序與硬件緊密相關(guān),其局部被固化在ROM中。2/2/2025設(shè)備驅(qū)動(dòng)程序的處理過程:
1.將抽象要求轉(zhuǎn)化為具體要求2.檢查輸入輸出請(qǐng)求的合法性3.讀出和檢查設(shè)備的狀態(tài)4.傳送必要的參數(shù)5.設(shè)置工作方式6.啟動(dòng)輸入輸出設(shè)備2/2/20255.4.4設(shè)備獨(dú)立性軟件
為了實(shí)現(xiàn)設(shè)備獨(dú)立性而引入了邏輯設(shè)備和物理設(shè)備這兩個(gè)概念。在應(yīng)用程序中,使用邏輯設(shè)備名稱來請(qǐng)求使用某類設(shè)備;而系統(tǒng)在實(shí)際執(zhí)行時(shí),還必須使用物理設(shè)備名稱。
因此,系統(tǒng)須具有將邏輯設(shè)備名稱轉(zhuǎn)換為某物理設(shè)備名稱的功能,這非常類似于存儲(chǔ)器管理中所介紹的邏輯地址和物理地址的概念。
2/2/20251.邏輯設(shè)備與物理設(shè)備的概念
物理設(shè)備是一個(gè)具體的設(shè)備。系統(tǒng)為了能識(shí)別全部外設(shè),給每臺(tái)外設(shè)分配一個(gè)唯一不變的名字,稱為物理設(shè)備名。系統(tǒng)在實(shí)際工作時(shí)使用物理設(shè)備名。邏輯設(shè)備是對(duì)實(shí)際物理設(shè)備屬性的抽象,它并不限于某個(gè)具體設(shè)備。用戶在編程時(shí),不用關(guān)心系統(tǒng)具體配置了哪些設(shè)備,也不需要了解各種設(shè)備的物理特性,而只是按照慣例為所用的設(shè)備起個(gè)邏輯名字,稱為邏輯設(shè)備名。2/2/20252.設(shè)備獨(dú)立性
設(shè)備獨(dú)立性也稱設(shè)備無關(guān)性,指用戶編程時(shí)所使用的設(shè)備與實(shí)際使用的設(shè)備無關(guān)。為此,要求用戶程序?qū)斎胼敵鲈O(shè)備的請(qǐng)求采用邏輯設(shè)備名;而在程序?qū)嶋H執(zhí)行時(shí)使用物理設(shè)備名,它們之間的關(guān)系類似存儲(chǔ)管理中的邏輯地址和物理地址的關(guān)系。2/2/2025用戶程序以邏輯設(shè)備名來請(qǐng)求使用某類設(shè)備時(shí),系統(tǒng)將在該類設(shè)備中,根據(jù)設(shè)備的使用情況,將任一臺(tái)適宜的物理設(shè)備分配給程序。在實(shí)現(xiàn)了設(shè)備獨(dú)立性的功能后,可帶來以下兩方面的好處:1)設(shè)備分配時(shí)的靈活性2)易于實(shí)現(xiàn)I/O重定向2/2/20255.4.5用戶層I/O軟件盡管大局部I/O軟件屬于操作系統(tǒng),但是也有一小局部是與用戶程序鏈接在一起的庫例程,甚至是在核心外運(yùn)行的完整程序。系統(tǒng)調(diào)用,包括I/O系統(tǒng)調(diào)用,通常是庫例程調(diào)用。在如下C語句:count=write(fd,buffer,nbyte);中,所調(diào)用的庫函數(shù)write()將與用戶程序鏈接在一起,并包含在運(yùn)行時(shí)的二進(jìn)制代碼中。這一類庫例程顯然也是I/O系統(tǒng)的一局部。標(biāo)準(zhǔn)I/O庫包含相當(dāng)多涉及I/O的庫例程,它們作為用戶程序的一局部運(yùn)行。2/2/2025總結(jié)2/2/20255.5設(shè)備分配設(shè)備分配是由I/O系統(tǒng)中的設(shè)備分配程序完成的。每當(dāng)進(jìn)程提出I/O請(qǐng)求時(shí),設(shè)備分配程序便按照一定的策略把所需的設(shè)備分配給進(jìn)程使用。設(shè)備分配的原那么是要盡可能地讓設(shè)備忙碌,充分發(fā)揮設(shè)備的使用效率。2/2/20255.5.1設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)設(shè)備控制表DCT控制器控制表COCT系統(tǒng)設(shè)備表SDT通道控制表CHCT〔有時(shí)有〕2/2/20251.設(shè)備控制表系統(tǒng)為每個(gè)設(shè)備配置一張?jiān)O(shè)備控制表,用于記錄設(shè)備的特性及與輸入輸出控制器連接的情況。該表在系統(tǒng)生成時(shí)或在該設(shè)備和系統(tǒng)連接時(shí)創(chuàng)立,但表中的內(nèi)容那么根據(jù)系統(tǒng)執(zhí)行情況而被動(dòng)態(tài)地修改。2/2/2025表目1┊設(shè)備控制表集合設(shè)備控制表設(shè)備控制表2/2/20252.系統(tǒng)設(shè)備表SDT系統(tǒng)設(shè)備表也稱為設(shè)備類表,整個(gè)系統(tǒng)配置一張。它記錄了已被連接到系統(tǒng)中的所有物理設(shè)備的情況,并為每個(gè)物理設(shè)備設(shè)一個(gè)表項(xiàng)。2/2/2025表目1┊系統(tǒng)設(shè)備表2/2/20253.控制器控制表COCT系統(tǒng)為每個(gè)控制器配置了一張控制器控制表,以反映控制器的使用狀態(tài)。2/2/2025表目1┊控制器表
控制器表其中控制器表中包括:控制器標(biāo)識(shí)符、控制器狀態(tài)、與控制器連接的通道表指針、控制器隊(duì)列的隊(duì)首指針和隊(duì)尾指針。與設(shè)備控制表的表目類似,不再重復(fù)。2/2/20254.通道控制表CHCT
系統(tǒng)為每個(gè)通道配置一張通道控制表,以反映通道的使用狀態(tài)。該表只在通道控制方式的系統(tǒng)中存在,每個(gè)通道一張。2/2/2025表目1┊通道表通道表其中通道表中包括:通道標(biāo)識(shí)符、通道狀態(tài)、與通道連接的控制器表首址、通道隊(duì)列的隊(duì)首指針和隊(duì)尾指針。與設(shè)備控制表的表目類似,不再重復(fù)。2/2/2025這幾張表的關(guān)系:
在系統(tǒng)設(shè)備表中有指向設(shè)備控制表的指針,在設(shè)備控制表中有指向該設(shè)備控制器控制表的指針,在控制器控制表中有指向與該控制器連接的通道控制表的指針。系統(tǒng)就是通過這種關(guān)系進(jìn)行設(shè)備的分配與回收的。2/2/20255.5.2設(shè)備分配時(shí)應(yīng)考慮的因素1.設(shè)備的使用性質(zhì)
按照設(shè)備自身的使用性質(zhì),可以采用以下三種不同的分配方式:獨(dú)享分配、共享分配、虛擬分配。獨(dú)享分配適用于大多數(shù)低速設(shè)備,如打印機(jī)。共享分配適應(yīng)于高速設(shè)備,如磁盤。虛擬分配適應(yīng)于虛擬設(shè)備。根據(jù)設(shè)備的使用性質(zhì)來決定一臺(tái)設(shè)備可以分給幾個(gè)進(jìn)程。2/2/20252.設(shè)備分配的算法當(dāng)有多個(gè)進(jìn)程同時(shí)請(qǐng)求設(shè)備時(shí),系統(tǒng)應(yīng)采用某種策略決定將設(shè)備分配給哪個(gè)進(jìn)程使用。主要的分配策略有先來先效勞和優(yōu)先級(jí)兩種?!?〕先來先效勞算法根據(jù)進(jìn)程對(duì)某設(shè)備提出請(qǐng)求的先后次序,將這些進(jìn)程排成一個(gè)設(shè)備請(qǐng)求隊(duì)列,設(shè)備分配程序總是把設(shè)備首先分配給隊(duì)首的進(jìn)程。先來先效勞的算法簡(jiǎn)單、公平,但無法滿足某些緊迫進(jìn)程對(duì)I/O響應(yīng)時(shí)間的要求?!?〕優(yōu)先級(jí)算法的策略是對(duì)高優(yōu)先權(quán)進(jìn)程的I/O請(qǐng)求也賦予高優(yōu)先權(quán),這有助于這種進(jìn)程盡快完成。在利用該算法形成設(shè)備隊(duì)列時(shí),將優(yōu)先級(jí)高的進(jìn)程排在設(shè)備請(qǐng)求隊(duì)列的前面,而對(duì)于同優(yōu)先級(jí)的I/O請(qǐng)求,那么按先來先效勞的原那么排隊(duì)。2/2/20253.設(shè)備分配的平安性設(shè)備分配的平安性是指在設(shè)備分配中應(yīng)防止發(fā)生進(jìn)程的死鎖。設(shè)備分配的平安性采用的方法有靜態(tài)分配策略和動(dòng)態(tài)分配策略,它們可以防止進(jìn)程死鎖?!?〕靜態(tài)分配策略。靜態(tài)分配策略是在作業(yè)級(jí)進(jìn)行的,用戶作業(yè)開始執(zhí)行前,由系統(tǒng)一次分配給該作業(yè)所要求的全部設(shè)備、控制器和通道,直到該作業(yè)撤消為止。靜態(tài)分配不會(huì)出現(xiàn)死鎖,但是,設(shè)備利用率低。〔2〕動(dòng)態(tài)分配策略。動(dòng)態(tài)分配策略是在進(jìn)程執(zhí)行過程中,根據(jù)執(zhí)行的需要所進(jìn)行的設(shè)備分配。動(dòng)態(tài)分配提高了設(shè)備的利用率,但是分配不當(dāng),會(huì)造成進(jìn)程的死鎖。2/2/20254.設(shè)備的獨(dú)立性
設(shè)備的獨(dú)立性是指用戶在編制程序時(shí)所使用的設(shè)備與實(shí)際使用的設(shè)備無關(guān)。為此,要求用戶程序?qū)斎胼敵鲈O(shè)備的請(qǐng)求采用邏輯設(shè)備名,而在程序?qū)嶋H執(zhí)行時(shí)使用物理設(shè)備名,它們之間的關(guān)系類似存儲(chǔ)管理中的邏輯地址和物理地址的關(guān)系。2/2/20255.5.3獨(dú)占設(shè)備的分配程序在一個(gè)具有I/O通道的系統(tǒng)中,當(dāng)進(jìn)程提出I/O請(qǐng)求時(shí),對(duì)獨(dú)占設(shè)備的分配過程是:首先為其進(jìn)行分配適宜的設(shè)備,然后分配控制器,最后分配通道。2/2/20251.分配設(shè)備分配設(shè)備的過程如圖示:當(dāng)進(jìn)程提出I/O請(qǐng)求后,首先根據(jù)進(jìn)程提出的邏輯設(shè)備名,查找到與之對(duì)應(yīng)的物理設(shè)備名,檢索系統(tǒng)設(shè)備表SDT,以獲得該設(shè)備的設(shè)備控制表DCT。查看設(shè)備控制表中設(shè)備的狀態(tài)。假設(shè)設(shè)備忙,將該進(jìn)程PCB放入設(shè)備請(qǐng)求隊(duì)列中;否那么,系統(tǒng)可根據(jù)一定的算法判定分配此設(shè)備給進(jìn)程是否平安。假設(shè)不平安,將進(jìn)程的PCB塊也放入設(shè)備請(qǐng)求隊(duì)列。假設(shè)有設(shè)備空閑,且分配平安,就將該設(shè)備分配給進(jìn)程。2/2/2025121第七章設(shè)備管理2.分配控制器在系統(tǒng)把設(shè)備分配給請(qǐng)求輸入輸出的進(jìn)程后,再到設(shè)備控制表中找到與該設(shè)備相連的控制器控制表,從該表的狀態(tài)字段中可知該控制器是否忙碌。假設(shè)控制器忙,那么將進(jìn)程插入到等待該控制器的隊(duì)列;否那么,將該控制器分配給進(jìn)程,即修改控制器控制表,把狀態(tài)字段的值由“0〞改為進(jìn)程名。2/2/2025122第七章設(shè)備管理3.分配通道在分配完設(shè)備控制器后,從控制器控制表中找到與該控制器相連的通道控制表,從該表的狀態(tài)字段中可知該通道是否忙碌。假設(shè)通道處于忙碌狀態(tài),那么將該進(jìn)程插入到等待該通道的隊(duì)列;否那么,將該通道分配給進(jìn)程,即修改通道控制表,把狀態(tài)字段的值由“0〞改為進(jìn)程名。2/2/2025123第七章設(shè)備管理設(shè)備回收當(dāng)進(jìn)程撤消或設(shè)備使用完畢后,要進(jìn)行設(shè)備的回收,設(shè)備回收的過程如下圖。設(shè)備回收的步驟:〔1〕系統(tǒng)根據(jù)進(jìn)程名在設(shè)備分配表中找到相應(yīng)的記錄,把設(shè)備狀態(tài)修改為“0〞表示未分配,假設(shè)該設(shè)備的等待隊(duì)列不空,那么喚醒隊(duì)首進(jìn)程,進(jìn)行設(shè)備分配;〔2〕到該設(shè)備的控制器控制表中,把其狀態(tài)由進(jìn)程名改為“0〞,假設(shè)該控制器的等待隊(duì)列不空,那么喚醒隊(duì)首進(jìn)程,進(jìn)行控制器分配;〔3〕到該控制器的通道控制表中,把其狀態(tài)由進(jìn)程名改為“0〞,假設(shè)該通道的等待隊(duì)列不空,那么喚醒隊(duì)首進(jìn)程,進(jìn)行通道分配;〔4〕在系統(tǒng)設(shè)備表中,把回收設(shè)備臺(tái)數(shù)添加到“現(xiàn)存設(shè)備臺(tái)數(shù)〞中。2/2/2025124第七章設(shè)備管理對(duì)設(shè)備分配程序的改進(jìn)以上設(shè)備分配程序有兩個(gè)特點(diǎn):一是,進(jìn)程是以物理設(shè)備名來提出輸入輸出請(qǐng)求的。二是,系統(tǒng)采用的是單通路的輸入輸出系統(tǒng)結(jié)構(gòu)。這樣的系統(tǒng)容易產(chǎn)生“瓶頸〞現(xiàn)象。為此,對(duì)設(shè)備分配程序做以下改進(jìn):〔1〕增加設(shè)備的獨(dú)立性。進(jìn)程應(yīng)以邏輯設(shè)備名請(qǐng)求輸入輸出。系統(tǒng)首先根據(jù)系統(tǒng)設(shè)備表找到第一個(gè)該類設(shè)備的設(shè)備分配表,假設(shè)該設(shè)備忙,那么查找第二個(gè)該類設(shè)備的設(shè)備分配表,僅當(dāng)所有該類設(shè)備都忙時(shí),才把進(jìn)程掛在該類設(shè)備的等待隊(duì)列上。這樣通過增加設(shè)備的獨(dú)立性,提高了設(shè)備分配的平安性。2/2/2025125第七章設(shè)備管理〔2〕考慮多通路情況。系統(tǒng)采用多通路的輸入輸出系統(tǒng)結(jié)構(gòu),如圖示:即一個(gè)設(shè)備可以由多個(gè)控制器控制,一個(gè)控制器可以由多個(gè)通道控制〔即增加圖中的虛線局部〕。這樣,可以防止系統(tǒng)出現(xiàn)“瓶頸〞現(xiàn)象。也就是對(duì)控制器和通道的分配,同樣經(jīng)過幾次反復(fù),只要有一個(gè)控制器或通道可用,系統(tǒng)就可以把它分配給進(jìn)程。這樣,就增加了分配控制器和通道的可能性,提高了設(shè)備分配的效率。返回2/2/2025126第七章設(shè)備管理2/2/20252/2/2025SPOOLing系統(tǒng)的組成 1.輸入井和輸出井。2.輸入緩沖區(qū)和輸出緩沖區(qū)。3.輸入進(jìn)程和輸出進(jìn)程。2/2/20252/2/2025思考題SPOOLing是如何實(shí)現(xiàn)輸入輸出的?
輸入進(jìn)程模擬脫機(jī)輸入時(shí)的外圍控制機(jī),將用戶要求的數(shù)據(jù)從輸入機(jī)通過輸入緩沖區(qū)再送到輸入井,當(dāng)CPU需要輸入數(shù)據(jù)時(shí),直接從輸入井讀入內(nèi)存;輸出進(jìn)程模擬脫機(jī)輸出時(shí)的外圍控制機(jī),把用戶要求輸出的數(shù)據(jù)先從內(nèi)存送到輸出井,待輸出設(shè)備空閑時(shí),再將輸出井中的數(shù)據(jù)經(jīng)過輸出緩沖區(qū)送到輸出設(shè)備上。2/2/2025
系統(tǒng)在外存開辟了一個(gè)打印機(jī)輸出井和一個(gè)磁帶機(jī)輸入井。對(duì)用戶進(jìn)程來說,這就是一臺(tái)虛擬打印機(jī)和一臺(tái)虛擬磁帶機(jī)。當(dāng)進(jìn)程需要從磁帶機(jī)輸入數(shù)據(jù)時(shí),SPOOLing系統(tǒng)啟動(dòng)磁帶機(jī),將數(shù)據(jù)讀入磁帶機(jī)輸入井中,隨后進(jìn)程直接從輸入井提取數(shù)據(jù),不需再等待。當(dāng)進(jìn)程需要打印輸出時(shí),它們將數(shù)據(jù)高速地送入打印機(jī)輸出井,然后繼續(xù)運(yùn)行。在輸出井等待打印的數(shù)據(jù)形成打印隊(duì)列,由SPOOLing系統(tǒng)控制在適當(dāng)?shù)臅r(shí)候完成實(shí)際的打印工作。2/2/2025虛擬設(shè)備除了可以減少進(jìn)程對(duì)設(shè)備的等待時(shí)間外,還可以解決多個(gè)進(jìn)程對(duì)獨(dú)占設(shè)備的競(jìng)爭(zhēng)問題。例如,在設(shè)置了虛擬打印機(jī)的系統(tǒng)中,每個(gè)進(jìn)程都可以隨時(shí)執(zhí)行打印輸出操作,好似系統(tǒng)的打印機(jī)是自己獨(dú)占的。也就是說,使用虛擬設(shè)備永遠(yuǎn)不會(huì)引起進(jìn)程死鎖。2/2/2025
當(dāng)用戶進(jìn)程請(qǐng)求打印輸出時(shí),SPOOLing系統(tǒng)同意為它打印輸出,但并不真正立即把打印機(jī)分配給該用戶進(jìn)程,而只為它做兩件事:①由輸出進(jìn)程在輸出井中為之申請(qǐng)一個(gè)空閑磁盤塊區(qū),并將要打印的數(shù)據(jù)送入其中;②輸出進(jìn)程再為用戶進(jìn)程申請(qǐng)一張空白的用戶請(qǐng)求打印表,并將用戶的打印要求填入其中,再將該表掛到請(qǐng)求打印隊(duì)列上。2/2/2025思考題請(qǐng)說明SPOOLing系統(tǒng)是如何實(shí)現(xiàn)虛擬設(shè)備的?答:SPOOLing系統(tǒng)主要由輸入井和輸出井、輸入緩沖區(qū)和輸出緩沖區(qū)、輸入進(jìn)程和輸出三局部組成。當(dāng)要運(yùn)行用戶程序時(shí),由輸入進(jìn)程將用戶要求的程序和數(shù)據(jù)預(yù)先從輸入設(shè)備經(jīng)由輸入緩沖區(qū)送到輸入井,當(dāng)程序運(yùn)行需要輸入數(shù)據(jù)時(shí),直接從輸入井將數(shù)據(jù)讀入內(nèi)存。當(dāng)用戶程序要求輸出數(shù)據(jù)時(shí),由輸出進(jìn)程先將數(shù)據(jù)從內(nèi)存送到輸出井,待輸出設(shè)備空閑時(shí),再將輸出井中的數(shù)據(jù)經(jīng)由輸出緩沖區(qū)送到輸出設(shè)備上。由于磁盤是共享設(shè)備,輸入井及輸出井是磁盤上的兩個(gè)存儲(chǔ)區(qū)域,因此多個(gè)用戶進(jìn)程可以共享使用輸入井及輸出井,這樣,就將獨(dú)占型設(shè)備改造成了可共享使用的虛擬設(shè)備。2/2/20252/2/20255.6磁盤存儲(chǔ)器的管理5.6.1磁盤性能簡(jiǎn)述磁盤的結(jié)構(gòu)每個(gè)盤面上有許多磁道,從0開始按由外向里的次序順序編號(hào),不同盤面上具有相同編號(hào)的磁道在同一個(gè)柱面上,把盤面上的磁道號(hào)稱為“柱面號(hào)〞。
每個(gè)盤面有一個(gè)讀寫磁頭,所有的讀寫磁頭被固定在唯一的移動(dòng)臂上同時(shí)移動(dòng),把所有的讀寫磁頭按從上到下的次序從0開始進(jìn)行編號(hào),稱為磁頭號(hào)。在磁盤初始化時(shí)把每個(gè)盤面劃分成相等數(shù)量的扇區(qū),按磁盤旋轉(zhuǎn)的反向從0開始給各扇區(qū)編號(hào),稱為扇區(qū)號(hào)。
要確定一個(gè)塊所在的位置,必須給出三個(gè)參數(shù):柱面號(hào)、磁頭號(hào)、扇區(qū)號(hào)。2/2/2025磁盤的類型1)固定頭磁盤
這種磁盤在每條磁道上都有一讀/寫磁頭,所有的磁頭都被裝在一剛性磁臂中。通過這些磁頭可訪問所有各磁道,并進(jìn)行并行讀/寫,有效地提高了磁盤的I/O速度。這種結(jié)構(gòu)的磁盤主要用于大容量磁盤上。2)移動(dòng)頭磁盤
每一個(gè)盤面僅配有一個(gè)磁頭,也被裝入磁臂中。為能訪問該盤面上的所有磁道,該磁頭必須能移動(dòng)以進(jìn)行尋道。可見,移動(dòng)磁頭僅能以串行方式讀/寫,致使其I/O速度較慢;但由于其結(jié)構(gòu)簡(jiǎn)單,故仍廣泛應(yīng)用于中小型磁盤設(shè)備中。2/2/2025磁盤訪問時(shí)間啟動(dòng)磁盤執(zhí)行輸入輸出操作時(shí),要把移動(dòng)臂移動(dòng)到指定的柱面,再等待指定的扇區(qū)旋轉(zhuǎn)到磁頭位置下,然后讓指定的磁頭進(jìn)行讀寫,完成信息傳送。因此,執(zhí)行一次輸入輸出所花的時(shí)間有:1〕尋道時(shí)間——磁頭在移動(dòng)臂帶動(dòng)下移動(dòng)到指定柱面所花的時(shí)間?!睸eek〕2〕延遲時(shí)間(Delay)——指定扇區(qū)旋轉(zhuǎn)到磁頭下所需的時(shí)間。3〕傳輸時(shí)間——由磁頭進(jìn)行讀寫完成信息傳送的時(shí)間。2/2/20255.6.2磁盤調(diào)度1.先進(jìn)先效勞算法FCFS這是最簡(jiǎn)單的一種磁盤調(diào)度算法。它根據(jù)進(jìn)程請(qǐng)求訪問磁盤的先后次序進(jìn)行調(diào)度。它將各進(jìn)
溫馨提示
- 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-2025學(xué)年安徽省A10聯(lián)盟高三上學(xué)期12月質(zhì)檢考?xì)v史試卷
- 2024-2025學(xué)年模塊綜合檢測(cè)卷(素能提升訓(xùn)練)-勤徑學(xué)升高中歷史選擇性必修1同步練測(cè)(統(tǒng)編版2019)
- 2025年專利共有協(xié)議制定指南
- 2025年企業(yè)產(chǎn)權(quán)交換策劃合同書
- 2025年信貸購(gòu)買房產(chǎn)轉(zhuǎn)賣合同樣本
- 2025年公積金繳納責(zé)任協(xié)議
- 2025年人力資源合作與交流協(xié)議書
- 2025年促銷禮品市場(chǎng)合作框架協(xié)議
- 2025年鋅材項(xiàng)目規(guī)劃申請(qǐng)報(bào)告模范
- 2025年免疫細(xì)胞質(zhì)量控制與檢驗(yàn)檢測(cè)協(xié)議
- 物流運(yùn)作管理-需求預(yù)測(cè)
- 《電機(jī)與電氣控制(第三版)習(xí)題冊(cè)》 習(xí)題答案
- 鋼桁梁頂推施工方案
- 醫(yī)療器械采購(gòu)方案投標(biāo)方案(完整技術(shù)標(biāo))
- 交通運(yùn)輸安全工作調(diào)研報(bào)告
- 旅行社導(dǎo)游合同
- 2023年四川省自貢市中考數(shù)學(xué)真題(原卷版)
- 05-第三章-環(huán)境污染物的生物轉(zhuǎn)運(yùn)和生物轉(zhuǎn)化-生物轉(zhuǎn)化幻燈片
- 室內(nèi)鋼結(jié)構(gòu)隔層施工合同
- 榮威iMAX8汽車說明書
- 山東省濰坊市高職單招2023年英語自考測(cè)試卷(含答案)
評(píng)論
0/150
提交評(píng)論