




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第八章設備管理11、概述設備的分類設備管理的目標設備管理的功能和任務設備管理數據結構2設備的分類〔1〕按傳輸速率分低速設備:每秒幾個到數百字節。如Modem中速設備:每秒數千到數萬字節。如打印機高速設備:每秒數百K到數兆。如磁盤、磁帶3設備的分類〔續〕〔2〕按信息交換的單位分類字符設備:I/O傳輸的單位是字節,如打印機、modem等。特征:速率較低、中斷驅動。塊設備:I/O傳輸的單位是塊,如磁盤、磁帶。特征:速率高〔幾兆〕、可隨機訪問任一塊、DMA方式驅動。4
〔3〕按資源管理方式分類獨占型設備:在任一段時間內最多有一個進程占用它,字符設備及磁帶機屬獨占型設備。即臨界資源。共享型設備:多個進程對它的訪問可以交叉進行,除磁帶機外的塊設備屬共享設備虛擬設備:在一類設備上模擬另一類設備,常用共享設備模擬獨占設備,用高速設備模擬低速設備,被模擬的設備稱為虛擬設備設備的分類〔續〕5設備管理的目標〔1〕設備獨立性所謂設備獨立性:用戶在編制程序時,使用邏輯設備名,由系統實現從邏輯設備到物理設備〔實際設備〕的轉換。用戶能獨立于具體物理設備而方便的使用設備。6兩種類型的設備獨立性類型1:獨立于同一類設備中的某臺具體設備。如果一個系統中有假設干臺相同的設備,用戶編程時不指定使用哪一個具體的設備,而僅說明要使用哪一類設備,系統根據當前這一類設備的具體狀況給用戶分配一臺具體的設備。用戶不用關心他所使用的到底是哪一臺設備。7兩種類型的設備獨立性〔續〕類型2:獨立于不同類型的設備。例如有一程序要求輸入信息,可以從各種不同類型的輸入設備上給程序輸入數據,那么稱該程序是獨立于不同類型的輸入設備的。又如在MS-DOS系統中,程序的I/O操作不必指出在哪臺設備上進行,一般情況下是從鍵盤上輸入數據,而在顯示器上輸出數據。但用戶可以做一次聯機操作命令Ctrl+P,那么輸出數據可以在打印機上打印出來。8設備管理的目標〔續〕9設備管理的目標〔續〕〔3〕設備的統一管理外設的種類繁多,特性各異,主要差異反映在以下幾個方面:速度:不同的設備處理和傳遞信息的速度差異甚大,如鍵盤每秒鐘只能處理幾個或幾十個字符,而磁盤的處理速度可達幾十MB/S。傳遞單位:有的設備以字符為單位傳遞信息,如鍵盤。有的以字符塊為單位傳遞信息,如磁盤。10設備的統一管理操作方法和特性:各種設備都有自己的特性和操作方法,如卡片機中的卡片不能倒退,磁帶機可反繞,磁盤可隨機存取。出錯條件:各種設備的出錯條件不同,有的可能產生奇偶錯,打印機可能產生無紙錯等。11設備的統一管理的優點設備管理程序力圖隱蔽上述各種設備的差異,向用戶提供統一的設備使用接口,這會給系統的設計帶來困難,但方便了用戶。如UNIX系統把外設作為特別文件處理,把設備看作文件,用操作文件的方法來操作設備,這極大地方便了用戶。這種設備管理方法無疑是個重大的突破。12設備管理的任務設備管理是對計算機輸入輸出系統的管理,是操作系統中最具多樣性和復雜性的局部。其主要任務是:選擇和分配輸入輸出設備以進行數據傳輸操作;控制輸入輸出設備和CPU〔或內存〕之間交換數據;為用戶提供友好的透明接口,把用戶和設備硬件特性分開,使得用戶在編制應用程序時不必涉及具體設備,系統按用戶要求控制設備工作。提高設備和設備之間、CPU和設備之間,以及進程和進程之間的并行操作度,以使操作系統獲得最正確效率。13設備管理的功能為了完成上述主要任務,設備管理程序一般要提供下述功能:提供和進程管理系統的接口。進行設備分配。按照設備類型和相應的分配算法把設備和其他有關的硬件分配給請求該設備的進程,并把未分配到所請求設備或其他有關硬件的進程放入等待隊列。實現設備和設備、設備和CPU等之間的并行操作。進行緩沖區管理。14設備管理數據結構〔1〕〔1〕設備控制表DCT(DeviceControlTable)設備控制表DCT反映設備的特性、設備和I/O控制器的連接情況。包括設備標識、使用狀態和等待使用該設備的進程隊列等。系統中每個設備都必須有一張DCT,且在系統生成時或在該設備和系統連接時創立,但表中的內容那么根據系統執行情況而被動態地修改。DCT包括以下內容:設備標識符,設備標識符用來區別設備。設備類型,反映設備的特性,例如是終端設備、塊設備或字符設備等。15設備管理數據結構〔續〕設備地址或設備號,由計算機原理課可知,每個設備都有相應的地址或設備號。這個地址既可以是和內存統一編址的,也可以是單獨編址的。設備狀態,指設備是處理工作還是空閑中。等待隊列指針,等待使用該設備的進程組成等待隊列,其隊首和隊尾指針存放在DCT中。I/O控制器指針,該指針指向該設備相連接的I/O控制器。16設備管理數據結構〔2〕〔2〕系統設備表SDT(SystemDeviceTable)系統設備表SDT整個系統一張,它記錄已被連接到系統中的所有物理設備的情況,并為每個物理設備設一表項。SDT的每個表項包括的內容有:DCT指針,該指針指向有關設備的設備控制表。正在使用設備的進程標識。設備類型和設備標識符,該項的意義與DCT中的相同。SDT的主要意義在于反映系統中設備資源的狀態,即系統中有多少設備,有多少是空閑的,而又有多少已分配給了哪些進程。17設備管理數據結構〔3〕〔3〕控制器表COCT(COntrolerControlTable)COCT也是每個控制器一張,它反映I/O控制器的使用狀態以及和通道的連接情況等(在DMA方式時,該項是沒有的)。18設備管理數據結構〔4〕〔4〕通道控制表CHCT(CHannelControlTable)該表只在通道控制方式的系統中存在,也是每個通道一張。CHCT包括通道標識符、通道忙/閑標識、等待獲得該通道的進程等待隊列的隊首指針與隊尾指針等SDT,DCT,COCT及CHCT如下頁圖所示。顯然,一個進程只有獲得了通道、控制器和所需設備三者之后,才具備了進行I/O操作的物理條件。19設備管理數據結構表202、I/O控制方式循環測試I/O方式I/O中斷方式DMA方式通道方式21循環測試I/O方式早期,I/O控制器是OS同硬件之間的接口。它有兩個存放器:數據緩沖存放器、控制存放器。控制存放器有幾個重要的信息位:啟動位、完成位、忙位。CPU外部設備控制邏輯電路控制寄存器I/O控制器數據寄存器22循環測試I/O方式工作過程以輸入為例把啟動位置1反復測試完成位,為0轉2,為1轉3把數據從數據緩沖區中讀走。
浪費大量CPU時間23I/O中斷方式I/O控制器能發中斷工作過程:把啟動位置1,本進程〔A〕變為等待狀態,轉進程調度,調度另一進程B。輸入完成時,控制器發出中斷,中斷B,通過中斷進入中斷處理程序。在中斷處理程序中把數據緩沖存放器中的數取走,放入內存特定位置M,喚醒等待進程A,中斷返回到B的斷點繼續執行。在以后的某個時刻OS調度要求輸入的進程A。A從M取數處理。24分析同前相比,CPU利用率大大提高。缺點:每臺設備每輸入輸出一個字節的數據都有一次中斷。如果設備較多時,中斷次數會很多,使CPU的計算時間大大減少。為減少中斷對CPU造成的負擔,可采用DMA方式和通道方式。25DMA方式控制器功能更強,除有中斷功能外,還有一個DMA控制機構。在DMA控制器的控制下,設備同主存之間可成批交換數據,不用CPU干預。26DMA方式工作過程當進程要求輸入時,把要求傳送的內存始址〔M〕和要傳的字節數送入DMA的內存地址存放器和傳送字數存放器把啟動位置1。設備開始工作。進程〔A〕掛起。調度另一進程〔B〕一批數據輸入完成后,DMA中斷B,轉向中斷處理程序。中斷處理程序喚醒A,返回B的斷點繼續執行。以后OS調度A運行時,A從M處取數據處理。27DMA方式與中斷的主要區別中斷方式是在數據緩沖存放區滿后,發中斷請求,CPU進行中斷處理。DMA方式那么是在所要求傳送的數據塊全部傳送結束時要求CPU進行中斷處理,大大減少了CPU進行中斷處理的次數。中斷方式的數據傳送是由CPU控制完成的。DMA方式那么是在DMA控制器的控制下不經過CPU控制完成的。28CPU向控制器發出啟動DMA通知和有關參數控制器向內存發出詢問請求訪問內存〔讀、寫〕計數器減1結束否發中斷NYDMA的實現流程29通道方式I/O系統結構 在大型計算機系統中較為典型的I/O系統結構是主機、通道、控制器和外部設備。30I/O系統結構外部設備通常由機械的和電子的兩局部組成,電子局部構成控制器,也叫適配器。一個控制器可交替地控制幾臺同類設備,例如一個磁盤控制器可以控制兩臺磁盤驅動器。在沒有通道的計算機系統中,中央處理機是通過控制器控制I/O操作的。31通道概念為使中央處理機從繁忙的I/O處理中擺脫出來,現代大、中型計算機系統中設置了專門的處理I/O操作的處理機,并把這種處理機稱為通道。通道在CPU的控制下獨立地執行通道程序,對外部設備的I/O操作進行控制,以實現內存與外設之間成批的數據交換。通道=I/O處理機32通道方式當完成CPU交給的任務后,向CPU發出中斷信號,請求CPU的處理。這樣就使得CPU根本上擺脫了I/O操作的處理工作,提高了CPU與設備之間的并行程序,從而提高了整個計算機系統的效率。通道程序是由通道指令組成,一個通道可以分時的方式執行幾道程序。每道程序控制一臺外部設備,因此每道通道程序稱為子通道。33通道的種類〔1〕字節多路通道:字節多路通道是以字節為根本傳輸單位,當一子通道控制的某臺外設交換了一個字節后,就轉向下一個子通道,以控制下一臺設備傳送一個字節。這就實現了子通道的循環輪轉,以到達多路控制的目的,字節多路通道主要用來控制低速、并且以字節為根本傳送單位的設備。如打印機。3435通道的種類〔2〕選擇通道:這種通道一次執行一個通道程序,控制一臺設備連續地傳送一批數據,當一個程序執行完后,才轉向下一個程序。優點:傳輸速度高。缺點:一次只能控制一臺設備進行I/O操作。它主要用來控制高速外設。如磁盤。36選擇通道工作原理選擇通道37
數組多路通道:這種通道是上述兩種通道的折中,可以分時的方式執行多道程序,每道程序可傳送一組數據。它主要用于中速設備的控制。如磁帶機。在一大型系統中可以同時存在這三種類型的通道以便控制各種不同類型的設備。通道的種類〔3〕38通道指令和通道程序通道有它自己的指令系統,用這些指令編寫的程序叫通道程序,通道只能執行通道程序,不可能執行用戶進程。
通道程序保存在內存中39通道的工作過程某進程在運行過程中,假設提出了I/O請求,那么通過系統調用進入操作系統,系統首先為I/O操作分配通道和外設,然后按I/O請求生成通道程序并存入內存,把起始地址送入通道的首地址存放器〔CAW〕,接著CPU發出啟動通道的指令。中央處理機啟動通道后,通道的工作過程為:根據CAW,從內存取出通道指令,送入通道控制字存放器〔CCW〕,并修改CAW,使其指向下一條通道指令。執行CCW中的通道指令,進行實際的I/O操作,執行完畢后,如果還有下一條指令,那么返回前一步,否那么轉下一步。發出中斷信號通知CPU通道程序已執行完成。40通道的開展41424344單緩沖雙緩沖環形緩沖緩沖池45最簡單的一種緩沖形式。當進程發出一I/O請求時,OS為之分配一緩沖區。對于輸入:設備先將數據送入緩沖區,OS再將數據傳給進程。對于輸出:進程先將數據傳入緩沖區,OS再將數據送出到設備。46思考單緩沖能加快進程的執行速度嗎?4748495051IN指向可接收數據的空閑緩沖區的首址,OUT指針指向裝好數據且未取走的緩沖區首址。系統初啟時,指針被初始化為IN和OUT與首指針START相等,即START=IN=OUT。對于輸入信息而言,設備接收信息時,信息輸入到IN指向的緩沖區,當一個緩沖區裝滿后,IN指針指向下一個空閑緩沖區。當從緩沖區中提取信息時,提取由OUT指向的緩沖區中的信息,提取完畢,將OUT指針指向下一個裝滿信息的緩沖區。52系統必須考慮到這種方案的約束條件,即IN<>OUT(初始狀態除外)。從設備輸入信息的操作和提取信息的操作共用環形緩沖時有一定的同步關系:OUT<IN。當OUT到達IN時,處理數據的進程必等待。由于該方案是個環形鏈;故當IN指針到達最后一個緩沖區時,它將指向START指當IN到達OUT時,從設備輸入信息的操作也必須等待。
53環形緩沖區一般用于特定的進程,屬于專用緩沖區,當系統較大時,將會有許多這樣的環形緩沖區,這不僅要消耗大量的內存空間,利用率也不高。為了提高緩沖區的利用率,目前廣泛流行公用緩沖池,池中的緩沖區可供多個進程共享。
緩沖池由內存中一組大小相等的緩沖區組成,池中各緩沖區的大小與用于I/O的設備的根本信息單位相似,緩沖池屬于系統資源,由系統進行管理。緩沖池中各緩沖區可用于輸出信息,也可用于輸入信息,并可根據需要組成各種緩沖區隊列。54緩沖池的管理〔1〕緩沖池的結構緩沖池由多個緩沖區組成。而一個緩沖區由兩局部組成:一局部是用來標識該緩沖器和用于管理的緩沖首部,另一局部是用于存放數據的緩沖體。這兩局部有一一對應的映射關系。對緩沖池的管理是通過對每一個緩沖器的緩沖首部進行操作實現的。緩沖首部如下圖。它包括設備號、設備上的數據塊號(塊設備時)、互斥標識位以及緩沖隊列連接指針和緩沖器號等。55緩沖池的結構緩沖首部56緩沖區隊列系統把各緩沖區按其使用狀況連成三種隊列:空白緩沖隊列em,其隊首指針為F(em),隊尾指針為L(em);裝滿輸入數據的輸入緩沖隊列in,其隊首指針為F(in),隊尾指針為L(in);裝滿輸出數據的輸出緩沖隊列out,其隊首指針為F(out),隊尾指針為L(out)。其隊列構成如下頁圖所示。57緩沖區隊列構成58緩沖池的工作緩沖區除了三種緩沖隊列之外,系統(或用戶進程)從這三種隊列中申請和取出緩沖區,并用得到的緩沖區進行存數、取數操作,在存數、取數操作結束后,再將緩沖區放入相應的隊列。這些緩沖區被稱為工作緩沖區。在緩沖池中,有4種工作緩沖區,即:用于收容設備輸入數據的收容輸入緩沖區hin;用于提取設備輸入數據的提取輸入緩沖區sin;用于收容CPU輸出數據的收容輸出緩沖區hout;用于提取CPU輸出數據的提取輸出緩沖區sout。緩沖池的工作緩沖區如下頁圖所示。59緩沖池的工作緩沖區〔續〕60緩沖池管理對緩沖池的管理由如下幾個操作組成:從三種緩沖區隊列中按一定的選取規那么取出一個緩沖區的過程take_buf(type);把緩沖區按一定的選取規那么插入相應的緩沖區隊列的過程add_buf(type,number);供進程申請緩沖區用的過程get_buf(type,number);供進程將緩沖區放入相應緩沖區隊列的過程put_buf(type,work_buf)。其中,參數type表示緩沖隊列類型,number為緩沖區號,而work_buf那么表示工作緩沖區類型。61緩沖池工作過程使用這幾個操作,緩沖池的工作過程可描述如下:首先,輸入進程調用get_buf(em,number)過程從空白緩沖區隊列中取出一個緩沖號為number的空白緩沖區,將其作為收容輸入緩沖區hin,當hin中裝滿了由輸入設備輸入的數據之后,系統調用過程put_buf(in,hin)將該緩沖區插入輸入緩沖區隊列in中。另外,當進程需要輸出數據時,輸出進程經過緩沖管理程序調用過程get_buf(em,number)從空白緩沖區隊列中取出一個空白緩沖區number作為收容輸出緩沖區hout,待hout中裝滿輸出數據之后,系統再調用過程put_buf(out,hout)將該緩沖區插入輸出緩沖區隊列out。62緩沖池工作過程〔續〕對緩沖區的輸入數據和輸出數據的提取也是由過程get_buf和put_buf實現的。get_buf(out,number)從輸出緩沖隊列中取出裝滿輸出數據的緩沖區number,將其作為sout。當sout中數據輸出完畢時,系統調用過程put_buf(em,sout)將該緩沖區插入空白緩沖隊列。而get_buf(in,number)那么從輸入緩沖隊列中取出一個裝滿輸入數據的緩沖區number作為輸入緩沖區sin,當CPU從中提取完所需數據之后,系統調用過程put_buf(em,sin)將該緩沖區釋放和插入空白緩沖隊列em中。63輸入get_buf(em,number);取空白number緩沖區作為hin數據由設備->hinput_buf(in,hin);將hin放入in隊列——————————————get_buf(in,number);將number作為sinsin->cpuput_buf(em,sin);將sin放入em隊列64輸出get_buf(em,number);取空白number緩沖區作為hout;put_buf(out,hout);將hout放入out隊列——————————————get_buf(out,number);將number作為soutsout->設備put_buf(em,sout);將sout放入em隊列65get_buf描述下面給出過程get_buf和put_buf的描述。首先,設互斥信號量S(type),其初值為1。設描述資源數目的信號量RS(type),其初值為n(n為type隊列長度)。
get_buf(type,number): begin P(RS(type)) P(S(type)) Pointerofbuffer(number)= take_buf(type,number) V(S(type)) end66put_buf描述put_buf(type,number): begin P(S(type)) add_buf(type,number) V(S(type)) V(RS(type)) end674、設備分配68設備分配原那么設備分配的原那么是根據設備特性、用戶要求和系統配置情況決定的。設備分配的總原那么:充分發揮設備的使用效率,盡可能的讓設備忙;防止由于不合理的分配方法造成進程死鎖;把用戶程序和具體物理設備隔離開來,即用戶程序面對的是邏輯設備,而分配程序將在系統把邏輯設備轉換成物理設備之后,再根據要求的物理設備號進行分配如下圖。69設備分配流程圖70設備分配方式靜態分配:在作業級進行的,當一個作業運行之前由系統一次分配滿足需要的全部設備,這些設備一直為該作業占用,直到作業撤消。這種分配不會出現死鎖,但設備的利用效率較低。71設備分配方式動態分配在進程運行的過程中進行的,當進程需要使用設備時,通過系統調用命令向系統提出設備請求,系統按一定的分配策略給進程分配所需設備,一旦使用完畢立即釋放。顯然這種分配方式有利于提高設備的使用效率,但會出現死鎖,這是應力求防止的。72設備分配算法先請求先效勞優先級高的優先效勞73設備分配算法〔1〕先請求先效勞當有多個進程對某一設備提出I/O請求時,或者是在同一設備上進行屢次I/O操作時,系統按提出I/O請求的先后順序,將進程發出的I/O請求命令排成隊列,其隊首指向被請求設備的DCT。當該設備空閑時,系統從該設備的請求隊列的隊首取下一個I/O請求消息,將設備分配給發出這個請求消息的進程。74設備分配算法〔2〕優先級高者先效勞優先級高者指發出I/O請求命令的進程。這種策略和進程調度的優先數法是一致的,即進程的優先級高,它的I/O請求也優先予以滿足。對于相同優先級的進程來說,那么按先請求先效勞策略分配。因此,優先級高者先效勞策略把請求某設備的I/O請求命令按進程的優先級組成隊列,從而保證在該設備空閑時,系統能從I/O請求隊列隊首取下一個具有最高優先級進程發來的I/O請求命令,并將設備分配給發出該命令的進程。7576獨占型設備有行打印機,鍵盤,顯示器。磁帶機可作為獨占設備,也可作為共享設備。假設對這些設備不采用獨享分配就會造成混亂。因此對獨占設備一般采用獨享分配,即當進程申請獨占設備時,系統把設備分配給這個進程,直到進程釋放設備。77共享設備包括磁盤,磁帶和磁鼓。對這類設備的分配是采用動態分配的方式進行的,當一個進程要請求某個設備時,系統按照某種算法立即分配相應的設備給請求者,請求者使用完后立即釋放。7879虛擬分配虛擬分配是針對虛擬設備而言的。其實現的過程是:當用戶(或進程)申請獨占設備時,系統給它分配共享設備的一局部存儲空間。當程序要與設備交換信息時,系統就把要交換的信息存放在這局部存儲空間。在適當的時候再將存儲空間的信息傳輸到相應的設備上去處理。如系統打印信息時,就把要打印的信息送到某個存儲空間中去,然后由系統在適當時機把存儲空間上的信息送到打印機上打印出來。這個時機可能是打印機空閑或打印機完成了一用戶的信息輸出之后。通常人們把共享設備中代替獨占設備的那局部存儲空間和相應的控制結構稱為虛擬設備,并把對這類設備的分配稱作虛擬分配。80SPOOLing系統SimultaneausPeriphernalOperationsOn-Line(外部設備同時聯機操作〕。在單道批處理時期,用脫機I/O可以提高CPU利用率。多道出現后可以利用一道程序來模擬脫機I/O中的衛星機,這樣可實現在主機控制下的脫機I/O功能。我們把這種在聯機情況下實現的同時外圍操作稱為SPOOLing,也稱為假脫機操作。81SPOOLing系統的組成輸入井和輸出井輸入緩沖區和輸出緩沖區輸入進程和輸出進程82SPOOLing系統的組成圖83SPOOLing系統工作原理作業執行前預先將程序和數據輸入到輸入井中。作業運行后,使用數據時,從輸入井中取出。作業執行不必直接啟動外設輸出數據,只需將這些數據寫入輸出井中。作業全部運行完畢,再由外設輸出全部數據和信息。優點:實現了對作業輸入、組織調度和輸出的統一管理使外設在CPU直接控制下,與CPU并行工作〔假脫機〕84輸入裝置輸入裝置通道通道輸出裝置輸出裝置通道
主機系統輸入管輸出管理模塊理模塊外存輸入井輸出井SPOOLing系統工作原理圖85SPOOLing系統的特點提高了I/O速度將獨占設備改造為共享設備實現了虛擬設備功能865、I/O進程控制I/O控制的引入系統在何時分配設備,在何時申請緩沖,和由哪個進程進行中斷響應呢?另外,盡管CPU向設備或通道發出了啟動指令,設備的啟動以及I/O控制器中有關存放器的值由誰來設置呢?這些都是前面的討論中沒有解決的問題。從用戶進程的輸入輸出請求開始,給用戶進程分配設備和啟動有關設備進行I/O操作,以及在I/O操作完成之后響應中斷,進行善后處理為止的整個系統控制過程稱為I/O控制。87I/O控制功能88I/O控制功能分析I/O控制過程首先收集和分析調用I/O控制過程的原因:是外設來的中斷請求?還是進程來的I/O請求?然后分別調用不同的程序模塊進行處理。上圖中各子模塊的功能:I/O請求處理是用戶進程和設備管理程序接口的一局部,它把用戶進程的I/O請求變換為設備管理程序所能接受的信息。一般來說,用戶的I/O請求包括:所申請進行I/O操作的邏輯設備名、要求的操作、傳送數據的長度和起始地址等。I/O請求處理模塊對用戶的I/O請求進行處理。它首先將I/O請求中的邏輯設備名轉換為對應的物理設備名;然后,檢查I/O請求命令中是否有參數錯誤;在I/O請求命令參數正確時,它把該命令插入指向相應DCT的I/O請求隊列;然后啟動設備分配程序。在有通道的系統中,I/O請求處理模塊還將按I/O請求命令的要求編制出通道程序。89I/O控制功能分析〔續〕在設備分配程序為I/O請求分配了相應的設備、控制器和通道之后,I/O控制模塊還將啟動緩沖管理模塊為此次I/O傳送申請必要的緩沖區,以保證I/O傳送的順利完成。緩沖區的申請也可在設備分配之前進行。例如UNIX系統首先請求緩沖區,然后把I/O請求命令寫到緩沖區中并將該緩沖區掛到設備的I/O請求隊列上。另外,在數據傳送結束后,外設發出中斷請求,I/O控制過程將調用中斷處理程序和做出中斷響應。對于不同的中斷,其善后處理不同。例如處理結束中斷時,要釋放相應的設備、控制器和通道,并喚醒正在等待該操作完成的進程。另外,還要檢查是否還有等待該設備的I/O請求命令。如有,那么要通知I/O控制過程進行下一個I/O傳送。90I/O控制的實現I/O控制過程在系統中可以按三種方式實現:(1)作為請求I/O操作的進程的一局部實現。這種情況下,請求I/O操作的進程應具有良好的實時性,且系統應能根據在中斷信號的內容準確地調度到請求所對應I/O操作的進程占據處理機,因為在大多數情況下,當一個進程發出I/O請求命令之后,都被阻塞睡眠。91I/O控制的實現〔續〕(2)作為當前進程的一局部實現。作為當前進程的一局部實現時,不要求系統具有高的實時性。但由于當前進程與完成的I/O操作無關,所以當前進程不能接受I/O請求命令的啟動I/O操作。不過,當前進程可以在接收到中斷信號后,將中斷信號轉交給I/O控制模塊處理,因此,如果讓請求I/O操作的進程調用I/O操作控制局部(I/O請求處理、設備分配、緩沖區分配等),而讓當前進程負責調用中斷處理局部也是一種可行的I/O控制方案。92I/O控制的實現〔續〕(3)I/O控制由專門的系統進程——I/O進程完成。在用戶進程發出I/O請求命令之后,系統調度I/O進程執行,控制I/O操作。同樣,在外設發出中斷請求之后,I/O進程也被調度執行以響應中斷。I/O請求處理模塊、設備分配模塊以及緩沖區管理模塊和中斷原因分析、中斷處理模塊和后述的設備驅動程序模塊等都是I/O進程的一局部。93I/O進程的實現I/O進程也可分為三種方式實現。即:a.每類(個)設備設一專門的I/O進程,且該進程只能在系統態下執行。b.整個系統設一I/O進程,全面負責系統的數據傳送工作。又可把I/O進程分為輸入進程和輸出進程。c.每類(個)設備設一個專門的I/O進程,但該進程既可在用戶態也可在系統態下執行。946、設備驅動程序設備驅動程序是驅動物理設備和DMA控制器或I/O控制器等直接進行I/O操作的子程序的集合。負責設置相應設備有關存放器的值,啟動設備進行I/O操作,指定操作的類型和數據流向等。為了對驅動程序進行管理,系統中設置有設備開關表DST。設備開關表中給出相應設備的各種操作子程序的入口地址,例如翻開、關閉、讀、寫和啟動設備子程序的入口地址。一般設備開關表是二維結構,其中的行和列分別表示設備類型和驅動程序類型。設備開關表也是I/O進程的一個數據結構。I/O控制過程為進程分配設備和緩沖區之后,可以使用設備開關表調用所需的驅動程序進行I/O操作。957、磁盤存儲器管理96磁盤概述目前,幾乎所有隨機存取的文件,都是存放在磁盤上,磁盤I/O速度的上下將直接影響文件系統的性能。硬盤分為兩種:固定頭磁盤:每個磁道設置一個磁頭,變換磁道時不需要磁頭的機械移動,速度快但本錢高。移動頭磁盤:一個盤面只有一個磁頭,變換磁道時需要移動磁頭,速度慢但本錢低。97柱面扇區磁臂磁頭側視圖98磁道扇區俯視圖99柱面、磁頭、扇區信息記錄在磁道上,多個盤片,正反兩面都用來記錄信息,每面一個磁頭所有盤面中處于同一磁道號上的所有磁道組成一個柱面每個扇區大小為512字節物理地址形式:柱面號 磁頭號扇區號100典型參數20G:39813柱面16頭63扇區60G:28733柱面16頭255扇區101磁盤的訪問過程由三個動作組成:尋道:磁頭移動定位到指定磁道旋轉延遲:等待指定扇區從磁頭下旋轉經過數據傳輸:數據在磁盤與內存之間的實際傳輸102磁盤的訪問時間尋道時間Ts:大約幾ms到幾十ms旋轉延遲時間Tr:對于7200轉/分,平均延遲時間為4.2ms數據傳輸時間Tt:目前磁盤的傳輸速度一般有幾十M/s,傳輸一個扇區的時間小于0.05ms103思考要提高磁盤的數據訪問速度,主要應在哪方面下功夫?104分析要提高磁盤的訪問速度主要應從以下兩方面入手:數據的合理組織磁盤的調度算法105磁盤調度算法當多個訪盤請求在等待時,采用一定的策略,對這些請求的效勞順序調整安排,旨在降低平均磁盤效勞時間,到達公平、高效公平:一個I/O請求在有限時間內滿足高效:減少設備機械運動所帶來的時間浪費先來先效勞最短尋道時間優先掃描算法單向掃描調度算法106按訪問請求到達的先后次序效勞優點:簡單,公平;缺點:效率不高,相鄰兩次請求可能會造成最內到最外的柱面尋道,使磁頭反復移動,增加了效勞時間,對機械也不利先來先效勞107假設磁盤訪問序列:98,183,37,122,14,124,65,67讀寫頭起始位置:53安排磁頭效勞序列計算磁頭移動總距離〔道數〕例108圖解98,183,37,122,14,124,65,67磁頭走過的總道數:640109優先選擇距當前磁頭最近的訪問請求進行效勞,主要考慮尋道優先優點:改善了磁盤平均效勞時間;缺點:造成某些訪問請求長期等待得不到效勞最短尋道時間優先110圖解65,67,37,14,98,122,124,183磁頭走過的總道數:23698,183,37,122,14,124,65,67111克服了最短尋道優先的缺點,既考慮了距離,同時又考慮了方向具體做法:當設備無訪問請求時,磁頭不動;當有訪問請求時,磁頭按一個方向移動,在移動過程中對遇到的訪問請求進行效勞,然后判斷該方向上是否還有訪問請求,如果有那么繼續掃描;否那么改變移動方向,并為經過的訪問請求效勞,如此反復掃描算法〔電梯算法〕112圖113圖解37,14,65,67,98,122,124,183磁頭走過的總道數:20898,183,37,122,14,124,65,67114單向掃描調度算法也稱循環掃描算法。電梯算法杜絕了饑餓,但當請求對磁道的分布是均勻時,磁頭回頭,近磁頭端的請求很少〔因為磁頭剛經過〕,而遠端請求較多,這些請求等待時間要長一些。總是從0號柱面開始向里掃描。移動臂到達最后個一個柱面后,立即帶動讀寫磁頭快速返回到0號柱面。返回時不為任何的等待訪問者效勞。返回后可再次進行掃描。115圖解116調度算法的選擇實際系統相當普遍采用最短尋道時間優先算法,因為它簡單有效,性價比好。掃描算法更適于磁盤負擔重的系統。磁盤負擔很輕的系統也可以采用先來先效勞算法。一般要將磁盤調度算法作為操作系統的單獨模塊編寫,利于修改和更換。117118文件目錄和文件分配表是文件管理所需的重要數據結構。在系統每次啟動時都要進行兩份目錄和分配表的檢查。119磁盤外表有少量缺陷時,采取一些補救措施后可繼續使用。這些措施主要用于防止將數據寫入有缺陷的盤塊中。熱修復重定向系統將一定的磁盤容量〔如2%-3%〕作為熱修復重定向區。例如:系統要向第3柱2頭1扇區寫數據,但發現該扇區是壞的時,便將數據寫到熱修復區〔如200柱16頭1扇區〕。以后要讀3柱2頭1扇區的數據時,便從200柱16頭1扇區中讀。寫后讀校驗為了保證所有寫入到磁盤的數據都能寫入完好的盤塊中,應該在每次寫數據時,又立即從磁盤上讀出該塊數據,并同寫前的數據進行比照〔校驗〕。假設兩者不一致,那么認為盤塊有缺陷,便將該數據寫入到熱修復區。并對該壞盤塊進行登記。120第一級容錯只能用于防止磁盤外表局部故障造成的數據喪失。如果磁盤驅動器或磁盤控制器發生故障,那么第一級容錯就無能為力了。包括:磁盤鏡像磁盤雙工121磁盤驅動器故障的容錯。在同一磁盤控制器控制下,增設一個完全相同的磁盤驅動器。每次將數據寫主磁盤時,同時將數據也寫入到備份磁盤。一個磁盤驅動器發生故障時,必須立即發出警告,盡快修復。磁盤利用率為50%。122磁盤控制器或控制器與CPU之間的通道故障的容錯。將兩臺磁盤驅動器分別接到兩個磁盤控制器上。兩個磁盤上的數據完全相同。123廉價磁盤冗余陣列RAID(RedundantArraysofInexpensiveDisk)。由伯克利提出,廣泛用于大中型計算機和網絡中。由一臺磁盤陣列控制器控制一組磁盤驅動器,組成一個高度可靠、快速的大容量磁盤系統。并行交叉存取方式:在系統中有多臺磁盤驅動器〔N〕。存放數據時,將數據的第一塊放在第一個磁盤上,第N塊放在第N個磁盤上。這樣可以并行讀寫,極大地提高了速度。124RAID分級RAID0—RAID7RAID0提供并行交叉存取〔沒有冗余能力〕至少兩個盤。RAID1兩個盤,并行交叉存取,并把一個磁盤的數據鏡像到另一個磁盤上。利用率50%。比傳統鏡像盤快。125數據0數據1的備份CPU磁盤0數據1數據0的備份磁盤1RAID1圖126RAID3與RAID5RAID3利用一個校驗盤來完成容錯。RAID5無專門校驗盤,校驗數據分布在多個盤上。一個磁盤故障時,控制器可從其他尚存的磁盤上重新恢復/生成喪失的數據而不影響數據的可用性。常用于I/O較頻繁的事務處理。127RAID的優點128后備系統容量和平安性考慮,需要后備系統。后備系統的類型磁帶機:最廣泛。硬盤:光盤:很有前途。拷貝方法完全轉儲:定期將所有文件拷貝到后援存儲器增量轉儲:只轉儲修改正的文件,即兩次備份之間的修改,減少系統開銷129文件系統性能的改善文件系統的性能可表現在多個方面:文件的訪問速度數據的可共享性文件系統使用的方便性數據的平安和一致性130提高磁盤I/O速度的方法磁盤高速緩存優化數據分布提前讀延遲寫虛擬盤131提高磁盤I/O速度方法〔1〕磁盤高速緩存磁盤的I/O速度要比內存低4-6個數量級。分配一些內存作為磁盤高速緩存可以極大地提高磁盤I/O速度。形式:在內存中開辟一個單獨的存儲空間作為磁盤高速緩存。把所有未利用的內存空間變為一個緩沖池,供分頁系統和磁盤I/O共享。132磁盤高速緩存的數據交付數據交付:將磁盤高速緩存中的數據傳送給請求者進程。當有訪問請求時,系統看所需的塊是否在高速緩存中。如果在,那么可直接訪問緩存。否那么,首先要將塊讀到高速緩存,再拷貝到所需的地方數據交付有兩種
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 醫療行業的新機遇基于大數據的健康管理與疾病預測研究報告
- 公司加盟協議合同范例
- 亞馬遜倉庫轉讓合同范例
- 醫療設備供應鏈的效率與質量控制
- 初中化學燃燒及其利用寒假知識點總結模版
- 產品保修合同范例個人
- 醫患溝通在心臟康復中的挑戰與對策
- 醫療廢物資源化利用技術進展與創新
- 醫療健康領域中區塊鏈技術的知識產權應用
- 《活法》心得體會模版
- 第三單元 八音和鳴(一) 課件 2024-2025學年湘教版初中音樂七年級上冊
- 校服授權生產協議合同范本
- 2024年北京市高考數學真題試卷及答案
- DL∕T 2025.2-2019 電站閥門檢修導則 第2部分:蝶閥
- DL∕T 1033.6-2014 電力行業詞匯 第6部分:新能源發電
- 2024年武漢市中考物理試卷真題解讀及答案解析(精校打印)
- NB-T35113-2018水電工程鉆孔壓水試驗規程
- DB51-T 5071-2011 蒸壓加氣混凝土砌塊墻體自保溫工程技術規程
- 小學數學二年級下冊-第七、八單元教材分析
- 職業道德與法律第一課第一節課件市公開課一等獎省賽課微課金獎課件
- 部編人教版《道德與法治》九年級下冊教案(全冊)
評論
0/150
提交評論