緩沖技術(shù)和設(shè)備分配PPT課件_第1頁
緩沖技術(shù)和設(shè)備分配PPT課件_第2頁
緩沖技術(shù)和設(shè)備分配PPT課件_第3頁
緩沖技術(shù)和設(shè)備分配PPT課件_第4頁
緩沖技術(shù)和設(shè)備分配PPT課件_第5頁
已閱讀5頁,還剩31頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、13.1 I/O管理管理概述概述 外設(shè)管理目的 提高效率:提高I/O訪問效率,匹配CPU和多種不同處理速度的外設(shè) 方便使用:方便用戶使用,對不同類型的設(shè)備統(tǒng)一使用方法,協(xié)調(diào)對設(shè)備的并發(fā)使用 方便控制:方便OS內(nèi)部對設(shè)備的控制:增加和刪除設(shè)備,適應(yīng)新的設(shè)備類型 外設(shè)管理功能 提供設(shè)備使用的用戶接口:命令接口和編程接口 設(shè)備分配和釋放:使用設(shè)備前,需要分配設(shè)備和相應(yīng)的通道、控制器。 設(shè)備的訪問和控制:包括并發(fā)訪問和差錯處理(虛擬設(shè)備)。 I/O緩沖和調(diào)度:目標(biāo)是提高I/O訪問效率第1頁/共36頁 按交互對象分類 人機交互設(shè)備:視頻顯示設(shè)備、鍵盤、鼠標(biāo)、打印機 與計算機或其他電子設(shè)備交互的設(shè)備:磁盤

2、、磁帶、傳感器、控制器 計算機間的通信設(shè)備:網(wǎng)卡、調(diào)制解調(diào)器 按交互方向分類 輸入(可讀):鍵盤、掃描儀 輸出(可寫):顯示設(shè)備、打印機 輸入/輸出(可讀寫):磁盤、網(wǎng)卡 按外設(shè)特性分類 使用特征:存儲、輸入/輸出、終端 數(shù)據(jù)傳輸率:低速(如鍵盤)、中速(如打印機)、高速(如網(wǎng)卡、磁盤) 信息組織特征:單個字符或數(shù)據(jù)塊 字符設(shè)備(如打印機):通常的輸入輸出型設(shè)備,以字符為單位存儲、傳輸信息;不可尋址 塊設(shè)備(如磁盤):以數(shù)據(jù)塊為單位存儲、傳輸信息??蓪ぶ?3.1 I/O管理管理外部設(shè)備類型和特征第2頁/共36頁 按資源分配角度分類 獨占設(shè)備 在一段時間內(nèi)只能有一個進程使用的設(shè)備,一般為低速I/

3、O設(shè)備。如打印機,磁帶等。 共享設(shè)備 在一段時間內(nèi)可有多個進程共同使用的設(shè)備,多個進程以交叉的方式來使用設(shè)備,其資源利用率高。如硬盤 虛擬設(shè)備 在一類設(shè)備上模擬另一類設(shè)備,常用共享設(shè)備模擬獨占設(shè)備,用高速設(shè)備模擬低速設(shè)備,被模擬的設(shè)備稱為虛設(shè)備(實例:SPOOLing技術(shù)) 從程序使用角度分 邏輯設(shè)備: 用戶程序中使用的設(shè)備 物理設(shè)備:實際完成I/O操作的設(shè)備13.1 I/O管理管理外部設(shè)備類型和特征第3頁/共36頁13.2 I/O控制技術(shù)控制技術(shù) 程序控制I/O(輪詢):CPU代表進程給I/O模塊發(fā)送一個命令,CPU進入忙等待(輸入輸出完全由CPU控制) 中斷驅(qū)動I/O: CPU代表進程給I

4、/O模塊發(fā)送一個命令,然后CPU繼續(xù)執(zhí)行后續(xù)指令; 當(dāng)I/O模塊完成后,CPU被該模塊(CPU和I/O設(shè)備可以共同工作)中斷。 直接存儲器存取(DMA):CPU給DMA模塊發(fā)請求,只有當(dāng)DMA將整個數(shù)據(jù)塊傳送結(jié)束后,CPU才被中斷(數(shù)據(jù)在內(nèi)存和外設(shè)之間傳輸時不需要CPU干預(yù))。第4頁/共36頁設(shè)備絕對號和相對號設(shè)備絕對號和相對號 設(shè)備絕對號:計算機系統(tǒng)為每一臺設(shè)備確定的編號,用來區(qū)分和識別設(shè)備; 用戶在編寫程序時不能通過設(shè)備的絕對編號來使用設(shè)備 設(shè)備類型號:操作系統(tǒng)為每類設(shè)備規(guī)定的一個編號 設(shè)備相對號:用戶自己規(guī)定的所用的同類設(shè)備中的第幾臺。 如Unix中,rfd0和rfd1分別表示第1個和第

5、2個軟盤驅(qū)動器;第5頁/共36頁設(shè)備絕對號和相對號設(shè)備絕對號和相對號 設(shè)備的指定方式 設(shè)備絕對號 設(shè)備類型號+設(shè)備相對號 用戶程序中提出使用設(shè)備的申請時,使用系統(tǒng)規(guī)定的設(shè)備類型號和用戶自己規(guī)定的設(shè)備相對號,由操作系統(tǒng)進行地址轉(zhuǎn)換,變成系統(tǒng)中的設(shè)備絕對號;第6頁/共36頁 I/O軟件的設(shè)計目標(biāo): 效率:大多數(shù)I/O設(shè)備慢,I/O操作一般是系統(tǒng)瓶頸,很大程度上影響系統(tǒng)的性能和吞吐量。因此要改善I/O的有效性,采用多道程序設(shè)計、交換。目前比較關(guān)注磁盤I/O。 通用性:設(shè)備種類、特點和性能千差萬別;要求能夠以一種一致的方式來管理所有設(shè)備一致的外部接口,很難做到通用,但希望能夠用統(tǒng)一的方法處理所有設(shè)備,

6、用一種層次化的,模塊化的方法設(shè)計I/O功能。 能夠在低層例程中隱藏大部分設(shè)備I/O的細節(jié), 使得用戶進程和OS高層可以通過一些通用的功能,如讀、寫、打開、關(guān)閉等查看I/O設(shè)備。 設(shè)備獨立性。用戶在編寫使用軟盤或硬盤上文件的程序時,無需為不同的設(shè)備類型而修改程序就可以使用 統(tǒng)一命名。一個文件或一個設(shè)備的名字只應(yīng)是一個簡單的字符串或一個整數(shù),不應(yīng)依賴于設(shè)備13.3 13.3 設(shè)備管理系統(tǒng)的組織設(shè)備管理系統(tǒng)的組織第7頁/共36頁設(shè)備獨立性設(shè)備獨立性 如果用戶程序中直接使用真實的物理設(shè)備,那么會出現(xiàn)這樣的問題:用戶指定的設(shè)備因故障不能使用,或者該設(shè)備正忙于為其他進程服務(wù),只有等待或者修改程序,重新指定

7、設(shè)備。 為了實現(xiàn)用戶程序與物理設(shè)備的無關(guān)性,在用戶程序中不要直接使用物理設(shè)備名(或者設(shè)備的物理地址),而只能使用邏輯設(shè)備名。邏輯設(shè)備是實際物理設(shè)備的抽象,它不限于某類具體設(shè)備。邏輯設(shè)備究竟和哪一個具體的物理設(shè)備相對應(yīng),還要由系統(tǒng)根據(jù)當(dāng)時的設(shè)備忙、閑情況來決定或者由系統(tǒng)管理員指定。第8頁/共36頁 IO軟件的基本思想是按分層的思想構(gòu)成: 較低層軟件要使較高層軟件獨立于硬件的特性, 較高層軟件則要向用戶提供一個友好的、清晰的、簡單的、功能更強的接口13.3 13.3 設(shè)備管理系統(tǒng)的組織設(shè)備管理系統(tǒng)的組織第9頁/共36頁13.3 設(shè)備管理分層模型User ProcessLogical I/ODevi

8、ce I/OScheduling & Control(Device Driver)HardwareCommunications Architecture第10頁/共36頁 邏輯I/O:將設(shè)備當(dāng)作一個邏輯資源,不涉及實際的設(shè)備控制的細節(jié): 針對用戶接口,提供抽象的命令,如:Open, Close, Read, 針對通信設(shè)備,則是通信體系結(jié)構(gòu)如網(wǎng)絡(luò)協(xié)議棧; 針對文件存儲設(shè)備,是文件系統(tǒng)的邏輯結(jié)構(gòu)控制; 設(shè)備I/O:邏輯設(shè)備與物理設(shè)備間的過渡協(xié)調(diào)機構(gòu)。用戶命令到設(shè)備操作序列的轉(zhuǎn)換。請求的操作和數(shù)據(jù)被轉(zhuǎn)換成適當(dāng)?shù)腎/O指令序列、通道命令和控制器指令。可以用I/O緩沖提高I/O效率 調(diào)度和控制:

9、是I/O模塊和設(shè)備硬件真正發(fā)生交互的軟件層,直接面對硬件設(shè)備的控制細節(jié)。如I/O操作的排隊,設(shè)備控制和狀態(tài)維護、中斷處理。這部分通常體現(xiàn)為設(shè)備驅(qū)動程序;13.3 13.3 設(shè)備管理分層模型設(shè)備管理分層模型第11頁/共36頁進行進行I/O調(diào)用,格式調(diào)用,格式化化I/O; Spooling命名,保護,阻塞,命名,保護,阻塞,緩沖,分配緩沖,分配建立設(shè)備寄存器;建立設(shè)備寄存器;檢查狀態(tài)檢查狀態(tài)當(dāng)當(dāng)I/O結(jié)束時,喚醒結(jié)束時,喚醒驅(qū)動器驅(qū)動器執(zhí)行執(zhí)行I/O操作操作I/O系統(tǒng)的層次結(jié)構(gòu)及每層的主要功能第12頁/共36頁用戶進程層執(zhí)行輸入輸出系統(tǒng)調(diào)用,對I/O數(shù)據(jù)進行格式化 獨立于設(shè)備的軟件實現(xiàn)設(shè)備的命名、

10、設(shè)備的保護、成塊處理、緩沖技術(shù)和設(shè)備分配;(邏輯I/O)設(shè)備驅(qū)動程序設(shè)置設(shè)備寄存器、檢查設(shè)備的執(zhí)行狀態(tài)中斷處理程序負責(zé)IO完成時,喚醒設(shè)備驅(qū)動程序進程,進行中斷處理硬件層實現(xiàn)物理IO的操作第13頁/共36頁練習(xí)題練習(xí)題描述設(shè)備管理軟件的層次結(jié)構(gòu),并說明以下的工作各在I/0軟件層次的哪一層?維護一個最近使用的塊的緩沖。為一個磁盤讀操作計算磁道、扇區(qū)、磁頭。向設(shè)備寄存器寫命令。設(shè)備保護各類I/O庫函數(shù) 第14頁/共36頁 緩沖技術(shù)的基本思想:在CPU和外設(shè)之間設(shè)置緩沖區(qū),用于暫存CPU與外設(shè)之間交換的數(shù)據(jù),從而緩和CPU與外設(shè)速度不匹配的矛盾。 緩沖區(qū)所在的位置:內(nèi)存,控制器或外設(shè)(多級緩沖機制)

11、 硬件緩沖,如I/O控制器中的數(shù)據(jù)緩沖寄存器 軟件緩沖:在內(nèi)存畫出一個具有n個單元的專用緩沖區(qū)。 根據(jù)方向:分為輸入緩沖和輸出緩沖 根據(jù)用途:分為專用緩存(為一個設(shè)備獨占,如鍵盤緩存)和公用緩存(為多個設(shè)備公用)緩沖區(qū)緩沖區(qū)CPU外設(shè)外設(shè)13.4 緩沖緩沖第15頁/共36頁13.4 緩沖緩沖 無緩沖時問題分析:設(shè)備直接向進程地址空間傳送數(shù)據(jù)(如用戶從磁帶中讀數(shù)據(jù)塊的操作),則進程要么忙等待,要么阻塞。 如果用忙等待方式,則浪費大量CPU時間; 如果是阻塞方式,則進程阻塞在設(shè)備的I/O請求隊列中。這時,不能將進程全部換出,還可能出現(xiàn)單進程死鎖。(進程在等待I/O操作結(jié)果之前被換出,等待I/O事件

12、,而I/O操作也被阻塞,等待該進程被換入。)第16頁/共36頁 緩沖技術(shù)的用途 可以在發(fā)出請求之前就開始執(zhí)行輸入操作(預(yù)輸入),在發(fā)出請求一段時間后才開始執(zhí)行輸出操作(緩輸出)。 匹配CPU或用戶應(yīng)用進程與外設(shè)的不同處理速度 減少對CPU的中斷次數(shù): 提高CPU和I/O設(shè)備之間以及各個I/O設(shè)備之間的處理并行性。 多道程序環(huán)境中提高OS效率和單個進程的工具(技術(shù))之一。第17頁/共36頁 單緩沖(single buffer):當(dāng)一個用戶進程發(fā)出I/O請求時,OS給該操作分配一個位于主存中系統(tǒng)部分的緩沖區(qū)。以面向塊的設(shè)備為例:輸入先傳送至系統(tǒng)緩沖區(qū),當(dāng)傳送完成時,進程將該塊移動到用戶空間,并立即

13、請求另一塊預(yù)讀(對于輸出,則稱為延遲寫)。 好處: 用戶可以在下一塊數(shù)據(jù)正在讀入時,處理這塊數(shù)據(jù)(用戶進程處理某個數(shù)據(jù)塊的同時,下一個數(shù)據(jù)塊正在讀入)。由于輸入發(fā)生功能在系統(tǒng)存儲空間而不是用戶進程存儲區(qū),因此OS可以將該進程換出。 增加了OS的邏輯復(fù)雜度:OS必須直到用戶進程的緩沖區(qū)的分配情況,交換邏輯受到影響。第18頁/共36頁13.4 緩沖緩沖雙緩沖和循環(huán)緩沖雙緩沖和循環(huán)緩沖 雙緩沖(double buffer):兩個緩沖區(qū),CPU和外設(shè)都可以連續(xù)處理而無需等待對方。當(dāng)一個進程往一個緩沖區(qū)中寫數(shù)據(jù)時(取數(shù)據(jù))時,OS正在清空(填充)另一個緩沖區(qū)。 循環(huán)緩沖(circular buffer)

14、:多個緩沖區(qū),CPU和外設(shè)的處理速度可以相差較大,如這個進程突然快速執(zhí)行了大量的I/O。第19頁/共36頁13.4 I/O 緩沖緩沖第20頁/共36頁13.4 I/O 緩沖緩沖第21頁/共36頁由于外設(shè)資源的有限,需解決進程間的外設(shè)共享問由于外設(shè)資源的有限,需解決進程間的外設(shè)共享問題,以提高外設(shè)資源的利用率。設(shè)備分配是對進程題,以提高外設(shè)資源的利用率。設(shè)備分配是對進程使用外設(shè)過程的管理。這里有兩種作法:使用外設(shè)過程的管理。這里有兩種作法:1)在進程間在進程間切換使用切換使用外設(shè),如鍵盤和鼠標(biāo);外設(shè),如鍵盤和鼠標(biāo);2)通過一個通過一個虛擬設(shè)備虛擬設(shè)備把外設(shè)與應(yīng)用進程隔開,只把外設(shè)與應(yīng)用進程隔開,

15、只由虛擬設(shè)備來使用設(shè)備。由虛擬設(shè)備來使用設(shè)備。第22頁/共36頁13.4.1 設(shè)備分配設(shè)備分配數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu) 系統(tǒng)設(shè)備表(SDT, System Device Table):系統(tǒng)內(nèi)一張,反映系統(tǒng)中設(shè)備資源的狀態(tài),記錄所有設(shè)備的狀態(tài)及其設(shè)備控制表的入口。 設(shè)備控制表(DCT, Device Control Table):每個設(shè)備一張,描述設(shè)備特性和狀態(tài)。反映設(shè)備的特性、設(shè)備和控制器的連接情況。 控制器控制表(COCT, COntroller Control Table):每個設(shè)備控制器一張,描述I/O控制器的配置和狀態(tài)。如DMA控制器所占用的中斷號、DMA數(shù)據(jù)通道的分配。 通道控制表(CHCT

16、, CHannel Control Table):每個通道一張,描述通道工作狀態(tài)。第23頁/共36頁各表間的關(guān)系系統(tǒng)設(shè)備表系統(tǒng)設(shè)備表表項1 表項i設(shè)備類型設(shè)備標(biāo)識獲得設(shè)備的進程號DCT指針設(shè)備控制表(設(shè)備控制表(DCT)設(shè)備類型設(shè)備標(biāo)識設(shè)備忙/閑標(biāo)記COCT指針設(shè)備等待隊列首指針設(shè)備等待隊列尾指針控制器控制表控制器控制表COCT控制器標(biāo)識控制器忙/閑標(biāo)記CHCT指針控制器等待隊列首指針控制器等待隊列尾指針通道控制表通道控制表CHCT通道標(biāo)識通道忙/閑標(biāo)記COCT指針通道等待隊列首指針通道等待隊列尾指針第24頁/共36頁13.4.2 設(shè)備分配設(shè)備分配原則原則 設(shè)備分配的原則 合理使用外設(shè)(公平和

17、避免死鎖) 提高設(shè)備利用率 應(yīng)用程序與設(shè)備無關(guān) 與設(shè)備分配有關(guān)的設(shè)備屬性: 獨享設(shè)備:打印機等; 共享設(shè)備:磁盤、網(wǎng)卡等; 設(shè)備分配技術(shù): 獨占分配:不會出現(xiàn)死鎖;但設(shè)備利用率不高; 共享分配:利用率高,但控制復(fù)雜 虛擬分配:利用共享設(shè)備去實現(xiàn)獨占設(shè)備的功能;有利于提高設(shè)備利用率第25頁/共36頁 先來先服務(wù)(FCFS):按I/O請求的先后順序,排成I/O請求命令隊列,隊首指向被請求設(shè)備的DCT;按FCFS分配設(shè)備; 基于優(yōu)先級:依據(jù)進程的優(yōu)先級,指定I/O請求的優(yōu)先級,排成不同優(yōu)先級隊列;按優(yōu)先級高低分配設(shè)備;13.4.2 設(shè)備分配設(shè)備分配算法第26頁/共36頁u先回顧一下設(shè)備分類問題先回顧

18、一下設(shè)備分類問題u按資源分配角度分類按資源分配角度分類u獨占設(shè)備獨占設(shè)備u在一段時間內(nèi)只能有一個進程使用的設(shè)備,在一段時間內(nèi)只能有一個進程使用的設(shè)備,一般為低速一般為低速I/OI/O設(shè)備。如打印機,磁帶等。因設(shè)備。如打印機,磁帶等。因數(shù)量有限,會成為系統(tǒng)中的數(shù)量有限,會成為系統(tǒng)中的“瓶頸瓶頸”資源,資源,使進程經(jīng)常處于阻塞狀態(tài);設(shè)備利用率比較使進程經(jīng)常處于阻塞狀態(tài);設(shè)備利用率比較低低u共享設(shè)備共享設(shè)備u在一段時間內(nèi)可有多個進程共同使用的設(shè)備,在一段時間內(nèi)可有多個進程共同使用的設(shè)備,多個進程以交叉的方式來使用設(shè)備,其資源多個進程以交叉的方式來使用設(shè)備,其資源利用率高(如硬盤)利用率高(如硬盤)第

19、27頁/共36頁13.5 虛擬設(shè)備 虛擬設(shè)備技術(shù) 多道程序系統(tǒng)中,進程對設(shè)備的需求頻繁,尤其是獨占設(shè)備數(shù)量有限、效率低,故引入虛擬設(shè)備管理技術(shù)。 基本思想:用大容量的快速設(shè)備(磁盤)模擬慢速度的獨占設(shè)備,把一臺物理上的獨占設(shè)備變?yōu)檫壿嬌系亩嗯_共享設(shè)備。 通過共享型設(shè)備來模擬獨占型設(shè)備的動作,使獨占型設(shè)備成為共享型設(shè)備,提高設(shè)備的利用率和系統(tǒng)的效率。 實例:SPOOLing技術(shù)(Simultaneously Peripheral Operation On Line,外圍設(shè)備同時聯(lián)機操作),是用程序模擬脫機I/O的功能,故又稱為假脫機技術(shù)。第28頁/共36頁輸入設(shè)備輸入設(shè)備輸出設(shè)備輸出設(shè)備虛擬設(shè)備

20、虛擬設(shè)備虛擬設(shè)備虛擬設(shè)備虛擬設(shè)備虛擬設(shè)備輸入井輸入井輸出井輸出井虛擬設(shè)備虛擬設(shè)備用戶進程用戶進程用戶進程用戶進程虛擬設(shè)備虛擬設(shè)備第29頁/共36頁13.5 SPOOLing系統(tǒng)系統(tǒng)工作原理工作原理 作業(yè)執(zhí)行前用慢速設(shè)備將作業(yè)預(yù)先輸入到輸入井中,稱為預(yù)輸入(輸入井和輸出井是某共享設(shè)備(磁盤)上的一部分存儲空間)。 作業(yè)運行后,使用數(shù)據(jù)時,從輸入井中取出 作業(yè)執(zhí)行不必直接啟動外設(shè)輸出數(shù)據(jù),只需將這些數(shù)據(jù)寫入輸出井中 作業(yè)全部運行完畢,再由外設(shè)輸出全部數(shù)據(jù)和信息,稱為緩輸出 實現(xiàn)了對作業(yè)輸入、組織調(diào)度和輸出的統(tǒng)一管理使外設(shè)在CPU直接控制下,與CPU并行工作(稱為假脫機)第30頁/共36頁輸入裝置輸入裝置輸入裝置輸入裝置通通道道通通道道輸出裝置輸出裝置輸出裝置輸出裝置通通 道道 主機系統(tǒng)主機系統(tǒng)輸入管輸入管 輸出管輸出管理模塊理模塊 理模塊理模塊外外 設(shè)設(shè)輸入井輸入井 輸出井輸出井 第31頁/共36頁13.5 SPOOLing系統(tǒng)系統(tǒng) 舉例舉例 假設(shè)系統(tǒng)中全部打印機采用了Spooling技術(shù),當(dāng)某進程要求打印輸出時

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論