




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、本章講述內(nèi)容:本章講述內(nèi)容:4.44.5 整個(gè)I/O結(jié)構(gòu)可以劃分成三個(gè)層次:底層是具體的設(shè)備和硬件接口,中間是系統(tǒng)軟件(與設(shè)備相關(guān)軟件、與設(shè)備無(wú)關(guān)軟件),最上面是用戶(hù)程序。 .打印機(jī)攝像機(jī)硬盤(pán)設(shè)備打印機(jī)控制器攝像機(jī)控制器磁盤(pán)控制器打印機(jī)驅(qū)動(dòng)程序攝像機(jī)驅(qū)動(dòng)程序磁盤(pán)驅(qū)動(dòng)程序I/O接口程序硬件接口與設(shè)備相關(guān)軟件與設(shè)備無(wú)關(guān)軟件用戶(hù)程序進(jìn)程A進(jìn)程B進(jìn)程C進(jìn)程N(yùn)用戶(hù)空間內(nèi)核空間1. I/O設(shè)備一般都由機(jī)械和電子兩個(gè)部分組成。為了使設(shè)計(jì)更加模塊化、更具通用性,也為了降低設(shè)計(jì)制作的成本,如今常把它們分開(kāi)來(lái)處理:電子部分稱(chēng)作是“設(shè)備控制器”或“適配器”;機(jī)械部分仍被稱(chēng)作是“設(shè)備”。. 控制器
2、的一端與計(jì)算機(jī)連接,另一端與設(shè)備連接??刂破魃嫌羞B接器,設(shè)備上引出的電纜可插到連接器中,完成與控制器的連接。很多控制器可同時(shí)連接2個(gè)、4個(gè)甚至8個(gè)相同設(shè)備,它們將共享控制器里的I/O邏輯部件。數(shù)據(jù)寄存器控制/狀態(tài)寄存器I/O邏輯部件設(shè)備控制器與I/O設(shè)備的接口i設(shè)備控制器與I/O設(shè)備的接口1設(shè)備控制器與I/O設(shè)備的接口2數(shù)據(jù)線(xiàn)地址線(xiàn)控制線(xiàn)數(shù)據(jù)狀態(tài)控制數(shù)據(jù)狀態(tài)控制數(shù)據(jù)狀態(tài)控制CPU與設(shè)備控制器接口設(shè)備控制器與I/O設(shè)備接口CPU. 控制器除將設(shè)備與計(jì)算機(jī)連接外,更重要的是隨時(shí)監(jiān)視設(shè)備的狀態(tài),實(shí)現(xiàn)對(duì)設(shè)備的控制與操作。每個(gè)控制器有若干個(gè)寄存器,用來(lái)與CPU通信。通過(guò)往寄存器里“寫(xiě)”,操作系統(tǒng)可命令設(shè)
3、備開(kāi)啟或關(guān)閉,可讓設(shè)備發(fā)送數(shù)據(jù)、接收數(shù)據(jù),或者讓設(shè)備執(zhí)行其他操作。通過(guò)對(duì)寄存器的“讀”,操作系統(tǒng)可得知設(shè)備的狀態(tài),斷定它是否可以接收新的命令等。.內(nèi)存I/O端口(a) 單獨(dú)的I/O和內(nèi)存空間(b) 內(nèi)存映射I/O內(nèi)存I/O端口 為使CPU與控制器的各個(gè)寄存器進(jìn)行通信,常采用“單獨(dú)的I/O空間”和“內(nèi)存映射I/O”兩種方法。2.3. 涉及設(shè)備管理的軟件分為與設(shè)備相關(guān)和與設(shè)備無(wú)關(guān)的兩部分。與設(shè)備相關(guān)部分就是設(shè)備驅(qū)動(dòng)程序,用于實(shí)現(xiàn)對(duì)具體設(shè)備的管理和操作;與設(shè)備無(wú)關(guān)部分是一些系統(tǒng)調(diào)用,用來(lái)把用戶(hù)的I/O請(qǐng)求導(dǎo)向到具體的設(shè)備驅(qū)動(dòng)程序。 . 要讓設(shè)備工作,必須訪(fǎng)問(wèn)設(shè)備控制器中的各種寄存器,這是通過(guò)編寫(xiě)特定
4、的程序代碼來(lái)實(shí)現(xiàn)的,這樣的代碼程序就稱(chēng)為“設(shè)備驅(qū)動(dòng)程序”。 . 設(shè)備驅(qū)動(dòng)程序應(yīng)設(shè)計(jì)成是可重入可重入的,其代碼在執(zhí)行中不允許被修改。通常,一類(lèi)設(shè)備有一個(gè)設(shè)備驅(qū)動(dòng)程序,任務(wù)是把用戶(hù)提交的操作命令轉(zhuǎn)化為物理操作的啟動(dòng)和實(shí)施。 . I/O接口程序就是與設(shè)備無(wú)關(guān)部分軟件,它從接收用戶(hù)對(duì)設(shè)備提出的I/O請(qǐng)求,然后把I/O請(qǐng)求轉(zhuǎn)變成所需的I/O命令,調(diào)用具體的設(shè)備驅(qū)動(dòng)程序去執(zhí)行,完成這個(gè)I/O請(qǐng)求。 . I/O接口程序?yàn)橛脩?hù)提供統(tǒng)一的設(shè)備命名方式,用主設(shè)備號(hào)指定設(shè)備類(lèi)型,次設(shè)備號(hào)作為參數(shù)傳遞給設(shè)備驅(qū)動(dòng)程序,以便確定真正完成讀寫(xiě)操作的設(shè)備。這樣在編程時(shí),不必指定具體的物理設(shè)備,有利于I/O設(shè)備的故障處理,為設(shè)
5、備分配增添了靈活性。稱(chēng)這種方法是設(shè)備管理中的“I/O設(shè)備無(wú)關(guān)性”或“I/O設(shè)備獨(dú)立性”。 I/O接口程序需要考慮與設(shè)備驅(qū)動(dòng)程序的接口。如果各類(lèi)設(shè)備的驅(qū)動(dòng)程序都有自己不同的接口,那么要往系統(tǒng)里添加一種新的設(shè)備類(lèi)型就會(huì)很困難,應(yīng)該提供驅(qū)動(dòng)程序的標(biāo)準(zhǔn)接口,這樣添加一個(gè)新的驅(qū)動(dòng)程序就很容易,開(kāi)發(fā)設(shè)備驅(qū)動(dòng)程序的人員也就知道應(yīng)該如何著手去編寫(xiě)驅(qū)動(dòng)程序。. 虛擬設(shè)備:。 獨(dú)享設(shè)備:分配給用戶(hù)進(jìn)程使用,就必須等它使用完,才能重新分配給另一個(gè)用戶(hù)進(jìn)程使用。即獨(dú)享設(shè)備的使用具有排它性。(打印機(jī)及用戶(hù)終端等低速設(shè)備) 用戶(hù)設(shè)備:在完成任務(wù)過(guò)程中,用戶(hù)特殊需要的設(shè)備。這些是操作系統(tǒng)生成時(shí)未經(jīng)登記的非標(biāo)準(zhǔn)設(shè)備,因此,需
6、要向系統(tǒng)提供使用該設(shè)備的設(shè)備驅(qū)動(dòng)程序。 . 輸入/輸出設(shè)備:輸入設(shè)備是計(jì)算機(jī)“感知”或“接觸”外部世界的設(shè)備,用戶(hù)通過(guò)它把信息送到計(jì)算機(jī)系統(tǒng)內(nèi)部(鍵盤(pán));輸出設(shè)備是計(jì)算機(jī)“通知”或“控制” 外部世界的設(shè)備(打印機(jī)) 。.1. 系統(tǒng)設(shè)備:操作系統(tǒng)生成時(shí)就納入系統(tǒng)管理范圍的設(shè)備,也稱(chēng)為“標(biāo)準(zhǔn)設(shè)備”。 2. 共享設(shè)備:可由幾個(gè)用戶(hù)進(jìn)程交替地對(duì)它進(jìn)行信息讀或?qū)懖僮鳌暮暧^上看,它們?cè)谕瑫r(shí)使用,因此這種設(shè)備的利用率較高。(磁盤(pán)) .3.存儲(chǔ)設(shè)備:計(jì)算機(jī)用來(lái)長(zhǎng)期保存各種信息、又可以隨時(shí)訪(fǎng)問(wèn)這些信息的設(shè)備 。(磁盤(pán)和磁帶是典型代表) SPOOLing 技術(shù)的特點(diǎn)技術(shù)的特點(diǎn):(1)提高了提高了I/O速度速度.
7、從對(duì)低速?gòu)膶?duì)低速I(mǎi)/O設(shè)備進(jìn)行的設(shè)備進(jìn)行的I/O操作變?yōu)閷?duì)操作變?yōu)閷?duì)輸入井輸入井或輸出或輸出井的操作井的操作,如同脫機(jī)操作一樣如同脫機(jī)操作一樣,提高了提高了I/O速度速度,緩和了緩和了CPU與低速與低速I(mǎi)/O設(shè)備速設(shè)備速度不匹配的矛盾度不匹配的矛盾. (2)設(shè)備并沒(méi)有分配給任何進(jìn)程設(shè)備并沒(méi)有分配給任何進(jìn)程.在輸入井或輸出井中在輸入井或輸出井中,分配給進(jìn)程的是一存分配給進(jìn)程的是一存儲(chǔ)區(qū)和建立一張儲(chǔ)區(qū)和建立一張I/O請(qǐng)求表請(qǐng)求表. (3)實(shí)現(xiàn)了虛擬設(shè)備功能實(shí)現(xiàn)了虛擬設(shè)備功能.多個(gè)進(jìn)程同時(shí)使用一獨(dú)享設(shè)備多個(gè)進(jìn)程同時(shí)使用一獨(dú)享設(shè)備,而對(duì)每一進(jìn)程而言而對(duì)每一進(jìn)程而言,都認(rèn)為自己獨(dú)占這一設(shè)備都認(rèn)為自己獨(dú)占
8、這一設(shè)備,不過(guò)不過(guò),該設(shè)備是邏輯上的設(shè)備該設(shè)備是邏輯上的設(shè)備.(1).磁盤(pán)磁盤(pán) 磁帶是嚴(yán)格按照信息存放的物理順序進(jìn)行定位與存取的存儲(chǔ)設(shè)備。必須從其頭部開(kāi)始,一個(gè)記錄、一個(gè)記錄地順序讀/寫(xiě),因此是一種適于順序存取的存儲(chǔ)設(shè)備。 磁帶機(jī)啟停時(shí)有慣性需要考慮。啟動(dòng)時(shí),須經(jīng)過(guò)一段時(shí)間才能加速到額定速度;讀/寫(xiě)完一個(gè)記錄到真正停下來(lái),要滑過(guò)一段距離。因此,磁帶上每個(gè)記錄間要有所謂的“記錄間隙(IRG)”存在。 為減少磁帶上IRG的數(shù)量,提高存儲(chǔ)利用率,寫(xiě)時(shí)先在內(nèi)存緩沖區(qū)把若干記錄拼裝成一塊,然后寫(xiě)出,這個(gè)過(guò)程稱(chēng)為“記錄的成組”;讀時(shí)先把一塊讀到內(nèi)存緩沖區(qū),然后從中挑選出所需要的記錄,這個(gè)過(guò)程稱(chēng)為“記錄的分
9、解”。 磁盤(pán)的特點(diǎn)是存儲(chǔ)容量大,存取速度快,能順序或隨機(jī)存取。操作系統(tǒng)中的很多實(shí)現(xiàn)技術(shù)(如存儲(chǔ)管理中的虛擬存儲(chǔ)),都是以磁盤(pán)作為后援的。因此,它越來(lái)越成為現(xiàn)代計(jì)算機(jī)系統(tǒng)中一個(gè)不可缺少的重要組成部分。 . 盤(pán)面上的磁道號(hào)就是“柱面號(hào)”;每個(gè)盤(pán)面所對(duì)應(yīng)的讀/寫(xiě)磁頭從0開(kāi)始由上到下順序編號(hào),是“磁頭號(hào)”;盤(pán)面上的扇區(qū)按磁盤(pán)旋轉(zhuǎn)的反向、從0開(kāi)始編號(hào),稱(chēng)為“扇區(qū)號(hào)”。 (2).http:/ 多道程序設(shè)計(jì)環(huán)境下,外設(shè)的數(shù)量少于用戶(hù)進(jìn)程數(shù),競(jìng)爭(zhēng)不可避免。如何合理地分配外部設(shè)備,協(xié)調(diào)它們之間的關(guān)系,充分發(fā)揮外設(shè)之間、外設(shè)與CPU之間的并行工作能力,使系統(tǒng)中各種設(shè)備盡可能地處于忙碌狀態(tài),是一個(gè)非常重要的問(wèn)題。
10、提高外部設(shè)備的利用率.“設(shè)備中斷處理程序”來(lái)處理這個(gè)請(qǐng)求。 一個(gè)輸入/輸出請(qǐng)求的四個(gè)處理步驟 ;“設(shè)備驅(qū)動(dòng)程序”來(lái)具體完成所要求的I/O操作;輸入/輸出管理程序. 阻塞調(diào)用進(jìn)程. 驗(yàn)證I/O請(qǐng)求. 調(diào)用設(shè)備驅(qū)動(dòng)程序. 校驗(yàn)設(shè)備狀態(tài). 激活調(diào)用進(jìn)程用戶(hù)進(jìn)程程序READ (input, buffer) ;buffer (緩沖區(qū)) ;設(shè)備驅(qū)動(dòng)程序. 初始化并啟動(dòng)I/O. 完成真正的I/O. 返回輸入/輸出管理程序設(shè)備中斷處理程序. 保護(hù)中斷現(xiàn)場(chǎng). 傳送數(shù)據(jù). 恢復(fù)現(xiàn)場(chǎng). 調(diào)用設(shè)備驅(qū)動(dòng)程序發(fā)出I/O請(qǐng)求(1)(2)(3)(4). 輸入/輸出請(qǐng)求來(lái)自用戶(hù)作業(yè)進(jìn)程。比如在某個(gè)進(jìn)程的程序中使用系統(tǒng)提供的I/
11、O命令形式為:READ(input,buffer,n);它表示要求通過(guò)輸入設(shè)備input,讀入n個(gè)數(shù)據(jù)到由buffer指明的內(nèi)存緩沖區(qū)中。 . 編譯程序會(huì)將源程序里的這一條I/O請(qǐng)求命令翻譯成相應(yīng)的硬指令,比如具有如下形式:CALL IOCS,CONTRL,ADDRESS,NUMBER IOCS是操作系統(tǒng)中管理I/O請(qǐng)求的程序入口地址,因此CALL IOCS表示對(duì)輸入/輸出管理程序的調(diào)用。CONTRL是根據(jù)命令中的input翻譯得到的,表示在哪個(gè)設(shè)備上有輸入請(qǐng)求;ADDRESS是根據(jù)命令中的buffer翻譯得到的,表示輸入數(shù)據(jù)存放的緩沖區(qū)起始地址;NUMBER是根據(jù)命令中的n翻譯得到的,表示輸
12、入數(shù)據(jù)的個(gè)數(shù)。. 輸入/輸出管理程序一方面從用戶(hù)程序那里接受I/O請(qǐng)求,另一方面把I/O請(qǐng)求交給設(shè)備驅(qū)動(dòng)程序去具體完成,. 輸入/輸出管理程序先接受用戶(hù)對(duì)設(shè)備的操作請(qǐng)求,把發(fā)出請(qǐng)求的進(jìn)程由運(yùn)行狀態(tài)改變?yōu)樽枞麪顟B(tài)。管理程序根據(jù)命令中CONTRL參數(shù)提供的信息,讓該進(jìn)程的PCB到與這個(gè)設(shè)備有關(guān)的阻塞隊(duì)列中排隊(duì),等候I/O的完成。. 因此,設(shè)備的輸入因此,設(shè)備的輸入/輸出管理程序由三塊內(nèi)容組成:輸出管理程序由三塊內(nèi)容組成:1、接受用戶(hù)的、接受用戶(hù)的I/O請(qǐng)請(qǐng)求;求;2、組織管理輸入、組織管理輸入/輸出的進(jìn)行;輸出的進(jìn)行;3、以及輸入、以及輸入/輸出完成后的善后處理。輸出完成后的善后處理。 若當(dāng)前設(shè)備
13、正處于忙碌狀態(tài),那么現(xiàn)在提出I/O請(qǐng)求的進(jìn)程只能在阻塞隊(duì)列中排隊(duì)等待;若當(dāng)前設(shè)備空閑,那么管理程序驗(yàn)證了I/O請(qǐng)求的合法性后,就把這個(gè)設(shè)備分配給該用戶(hù)進(jìn)程使用,調(diào)用設(shè)備驅(qū)動(dòng)程序,去完成具體的輸入/輸出任務(wù)。. 在I/O操作完成后,控制由設(shè)備驅(qū)動(dòng)程序返回輸入輸出管理程序,由它把等待這個(gè)I/O完成的進(jìn)程從阻塞隊(duì)列上摘下來(lái),把它的狀態(tài)由阻塞變?yōu)榫途w,并且到就緒隊(duì)列排隊(duì),再次參與對(duì)CPU的競(jìng)爭(zhēng)。. 設(shè)備管理中,由設(shè)備驅(qū)動(dòng)程序來(lái)具體實(shí)現(xiàn)I/O請(qǐng)求,它必須用有關(guān)輸入/輸出的特權(quán)指令來(lái)與設(shè)備硬件進(jìn)行交往,以便真正實(shí)現(xiàn)用戶(hù)的輸入/輸出操作要求。. 設(shè)備驅(qū)動(dòng)程序讀出設(shè)備狀態(tài),判定其可用后,就向設(shè)備發(fā)出I/O硬指
14、令。設(shè)備驅(qū)動(dòng)程序一旦啟動(dòng)一個(gè)I/O操作,就讓出對(duì)CPU的控制權(quán),以便在輸入/輸出設(shè)備忙于進(jìn)行I/O時(shí),CPU能脫身去做其他的事情,從而提高處理機(jī)的利用率。. 設(shè)備完成一次輸入/輸出后,通過(guò)中斷告知CPU。CPU接到I/O設(shè)備的中斷信號(hào),就去調(diào)用該設(shè)備的中斷處理程序。中斷處理程序把CPU的當(dāng)前狀態(tài)保存起來(lái),以便中斷處理完后,被中斷的進(jìn)程能繼續(xù)運(yùn)行下去。另外一個(gè)任務(wù)是按參數(shù)ADDRESS和NUMBER的指點(diǎn),進(jìn)行具體的數(shù)據(jù)傳輸。 為管理設(shè)備,系統(tǒng)要有一張“系統(tǒng)設(shè)備表SDT”。系統(tǒng)初啟時(shí),每個(gè)標(biāo)準(zhǔn)的及用戶(hù)提供的外部設(shè)備,在該表里都有一個(gè)表目,表目?jī)?nèi)容有該設(shè)備的標(biāo)識(shí)、所屬類(lèi)型以及它的設(shè)備控制塊DCB的
15、指針。在輸入/輸出時(shí),系統(tǒng)從SDT得到設(shè)備的DCB,然后從DCB里得到有關(guān)該設(shè)備的信息。 1. 為管理外部設(shè)備,操作系統(tǒng)為每臺(tái)設(shè)備開(kāi)辟一個(gè)存儲(chǔ)區(qū),隨時(shí)記錄系統(tǒng)中每個(gè)設(shè)備的基本信息,稱(chēng)為“設(shè)備控制塊DCB”。暫時(shí)得不到某設(shè)備服務(wù)的進(jìn)程的PCB,排在與該設(shè)備有關(guān)的阻塞隊(duì)列上,被稱(chēng)為“設(shè)備請(qǐng)求隊(duì)列”。 設(shè)備請(qǐng)求隊(duì)列指針設(shè)備驅(qū)動(dòng)程序起址設(shè)備標(biāo)識(shí)設(shè)備類(lèi)型設(shè)備狀態(tài)其他PCB1PCB2PCB jNULL設(shè)備請(qǐng)求隊(duì)列DCB iDCB 1DCB nDCB iDCB2.1. 一個(gè)作業(yè)進(jìn)程使用某設(shè)備時(shí),別的作業(yè)進(jìn)程只能等到它用完后才能用,這種設(shè)備就是“獨(dú)享設(shè)備”。獨(dú)享設(shè)備的使用具有排它性,對(duì)它們只能采取“靜態(tài)分配”
16、策略。即在一個(gè)作業(yè)運(yùn)行前,就必須把這類(lèi)設(shè)備分配給它,直到運(yùn)行結(jié)束歸還給系統(tǒng)。2. 為了管理,系統(tǒng)在內(nèi)部對(duì)每一臺(tái)設(shè)備進(jìn)行編號(hào),以便相互識(shí)別。設(shè)備的這種內(nèi)部編號(hào)稱(chēng)為設(shè)備的“絕對(duì)號(hào)”。 . 用戶(hù)請(qǐng)求I/O時(shí),只能指明要使用哪一類(lèi)設(shè)備。至于實(shí)際使用哪一臺(tái),應(yīng)根據(jù)當(dāng)時(shí)系統(tǒng)設(shè)備的分配情況來(lái)定。另外,有時(shí)用戶(hù)可能同時(shí)要使用幾臺(tái)相同類(lèi)型的設(shè)備。為便于區(qū)分,避免混亂,允許用戶(hù)對(duì)自己要求使用的幾臺(tái)相同類(lèi)型的設(shè)備進(jìn)行編號(hào)。這種編號(hào)出自用戶(hù),稱(chēng)為設(shè)備的“相對(duì)號(hào)”。于是,用戶(hù)通過(guò)“設(shè)備類(lèi),相對(duì)號(hào)”來(lái)提出使用設(shè)備的請(qǐng)求。設(shè)備管理必須提供一種映射機(jī)制,以便建立起用戶(hù)給出的“設(shè)備類(lèi),相對(duì)號(hào)”與物理設(shè)備的“絕對(duì)號(hào)”之間的對(duì)應(yīng)。
17、 . 對(duì)于獨(dú)享設(shè)備,常采用的分配算法有兩種:先來(lái)先服務(wù)和優(yōu)先級(jí)高者先服務(wù) 。 1.間時(shí)輸傳磁道查找時(shí)間磁臂等待時(shí)間數(shù)據(jù)信息磁盤(pán)旋轉(zhuǎn)方向 在磁臂的帶動(dòng)下,把磁頭移動(dòng)到指定柱面所需要的時(shí)間。 將指定的扇區(qū)旋轉(zhuǎn)到磁頭下所需要的時(shí)間。 由磁頭進(jìn)行讀/寫(xiě),完成信息傳送所需要的時(shí)間。 2.移臂調(diào)度.旋轉(zhuǎn)調(diào)度 要提高磁盤(pán)的使用效率,只能在減少查找時(shí)間和等待時(shí)間上想辦法,它們都與I/O在磁盤(pán)上的分布位置有關(guān)。從減少查找時(shí)間著手,就稱(chēng)為磁盤(pán)的“移臂調(diào)度 ”。 從減少等待時(shí)間著手,就稱(chēng)為磁盤(pán)的“旋轉(zhuǎn)調(diào)度”。下面只介紹移臂調(diào)度的各種算法。 533.基本思想:以I/O請(qǐng)求到達(dá)的先后次序作為磁盤(pán)調(diào)度的順序 。4.基本思
18、想:把距離磁頭當(dāng)前位置最近的I/O請(qǐng)求作為下一次調(diào)度的對(duì)象 。01437656798122124183磁道號(hào):123456785301437656798122124183磁道號(hào):12345678總共劃過(guò)的磁道數(shù)=(98-53)+(183-98)+(183-37)+(122-37)+(122-14)+(124-14)+(124-65)+(67-65)=45+85+146+85+108+110+59+2=640總共劃過(guò)的磁道數(shù)=(65-53)+(67-65)+(67-37)+(37-14)+(98-14)+(122-98)+(124-122)+(183-124)=12+2+30+23+84+24+
19、2+59=236I/O請(qǐng)求:53-98-183-37-122-14-124-65-67I/O請(qǐng)求:53-98-183-37-122-14-124-65-675. 基本思想:沿著移動(dòng)臂的移動(dòng)方向選擇距離磁頭當(dāng)前位置最近的I/O請(qǐng)求作為下一次調(diào)度的對(duì)象。如果該方向上已無(wú)I/O請(qǐng)求,則改變方向再做選擇。注意,由于電梯調(diào)度算法與移動(dòng)臂的移動(dòng)方向有關(guān),因此磁臂移動(dòng)的結(jié)果路線(xiàn)應(yīng)該有兩個(gè)答案。 5301437656798122124183磁道號(hào):總共劃過(guò)的磁道數(shù)=(53-37)+(37-14)+(65-14)+(67-65)+(98-67)+(122-98)+(124-122)+(183-124)=16+2
20、3+51+2+31+24+2+59=208.由里往外移動(dòng).由外往里移動(dòng)12345678初始移動(dòng)方向5301437656798122124183磁道號(hào):初始移動(dòng)方向12345678總共劃過(guò)的磁道數(shù)=299I/O請(qǐng)求:53-98-183-37-122-14-124-65-67I/O請(qǐng)求:53-98-183-37-122-14-124-65-67 假定用c表示每個(gè)柱面上的磁道數(shù),s表示每個(gè)盤(pán)面上的扇區(qū)數(shù),則第i個(gè)柱面、j磁頭、k扇區(qū)所對(duì)應(yīng)的磁盤(pán)塊號(hào)b可用如下的公式計(jì)算:b=k+s*(j+i*c) 6. 基本思想:總是從0號(hào)柱面開(kāi)始往里移動(dòng)磁臂,遇到有I/O請(qǐng)求就進(jìn)行處理,直到到達(dá)最后一個(gè)請(qǐng)求柱面。然
21、后移動(dòng)臂立即帶動(dòng)磁頭不做任何服務(wù)地快速返回到0號(hào)柱面, 開(kāi)始下一次掃描。 5301437656798122124183磁道號(hào):12345678快速返回到0號(hào)柱面總共劃過(guò)的磁道數(shù)=3507. 磁盤(pán)上磁盤(pán)塊(即扇區(qū))的編號(hào)按照柱面的順序進(jìn)行(從0開(kāi)始),每個(gè)柱面按照柱面上的磁道順序進(jìn)行(從0開(kāi)始),每個(gè)磁道按照扇區(qū)順序進(jìn)行(從0開(kāi)始)。 . 求第p個(gè)磁盤(pán)塊在磁盤(pán)上的位置。令D=s*c(每個(gè)柱面上擁有的磁盤(pán)塊數(shù)),并設(shè)M=p/D,N=p % D。于是,求第p塊在磁盤(pán)上位置的公式為:柱面號(hào)=M; 磁頭號(hào)=N/s; 扇區(qū)號(hào)=N%s I/O請(qǐng)求:53-98-183-37-122-14-124-65-67
22、數(shù)據(jù)寄存器:存放傳輸?shù)臄?shù)據(jù)。對(duì)于輸入設(shè)備,是把所要輸入的數(shù)據(jù)送入該寄存器,然后由CPU取走;對(duì)于輸出設(shè)備,先由CPU把數(shù)據(jù)送至該寄存器,再由設(shè)備輸出。 .2.1.在早期的計(jì)算機(jī)系統(tǒng)中,都是采用程序循環(huán)測(cè)試的方式來(lái)控制數(shù)據(jù)傳輸?shù)摹?命令寄存器:與具體的I/O請(qǐng)求有關(guān) 。. 狀態(tài)寄存器:記錄設(shè)備當(dāng)前所處狀態(tài)。對(duì)于輸入設(shè)備,啟動(dòng)輸入后,只有設(shè)備把數(shù)據(jù)讀到數(shù)據(jù)寄存器后,才把該寄存器置成“完成”態(tài);對(duì)于輸出設(shè)備,啟動(dòng)輸出后,只有設(shè)備讓數(shù)據(jù)寄存器做好接收數(shù)據(jù)的準(zhǔn)備,才把該寄存器置成“準(zhǔn)備就緒”態(tài)。 對(duì)于CPU,設(shè)有兩條硬指令,一條是啟動(dòng)輸入/輸出的指令,比如記為start,另一條是測(cè)試設(shè)備控制器中狀態(tài)寄存
23、器內(nèi)容的指令,比如記為test。 “程序循環(huán)測(cè)試”的數(shù)據(jù)傳輸方式,是指用戶(hù)進(jìn)程使用start指令啟動(dòng)設(shè)備后,CPU就不斷地執(zhí)行test指令,去測(cè)試所啟動(dòng)設(shè)備的狀態(tài)寄存器。只有在狀態(tài)寄存器出現(xiàn)了所需要的狀態(tài)后,才停止測(cè)試工作,完成輸入/輸出。3. 輸入/輸出完成時(shí),設(shè)備控制器向CPU發(fā)出中斷請(qǐng)求信號(hào)。CPU響應(yīng)該中斷,執(zhí)行設(shè)備中斷處理程序,對(duì)數(shù)據(jù)傳輸工作進(jìn)行相應(yīng)的處理。 I/O請(qǐng)求進(jìn)程變?yōu)樽枞麘B(tài),等輸入/輸出完成。進(jìn)程調(diào)度程序重新調(diào)度。這樣,外部設(shè)備進(jìn)行輸入/輸出,CPU運(yùn)行另一個(gè)進(jìn)程程序,實(shí)現(xiàn)設(shè)備與CPU并行工作。 CPU發(fā)出start指令,啟動(dòng)外部設(shè)備,設(shè)置狀態(tài)寄存器里的中斷允許位。以便產(chǎn)生
24、中斷時(shí),可以調(diào)用相應(yīng)的中斷處理程序。 .1. 所謂“中斷”,是一種使CPU暫時(shí)中止正在執(zhí)行的程序而轉(zhuǎn)去處理特殊事件的操作。能夠引起中斷的事件稱(chēng)為“中斷源”,它們可能是計(jì)算機(jī)的一些異常事故或其它內(nèi)部原因,更多的是來(lái)自外部設(shè)備的輸入輸出請(qǐng)求。 2.啟動(dòng)位 中斷允許位狀態(tài)寄存器數(shù)據(jù)寄存器打印機(jī)控制器打印機(jī)中斷請(qǐng)求信號(hào)系統(tǒng)總線(xiàn)內(nèi)存儲(chǔ)器CPU.輸入/輸出全部完成后,進(jìn)程被解除阻塞,改變狀態(tài)為就緒,進(jìn)入下一步工作。 由此看出,CPU啟動(dòng)了設(shè)備后,沒(méi)有陷入循環(huán)測(cè)試的等待過(guò)程中,而是轉(zhuǎn)去運(yùn)行別的進(jìn)程的程序。 輸入/輸出時(shí),CPU把存放數(shù)據(jù)的內(nèi)存起址及要傳輸?shù)淖止?jié)數(shù)分別存入地址寄存器和字節(jié)計(jì)數(shù)器,把狀態(tài)寄存器的
25、允許中斷位置1,啟動(dòng)設(shè)備進(jìn)行數(shù)據(jù)傳輸。 DMA按地址寄存器指示,不斷與內(nèi)存進(jìn)行直接的數(shù)據(jù)傳輸,并修改地址寄存器和字節(jié)計(jì)數(shù)器的值。當(dāng)DMA的字節(jié)計(jì)數(shù)器為0時(shí),傳輸停止,向CPU發(fā)出中斷請(qǐng)求。 . CPU將總線(xiàn)讓給DMA控制器。在DMA進(jìn)行數(shù)據(jù)傳輸時(shí),CPU不再使用總線(xiàn),而是DMA控制器獲得總線(xiàn)控制權(quán)。 1. 直接存儲(chǔ)器存取方式即是DMA方式,適用于高速I(mǎi)/O設(shè)備,如磁帶、磁盤(pán)。它傳輸數(shù)據(jù)的特點(diǎn)是能使I/O設(shè)備直接和內(nèi)存儲(chǔ)器進(jìn)行成批數(shù)據(jù)的快速傳輸。DMA控制器中有四個(gè)寄存器:數(shù)據(jù)寄存器,狀態(tài)寄存器,地址寄存器和字節(jié)計(jì)數(shù)器數(shù)據(jù)寄存器,狀態(tài)寄存器,地址寄存器和字節(jié)計(jì)數(shù)器。 2.啟動(dòng)位 中斷允許位狀態(tài)寄
26、存器地址寄存器磁盤(pán)控制器磁盤(pán)驅(qū)動(dòng)器中斷請(qǐng)求信號(hào)系統(tǒng)總線(xiàn)內(nèi)存儲(chǔ)器CPU數(shù)據(jù)寄存器字節(jié)計(jì)數(shù)器DMA控制器:計(jì)數(shù). 請(qǐng)求I/O的進(jìn)程被阻塞,等待I/O完成。 . CPU接受該中斷請(qǐng)求,轉(zhuǎn)相應(yīng)中斷處理程序進(jìn)行善后處理,結(jié)束這次I/O。 通道的指令被稱(chēng)為“通道命令字”,它的條數(shù)不多,主要涉及控制、轉(zhuǎn)移、讀、寫(xiě)及查詢(xún)等功能。若干通道命令字構(gòu)成一個(gè)“通道程序”,它規(guī)定了設(shè)備應(yīng)執(zhí)行的各種操作和順序。在CPU啟動(dòng)通道后,由通道執(zhí)行通道程序,完成CPU所交給的I/O任務(wù)。為了使通道能取到通道程序去執(zhí)行,必須把存放通道程序的內(nèi)存起址告訴通道。存放這個(gè)起始地址的內(nèi)存固定單元,被稱(chēng)為“通道地址字”。 1. 通道是一個(gè)獨(dú)立與CPU的、專(zhuān)門(mén)用來(lái)管理輸入/輸出操作的處理機(jī),它控制設(shè)備與內(nèi)存儲(chǔ)器直接進(jìn)行數(shù)據(jù)交換。 2.3. 進(jìn)程提出I/O請(qǐng)求后,CPU發(fā)start命令,指明I/O操作、設(shè)備號(hào)和對(duì)應(yīng)的通道。把數(shù)據(jù)傳輸?shù)娜蝿?wù)交給通道。 .發(fā)出I/O請(qǐng)求的進(jìn)程被阻塞,進(jìn)程調(diào)度程序把CPU分配給另一個(gè)進(jìn)程使用。 . 通道接收CPU發(fā)來(lái)的啟動(dòng)命令,調(diào)出通道程序執(zhí)行,設(shè)備與CPU并行工作。 . 通道執(zhí)行通道程序中的通道命令字,指
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 物理-山東省淄博市濱州市2024-2025學(xué)年度2025屆高三模擬考試(淄博濱州一模)試題和答案
- 院感知識(shí)崗前培訓(xùn)課件
- 2025年中考道德與法治全真模擬卷 3套(含答案)
- 夏縣財(cái)稅知識(shí)培訓(xùn)課件
- 個(gè)人醫(yī)療合同范例
- 新版PEP小學(xué)五年級(jí)英語(yǔ)My-favourite-season-My-favourite-season-教學(xué)設(shè)計(jì)
- 倉(cāng)儲(chǔ)合同范例案例
- 秘書(shū)職業(yè)生涯的長(zhǎng)期規(guī)劃計(jì)劃
- 反思與總結(jié)的實(shí)踐計(jì)劃
- 新聞傳播社團(tuán)內(nèi)容創(chuàng)作規(guī)劃計(jì)劃
- 放射科未來(lái)五年發(fā)展規(guī)劃(2021-2025)
- 中學(xué)生預(yù)防性侵主題班會(huì)
- 不良資產(chǎn)項(xiàng)目律師法律盡調(diào)報(bào)告(模板)
- 2023年人力資源和社會(huì)保障部公開(kāi)招聘工作人員筆試參考題庫(kù)(共500題)答案詳解版
- 高級(jí)技校電氣自動(dòng)化設(shè)備安裝與維修教學(xué)計(jì)劃
- 《長(zhǎng)征之戰(zhàn)役》課件
- 心電監(jiān)護(hù)操作評(píng)分標(biāo)準(zhǔn)
- 保健品概念及分類(lèi)
- 水土保持監(jiān)理實(shí)施細(xì)則
- 自體血液回收機(jī)使用(精京3000P型)課件
- 非法捕撈水產(chǎn)品罪
評(píng)論
0/150
提交評(píng)論