操作系統(tǒng)-設(shè)備_第1頁
操作系統(tǒng)-設(shè)備_第2頁
操作系統(tǒng)-設(shè)備_第3頁
操作系統(tǒng)-設(shè)備_第4頁
操作系統(tǒng)-設(shè)備_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

計(jì)算機(jī)操作系統(tǒng)張柏禮bailey_zhang@計(jì)算機(jī)科學(xué)與工程學(xué)院14設(shè)備管理基本概念I(lǐng)/O控制方式I/O設(shè)備分配設(shè)備驅(qū)動(dòng)24設(shè)備管理:基本概念I(lǐng)/O設(shè)備又稱為外部設(shè)備(外設(shè)),外圍設(shè)備廣義上的I/O設(shè)備:計(jì)算機(jī)系統(tǒng)中用于人機(jī)交互或與其他機(jī)器通訊的所有設(shè)備,如顯示器、鍵盤,打印機(jī),網(wǎng)卡,還包括所有的存儲(chǔ)設(shè)備,如磁盤,磁帶等狹義上的I/O設(shè)備:不包括存儲(chǔ)設(shè)備I/O設(shè)備的分類按使用特性分輸入輸出設(shè)備:鍵盤、鼠標(biāo)、掃描儀、麥克風(fēng)、音箱等存儲(chǔ)設(shè)備:磁盤、磁帶、光盤網(wǎng)絡(luò)通訊設(shè)備:各種網(wǎng)絡(luò)接口、調(diào)制解調(diào)器34設(shè)備管理:基本概念按信息交換的單位分塊設(shè)備:數(shù)據(jù)交換的單位是數(shù)據(jù)塊,如磁盤,磁帶(基本等價(jià)于存儲(chǔ)設(shè)備)字符設(shè)備:數(shù)據(jù)交換的單位是字節(jié),如終端鍵盤、打印機(jī)、網(wǎng)絡(luò)接口(基本等價(jià)于輸入輸出和網(wǎng)絡(luò)通訊設(shè)備)按共享屬性分獨(dú)占設(shè)備:臨界資源,并發(fā)進(jìn)程需互斥地使用這類設(shè)備,它一段時(shí)間內(nèi)只能由一個(gè)進(jìn)程獨(dú)占,直到其使用完畢或主動(dòng)釋放共享設(shè)備:多個(gè)進(jìn)程可以交替的使用這類設(shè)備,不必等另一個(gè)進(jìn)程使用結(jié)束后才能訪問,但某一個(gè)時(shí)刻只允許一個(gè)進(jìn)程訪問,如磁盤可以供多進(jìn)程交替使用,在某一個(gè)進(jìn)程A傳輸數(shù)據(jù)的時(shí)刻,其他進(jìn)程是不可以使用,但在進(jìn)程A完成這次磁盤指令后,下一個(gè)指令下達(dá)前,磁盤可被其他進(jìn)程使用虛擬設(shè)備:通過虛擬技術(shù)將一臺(tái)獨(dú)占設(shè)備變換成多臺(tái)邏輯設(shè)備,供多個(gè)進(jìn)程同時(shí)使用44設(shè)備管理:基本概念I(lǐng)/O設(shè)備控制器通常I/O設(shè)備并不是直接與CPU通訊,而是與I/O設(shè)備控制器進(jìn)行通訊,設(shè)備控制器是處理機(jī)和設(shè)備之間的接口,它負(fù)責(zé)接收從CPU發(fā)來的命令,并去控制I/O設(shè)備工作設(shè)備控制器的主要功能接受和識(shí)別命令數(shù)據(jù)交換設(shè)備狀態(tài)的了解和報(bào)告地址識(shí)別設(shè)備控制器的組成設(shè)備控制器與處理機(jī)的接口設(shè)備控制器與設(shè)備的接口I/O邏輯54設(shè)備管理:基本概念設(shè)備管理的基本功能I/O控制設(shè)備分配設(shè)備驅(qū)動(dòng)緩沖區(qū)管理 并行操作64設(shè)備管理基本概念I(lǐng)/O控制方式I/O設(shè)備分配設(shè)備驅(qū)動(dòng)74設(shè)備管理:I/O控制方式I/O控制I/O設(shè)備的輸入輸出控制方式隨著計(jì)算機(jī)技術(shù)的發(fā)展也在不斷的發(fā)展其主要方向是不斷地減少主機(jī)CPU對(duì)輸入輸出的控制,將主機(jī)從繁瑣低速的I/O事務(wù)中解脫出來,去完成更多數(shù)據(jù)處理的任務(wù),提高CPU的利用率I/O控制的發(fā)展經(jīng)歷了四個(gè)階段程序直接I/O控制方式中斷I/O控制方式DMAI/O控制方式通道I/O控制方式84設(shè)備管理:I/O控制方式程序直接I/O控制又稱為忙—等方式、輪巡方式和循環(huán)測(cè)試方式用戶程序直接控制CPU與外設(shè)的數(shù)據(jù)傳送,這種方式的控制者是用戶進(jìn)程,其硬件體系結(jié)構(gòu)如圖設(shè)備控制器上有三個(gè)寄存器,控制寄存器、狀態(tài)寄存器、數(shù)據(jù)寄存器通過memory-mappedI/O技術(shù),使三個(gè)寄存器都具有內(nèi)存的地址,從而CPU可以直接與它們交互94設(shè)備管理:I/O控制方式當(dāng)進(jìn)程需要從外設(shè)輸入數(shù)據(jù)時(shí)(1)通過CPU發(fā)出設(shè)備啟動(dòng)指令到控制寄存器(2)進(jìn)程進(jìn)入測(cè)試等待狀態(tài),不斷地用測(cè)試指令檢查狀態(tài)寄存器是否有完成標(biāo)志(3)當(dāng)外設(shè)將單字節(jié)數(shù)據(jù)送入數(shù)據(jù)寄存器后,狀態(tài)寄存器設(shè)置完成標(biāo)志(4)進(jìn)程檢測(cè)到完成標(biāo)志后,將數(shù)據(jù)從數(shù)據(jù)寄存器中讀走(5)如還需輸入數(shù)據(jù),則回到(1)繼續(xù),否則完成I/O當(dāng)進(jìn)程需要輸出數(shù)據(jù)到外設(shè)時(shí),同樣發(fā)出啟動(dòng)命令,并等待設(shè)備準(zhǔn)備好之后才能輸出數(shù)據(jù)優(yōu)勢(shì):硬件結(jié)構(gòu)簡(jiǎn)單,輸入輸出程序也相當(dāng)簡(jiǎn)單劣勢(shì):CPU的高速性和I/O設(shè)備的低速性矛盾突出,導(dǎo)致CPU大多數(shù)時(shí)間都用于循環(huán)檢測(cè),CPU利用率很低,外設(shè)無法并行,只能串行一旦外設(shè)故障,狀態(tài)寄存器失效,可能導(dǎo)致CPU“死等”104設(shè)備管理:I/O控制方式中斷I/O控制方式當(dāng)某進(jìn)程需要啟動(dòng)某個(gè)外設(shè)工作時(shí)CPU向設(shè)備控制器發(fā)送一條I/O指令,然后返還執(zhí)行其他任務(wù)設(shè)備控制器具有一定的智能,受到指令后,按指令要求控制設(shè)備,進(jìn)行數(shù)據(jù)的輸入輸出,這時(shí)外設(shè)和CPU處于并行操作當(dāng)輸入/輸出的數(shù)據(jù)進(jìn)入數(shù)據(jù)寄存器后,設(shè)備控制器便向CPU發(fā)送一中斷信號(hào),CPU響應(yīng)中斷后,發(fā)送指令給設(shè)備控制器,由設(shè)備控制器將數(shù)據(jù)寫入內(nèi)存或由內(nèi)存寫入數(shù)據(jù)寄存器在外設(shè)輸入/輸出數(shù)據(jù)過程中,無需CPU的干預(yù),只有外設(shè)輸入/輸出結(jié)束時(shí),才需要花很短的時(shí)間進(jìn)行中斷處理如終端輸入一個(gè)字符的數(shù)據(jù)約為100ms,而將字符由數(shù)據(jù)寄存器送入內(nèi)存緩沖區(qū)的時(shí)間為0.1ms,如用程序直接I/O方式,CPU的99.9ms處于忙—等狀態(tài),而采用中斷控制,CPU可以將這99.9ms用于處理其他事情中斷方式使CPU和外設(shè)可以并行運(yùn)行,提高了系統(tǒng)資源利用率和吞吐量,并具有實(shí)時(shí)響應(yīng)能力,可以及時(shí)處理異常問題,提高了系統(tǒng)的可靠性114設(shè)備管理:I/O控制方式直接存儲(chǔ)器訪問控制方式(DMA方式)中斷方式的效率比程序直接I/O高得多,但中斷方式仍以字節(jié)為單位,每進(jìn)行一個(gè)字節(jié)的傳送,CPU都要干預(yù)一次,對(duì)于塊設(shè)備的數(shù)據(jù)傳輸,由于數(shù)據(jù)量很大且傳送速率很高時(shí),中斷這種方式就顯得比較低效DMA方式則是針對(duì)塊數(shù)據(jù)的傳輸,對(duì)設(shè)備控制器的功能進(jìn)行了擴(kuò)充,形成了DMA控制器(DMAC),增加地址寄存器(用于指明被傳輸數(shù)據(jù)的內(nèi)存地址)、長(zhǎng)度計(jì)數(shù)器(被傳輸數(shù)據(jù)的總字節(jié)數(shù))以及數(shù)據(jù)緩沖寄存器124設(shè)備管理:I/O控制方式DMA方式在內(nèi)存和外設(shè)之間進(jìn)行成塊數(shù)據(jù)傳送過程中,不需要CPU的干預(yù),僅在成塊數(shù)據(jù)讀寫開始和結(jié)束時(shí)需要CPU的參與DMA方式的數(shù)據(jù)塊傳送過程可分為三個(gè)階段,以從磁盤讀入數(shù)據(jù)為例預(yù)處理階段:當(dāng)CPU要從磁盤讀入一數(shù)據(jù)塊,便向磁盤控制器發(fā)送一條讀命令,包含數(shù)據(jù)讀入的磁盤物理地址讀入數(shù)據(jù)的字節(jié)數(shù)讀入數(shù)據(jù)后存放的內(nèi)存地址 然后,對(duì)DMAC進(jìn)行初始化和啟動(dòng),這時(shí)CPU可以去處理其他任務(wù)134設(shè)備管理:I/O控制方式數(shù)據(jù)傳送階段:由DMAC控制總線進(jìn)行數(shù)據(jù)傳輸DMAC從磁盤讀入一個(gè)字符,并送入數(shù)據(jù)寄存器申請(qǐng)一個(gè)總線周期將該數(shù)據(jù)寫入指定的內(nèi)存地址中,并將數(shù)據(jù)計(jì)數(shù)器減1如減1后不為0,則DMAC繼續(xù)從磁盤讀取數(shù)據(jù)如數(shù)據(jù)計(jì)數(shù)器減1后為0,表明數(shù)據(jù)傳送結(jié)束,DMAC發(fā)送中斷至CPU后處理階段:CPU響應(yīng)中斷,進(jìn)入中斷服務(wù)程序,檢查數(shù)據(jù),決定是否結(jié)束傳輸144設(shè)備管理:I/O控制方式通道I/O控制方式DMA相對(duì)于中斷方式,將CPU的干預(yù)由每個(gè)字節(jié)為單位,減少到以數(shù)據(jù)塊為單位,但CPU每發(fā)出一次I/O指令,只能讀寫一個(gè)連續(xù)的數(shù)據(jù)塊,如果需要一次讀寫多個(gè)離散的數(shù)據(jù)塊,則需CPU發(fā)出多條I/O指令發(fā)生多次中斷 通道相當(dāng)于一個(gè)具有專門用于輸入輸出的處理機(jī),具有特定的指令和程序,可以執(zhí)行通道進(jìn)程代替主機(jī)CPU實(shí)現(xiàn)更為復(fù)雜的數(shù)據(jù)傳送,完成更多的功能如當(dāng)CPU要完成多組數(shù)據(jù)的讀寫,只需要將相關(guān)指令一次性發(fā)送給通道,通道接收到指令后,執(zhí)行通道程序即可自行完成這多組數(shù)據(jù)的讀寫通道按照信息交換方式的不同,在一個(gè)系統(tǒng)中可以設(shè)立三種類型的通道字節(jié)多路通道:用于連接多臺(tái)低速的外設(shè),以字節(jié)為傳輸單位,各設(shè)備輪流占用一個(gè)時(shí)間片,是一種簡(jiǎn)單的共享通道154設(shè)備管理:I/O控制方式164設(shè)備管理:I/O控制方式選擇通道:用于連接多臺(tái)高速的外設(shè),以數(shù)據(jù)塊為傳輸單位在某段時(shí)間,通道只能選擇一個(gè)外設(shè)進(jìn)行I/O操作,只有一個(gè)輸入輸出操作完成后,才能與其他設(shè)備相連由于數(shù)據(jù)傳輸?shù)臅r(shí)間很短,I/O操作更多的時(shí)間用在尋址等其他方面,如讀寫磁盤數(shù)據(jù),磁盤臂移動(dòng)尋址需要很長(zhǎng)的時(shí)間,這時(shí)通道只能空等,所以通道利用率不高數(shù)據(jù)多路通道:對(duì)選擇通道的改進(jìn),其主要思想是當(dāng)設(shè)備進(jìn)行數(shù)據(jù)傳送時(shí),通道為其服務(wù)當(dāng)設(shè)備在執(zhí)行尋址等控制性動(dòng)作時(shí),通道暫時(shí)斷開與這個(gè)設(shè)備的連接,掛起該設(shè)備的通道程序,為其他設(shè)備服務(wù)這樣提高了通道的利用率(相當(dāng)于通道變成了一個(gè)多道系統(tǒng))通道方式是一種比DMA更為高效的方式,可以進(jìn)一步減輕CPU的負(fù)擔(dān),提高CPU和外設(shè)的并行能力17設(shè)備管理基本概念I(lǐng)/O控制方式I/O設(shè)備分配設(shè)備驅(qū)動(dòng)184設(shè)備管理:I/O設(shè)備分配設(shè)備分配與回收每個(gè)進(jìn)程進(jìn)行I/O傳送前必須擁有設(shè)備的使用權(quán)進(jìn)程必須向系統(tǒng)提出設(shè)備申請(qǐng),使用完畢后及時(shí)歸還作為設(shè)備管理機(jī)構(gòu),應(yīng)響應(yīng)進(jìn)程的設(shè)備請(qǐng)求,在條件許可的情況下把設(shè)備分配給申請(qǐng)者,同時(shí)能夠及時(shí)回收設(shè)備設(shè)備分配中的數(shù)據(jù)結(jié)構(gòu)(1)設(shè)備控制表DCB,一臺(tái)外設(shè)一個(gè),是外設(shè)存在的唯一標(biāo)志設(shè)備標(biāo)識(shí)設(shè)備類型設(shè)備狀態(tài)掛起進(jìn)程隊(duì)列相連通道其他194設(shè)備管理:I/O設(shè)備分配(2)通道控制塊CHCB,和通道一一對(duì)應(yīng),其中保存與通道有關(guān)的全部信息通道標(biāo)識(shí)通道狀態(tài)等待通道的進(jìn)程隊(duì)列控制器列表(3)系統(tǒng)設(shè)備表SDT:整個(gè)系統(tǒng)一張,記錄系統(tǒng)中所有設(shè)備的概要信息所有I/O設(shè)備的類型各類設(shè)備的數(shù)量DCB的表地址各類設(shè)備的驅(qū)動(dòng)程序的入口204設(shè)備管理:I/O設(shè)備分配設(shè)備分配的原則高效率,充分利用設(shè)備,使設(shè)備盡可能忙安全性,避免不合理的分配方法造成的進(jìn)程死鎖與物理設(shè)備無關(guān)性,用戶請(qǐng)求的是邏輯設(shè)備,分配程序根據(jù)當(dāng)前請(qǐng)求和設(shè)備分配情況,在相應(yīng)類別的設(shè)備中選擇一個(gè)空閑物理設(shè)備將其分配給申請(qǐng)者,而不支持用戶直接對(duì)物理設(shè)備的請(qǐng)求214設(shè)備管理:I/O設(shè)備分配設(shè)備分配方式靜態(tài)分配在進(jìn)程運(yùn)行前,由系統(tǒng)按資源清單一次性滿足設(shè)備要求,一旦分配后,設(shè)備資源一直為進(jìn)程所占用,直到進(jìn)程結(jié)束靜態(tài)分配不會(huì)出現(xiàn)死鎖,但設(shè)備利用率低動(dòng)態(tài)分配在進(jìn)程運(yùn)行過程中提出輸入輸出請(qǐng)求,分為(1)單請(qǐng)求:發(fā)出I/O請(qǐng)求后立即進(jìn)入掛起狀態(tài),直到I/O請(qǐng)求完成才喚醒,保證設(shè)備分配的安全性,因?yàn)樗痪哂兴梨i的必要條件(請(qǐng)求保持條件),但進(jìn)程運(yùn)行慢,設(shè)備利用率低(2)多請(qǐng)求:允許進(jìn)程發(fā)出I/O請(qǐng)求后繼續(xù)運(yùn)行,必要時(shí)發(fā)出其他的I/O請(qǐng)求,這樣進(jìn)程進(jìn)展快,設(shè)備利用率高,但容易發(fā)生死鎖224設(shè)備管理:I/O設(shè)備分配設(shè)備分配算法先請(qǐng)求先分配(先來先分配)優(yōu)先級(jí)高者優(yōu)先分配分配算法流程(1)根據(jù)被申請(qǐng)I/O設(shè)備的類型查找系統(tǒng)設(shè)備表SDT(2)在SDT中找到該類設(shè)備,檢查可用的數(shù)量如小于等于0,則表明此類設(shè)備沒有空閑,進(jìn)程進(jìn)入此類設(shè)備的阻塞等待隊(duì)列如果大于0,根據(jù)該項(xiàng)中DCB指針檢索該類設(shè)備的DCB表,找到一個(gè)空閑設(shè)備將其分配給進(jìn)程,并將SDT表中該類設(shè)備的可用數(shù)量減1(3)進(jìn)程獲得設(shè)備后,從DCB表中找到相連的通道,進(jìn)行通道使用的申請(qǐng)如通道忙,則進(jìn)程進(jìn)入該通道的等待隊(duì)列如通道空閑,則將通道分配給進(jìn)程,返回設(shè)備申請(qǐng)成功標(biāo)志23設(shè)備管理基本概念I(lǐng)/O控制方式I/O設(shè)備分配I/O設(shè)備驅(qū)動(dòng)244設(shè)備管理:I/O設(shè)備驅(qū)動(dòng)I/O軟件的層次結(jié)構(gòu)I/O設(shè)備管理軟件分層構(gòu)造思想將系統(tǒng)輸入輸出的功能組成一系列的層次每個(gè)層次完成輸入輸出的功能的一個(gè)子集每一個(gè)層次功能實(shí)現(xiàn)都依賴其下層所完成的更底層的功能,并屏蔽這些功能的實(shí)現(xiàn)為上層提供各種服務(wù)某一層次的修改不會(huì)引起其上層和下層代碼的修改其主要目標(biāo)是實(shí)現(xiàn)設(shè)備獨(dú)立性,即除了直接與設(shè)備直接打交道的底層軟件外,其他部分的軟件并不依賴于硬件254設(shè)備管理:I/O設(shè)備驅(qū)動(dòng)層次結(jié)構(gòu)的組成(1)用戶空間軟件實(shí)現(xiàn)I/O功能的大部分軟件屬于操作系統(tǒng),但用戶程序中有一小部分因輸入輸出需要而和I/O庫函數(shù)相連,因此也歸到I/O系統(tǒng)的一部分如C函數(shù)庫中fopen(),fwrite()等函數(shù),這些庫函數(shù)運(yùn)行在用戶態(tài),他們往往沒有做太多的事情,只是簡(jiǎn)單調(diào)用操作系統(tǒng)的系統(tǒng)調(diào)用函數(shù)如open(),write(),但pringf(),scanf()等函數(shù)還是確實(shí)做了很多實(shí)際的工作(主要是格式的轉(zhuǎn)換)(2)與設(shè)備無關(guān)的操作系統(tǒng)軟件與設(shè)備無關(guān)的I/O軟件和設(shè)備驅(qū)動(dòng)一般都是在OS內(nèi)核,兩者的界定隨操作系統(tǒng)的不同而變化I/O軟件中大部分屬于與設(shè)備無關(guān)的軟件,它對(duì)上層提供系統(tǒng)調(diào)用接口,對(duì)下通過設(shè)備驅(qū)動(dòng)接口調(diào)用設(shè)備驅(qū)動(dòng)程序264設(shè)備管理:I/O設(shè)備驅(qū)動(dòng)與設(shè)備無關(guān)的I/O軟件主要完成的功能274設(shè)備管理:I/O設(shè)備驅(qū)動(dòng)(3)中斷處理程序I/O設(shè)備產(chǎn)生的中斷應(yīng)盡量放到操作系統(tǒng)的底層進(jìn)程處理,讓其他部分軟件盡可能少和它發(fā)生聯(lián)系當(dāng)進(jìn)程進(jìn)行I/O操作時(shí),將被阻塞至I/O操作結(jié)束中斷發(fā)生時(shí),由中斷處理程序執(zhí)行相應(yīng)的操作并將其由阻塞狀態(tài)改為就緒狀態(tài),中斷處理程序同時(shí)檢查設(shè)備請(qǐng)求隊(duì)列獲取下一個(gè)設(shè)備驅(qū)動(dòng)請(qǐng)求,并驅(qū)動(dòng)設(shè)備如當(dāng)用戶程序試圖從磁盤讀取一個(gè)數(shù)據(jù)塊時(shí),調(diào)用系統(tǒng)調(diào)用:檢查數(shù)據(jù)塊緩存是否有該數(shù)據(jù)塊,如沒有,則調(diào)用設(shè)備驅(qū)動(dòng)向硬件發(fā)出請(qǐng)求,用戶進(jìn)程隨即進(jìn)入阻塞磁盤根據(jù)設(shè)備驅(qū)動(dòng)發(fā)送的指令將數(shù)據(jù)讀入內(nèi)存,完成數(shù)據(jù)傳輸后,設(shè)備控制器發(fā)出一個(gè)中斷,激活中斷處理程序中斷處理程序則從設(shè)備獲取返還值

溫馨提示

  • 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)論