版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、*發(fā)展歷史發(fā)展歷史 第一代用鍵盤和打印機(jī)第一代用鍵盤和打印機(jī) 第二代用鼠標(biāo)和調(diào)制解調(diào)器(俗稱第二代用鼠標(biāo)和調(diào)制解調(diào)器(俗稱“貓貓”) 第三代用手寫筆和掃描儀等第三代用手寫筆和掃描儀等 另外,還有眾多的專業(yè)領(lǐng)域的設(shè)備。另外,還有眾多的專業(yè)領(lǐng)域的設(shè)備。*外部設(shè)備分類外部設(shè)備分類1.按使用特性分按使用特性分 存儲(chǔ)型設(shè)備存儲(chǔ)型設(shè)備 輸入型設(shè)備(輸入型設(shè)備(外設(shè)外設(shè)主機(jī)主機(jī)) 輸出型設(shè)備(主機(jī)輸出型設(shè)備(主機(jī)外設(shè))外設(shè)) 輸入輸出型設(shè)備輸入輸出型設(shè)備2.2.按數(shù)據(jù)組織分按數(shù)據(jù)組織分 塊設(shè)備塊設(shè)備 以數(shù)據(jù)塊為單位存儲(chǔ)、傳輸信息以數(shù)據(jù)塊為單位存儲(chǔ)、傳輸信息 字符設(shè)備字符設(shè)備 以字符為單位存儲(chǔ)、傳輸信息以字符
2、為單位存儲(chǔ)、傳輸信息3.按外部設(shè)備的從屬關(guān)系分按外部設(shè)備的從屬關(guān)系分 系統(tǒng)設(shè)備系統(tǒng)設(shè)備 指操作系統(tǒng)生成時(shí),登記在系統(tǒng)中的標(biāo)準(zhǔn)設(shè)備指操作系統(tǒng)生成時(shí),登記在系統(tǒng)中的標(biāo)準(zhǔn)設(shè)備 (如終端、打印機(jī)、磁盤機(jī)等)(如終端、打印機(jī)、磁盤機(jī)等) 用戶設(shè)備用戶設(shè)備 指在系統(tǒng)生成時(shí),未登記在系統(tǒng)中的非標(biāo)準(zhǔn)設(shè)指在系統(tǒng)生成時(shí),未登記在系統(tǒng)中的非標(biāo)準(zhǔn)設(shè)備。對(duì)于這類設(shè)備的處理程序由用戶提供,并將備。對(duì)于這類設(shè)備的處理程序由用戶提供,并將其納入系統(tǒng),由系統(tǒng)代替用戶實(shí)施管理。其納入系統(tǒng),由系統(tǒng)代替用戶實(shí)施管理。 (如(如A/DA/D,D/AD/A轉(zhuǎn)換器,轉(zhuǎn)換器,CADCAD所用專用設(shè)備)所用專用設(shè)備)4. 按資源分配角度分按資
3、源分配角度分 獨(dú)占設(shè)備獨(dú)占設(shè)備 在一段時(shí)間內(nèi)只能有一個(gè)進(jìn)程使用的設(shè)備,一在一段時(shí)間內(nèi)只能有一個(gè)進(jìn)程使用的設(shè)備,一般為低速般為低速I/O設(shè)備。(如打印機(jī),磁帶等)設(shè)備。(如打印機(jī),磁帶等) 共享設(shè)備共享設(shè)備 在一段時(shí)間內(nèi)可有多個(gè)進(jìn)程共同使用的設(shè)備,在一段時(shí)間內(nèi)可有多個(gè)進(jìn)程共同使用的設(shè)備,多個(gè)進(jìn)程以交叉的方式來(lái)使用設(shè)備,其資源利多個(gè)進(jìn)程以交叉的方式來(lái)使用設(shè)備,其資源利用率高。(如硬盤)用率高。(如硬盤) 虛設(shè)備虛設(shè)備 在一類設(shè)備上模擬另一類設(shè)備,常用共享設(shè)備在一類設(shè)備上模擬另一類設(shè)備,常用共享設(shè)備模擬獨(dú)占設(shè)備,用高速設(shè)備模擬低速設(shè)備,被模擬獨(dú)占設(shè)備,用高速設(shè)備模擬低速設(shè)備,被模擬的設(shè)備稱為虛設(shè)備模
4、擬的設(shè)備稱為虛設(shè)備 (將慢速的獨(dú)占設(shè)備改造成多個(gè)用戶可共享的(將慢速的獨(dú)占設(shè)備改造成多個(gè)用戶可共享的設(shè)備,提高設(shè)備的利用率)設(shè)備,提高設(shè)備的利用率)(為了提高資源利用率,如(為了提高資源利用率,如SPOOLingSPOOLing技術(shù)就使用技術(shù)就使用了虛設(shè)備技術(shù)了虛設(shè)備技術(shù)用硬盤模擬輸入輸出設(shè)備。)用硬盤模擬輸入輸出設(shè)備。) SPOOLing SPOOLing技術(shù)技術(shù) 為解決獨(dú)立設(shè)備數(shù)量少,速度慢,不能滿足眾多進(jìn)程的為解決獨(dú)立設(shè)備數(shù)量少,速度慢,不能滿足眾多進(jìn)程的要求,而且在進(jìn)程獨(dú)占設(shè)備期間,設(shè)備利用率比較低而要求,而且在進(jìn)程獨(dú)占設(shè)備期間,設(shè)備利用率比較低而提出的一種設(shè)備管理技術(shù)。提出的一種設(shè)備
5、管理技術(shù)。5.從程序使用角度分從程序使用角度分 邏輯設(shè)備邏輯設(shè)備 物理設(shè)備物理設(shè)備* * * * * 設(shè)備管理的目的和任務(wù)設(shè)備管理的目的和任務(wù)1. 1. 按照用戶的請(qǐng)求,控制設(shè)備的各種操作,完成按照用戶的請(qǐng)求,控制設(shè)備的各種操作,完成I/OI/O設(shè)備與內(nèi)存之間的數(shù)據(jù)交換(包括設(shè)備分配設(shè)備與內(nèi)存之間的數(shù)據(jù)交換(包括設(shè)備分配與回收;設(shè)備驅(qū)動(dòng)程序;設(shè)備中斷處理;緩沖區(qū)與回收;設(shè)備驅(qū)動(dòng)程序;設(shè)備中斷處理;緩沖區(qū)管理),最終完成用戶的管理),最終完成用戶的I/OI/O請(qǐng)求請(qǐng)求(1) (1) 選擇和分配選擇和分配I/OI/O設(shè)備,以便進(jìn)行數(shù)據(jù)傳輸操作設(shè)備,以便進(jìn)行數(shù)據(jù)傳輸操作(2) (2) 控制控制I/O
6、I/O設(shè)備與內(nèi)存之間交換數(shù)據(jù)設(shè)備與內(nèi)存之間交換數(shù)據(jù)2.向用戶提供使用外部設(shè)備的方便接口,使用戶向用戶提供使用外部設(shè)備的方便接口,使用戶擺脫繁瑣的編程負(fù)擔(dān)擺脫繁瑣的編程負(fù)擔(dān) 方便性方便性 友好界面友好界面 透明性透明性3.3.充分利用各種技術(shù)(通道,中斷,緩沖等)提充分利用各種技術(shù)(通道,中斷,緩沖等)提高高CPUCPU與設(shè)備、設(shè)備與設(shè)備之間的并行工作能與設(shè)備、設(shè)備與設(shè)備之間的并行工作能力,充分利用資源,提高資源利用率力,充分利用資源,提高資源利用率 并行性并行性 均衡性(使設(shè)備充分忙碌)均衡性(使設(shè)備充分忙碌)4. 保證在多道程序環(huán)境下,當(dāng)多個(gè)進(jìn)程競(jìng)爭(zhēng)使用保證在多道程序環(huán)境下,當(dāng)多個(gè)進(jìn)程競(jìng)爭(zhēng)使
7、用設(shè)備時(shí),按一定策略分配和管理各種設(shè)備,使設(shè)備時(shí),按一定策略分配和管理各種設(shè)備,使系統(tǒng)能有條不紊的工作系統(tǒng)能有條不紊的工作5. 5. 與設(shè)備無(wú)關(guān)性(設(shè)備獨(dú)立性)與設(shè)備無(wú)關(guān)性(設(shè)備獨(dú)立性) 用戶在編制程序時(shí),使用邏輯設(shè)備名,由系統(tǒng)用戶在編制程序時(shí),使用邏輯設(shè)備名,由系統(tǒng)實(shí)現(xiàn)從邏輯設(shè)備到物理設(shè)備(實(shí)際設(shè)備)的轉(zhuǎn)實(shí)現(xiàn)從邏輯設(shè)備到物理設(shè)備(實(shí)際設(shè)備)的轉(zhuǎn)換換 用戶能獨(dú)立于具體物理設(shè)備而方便的使用設(shè)備用戶能獨(dú)立于具體物理設(shè)備而方便的使用設(shè)備 用戶申請(qǐng)使用設(shè)備時(shí),只需要指定設(shè)備類型,而無(wú)用戶申請(qǐng)使用設(shè)備時(shí),只需要指定設(shè)備類型,而無(wú)須指定具體物理設(shè)備,系統(tǒng)根據(jù)當(dāng)前的請(qǐng)求,及設(shè)須指定具體物理設(shè)備,系統(tǒng)根據(jù)當(dāng)前
8、的請(qǐng)求,及設(shè)備分配的情況,在相同類別設(shè)備中,選擇一個(gè)空閑備分配的情況,在相同類別設(shè)備中,選擇一個(gè)空閑設(shè)備,并將其分配給一個(gè)申請(qǐng)進(jìn)程設(shè)備,并將其分配給一個(gè)申請(qǐng)進(jìn)程 統(tǒng)一性:統(tǒng)一性: 對(duì)不同的設(shè)備采取統(tǒng)一的操作方式,在用戶程序中對(duì)不同的設(shè)備采取統(tǒng)一的操作方式,在用戶程序中使用的是邏輯設(shè)備使用的是邏輯設(shè)備優(yōu)點(diǎn):優(yōu)點(diǎn): 設(shè)備忙碌或設(shè)備故障時(shí),用戶不必修改程序設(shè)備忙碌或設(shè)備故障時(shí),用戶不必修改程序 改善了系統(tǒng)的可適應(yīng)性和可擴(kuò)展性改善了系統(tǒng)的可適應(yīng)性和可擴(kuò)展性*設(shè)備管理的任務(wù)設(shè)備管理的任務(wù) 按用戶需求提出的要求接入外部設(shè)備,按用戶需求提出的要求接入外部設(shè)備,系統(tǒng)按一定算法分配和管理控制,而用系統(tǒng)按一定算法
9、分配和管理控制,而用戶不必關(guān)心設(shè)備的實(shí)際地址和控制指令戶不必關(guān)心設(shè)備的實(shí)際地址和控制指令. 盡量提高輸入輸出設(shè)備的利用率,例如,盡量提高輸入輸出設(shè)備的利用率,例如,發(fā)揮主機(jī)與外設(shè)以及外設(shè)與外設(shè)之間的發(fā)揮主機(jī)與外設(shè)以及外設(shè)與外設(shè)之間的真正并行工作能力真正并行工作能力.*設(shè)備管理的功能設(shè)備管理的功能 設(shè)備分配與回收設(shè)備分配與回收 記錄設(shè)備的狀態(tài)記錄設(shè)備的狀態(tài) 根據(jù)用戶的請(qǐng)求和設(shè)備的類型,采用一定的分配算法,根據(jù)用戶的請(qǐng)求和設(shè)備的類型,采用一定的分配算法,選擇一條數(shù)據(jù)通路選擇一條數(shù)據(jù)通路 分配設(shè)備:按設(shè)備的不同類型和操作系統(tǒng)選用的算法分配。分配設(shè)備:按設(shè)備的不同類型和操作系統(tǒng)選用的算法分配。包括分配
10、相應(yīng)的通道、設(shè)備控制器以及對(duì)未分配到的任務(wù)包括分配相應(yīng)的通道、設(shè)備控制器以及對(duì)未分配到的任務(wù)或怍業(yè)進(jìn)行排隊(duì)等;或怍業(yè)進(jìn)行排隊(duì)等; 控制和實(shí)現(xiàn)真正的輸入輸出操作。包括通道程序控制、啟控制和實(shí)現(xiàn)真正的輸入輸出操作。包括通道程序控制、啟動(dòng)設(shè)備、及時(shí)響應(yīng)及處理中斷訊號(hào)等;動(dòng)設(shè)備、及時(shí)響應(yīng)及處理中斷訊號(hào)等; 對(duì)輸入輸出緩沖區(qū)進(jìn)行管理。例如邏輯名的管理,多個(gè)緩對(duì)輸入輸出緩沖區(qū)進(jìn)行管理。例如邏輯名的管理,多個(gè)緩沖區(qū)的分時(shí)以及串并行操作,同類多個(gè)外部設(shè)備的均衡工沖區(qū)的分時(shí)以及串并行操作,同類多個(gè)外部設(shè)備的均衡工作,避免作,避免“忙的忙忙的忙”和和“閑的閑閑的閑”; 在一些較大系統(tǒng)中實(shí)現(xiàn)虛擬設(shè)備技術(shù)(虛擬硬盤、
11、虛擬內(nèi)在一些較大系統(tǒng)中實(shí)現(xiàn)虛擬設(shè)備技術(shù)(虛擬硬盤、虛擬內(nèi)存)。存)。3.1 I/O硬件硬件原理原理 I/O設(shè)備對(duì)不同的人有不同的理解,設(shè)設(shè)備對(duì)不同的人有不同的理解,設(shè)計(jì)硬件的人員和對(duì)硬件編程的人員和用戶計(jì)硬件的人員和對(duì)硬件編程的人員和用戶都有不同的觀點(diǎn)和見(jiàn)解,我們主要分析如都有不同的觀點(diǎn)和見(jiàn)解,我們主要分析如何對(duì)這些設(shè)備編程控制,更好地使設(shè)備之何對(duì)這些設(shè)備編程控制,更好地使設(shè)備之間協(xié)調(diào)工作,即主要從程序員的角度來(lái)分間協(xié)調(diào)工作,即主要從程序員的角度來(lái)分析它。析它。 控制器卡上通常有一個(gè)插座,通過(guò)電纜與設(shè)備相連;控制器卡上通常有一個(gè)插座,通過(guò)電纜與設(shè)備相連; 控制器和設(shè)備之間的接口是一個(gè)標(biāo)準(zhǔn)接口,
12、它符合控制器和設(shè)備之間的接口是一個(gè)標(biāo)準(zhǔn)接口,它符合ANSIANSI、IEEEIEEE或或ISOISO這樣的國(guó)際標(biāo)準(zhǔn)。這樣的國(guó)際標(biāo)準(zhǔn)。 關(guān)注點(diǎn):對(duì)該硬件如何進(jìn)行程序設(shè)計(jì),不考慮設(shè)關(guān)注點(diǎn):對(duì)該硬件如何進(jìn)行程序設(shè)計(jì),不考慮設(shè)備內(nèi)部如何工作備內(nèi)部如何工作 程序員:軟件接口程序員:軟件接口 即硬件所接受的命令,它所完成的功能,報(bào)回的即硬件所接受的命令,它所完成的功能,報(bào)回的錯(cuò)誤錯(cuò)誤 因此我們所關(guān)心的就是控制器,因?yàn)樗筒僮饕虼宋覀兯P(guān)心的就是控制器,因?yàn)樗筒僮飨到y(tǒng)打交道,也就是我們要分析的重點(diǎn)。系統(tǒng)打交道,也就是我們要分析的重點(diǎn)。* * * *設(shè)備接口設(shè)備接口 一次完整的一次完整的I/OI/O傳送過(guò)程
13、,典型地由一長(zhǎng)列低傳送過(guò)程,典型地由一長(zhǎng)列低級(jí)信號(hào)組成,這些信號(hào)啟動(dòng)設(shè)備所執(zhí)行的操作,級(jí)信號(hào)組成,這些信號(hào)啟動(dòng)設(shè)備所執(zhí)行的操作,并通過(guò)測(cè)試設(shè)備狀態(tài)來(lái)監(jiān)控設(shè)備操作的進(jìn)展并通過(guò)測(cè)試設(shè)備狀態(tài)來(lái)監(jiān)控設(shè)備操作的進(jìn)展 。 一個(gè)一個(gè)I/OI/O過(guò)程由四步組成:過(guò)程由四步組成: * * 準(zhǔn)備準(zhǔn)備 * * 啟動(dòng)啟動(dòng) * * 測(cè)試和等待測(cè)試和等待 * * 結(jié)果檢查和錯(cuò)誤處理結(jié)果檢查和錯(cuò)誤處理 這個(gè)過(guò)程均是通過(guò)對(duì)設(shè)備接口寄存器組的讀寫這個(gè)過(guò)程均是通過(guò)對(duì)設(shè)備接口寄存器組的讀寫完成完成* * * * * 設(shè)備連接模式設(shè)備連接模式 指指I/OI/O設(shè)備與設(shè)備與CPUCPU之間的連接方式,亦即將之間的連接方式,亦即將設(shè)備連
14、接到一個(gè)計(jì)算機(jī)系統(tǒng)上的方式。在一個(gè)設(shè)備連接到一個(gè)計(jì)算機(jī)系統(tǒng)上的方式。在一個(gè)確定的連接模式下,從確定的連接模式下,從I/OI/O設(shè)備到設(shè)備到CPUCPU間的所有間的所有連接成分構(gòu)成了一條連接成分構(gòu)成了一條I/OI/O路徑(路徑(I/OI/O鏈)。鏈)。1.設(shè)備與主機(jī)間最基本的連接方式設(shè)備與主機(jī)間最基本的連接方式 四個(gè)要素:四個(gè)要素: 設(shè)備接口形式設(shè)備接口形式 I/O指令形式指令形式 I/O地址空間分配及譯碼地址空間分配及譯碼 連線問(wèn)題連線問(wèn)題(1)設(shè)備接口形式設(shè)備接口形式 * 端口地址譯碼端口地址譯碼 * 按照主機(jī)與設(shè)備的約定格式和過(guò)程接受或發(fā)送按照主機(jī)與設(shè)備的約定格式和過(guò)程接受或發(fā)送數(shù)據(jù)和信號(hào)
15、數(shù)據(jù)和信號(hào) 計(jì)算機(jī)計(jì)算機(jī) 設(shè)備設(shè)備 設(shè)備設(shè)備 計(jì)算機(jī)計(jì)算機(jī) * 將計(jì)算機(jī)的數(shù)字信號(hào)轉(zhuǎn)換為機(jī)械部分能識(shí)別將計(jì)算機(jī)的數(shù)字信號(hào)轉(zhuǎn)換為機(jī)械部分能識(shí)別的模擬信號(hào),或反過(guò)來(lái)的模擬信號(hào),或反過(guò)來(lái) * 實(shí)現(xiàn)一些諸如設(shè)備內(nèi)部硬件緩沖存儲(chǔ)、數(shù)據(jù)實(shí)現(xiàn)一些諸如設(shè)備內(nèi)部硬件緩沖存儲(chǔ)、數(shù)據(jù)加工的提高性能或增強(qiáng)功能的任務(wù)加工的提高性能或增強(qiáng)功能的任務(wù)(2) I/O指令形式與指令形式與I/O地址是相互關(guān)聯(lián)的,主要有兩地址是相互關(guān)聯(lián)的,主要有兩種形式:種形式: 內(nèi)存映像內(nèi)存映像I/O模式模式 I/O專用指令專用指令要考慮的幾個(gè)問(wèn)題:要考慮的幾個(gè)問(wèn)題:設(shè)備完成技術(shù):系統(tǒng)如何知道設(shè)備的一次設(shè)備完成技術(shù):系統(tǒng)如何知道設(shè)備的一次I/O
16、I/O操作操作是否完成?是否完成?對(duì)對(duì)CPUCPU編程的編程的I/OI/O技術(shù):技術(shù):CPUCPU必須親自完成必須親自完成I/OI/O的啟的啟動(dòng)與完成的處理,親自執(zhí)行所有數(shù)據(jù)在內(nèi)存和動(dòng)與完成的處理,親自執(zhí)行所有數(shù)據(jù)在內(nèi)存和設(shè)備之間的實(shí)際物理傳送設(shè)備之間的實(shí)際物理傳送進(jìn)一步改善:進(jìn)一步改善:*使使CPU利用率盡可能不被利用率盡可能不被I/O降低,使降低,使CPU脫離脫離I/O的負(fù)擔(dān)的負(fù)擔(dān)* 提高提高I/O本身的絕對(duì)速度本身的絕對(duì)速度* 減少或緩解速度差距減少或緩解速度差距* 使使CPU不等待不等待I/O* 使使CPU盡可能擺脫盡可能擺脫I/O* 提高設(shè)備利用率提高設(shè)備利用率* 在設(shè)備與主機(jī)的硬連
17、接上,引入總線,節(jié)省連在設(shè)備與主機(jī)的硬連接上,引入總線,節(jié)省連線并提供配置擴(kuò)充與改變時(shí)的靈活性;引入控線并提供配置擴(kuò)充與改變時(shí)的靈活性;引入控制器,擴(kuò)大設(shè)備與主機(jī)間的相互適用范圍制器,擴(kuò)大設(shè)備與主機(jī)間的相互適用范圍- 總線的引入總線的引入2.總線總線 將計(jì)算機(jī)系統(tǒng)中的各個(gè)子系統(tǒng)(將計(jì)算機(jī)系統(tǒng)中的各個(gè)子系統(tǒng)(CPU、內(nèi)存、外設(shè)等)相、內(nèi)存、外設(shè)等)相互連接,且連接是共享的?;ミB接,且連接是共享的。 好處:低成本(一線多用)好處:低成本(一線多用) 靈活性(易于增加設(shè)備靈活性(易于增加設(shè)備 便于兩個(gè)計(jì)算機(jī)系統(tǒng)之間共享外設(shè))便于兩個(gè)計(jì)算機(jī)系統(tǒng)之間共享外設(shè))總線的缺點(diǎn):總線的缺點(diǎn): 本身形成了通訊瓶頸
18、,限制本身形成了通訊瓶頸,限制I/O吞吐量吞吐量總線分類:總線分類: 數(shù)據(jù)總線、地址總線、控制總線數(shù)據(jù)總線、地址總線、控制總線控制器,即設(shè)備的電子部分完成設(shè)備與主機(jī)間的控制器,即設(shè)備的電子部分完成設(shè)備與主機(jī)間的連接和通訊連接和通訊CPUCPU與控制器間通訊:與控制器間通訊: 單總線模型(微機(jī)、小型機(jī))單總線模型(微機(jī)、小型機(jī)) 多總線模型(中、大型機(jī))多總線模型(中、大型機(jī))-I/O-I/O通道通道 DMA(direct memory access) 數(shù)據(jù)在內(nèi)存與數(shù)據(jù)在內(nèi)存與I/O設(shè)備間的直接成塊傳送設(shè)備間的直接成塊傳送 CPU在開(kāi)始時(shí)向設(shè)備發(fā)在開(kāi)始時(shí)向設(shè)備發(fā)“傳送一塊傳送一塊”命令,結(jié)命令,
19、結(jié)束時(shí)進(jìn)行相應(yīng)處理,實(shí)際操作由束時(shí)進(jìn)行相應(yīng)處理,實(shí)際操作由DMA硬件直接完硬件直接完成成 DMA DMA需要附加的輔助硬件,且該需要附加的輔助硬件,且該DMADMA硬件屬于設(shè)備硬件屬于設(shè)備的電子部分的功能(由控制器實(shí)現(xiàn))。許多控制的電子部分的功能(由控制器實(shí)現(xiàn))。許多控制器,尤其是塊設(shè)備控制器都支持器,尤其是塊設(shè)備控制器都支持DMADMA。 例如:對(duì)磁盤進(jìn)行訪問(wèn)例如:對(duì)磁盤進(jìn)行訪問(wèn) 不用不用DMA時(shí),磁盤如何讀:首先,控制器時(shí),磁盤如何讀:首先,控制器從磁盤驅(qū)動(dòng)器串行地一位一位地讀一個(gè)塊,直從磁盤驅(qū)動(dòng)器串行地一位一位地讀一個(gè)塊,直到將整塊信息放入控制器的內(nèi)部緩沖區(qū)中。其到將整塊信息放入控制器的
20、內(nèi)部緩沖區(qū)中。其次,它做和校驗(yàn)計(jì)算,以核實(shí)沒(méi)有讀錯(cuò)誤發(fā)生。次,它做和校驗(yàn)計(jì)算,以核實(shí)沒(méi)有讀錯(cuò)誤發(fā)生。然后控制器產(chǎn)生一個(gè)中斷。然后控制器產(chǎn)生一個(gè)中斷。CPU響應(yīng)中斷,控響應(yīng)中斷,控制轉(zhuǎn)給操作系統(tǒng)。當(dāng)操作系統(tǒng)開(kāi)始運(yùn)行時(shí),它制轉(zhuǎn)給操作系統(tǒng)。當(dāng)操作系統(tǒng)開(kāi)始運(yùn)行時(shí),它重復(fù)地從控制器緩沖區(qū)中一次一個(gè)字節(jié)或一個(gè)重復(fù)地從控制器緩沖區(qū)中一次一個(gè)字節(jié)或一個(gè)字地讀這個(gè)磁盤塊的信息,并將其送入內(nèi)存中字地讀這個(gè)磁盤塊的信息,并將其送入內(nèi)存中 采用采用DMA方式時(shí),允許方式時(shí),允許DMA控制器接管地址線的控制控制器接管地址線的控制權(quán),直接控制權(quán),直接控制DMA控制器與內(nèi)存的數(shù)據(jù)交換。從而使磁控制器與內(nèi)存的數(shù)據(jù)交換。從而使
21、磁盤設(shè)備與存儲(chǔ)器之間的數(shù)據(jù)傳送不需要盤設(shè)備與存儲(chǔ)器之間的數(shù)據(jù)傳送不需要CPU介入,因而介入,因而減輕了減輕了CPU負(fù)擔(dān);負(fù)擔(dān); 當(dāng)采用當(dāng)采用DMA時(shí),除向控制器提供要讀數(shù)據(jù)塊的磁盤地址時(shí),除向控制器提供要讀數(shù)據(jù)塊的磁盤地址外,還要向控制器提供兩個(gè)信息:數(shù)據(jù)塊送往內(nèi)存的起外,還要向控制器提供兩個(gè)信息:數(shù)據(jù)塊送往內(nèi)存的起始地址和要傳送的字節(jié)數(shù)。始地址和要傳送的字節(jié)數(shù)。 當(dāng)當(dāng)DMADMA硬件控制磁盤與存儲(chǔ)器之間進(jìn)行信息交硬件控制磁盤與存儲(chǔ)器之間進(jìn)行信息交換時(shí),每當(dāng)磁盤把一個(gè)數(shù)據(jù)讀入控制器的數(shù)據(jù)緩換時(shí),每當(dāng)磁盤把一個(gè)數(shù)據(jù)讀入控制器的數(shù)據(jù)緩沖區(qū)時(shí),沖區(qū)時(shí),DMADMA控制器取代控制器取代CPUCPU,接
22、管地址總線的控,接管地址總線的控制權(quán),并按照制權(quán),并按照DMADMA控制器中的存儲(chǔ)器地址寄存器控制器中的存儲(chǔ)器地址寄存器內(nèi)容把數(shù)據(jù)送入相應(yīng)的內(nèi)存單元中。然后,內(nèi)容把數(shù)據(jù)送入相應(yīng)的內(nèi)存單元中。然后,DMADMA硬件自動(dòng)地把傳送字節(jié)計(jì)數(shù)器減硬件自動(dòng)地把傳送字節(jié)計(jì)數(shù)器減1 1,把存儲(chǔ)器地,把存儲(chǔ)器地址寄存器加址寄存器加1 1,并恢復(fù),并恢復(fù)CPUCPU對(duì)內(nèi)存的控制權(quán),對(duì)內(nèi)存的控制權(quán),DMADMA控制器對(duì)每一個(gè)傳送的數(shù)據(jù)重復(fù)上述過(guò)程,直到控制器對(duì)每一個(gè)傳送的數(shù)據(jù)重復(fù)上述過(guò)程,直到傳送字節(jié)計(jì)數(shù)器為傳送字節(jié)計(jì)數(shù)器為“0 0”時(shí),向時(shí),向CPUCPU產(chǎn)生一個(gè)中斷產(chǎn)生一個(gè)中斷信號(hào)。當(dāng)操作系統(tǒng)接管信號(hào)。當(dāng)操作系
23、統(tǒng)接管CPUCPU控制權(quán)時(shí),再無(wú)需做控制權(quán)時(shí),再無(wú)需做塊復(fù)制的工作了。塊復(fù)制的工作了。 有關(guān)技術(shù)有關(guān)技術(shù) 通道技術(shù):通道技術(shù): 定義:通道是獨(dú)立于定義:通道是獨(dú)立于CPUCPU的專門負(fù)責(zé)數(shù)據(jù)輸入的專門負(fù)責(zé)數(shù)據(jù)輸入/ /輸輸出傳輸工作的處理機(jī),對(duì)外部設(shè)備實(shí)現(xiàn)統(tǒng)一管理,出傳輸工作的處理機(jī),對(duì)外部設(shè)備實(shí)現(xiàn)統(tǒng)一管理,代替代替CPUCPU對(duì)輸入對(duì)輸入/ /輸出操作進(jìn)行控制,從而使輸入,輸出操作進(jìn)行控制,從而使輸入,輸出操作可與輸出操作可與CPUCPU并行操作。并行操作。 引入通道的目的:引入通道的目的: 為了使為了使CPU從從I/O事務(wù)中解脫出來(lái),同時(shí)為了提高事務(wù)中解脫出來(lái),同時(shí)為了提高CPU與設(shè)備,設(shè)
24、備與設(shè)備之間的并行工作能力。與設(shè)備,設(shè)備與設(shè)備之間的并行工作能力。分類分類1) 字節(jié)多路通道字節(jié)多路通道 字節(jié)多路通道以字節(jié)為單位傳輸信息,它可以分時(shí)地執(zhí)字節(jié)多路通道以字節(jié)為單位傳輸信息,它可以分時(shí)地執(zhí)行多個(gè)通道程序。當(dāng)一個(gè)通道程序控制某臺(tái)設(shè)備傳送一個(gè)行多個(gè)通道程序。當(dāng)一個(gè)通道程序控制某臺(tái)設(shè)備傳送一個(gè)字節(jié)后,通道硬件就控制轉(zhuǎn)去執(zhí)行另一個(gè)通道程序,控制字節(jié)后,通道硬件就控制轉(zhuǎn)去執(zhí)行另一個(gè)通道程序,控制另一臺(tái)設(shè)備傳送信息。另一臺(tái)設(shè)備傳送信息。 主要連接以字節(jié)為單位的低速主要連接以字節(jié)為單位的低速I/O設(shè)備。如打印設(shè)備。如打印機(jī),終端。機(jī),終端。 以字節(jié)為單位交叉?zhèn)鬏?,?dāng)一臺(tái)傳送以字節(jié)為單位交叉?zhèn)鬏?/p>
25、,當(dāng)一臺(tái)傳送一個(gè)字節(jié)后,立即轉(zhuǎn)去為另一臺(tái)傳送字節(jié)。一個(gè)字節(jié)后,立即轉(zhuǎn)去為另一臺(tái)傳送字節(jié)。 2) 2)選擇通道選擇通道 選擇通道是以成組方式工作的,即每次傳送一選擇通道是以成組方式工作的,即每次傳送一批數(shù)據(jù),故傳送速度很高。選擇通道在一段時(shí)間批數(shù)據(jù),故傳送速度很高。選擇通道在一段時(shí)間內(nèi)只能執(zhí)行一個(gè)通道程序,只允許一臺(tái)設(shè)備進(jìn)行內(nèi)只能執(zhí)行一個(gè)通道程序,只允許一臺(tái)設(shè)備進(jìn)行數(shù)據(jù)傳輸。數(shù)據(jù)傳輸。 當(dāng)這臺(tái)設(shè)備數(shù)據(jù)傳輸完成后,再選擇與通道連接當(dāng)這臺(tái)設(shè)備數(shù)據(jù)傳輸完成后,再選擇與通道連接的另一臺(tái)設(shè)備,執(zhí)行它的相應(yīng)的通道程序。的另一臺(tái)設(shè)備,執(zhí)行它的相應(yīng)的通道程序。 主要連接磁盤,磁帶等高速主要連接磁盤,磁帶等高速I
26、/OI/O設(shè)備。設(shè)備。 3) 3)成組多路通道成組多路通道 它結(jié)合了選擇通道傳送速度高和字節(jié)多路通它結(jié)合了選擇通道傳送速度高和字節(jié)多路通道能進(jìn)行分時(shí)并行操作的優(yōu)點(diǎn)。它先為一臺(tái)設(shè)備道能進(jìn)行分時(shí)并行操作的優(yōu)點(diǎn)。它先為一臺(tái)設(shè)備執(zhí)行一條通道指令,然后自動(dòng)轉(zhuǎn)接,為另一臺(tái)設(shè)執(zhí)行一條通道指令,然后自動(dòng)轉(zhuǎn)接,為另一臺(tái)設(shè)備執(zhí)行一條通道指令。備執(zhí)行一條通道指令。 主要連接高速設(shè)備主要連接高速設(shè)備 這樣,對(duì)于連接多臺(tái)磁盤機(jī)的數(shù)組多路通道,這樣,對(duì)于連接多臺(tái)磁盤機(jī)的數(shù)組多路通道,它可以啟動(dòng)它們同時(shí)執(zhí)行移臂定位操作,然后,它可以啟動(dòng)它們同時(shí)執(zhí)行移臂定位操作,然后,按序交叉地傳輸一批批數(shù)據(jù)。數(shù)據(jù)多路通道實(shí)際按序交叉地傳輸
27、一批批數(shù)據(jù)。數(shù)據(jù)多路通道實(shí)際上是對(duì)通道程序采用多道程序設(shè)計(jì)的硬件實(shí)現(xiàn)。上是對(duì)通道程序采用多道程序設(shè)計(jì)的硬件實(shí)現(xiàn)。 IO軟件的基本思想是按分層的思想構(gòu)成,較軟件的基本思想是按分層的思想構(gòu)成,較低層軟件要使較高層軟件獨(dú)立于硬件的特性,較高低層軟件要使較高層軟件獨(dú)立于硬件的特性,較高層軟件則要向用戶提供一個(gè)友好的、清晰的、簡(jiǎn)單層軟件則要向用戶提供一個(gè)友好的、清晰的、簡(jiǎn)單的、功能更強(qiáng)的接口。的、功能更強(qiáng)的接口。 3.2.1 I/O軟件的目標(biāo)軟件的目標(biāo) 在設(shè)計(jì)在設(shè)計(jì)I IO O軟件時(shí)的一個(gè)關(guān)鍵概念是設(shè)備獨(dú)立性。軟件時(shí)的一個(gè)關(guān)鍵概念是設(shè)備獨(dú)立性。用戶在編寫使用軟盤或硬盤上文件的程序時(shí),無(wú)需為用戶在編寫使用
28、軟盤或硬盤上文件的程序時(shí),無(wú)需為不同的設(shè)備類型而修改程序就可以使用。不同的設(shè)備類型而修改程序就可以使用。* * * *設(shè)備無(wú)關(guān)性:設(shè)備無(wú)關(guān)性: 與設(shè)備獨(dú)立性密切相關(guān)的是統(tǒng)一命名與設(shè)備獨(dú)立性密切相關(guān)的是統(tǒng)一命名(uniform (uniform naming)naming)這一目標(biāo)。一個(gè)文件或一個(gè)設(shè)備的名字這一目標(biāo)。一個(gè)文件或一個(gè)設(shè)備的名字只應(yīng)是一個(gè)簡(jiǎn)單的字符串或一個(gè)整數(shù),不應(yīng)依賴只應(yīng)是一個(gè)簡(jiǎn)單的字符串或一個(gè)整數(shù),不應(yīng)依賴于設(shè)備于設(shè)備. . 如簡(jiǎn)單的輸入:如簡(jiǎn)單的輸入: sort outputsort output 此時(shí)操作系統(tǒng)能夠從各種設(shè)備上獲得輸入,此時(shí)操作系統(tǒng)能夠從各種設(shè)備上獲得輸入,也可
29、以做同樣的輸出。設(shè)備的驅(qū)動(dòng)和設(shè)備間的差也可以做同樣的輸出。設(shè)備的驅(qū)動(dòng)和設(shè)備間的差異性均由操作系統(tǒng)本身來(lái)處理。異性均由操作系統(tǒng)本身來(lái)處理。* * * * 錯(cuò)誤處理錯(cuò)誤處理 出錯(cuò)處理是出錯(cuò)處理是I/O軟件的另一個(gè)目標(biāo)。一般來(lái)軟件的另一個(gè)目標(biāo)。一般來(lái)說(shuō),數(shù)據(jù)傳輸中的錯(cuò)誤應(yīng)盡可能地在接近硬件說(shuō),數(shù)據(jù)傳輸中的錯(cuò)誤應(yīng)盡可能地在接近硬件層上處理。由控制器盡可能地處理它所遇到的層上處理。由控制器盡可能地處理它所遇到的問(wèn)題,如果它真的處理不了,再交給設(shè)備的驅(qū)問(wèn)題,如果它真的處理不了,再交給設(shè)備的驅(qū)動(dòng)程序,去再進(jìn)行一次重復(fù)操作。如對(duì)磁盤的動(dòng)程序,去再進(jìn)行一次重復(fù)操作。如對(duì)磁盤的讀取。讀取。 盡量把錯(cuò)誤交給底層的軟
30、件來(lái)處理,只有盡量把錯(cuò)誤交給底層的軟件來(lái)處理,只有底層軟件處理不了的時(shí)候再交給較高一層的軟底層軟件處理不了的時(shí)候再交給較高一層的軟件來(lái)處理。件來(lái)處理。* * * * 異步同步問(wèn)題異步同步問(wèn)題 數(shù)據(jù)的傳輸對(duì)數(shù)據(jù)的傳輸對(duì)I/O硬硬件來(lái)說(shuō)是異步的(大多件來(lái)說(shuō)是異步的(大多數(shù)),如何在系統(tǒng)中實(shí)現(xiàn)異步,需要實(shí)現(xiàn)阻塞數(shù)),如何在系統(tǒng)中實(shí)現(xiàn)異步,需要實(shí)現(xiàn)阻塞和喚醒機(jī)制,操作系統(tǒng)中需要有此模擬,是通和喚醒機(jī)制,操作系統(tǒng)中需要有此模擬,是通過(guò)中斷來(lái)實(shí)現(xiàn)的,利用中斷來(lái)實(shí)現(xiàn)阻塞和喚醒,過(guò)中斷來(lái)實(shí)現(xiàn)的,利用中斷來(lái)實(shí)現(xiàn)阻塞和喚醒,實(shí)現(xiàn)符合硬件的異步傳輸。實(shí)現(xiàn)符合硬件的異步傳輸。 * * * *獨(dú)占與共享獨(dú)占與共享 由于
31、一些設(shè)備是獨(dú)占設(shè)備由于一些設(shè)備是獨(dú)占設(shè)備( (打印機(jī)打印機(jī)) ),有些設(shè)備,有些設(shè)備是共享設(shè)備是共享設(shè)備( (磁盤磁盤) ),故操作系統(tǒng)需要能夠同時(shí)處,故操作系統(tǒng)需要能夠同時(shí)處理這些設(shè)備。理這些設(shè)備。3.2.2 中斷處理程序中斷處理程序 * * *每個(gè)進(jìn)程在啟動(dòng)一個(gè)每個(gè)進(jìn)程在啟動(dòng)一個(gè)I/O操作后阻塞;操作后阻塞; * * *直到直到I/O操作完成并產(chǎn)生一個(gè)中斷;操作完成并產(chǎn)生一個(gè)中斷; * * *由操作系統(tǒng)接管由操作系統(tǒng)接管CPUCPU后喚醒該進(jìn)程為止。后喚醒該進(jìn)程為止。3.2.3 設(shè)備驅(qū)動(dòng)程序設(shè)備驅(qū)動(dòng)程序 與設(shè)備密切相關(guān)的代碼放在設(shè)備驅(qū)動(dòng)程序與設(shè)備密切相關(guān)的代碼放在設(shè)備驅(qū)動(dòng)程序中,每個(gè)設(shè)備驅(qū)
32、動(dòng)程序處理一種設(shè)備類型。中,每個(gè)設(shè)備驅(qū)動(dòng)程序處理一種設(shè)備類型。 每一個(gè)控制器都設(shè)有一個(gè)或多個(gè)設(shè)備寄存每一個(gè)控制器都設(shè)有一個(gè)或多個(gè)設(shè)備寄存器,用來(lái)存放向設(shè)備發(fā)送的命令和參數(shù)。設(shè)備器,用來(lái)存放向設(shè)備發(fā)送的命令和參數(shù)。設(shè)備驅(qū)動(dòng)程序負(fù)責(zé)釋放這些命令,并監(jiān)督它們正確驅(qū)動(dòng)程序負(fù)責(zé)釋放這些命令,并監(jiān)督它們正確執(zhí)行。執(zhí)行。 一般,設(shè)備驅(qū)動(dòng)程序的任務(wù)是接收來(lái)自與一般,設(shè)備驅(qū)動(dòng)程序的任務(wù)是接收來(lái)自與設(shè)備無(wú)關(guān)的上層軟件的抽象請(qǐng)求,并執(zhí)行這個(gè)設(shè)備無(wú)關(guān)的上層軟件的抽象請(qǐng)求,并執(zhí)行這個(gè)請(qǐng)求。請(qǐng)求。 在設(shè)備驅(qū)動(dòng)程序的進(jìn)程釋放一條或多條命在設(shè)備驅(qū)動(dòng)程序的進(jìn)程釋放一條或多條命令后,系統(tǒng)有兩種處理方式,多數(shù)情況下,執(zhí)令后,系統(tǒng)有
33、兩種處理方式,多數(shù)情況下,執(zhí)行設(shè)備驅(qū)動(dòng)程序的進(jìn)程必須等待命令完成。行設(shè)備驅(qū)動(dòng)程序的進(jìn)程必須等待命令完成。 這樣,在命令開(kāi)始執(zhí)行后,它阻塞自已,這樣,在命令開(kāi)始執(zhí)行后,它阻塞自已,直到中斷處理時(shí)將它解除阻塞為止(此時(shí),一直到中斷處理時(shí)將它解除阻塞為止(此時(shí),一般驅(qū)動(dòng)程序需要等待控制器完成一定的操作,般驅(qū)動(dòng)程序需要等待控制器完成一定的操作,故阻塞自己)。而在其它情況下,命令執(zhí)行不故阻塞自己)。而在其它情況下,命令執(zhí)行不必延遲就很快完成(如在終端滾動(dòng)屏幕,需要必延遲就很快完成(如在終端滾動(dòng)屏幕,需要太多操作,根本不需要阻塞)。太多操作,根本不需要阻塞)。 3.2.4 與硬件無(wú)關(guān)與硬件無(wú)關(guān)的的I/O軟
34、件軟件 雖然雖然I/O軟件軟件中一部分是設(shè)備中一部分是設(shè)備專用的,但大部專用的,但大部分軟件是與設(shè)備分軟件是與設(shè)備無(wú)關(guān)的。設(shè)備驅(qū)無(wú)關(guān)的。設(shè)備驅(qū)動(dòng)程序與設(shè)備獨(dú)動(dòng)程序與設(shè)備獨(dú)立軟件之間的確立軟件之間的確切界限是依賴于切界限是依賴于具體系統(tǒng)的。具體系統(tǒng)的。 1.獨(dú)立于設(shè)備的軟件的基本任務(wù)是實(shí)現(xiàn)所有設(shè)備都獨(dú)立于設(shè)備的軟件的基本任務(wù)是實(shí)現(xiàn)所有設(shè)備都需要的功能,并且向用戶級(jí)軟件提供一個(gè)統(tǒng)一的需要的功能,并且向用戶級(jí)軟件提供一個(gè)統(tǒng)一的接口。接口。 2.如何給文件和設(shè)備這樣的對(duì)象命名是操作系統(tǒng)中如何給文件和設(shè)備這樣的對(duì)象命名是操作系統(tǒng)中的一個(gè)主要課題。獨(dú)立于設(shè)備的軟件負(fù)責(zé)把設(shè)備的一個(gè)主要課題。獨(dú)立于設(shè)備的軟件
35、負(fù)責(zé)把設(shè)備的符號(hào)名映射到正確的設(shè)備驅(qū)動(dòng)上。的符號(hào)名映射到正確的設(shè)備驅(qū)動(dòng)上。3.設(shè)備保護(hù)設(shè)備保護(hù) 系統(tǒng)如何防止無(wú)權(quán)存取設(shè)備的用戶存取設(shè)備呢?系統(tǒng)如何防止無(wú)權(quán)存取設(shè)備的用戶存取設(shè)備呢? 對(duì)設(shè)備文件的對(duì)設(shè)備文件的rwxrwx進(jìn)行控制,但一般的系統(tǒng)中都進(jìn)行控制,但一般的系統(tǒng)中都不允許訪問(wèn)。不允許訪問(wèn)。 4.不同的磁盤可以采用不同的扇區(qū)尺寸。向較不同的磁盤可以采用不同的扇區(qū)尺寸。向較高層軟件掩蓋這一事實(shí)并提供大小統(tǒng)一的塊尺高層軟件掩蓋這一事實(shí)并提供大小統(tǒng)一的塊尺寸,這正是設(shè)備獨(dú)立軟件的一個(gè)任務(wù)。它可將寸,這正是設(shè)備獨(dú)立軟件的一個(gè)任務(wù)。它可將若干扇區(qū)合成一個(gè)邏輯塊。這樣,較高層的軟若干扇區(qū)合成一個(gè)邏輯塊。
36、這樣,較高層的軟件只與抽象設(shè)備打交道,獨(dú)立于物理扇區(qū)的尺件只與抽象設(shè)備打交道,獨(dú)立于物理扇區(qū)的尺寸而使用等長(zhǎng)的邏輯塊。寸而使用等長(zhǎng)的邏輯塊。 5.緩沖技術(shù)緩沖技術(shù) 6.設(shè)備分配設(shè)備分配 7.出錯(cuò)處理出錯(cuò)處理 3.2.5 用戶空間的用戶空間的I/O軟件軟件 盡管大部分盡管大部分I/O軟件都包含在操作系統(tǒng)中,但軟件都包含在操作系統(tǒng)中,但仍有一小部分是由與用戶程序連接在一起的庫(kù)仍有一小部分是由與用戶程序連接在一起的庫(kù)過(guò)程,甚至完全由運(yùn)行于核外的程序構(gòu)成。系過(guò)程,甚至完全由運(yùn)行于核外的程序構(gòu)成。系統(tǒng)調(diào)用,包括統(tǒng)調(diào)用,包括I/O系統(tǒng)調(diào)用,通常由庫(kù)過(guò)程實(shí)現(xiàn)。系統(tǒng)調(diào)用,通常由庫(kù)過(guò)程實(shí)現(xiàn)。 這些過(guò)程所做的工作
37、只是將系統(tǒng)調(diào)用時(shí)所用這些過(guò)程所做的工作只是將系統(tǒng)調(diào)用時(shí)所用的參數(shù)放在合適的位置,由其它的的參數(shù)放在合適的位置,由其它的I/O過(guò)程實(shí)際過(guò)程實(shí)際實(shí)現(xiàn)真正的操作。實(shí)現(xiàn)真正的操作。(1 1)用戶進(jìn)程層執(zhí)行輸入輸出系統(tǒng)調(diào)用,對(duì))用戶進(jìn)程層執(zhí)行輸入輸出系統(tǒng)調(diào)用,對(duì)I/O數(shù)數(shù)據(jù)進(jìn)行格式化,為假脫機(jī)輸入輸出作準(zhǔn)備;據(jù)進(jìn)行格式化,為假脫機(jī)輸入輸出作準(zhǔn)備;(2 2)獨(dú)立于設(shè)備的軟件實(shí)現(xiàn)設(shè)備的命名、設(shè)備的)獨(dú)立于設(shè)備的軟件實(shí)現(xiàn)設(shè)備的命名、設(shè)備的保護(hù)、成塊處理、緩沖技術(shù)和設(shè)備分配;保護(hù)、成塊處理、緩沖技術(shù)和設(shè)備分配;(3 3)設(shè)備驅(qū)動(dòng)程序設(shè)置設(shè)備寄存器、檢查設(shè)備的)設(shè)備驅(qū)動(dòng)程序設(shè)置設(shè)備寄存器、檢查設(shè)備的執(zhí)行狀態(tài);執(zhí)行
38、狀態(tài);(4 4)中斷處理程序負(fù)責(zé))中斷處理程序負(fù)責(zé)I IO O完成時(shí),喚醒設(shè)備驅(qū)完成時(shí),喚醒設(shè)備驅(qū)動(dòng)程序進(jìn)程,進(jìn)行中斷處理;動(dòng)程序進(jìn)程,進(jìn)行中斷處理;(5 5)硬件層實(shí)現(xiàn)物理)硬件層實(shí)現(xiàn)物理I IO O的操作。的操作。死鎖的現(xiàn)象死鎖的現(xiàn)象*死鎖的定義:死鎖的定義: 一組進(jìn)程中,每個(gè)進(jìn)程都無(wú)限等待被該組進(jìn)程一組進(jìn)程中,每個(gè)進(jìn)程都無(wú)限等待被該組進(jìn)程中另一進(jìn)程所占有的資源,因而永遠(yuǎn)無(wú)法得到中另一進(jìn)程所占有的資源,因而永遠(yuǎn)無(wú)法得到的資源,這種現(xiàn)象稱為進(jìn)程死鎖,這一組進(jìn)程的資源,這種現(xiàn)象稱為進(jìn)程死鎖,這一組進(jìn)程就稱為死鎖進(jìn)程。就稱為死鎖進(jìn)程。出現(xiàn)死鎖,必然出現(xiàn):出現(xiàn)死鎖,必然出現(xiàn):死鎖(死鎖(Deadl
39、ockDeadlock)饑餓(饑餓(StarvationStarvation)*關(guān)于死鎖的一些結(jié)論:關(guān)于死鎖的一些結(jié)論: 參與死鎖的進(jìn)程最少是兩個(gè);參與死鎖的進(jìn)程最少是兩個(gè); (兩個(gè)以上進(jìn)程才會(huì)出現(xiàn)死鎖)(兩個(gè)以上進(jìn)程才會(huì)出現(xiàn)死鎖) 參與死鎖的進(jìn)程至少有兩個(gè)已經(jīng)占有資源;參與死鎖的進(jìn)程至少有兩個(gè)已經(jīng)占有資源; 參與死鎖的所有進(jìn)程都在等待資源;參與死鎖的所有進(jìn)程都在等待資源; 參與死鎖的進(jìn)程是當(dāng)前系統(tǒng)中所有進(jìn)程的子集。參與死鎖的進(jìn)程是當(dāng)前系統(tǒng)中所有進(jìn)程的子集。注:注: 如果死鎖發(fā)生,會(huì)浪費(fèi)大量系統(tǒng)資源,甚至導(dǎo)致系如果死鎖發(fā)生,會(huì)浪費(fèi)大量系統(tǒng)資源,甚至導(dǎo)致系統(tǒng)崩潰。統(tǒng)崩潰。3.3.1資源資源 資源
40、是在任何時(shí)刻只能被單個(gè)進(jìn)程使用的對(duì)象資源是在任何時(shí)刻只能被單個(gè)進(jìn)程使用的對(duì)象 可剝奪式資源可剝奪式資源 不可剝奪式資源不可剝奪式資源 對(duì)于打印的過(guò)程(可剝奪式資源是存儲(chǔ)器,不可對(duì)于打印的過(guò)程(可剝奪式資源是存儲(chǔ)器,不可剝奪式資源是打印機(jī))剝奪式資源是打印機(jī)) 對(duì)于任一個(gè)資源,它本身必存在一個(gè)固定的模對(duì)于任一個(gè)資源,它本身必存在一個(gè)固定的模式。式。“被申請(qǐng)被申請(qǐng)被分配被分配被使用被使用被釋放被釋放”模式。模式。3.3.2 3.3.2 死鎖的原理死鎖的原理一般來(lái)說(shuō),死鎖時(shí),沒(méi)有一個(gè)進(jìn)程可以觸發(fā)一般來(lái)說(shuō),死鎖時(shí),沒(méi)有一個(gè)進(jìn)程可以觸發(fā)那個(gè)能夠喚醒本集合中另一個(gè)進(jìn)程的時(shí)間,那個(gè)能夠喚醒本集合中另一個(gè)進(jìn)程
41、的時(shí)間,所以所有的進(jìn)程都將永遠(yuǎn)等待下去。所以所有的進(jìn)程都將永遠(yuǎn)等待下去。* * * * *發(fā)生死鎖的四個(gè)必要條件:發(fā)生死鎖的四個(gè)必要條件:1 .1 .互斥使用,每一資源或者已被分配給一互斥使用,每一資源或者已被分配給一個(gè)進(jìn)程,或者空閑;(資源獨(dú)占)個(gè)進(jìn)程,或者空閑;(資源獨(dú)占)2 .2 .保持和等待,一個(gè)進(jìn)程在申請(qǐng)新的資源保持和等待,一個(gè)進(jìn)程在申請(qǐng)新的資源的同時(shí)保持對(duì)原有資源的占有;的同時(shí)保持對(duì)原有資源的占有; (只有這樣才是動(dòng)態(tài)申請(qǐng),動(dòng)態(tài)分配)(只有這樣才是動(dòng)態(tài)申請(qǐng),動(dòng)態(tài)分配)3 .3 .不可強(qiáng)占不可強(qiáng)占, ,資源申請(qǐng)者不能強(qiáng)行的從資源資源申請(qǐng)者不能強(qiáng)行的從資源占有者手中奪取資源,資源只能由
42、占有者自占有者手中奪取資源,資源只能由占有者自愿釋放;愿釋放;4 .4 .循環(huán)等待,即必然有一條由兩個(gè)或多個(gè)進(jìn)循環(huán)等待,即必然有一條由兩個(gè)或多個(gè)進(jìn)程組成的循環(huán)鏈,鏈中每個(gè)進(jìn)程都在等待相程組成的循環(huán)鏈,鏈中每個(gè)進(jìn)程都在等待相鄰進(jìn)程占用的資源。鄰進(jìn)程占用的資源。 存在一個(gè)進(jìn)程等待隊(duì)列存在一個(gè)進(jìn)程等待隊(duì)列 P1 , P2 , , Pn, 其中其中P1等待等待P2占有的資源,占有的資源,P2等待等待P3占有的資源,占有的資源,Pn等待等待P1占有的資源,占有的資源,形成一個(gè)進(jìn)程等待環(huán)路。形成一個(gè)進(jìn)程等待環(huán)路。* * * * * 死鎖的解決方案死鎖的解決方案1.1. 產(chǎn)生死鎖的例子產(chǎn)生死鎖的例子 申請(qǐng)不
43、同類型資源產(chǎn)生死鎖申請(qǐng)不同類型資源產(chǎn)生死鎖 P1P1:申請(qǐng)打印機(jī)申請(qǐng)打印機(jī)申請(qǐng)掃描儀申請(qǐng)掃描儀使用使用釋放打印機(jī)釋放打印機(jī)釋放掃描儀釋放掃描儀P2P2:申請(qǐng)掃描儀申請(qǐng)掃描儀申請(qǐng)打印機(jī)申請(qǐng)打印機(jī)使用使用釋放打印機(jī)釋放打印機(jī)釋放掃描儀釋放掃描儀申請(qǐng)同類資源產(chǎn)生死鎖申請(qǐng)同類資源產(chǎn)生死鎖(如內(nèi)存)(如內(nèi)存) 設(shè)有資源設(shè)有資源R R,R R有有m m個(gè)分配單位,由個(gè)分配單位,由n n個(gè)個(gè)進(jìn)程進(jìn)程P P1 1,P,P2 2, ,P,Pn n(n mn m)共享。假)共享。假設(shè)每個(gè)進(jìn)程對(duì)設(shè)每個(gè)進(jìn)程對(duì)R R的申請(qǐng)和釋放符合下的申請(qǐng)和釋放符合下列原則:列原則: * * 一次只能申請(qǐng)一個(gè)單位一次只能申請(qǐng)一個(gè)單位
44、* * 滿足總申請(qǐng)后才能使用滿足總申請(qǐng)后才能使用 * * 使用完后一次性釋放使用完后一次性釋放申請(qǐng)同類資源產(chǎn)生死鎖(如內(nèi)存)申請(qǐng)同類資源產(chǎn)生死鎖(如內(nèi)存)m=2m=2,n=3n=3資源分配不當(dāng)導(dǎo)致死鎖產(chǎn)生資源分配不當(dāng)導(dǎo)致死鎖產(chǎn)生* * * * * 處理死鎖的方法處理死鎖的方法1 .1 .忽略死鎖的發(fā)生;忽略死鎖的發(fā)生;2 .2 .檢測(cè)死鎖并恢復(fù);檢測(cè)死鎖并恢復(fù);3 .3 .謹(jǐn)慎對(duì)資源進(jìn)行動(dòng)態(tài)分配,避免死鎖;謹(jǐn)慎對(duì)資源進(jìn)行動(dòng)態(tài)分配,避免死鎖;4 .4 .通過(guò)破壞上述四個(gè)必要條件來(lái)預(yù)防死鎖通過(guò)破壞上述四個(gè)必要條件來(lái)預(yù)防死鎖的發(fā)生。的發(fā)生。3.3.5 死鎖預(yù)防死鎖預(yù)防定義:定義: 在系統(tǒng)設(shè)計(jì)時(shí)確定資
45、源分配算法,保證在系統(tǒng)設(shè)計(jì)時(shí)確定資源分配算法,保證不發(fā)生死鎖。具體的做法是破壞產(chǎn)生死鎖不發(fā)生死鎖。具體的做法是破壞產(chǎn)生死鎖的四個(gè)必要條件之一。的四個(gè)必要條件之一。破壞破壞“互斥使用互斥使用”條件條件 對(duì)于打印機(jī)這類設(shè)備,利用假脫機(jī)等對(duì)于打印機(jī)這類設(shè)備,利用假脫機(jī)等技術(shù)來(lái)避免進(jìn)程之間的資源競(jìng)爭(zhēng),而是利技術(shù)來(lái)避免進(jìn)程之間的資源競(jìng)爭(zhēng),而是利用監(jiān)控程序來(lái)統(tǒng)一調(diào)配。用監(jiān)控程序來(lái)統(tǒng)一調(diào)配。破壞破壞“請(qǐng)求和保持請(qǐng)求和保持”條件條件 要求每個(gè)進(jìn)程在運(yùn)行前必須一次性申請(qǐng)它所要求每個(gè)進(jìn)程在運(yùn)行前必須一次性申請(qǐng)它所要求的所有資源,且僅當(dāng)該進(jìn)程所要資源均要求的所有資源,且僅當(dāng)該進(jìn)程所要資源均可滿足時(shí)才給予一次性分配。
46、可滿足時(shí)才給予一次性分配。 另一方案,當(dāng)進(jìn)程申請(qǐng)時(shí),先釋放掉自己的另一方案,當(dāng)進(jìn)程申請(qǐng)時(shí),先釋放掉自己的資源再進(jìn)行申請(qǐng),當(dāng)申請(qǐng)成功后再收回剛才資源再進(jìn)行申請(qǐng),當(dāng)申請(qǐng)成功后再收回剛才自己的資源。自己的資源。問(wèn)題:?jiǎn)栴}: 對(duì)于第一種方案,資源數(shù)目的判斷只有在對(duì)于第一種方案,資源數(shù)目的判斷只有在運(yùn)行時(shí)才知道,而且效率無(wú)法提高。運(yùn)行時(shí)才知道,而且效率無(wú)法提高。破壞破壞“循環(huán)等待循環(huán)等待”條件條件 采用資源有序分配法:采用資源有序分配法: 把系統(tǒng)中所有資源編號(hào),進(jìn)程在申請(qǐng)資源把系統(tǒng)中所有資源編號(hào),進(jìn)程在申請(qǐng)資源時(shí)必須嚴(yán)格按資源編號(hào)的遞增次序進(jìn)行,時(shí)必須嚴(yán)格按資源編號(hào)的遞增次序進(jìn)行,否則操作系統(tǒng)不予分配。
47、否則操作系統(tǒng)不予分配。破壞破壞“不可剝奪不可剝奪”條件條件 在允許進(jìn)程動(dòng)態(tài)申請(qǐng)資源前提下規(guī)定,一在允許進(jìn)程動(dòng)態(tài)申請(qǐng)資源前提下規(guī)定,一個(gè)進(jìn)程在申請(qǐng)新的資源不能立即得到滿足個(gè)進(jìn)程在申請(qǐng)新的資源不能立即得到滿足而變?yōu)榈却隣顟B(tài)之前,必須釋放已占有的而變?yōu)榈却隣顟B(tài)之前,必須釋放已占有的全部資源,若需要再重新申請(qǐng)。全部資源,若需要再重新申請(qǐng)。3.3.6 死鎖避免死鎖避免定義:定義: 在系統(tǒng)運(yùn)行過(guò)程中,對(duì)進(jìn)程發(fā)出的每一個(gè)在系統(tǒng)運(yùn)行過(guò)程中,對(duì)進(jìn)程發(fā)出的每一個(gè)系統(tǒng)能夠滿足的資源申請(qǐng)進(jìn)行動(dòng)態(tài)檢查,系統(tǒng)能夠滿足的資源申請(qǐng)進(jìn)行動(dòng)態(tài)檢查,并根據(jù)檢查結(jié)果決定是否分配資源,若分并根據(jù)檢查結(jié)果決定是否分配資源,若分配后系統(tǒng)可能發(fā)生死鎖,則不予分配,否配后系統(tǒng)可能發(fā)生死鎖,則不予分配,否則予以分配。則予以分配。安全狀態(tài)與不安全狀態(tài)安全狀態(tài)與不安全狀態(tài)安全狀態(tài):安全狀態(tài): 如果存在一個(gè)由系統(tǒng)中所有進(jìn)程構(gòu)成的安如果存在一個(gè)由系統(tǒng)中所有進(jìn)程構(gòu)成的安全序列全序列P P1 1,PPn n,則系統(tǒng)處于安全狀態(tài)。,則系統(tǒng)處于安全狀態(tài)。安全序列:安全序列: 一個(gè)進(jìn)程序列一個(gè)進(jìn)程序列PP1 1,P Pn n 是安全的,如是安全的,如果對(duì)于每一個(gè)進(jìn)程果對(duì)于每一個(gè)進(jìn)程P Pi i(1(1i in n),它以后),它以后尚需要的資源量不超過(guò)系統(tǒng)當(dāng)前剩余資源尚需要的資源量不超過(guò)系統(tǒng)當(dāng)前剩余資
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 世界文化之旅-課件
- 《庫(kù)存管理與控制》課件
- 2024年鄉(xiāng)鎮(zhèn)計(jì)劃生育服務(wù)站工作總結(jié)
- 【課件】2024-2025學(xué)年上學(xué)期元旦主題班會(huì)課件
- 《項(xiàng)目管理》學(xué)習(xí)領(lǐng)域課程標(biāo)準(zhǔn)
- 第23課 內(nèi)戰(zhàn)爆發(fā)(解析版)
- 《設(shè)計(jì)過(guò)程質(zhì)量管理》課件
- 《生活安全指南》課件
- 化妝品行業(yè)促銷方案總結(jié)
- 2023-2024年項(xiàng)目部安全管理人員安全培訓(xùn)考試題【有一套】
- 微型頂管施工方案
- 湘教文藝版小學(xué)五年級(jí)音樂(lè)上冊(cè)期末測(cè)試題
- 老化箱點(diǎn)檢表A4版本
- 略說(shuō)魯迅全集的五種版本
- 2022年110接警員業(yè)務(wù)測(cè)試題庫(kù)及答案
- 中聯(lián)16T吊車參數(shù)
- DB44∕T 115-2000 中央空調(diào)循環(huán)水及循環(huán)冷卻水水質(zhì)標(biāo)準(zhǔn)
- 嵌入式軟件架構(gòu)設(shè)計(jì)
- 《石油天然氣地質(zhì)與勘探》第3章儲(chǔ)集層和蓋層
- 航道整治課程設(shè)計(jì)--
- 超星爾雅學(xué)習(xí)通《科學(xué)計(jì)算與MATLAB語(yǔ)言》章節(jié)測(cè)試含答案
評(píng)論
0/150
提交評(píng)論