操作系統(tǒng)ch10-IO設備管理_第1頁
操作系統(tǒng)ch10-IO設備管理_第2頁
操作系統(tǒng)ch10-IO設備管理_第3頁
操作系統(tǒng)ch10-IO設備管理_第4頁
操作系統(tǒng)ch10-IO設備管理_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、- 1 -航天航天軟軟件中心件中心操作系操作系統(tǒng)統(tǒng) for 2013級級本科本科10.1 設備管理概述設備管理概述10.2 I/O控制方式控制方式10.3 緩沖技術緩沖技術10.4 設備分配與驅動設備分配與驅動主要內容主要內容第第1010章章 I/OI/O設備管理設備管理- 2 -航天航天軟軟件中心件中心操作系操作系統(tǒng)統(tǒng) for 2013級級本科本科l設備管理是操作系統(tǒng)的重要組成部分設備管理是操作系統(tǒng)的重要組成部分同其他管理來說,該部分內容比較復雜凌亂。因為設備種類繁同其他管理來說,該部分內容比較復雜凌亂。因為設備種類繁多,各自有著不同的特點,所以很難制定一個通用的、規(guī)范的多,各自有著不同的特

2、點,所以很難制定一個通用的、規(guī)范的管理方法管理方法l設備管理的方法主要有設備管理的方法主要有3種:種:(1)操作系統(tǒng)直接操縱設備的運行,例如直接程序控制、中斷)操作系統(tǒng)直接操縱設備的運行,例如直接程序控制、中斷 方式控制方式控制(2)操作系統(tǒng)間接操縱設備的運行,例如)操作系統(tǒng)間接操縱設備的運行,例如DMA和通道方式和通道方式(3)操作系統(tǒng)通過使用設備驅動程序,將設備管理工作通過任)操作系統(tǒng)通過使用設備驅動程序,將設備管理工作通過任 務(進程)的形式來體現(xiàn)。務(進程)的形式來體現(xiàn)。OS只需制定標準,將具體操只需制定標準,將具體操 縱設備的程序交給不同的制造商去開發(fā)縱設備的程序交給不同的制造商去開

3、發(fā)10.1 10.1 設備管理概述設備管理概述- 3 -航天航天軟軟件中心件中心操作系操作系統(tǒng)統(tǒng) for 2013級級本科本科認識計算機外設與計算機認識計算機外設與計算機!PCI總線總線圖形控制器圖形控制器IDE控制器控制器總線控制器總線控制器CPU-內存總線內存總線擴展總線接口擴展總線接口擴展總線擴展總線并行口并行口- 4 -航天航天軟軟件中心件中心操作系操作系統(tǒng)統(tǒng) for 2013級級本科本科認識計算機外設與計算機認識計算機外設與計算機!- 5 -航天航天軟軟件中心件中心操作系操作系統(tǒng)統(tǒng) for 2013級級本科本科想一想外設怎么工作想一想外設怎么工作?PCI總線總線總線控制器總線控制器C

4、PU-內存總線內存總線IDE控制器控制器發(fā)出一個讀命令發(fā)出一個讀命令讀完后向讀完后向CPU發(fā)出中斷發(fā)出中斷將數(shù)據(jù)送往內存將數(shù)據(jù)送往內存讀磁盤讀磁盤CPU向控制器中的寄存器向控制器中的寄存器讀寫數(shù)據(jù)讀寫數(shù)據(jù)控制器完成真正的工作,控制器完成真正的工作,并向并向CPU發(fā)中斷信號發(fā)中斷信號想讓外設工作想讓外設工作并不復雜并不復雜!- 6 -航天航天軟軟件中心件中心操作系操作系統(tǒng)統(tǒng) for 2013級級本科本科I/OI/O系統(tǒng)想給用戶提供一個系統(tǒng)想給用戶提供一個什么樣的視圖什么樣的視圖? ?- 7 -航天航天軟軟件中心件中心操作系操作系統(tǒng)統(tǒng) for 2013級級本科本科看一段操縱外設的程序看一段操縱外設

5、的程序int fd = open(“/dev/something”);for (int i = 0; i 10; i+) fprintf(fd,”Count %dn”,i);close(fd);(1) 不論什么設備都是不論什么設備都是open, read, write, close操作系統(tǒng)為用戶提供統(tǒng)一的接口操作系統(tǒng)為用戶提供統(tǒng)一的接口!(2) 不同的設備對應不同的文件不同的設備對應不同的文件(設備文件設備文件)設備文件中存放了設備的屬性設備文件中存放了設備的屬性!- 8 -航天航天軟軟件中心件中心操作系操作系統(tǒng)統(tǒng) for 2013級級本科本科顯然操作系統(tǒng)將完成顯然操作系統(tǒng)將完成鍵盤鍵盤命令命

6、令系統(tǒng)調用接口系統(tǒng)調用接口open(),read(),write(),close()磁盤磁盤命令命令設備設備驅動驅動/中斷中斷服務程序服務程序設備屬設備屬性數(shù)據(jù)性數(shù)據(jù)進行解釋進行解釋鍵盤控制器鍵盤控制器磁盤控制器磁盤控制器中斷中斷處理處理中斷中斷處理處理鍵盤鍵盤磁盤磁盤用戶庫函數(shù)用戶庫函數(shù)統(tǒng)稱為統(tǒng)稱為I/O系系統(tǒng)統(tǒng)- 9 -航天航天軟軟件中心件中心操作系操作系統(tǒng)統(tǒng) for 2013級級本科本科IO系統(tǒng)用戶接口系統(tǒng)用戶接口函數(shù)名函數(shù)名 功能功能 create() 創(chuàng)建設備 remove() 刪除設備 open() 打開設備 close() 關閉設備 read() 從設備中讀取數(shù)據(jù) write()

7、 向設備中寫入數(shù)據(jù) ioctl() 控制設備(例如設置波特率等) Linux I/O: open/close/read/write/lseekVxworks I/O- 10 -航天航天軟軟件中心件中心操作系操作系統(tǒng)統(tǒng) for 2013級級本科本科I/O系統(tǒng)如何向設備發(fā)命令系統(tǒng)如何向設備發(fā)命令?系統(tǒng)接口系統(tǒng)接口設備命令設備命令設備控制器設備控制器系統(tǒng)接口系統(tǒng)接口中斷處理中斷處理設備中斷設備中斷nI/O系統(tǒng)向設備控制器發(fā)命令系統(tǒng)向設備控制器發(fā)命令設備控制器的結構設備控制器的結構readwritecontrolstatus顯存顯存寄存器組寄存器組硬件控制器硬件控制器總線接口總線接口- 11 -航天航

8、天軟軟件中心件中心操作系操作系統(tǒng)統(tǒng) for 2013級級本科本科設備控制器設備控制器控制寄存器控制寄存器設備地址設備地址1設備地址設備地址2 設備地址設備地址n數(shù)據(jù)數(shù)據(jù)/狀態(tài)寄狀態(tài)寄存器存器控制信號控制信號(中斷等)(中斷等)CPU設備設備1設備設備nCPU、設備控制器與設備之間關系- 12 -航天航天軟軟件中心件中心操作系操作系統(tǒng)統(tǒng) for 2013級級本科本科I/O系統(tǒng)向哪里發(fā)送設備發(fā)命令系統(tǒng)向哪里發(fā)送設備發(fā)命令?n讀寫設備控制器的寄存器讀寫設備控制器的寄存器!怎么讀寫怎么讀寫? readwritecontrolstatus顯存顯存寄存器組寄存器組硬件控制器硬件控制器總線接口總線接口mov

9、 100, ax 關鍵是地址關鍵是地址設備寄存器的編址設備寄存器的編址 獨立編址獨立編址: 需要獨立的指令需要獨立的指令(in, out),如,如out 0 x21, AL內存映像編址內存映像編址: 是內存物理地址空間的一部分,使用是內存物理地址空間的一部分,使用mov命令,如命令,如mov 0 x8000f000, AL查查硬件手冊查查硬件手冊就知道了就知道了!- 13 -航天航天軟軟件中心件中心操作系操作系統(tǒng)統(tǒng) for 2013級級本科本科l設備管理的主要任務之一是控制設備和內存或設備管理的主要任務之一是控制設備和內存或CPU之間的數(shù)據(jù)傳送之間的數(shù)據(jù)傳送lI/O控制方式一般有控制方式一般有

10、4種:種:u程序直接控制(查詢)方式程序直接控制(查詢)方式u中斷控制方式中斷控制方式u直接內存存?。ㄖ苯觾却娲嫒。―MA)方式)方式u通道控制方式通道控制方式10.2 I/O10.2 I/O控制方式控制方式I/O系統(tǒng)發(fā)完命令后做什么系統(tǒng)發(fā)完命令后做什么?- 14 -航天航天軟軟件中心件中心操作系操作系統(tǒng)統(tǒng) for 2013級級本科本科I/O系統(tǒng)發(fā)完命令后做什么系統(tǒng)發(fā)完命令后做什么?n方案方案1: 原地踏步等待原地踏步等待!發(fā)送發(fā)送Read命令命令 Read I/O狀態(tài)狀態(tài) 檢查檢查I/O狀態(tài)狀態(tài)沒沒有有就就緒緒從從I/O讀取數(shù)據(jù)讀取數(shù)據(jù)就緒就緒將數(shù)據(jù)寫內存將數(shù)據(jù)寫內存原地踏步原地踏步出出錯錯

11、處處理理in AL, 0 x?while(AL!=ready) in AL, 0 x? 讀數(shù)據(jù)讀數(shù)據(jù).輪詢輪詢!輪詢輪詢浪費浪費CPU資源資源(CPU比外設快太比外設快太多了多了)!- 15 -航天航天軟軟件中心件中心操作系操作系統(tǒng)統(tǒng) for 2013級級本科本科例子:程序方法控制例子:程序方法控制I/O設備讀入數(shù)據(jù)流程設備讀入數(shù)據(jù)流程程序直接控制(查詢)方式程序直接控制(查詢)方式 工作工作步驟小結:步驟小結:(1)當某進程需要輸入)當某進程需要輸入/輸出數(shù)據(jù)時,輸出數(shù)據(jù)時,由由CPU向設備控制器發(fā)出一條向設備控制器發(fā)出一條I/O指指令啟動設備工作(對于輸出操作,令啟動設備工作(對于輸出操作

12、,則則CPU還要向數(shù)據(jù)寄存器中存放輸還要向數(shù)據(jù)寄存器中存放輸出數(shù)據(jù));出數(shù)據(jù));(2)在設備輸入)在設備輸入/輸出數(shù)據(jù)期間,輸出數(shù)據(jù)期間,CPU不斷地循環(huán)進行查詢設備狀態(tài)寄存不斷地循環(huán)進行查詢設備狀態(tài)寄存器的值(檢查器的值(檢查I/O工作是否完成)。工作是否完成)。(3)若完成,對輸入操作來說)若完成,對輸入操作來說CPU則則從數(shù)據(jù)寄存器中取出數(shù)據(jù),然后進從數(shù)據(jù)寄存器中取出數(shù)據(jù),然后進行下一次的輸入行下一次的輸入/輸出數(shù)據(jù)或結束。輸出數(shù)據(jù)或結束。讀讀I/O控制器狀態(tài)控制器狀態(tài)從從I/O控制器中讀一個字控制器中讀一個字取出該字存到內存取出該字存到內存?zhèn)魉屯瓿??傳送完成?下一條指令下一條指令檢查狀

13、態(tài)?檢查狀態(tài)?CPU I/OI/O CPU出錯出錯I/O CPUCPU 內存內存完成完成就緒就緒未完成未完成未就緒未就緒向向I/O控制器發(fā)讀指令控制器發(fā)讀指令 例子:程序方法控制例子:程序方法控制I/O設備讀入數(shù)據(jù)流程設備讀入數(shù)據(jù)流程- 16 -航天航天軟軟件中心件中心操作系操作系統(tǒng)統(tǒng) for 2013級級本科本科I/O系統(tǒng)發(fā)完命令后做什么系統(tǒng)發(fā)完命令后做什么?n方案方案2: 設備就緒了告訴設備就緒了告訴CPU一聲一聲!set_trap_gate(?,do?()do?() in AL, 0 x? if(AL!=ready) error(); 讀數(shù)據(jù)讀數(shù)據(jù).中斷中斷發(fā)送發(fā)送Read命令命令 Re

14、ad I/O狀態(tài)狀態(tài) 檢查檢查I/O狀態(tài)狀態(tài)從從I/O讀取數(shù)據(jù)讀取數(shù)據(jù)就緒就緒將數(shù)據(jù)寫內存將數(shù)據(jù)寫內存CPU做其它工作做其它工作I/O 中斷中斷CPU和和I/O并行并行出出錯錯處處理理中斷是大部分中斷是大部分I/O的處理方式的處理方式!- 17 -航天航天軟軟件中心件中心操作系操作系統(tǒng)統(tǒng) for 2013級級本科本科例子:中斷方法控制例子:中斷方法控制I/O設備讀入數(shù)據(jù)流程設備讀入數(shù)據(jù)流程該進程進入阻塞態(tài)該進程進入阻塞態(tài)(等待輸入完成)(等待輸入完成)該進程向該進程向I/O控制器發(fā)讀指令控制器發(fā)讀指令置中斷允許置中斷允許(在在CPU狀態(tài)字中狀態(tài)字中)處理輸入的數(shù)據(jù)處理輸入的數(shù)據(jù)發(fā)生中斷發(fā)生中斷

15、某進程(有某進程(有I/O請求)請求)其他進程其他進程進程調度進程調度執(zhí)行程序指令執(zhí)行程序指令執(zhí)行程序指令執(zhí)行程序指令執(zhí)行程序指令執(zhí)行程序指令輸入中斷服務程序輸入中斷服務程序恢復現(xiàn)場恢復現(xiàn)場喚醒請求本次喚醒請求本次I/O設備的進程設備的進程將數(shù)據(jù)寄存器中的數(shù)據(jù)傳將數(shù)據(jù)寄存器中的數(shù)據(jù)傳送到某特定內存單元中送到某特定內存單元中保護現(xiàn)場保護現(xiàn)場I/O設備執(zhí)行讀操作設備執(zhí)行讀操作當完成讀操作后,將數(shù)據(jù)放在數(shù)據(jù)當完成讀操作后,將數(shù)據(jù)放在數(shù)據(jù)寄存器中,同時寄存器中,同時I/O控制器向控制器向CPU發(fā)發(fā)出中斷信號出中斷信號I/O設備設備執(zhí)行程序指令執(zhí)行程序指令進程調度進程調度喚醒喚醒- 18 -航天航天軟軟

16、件中心件中心操作系操作系統(tǒng)統(tǒng) for 2013級級本科本科輪詢和中斷輪詢和中斷nSJA1000 CAN總線控制器:總線控制器:SJA1000 是一種I/O 設備基于內存編址的微控制nVxWorks操作系統(tǒng),強實時嵌入式操作系統(tǒng)操作系統(tǒng),強實時嵌入式操作系統(tǒng)n引導程序中使用輪詢實現(xiàn)星上軟件修復引導程序中使用輪詢實現(xiàn)星上軟件修復n應用程序中使用正常的中斷服務程序應用程序中使用正常的中斷服務程序- 19 -航天航天軟軟件中心件中心操作系操作系統(tǒng)統(tǒng) for 2013級級本科本科輪詢和中斷輪詢和中斷- 20 -航天航天軟軟件中心件中心操作系操作系統(tǒng)統(tǒng) for 2013級級本科本科輪詢和中斷輪詢和中斷nV

17、xWorks中與中斷相關的重要中與中斷相關的重要API函數(shù)函數(shù)n(1)intConnect():中斷連接,將中斷向量與:中斷連接,將中斷向量與ISR入口函數(shù)入口函數(shù)綁定綁定nSYNOPSIS STATUS intConnect ( VOIDFUNCPTR *vector,/* interrupt vector to attach to*/ VOIDFUNCPTRroutine, /* routine to be called */ intparameter /* parameter to be passed to routine */ );n中斷服務程序做什么中斷服務程序做什么?- 21 -航

18、天航天軟軟件中心件中心操作系操作系統(tǒng)統(tǒng) for 2013級級本科本科中斷在某些場合還不夠中斷在某些場合還不夠!n如果用中斷來讀磁盤如果用中斷來讀磁盤磁盤磁盤緩存緩存磁盤控制器磁盤控制器總線總線內存內存CPU中斷中斷將數(shù)據(jù)讀入內存將數(shù)據(jù)讀入內存每個字節(jié)從緩存移動內存都由每個字節(jié)從緩存移動內存都由CPU負責完成負責完成可以設計有一定處理能力的外圍設備,可以設計有一定處理能力的外圍設備,將一些簡單任務交給它將一些簡單任務交給它!發(fā)出讀請求發(fā)出讀請求- 22 -航天航天軟軟件中心件中心操作系操作系統(tǒng)統(tǒng) for 2013級級本科本科I/O系統(tǒng)發(fā)完命令后做什么系統(tǒng)發(fā)完命令后做什么?n方案方案3: 簡單任務

19、自己做,完成了告訴簡單任務自己做,完成了告訴CPU一聲一聲!引入引入DMA(直接內存存取直接內存存取)總線總線磁盤磁盤緩存緩存磁盤控制器磁盤控制器內存內存CPUDMA地址地址計數(shù)計數(shù)中斷中斷發(fā)送命令發(fā)送命令計數(shù)計數(shù)地址地址命令命令將數(shù)據(jù)讀入內存將數(shù)據(jù)讀入內存幸運的是幸運的是: 該方式的細節(jié)由該方式的細節(jié)由DMA設計者考慮,對設計者考慮,對于操作系統(tǒng)而言,于操作系統(tǒng)而言,考慮的仍然只是中斷處理考慮的仍然只是中斷處理- 23 -航天航天軟軟件中心件中心操作系操作系統(tǒng)統(tǒng) for 2013級級本科本科例子:例子:DMA方式數(shù)據(jù)輸入過程方式數(shù)據(jù)輸入過程(1)當一個進程要求設備輸入數(shù)據(jù)時,)當一個進程要求

20、設備輸入數(shù)據(jù)時,CPU對對DMA進行初始化工作:進行初始化工作:l存放數(shù)據(jù)的內存起始地址存放數(shù)據(jù)的內存起始地址 DMA控制器的內存地址寄存器;控制器的內存地址寄存器;l要輸入數(shù)據(jù)的字節(jié)數(shù)要輸入數(shù)據(jù)的字節(jié)數(shù) DMA控制器的傳送字節(jié)數(shù)寄存器;控制器的傳送字節(jié)數(shù)寄存器;l控制字控制字(中斷允許、中斷允許、DMA啟動位啟動位=1) DMA控制器的控制狀態(tài)寄存器;控制器的控制狀態(tài)寄存器;l啟動位被置啟動位被置1,則啟動,則啟動DMA控制器開始進行數(shù)據(jù)傳輸??刂破鏖_始進行數(shù)據(jù)傳輸。(2)該進程放棄)該進程放棄CPU,進入阻塞等待狀態(tài),等待第一批數(shù)據(jù)輸入完成。,進入阻塞等待狀態(tài),等待第一批數(shù)據(jù)輸入完成。 進

21、程調度程序調度其他進程運行。進程調度程序調度其他進程運行。(3)由)由DMA控制器控制整個數(shù)據(jù)的傳輸??刂破骺刂普麄€數(shù)據(jù)的傳輸。l當輸入設備將一個數(shù)據(jù)送入當輸入設備將一個數(shù)據(jù)送入DMA控制器的數(shù)據(jù)緩沖寄存器后,控制器的數(shù)據(jù)緩沖寄存器后,DMA控制器立即取代控制器立即取代CPU,接管數(shù)據(jù)地址總線的控制權(,接管數(shù)據(jù)地址總線的控制權(CPU工作周期挪工作周期挪用),將數(shù)據(jù)送至相應的內存單元;用),將數(shù)據(jù)送至相應的內存單元;lDMA控制器中的傳輸字節(jié)數(shù)寄存器計數(shù)減控制器中的傳輸字節(jié)數(shù)寄存器計數(shù)減1;l恢復恢復CPU對數(shù)據(jù)地址總線的控制權;對數(shù)據(jù)地址總線的控制權;l第(第(3)步過程循環(huán)直到數(shù)據(jù)傳輸完

22、畢。)步過程循環(huán)直到數(shù)據(jù)傳輸完畢。(4)當一批數(shù)據(jù)輸入完成,)當一批數(shù)據(jù)輸入完成,DMA控制器向控制器向CPU發(fā)出中斷信號,請求中斷運行發(fā)出中斷信號,請求中斷運行 進程并轉向執(zhí)行中斷處理程序。進程并轉向執(zhí)行中斷處理程序。(5)中斷程序首先保存被中斷進程的現(xiàn)場,喚醒等待輸入數(shù)據(jù)的那個進程,使)中斷程序首先保存被中斷進程的現(xiàn)場,喚醒等待輸入數(shù)據(jù)的那個進程,使 其變成就緒狀態(tài),恢復現(xiàn)場,返回被中斷的進程繼續(xù)執(zhí)行。其變成就緒狀態(tài),恢復現(xiàn)場,返回被中斷的進程繼續(xù)執(zhí)行。(6)當進程調度程序調度到要求輸入數(shù)據(jù)的那個進程時,該進程就到指定的內)當進程調度程序調度到要求輸入數(shù)據(jù)的那個進程時,該進程就到指定的內

23、存地址中讀取數(shù)據(jù)進行處理。存地址中讀取數(shù)據(jù)進行處理。- 24 -航天航天軟軟件中心件中心操作系操作系統(tǒng)統(tǒng) for 2013級級本科本科I/O系統(tǒng)發(fā)完命令后做什么系統(tǒng)發(fā)完命令后做什么?n方案方案4: 可以交辦復雜任務,完成后匯報可以交辦復雜任務,完成后匯報!n 通道通道具有簡單的具有簡單的CPU功能,可編程,可功能,可編程,可管理多個設備同時工作。從而管理多個設備同時工作。從而真正真正實實 現(xiàn)了現(xiàn)了CPU與外部設備的并行工作。與外部設備的并行工作。 n 引入引入通道通道(channel)方式)方式通道控制方式的工作過程:通道控制方式的工作過程:(1)當一個進程要求輸入輸出數(shù)據(jù)時,)當一個進程要求

24、輸入輸出數(shù)據(jù)時,CPU根據(jù)請求形成有關通道程序,根據(jù)請求形成有關通道程序, 然后執(zhí)行輸入輸出指令啟動通道工作;然后執(zhí)行輸入輸出指令啟動通道工作;(2)申請輸入輸出數(shù)據(jù)的進程放棄)申請輸入輸出數(shù)據(jù)的進程放棄CPU進入阻塞等待狀態(tài),等待數(shù)據(jù)輸入進入阻塞等待狀態(tài),等待數(shù)據(jù)輸入 輸出工作的完成,于是進程調度程序調度其他進程運行;輸出工作的完成,于是進程調度程序調度其他進程運行;(3)通道開始執(zhí)行)通道開始執(zhí)行CPU放在主存中的通道程序,獨立負責外設與主存的數(shù)放在主存中的通道程序,獨立負責外設與主存的數(shù) 據(jù)交換;據(jù)交換;(4)當數(shù)據(jù)交換完成后,通道向)當數(shù)據(jù)交換完成后,通道向CPU發(fā)出中斷信號,中斷正在

25、運行的進程,發(fā)出中斷信號,中斷正在運行的進程, 轉向中斷處理程序;轉向中斷處理程序;(5)中斷處理程序首先保護被中斷進程的現(xiàn)場,喚醒申請輸入輸出的那個)中斷處理程序首先保護被中斷進程的現(xiàn)場,喚醒申請輸入輸出的那個 進程,使其變?yōu)榫途w狀態(tài),關閉通道,然后恢復現(xiàn)場,返回被中斷的進程,使其變?yōu)榫途w狀態(tài),關閉通道,然后恢復現(xiàn)場,返回被中斷的 進程繼續(xù)運行;進程繼續(xù)運行;(6)當進程調度程序調度到申請輸入輸出數(shù)據(jù)的那個進程時,該進程就到)當進程調度程序調度到申請輸入輸出數(shù)據(jù)的那個進程時,該進程就到 指定的內存地址中進行數(shù)據(jù)處理。指定的內存地址中進行數(shù)據(jù)處理。- 25 -航天航天軟軟件中心件中心操作系操作

26、系統(tǒng)統(tǒng) for 2013級級本科本科l緩沖的目的:緩沖的目的:解決解決CPU和外設速度不匹配的矛盾,和外設速度不匹配的矛盾,提高提高CPU與外設之間的并行性,減少對與外設之間的并行性,減少對CPU的中的中斷頻率斷頻率l緩沖技術的實現(xiàn)方法:緩沖技術的實現(xiàn)方法:硬件緩沖、軟件緩沖硬件緩沖、軟件緩沖(1)硬件緩沖:硬件緩沖:利用專門的硬件寄存器作為緩沖利用專門的硬件寄存器作為緩沖 區(qū),一般由外設自帶的專用寄存器構成區(qū),一般由外設自帶的專用寄存器構成 例如:例如:Printer、CD-ROM等等(2)軟件緩沖:軟件緩沖:借助操作系統(tǒng)的管理,在內存中借助操作系統(tǒng)的管理,在內存中 專門開辟若干單元作為緩沖

27、區(qū)專門開辟若干單元作為緩沖區(qū)10.3 10.3 緩沖技術緩沖技術- 26 -航天航天軟軟件中心件中心操作系操作系統(tǒng)統(tǒng) for 2013級級本科本科l單緩沖,雙緩沖,環(huán)形緩沖,緩沖池單緩沖,雙緩沖,環(huán)形緩沖,緩沖池緩沖技術緩沖技術- -軟件緩沖的軟件緩沖的4 4種實現(xiàn)方法種實現(xiàn)方法1.單緩沖:單緩沖:在內存中開辟一個固定大小的區(qū)域作為緩沖區(qū)在內存中開辟一個固定大小的區(qū)域作為緩沖區(qū)l 外設和外設和CPU交換數(shù)據(jù)時,先將被交換的數(shù)據(jù)寫入緩沖交換數(shù)據(jù)時,先將被交換的數(shù)據(jù)寫入緩沖 區(qū),然后再由需要數(shù)據(jù)的區(qū),然后再由需要數(shù)據(jù)的CPU或外設從緩沖區(qū)中取出。或外設從緩沖區(qū)中取出。l 該方式中,外設與該方式中,

28、外設與CPU對緩沖區(qū)的操作是串行的。對緩沖區(qū)的操作是串行的。2.雙緩沖:雙緩沖:在內存中設置在內存中設置2個大小相同的緩沖區(qū)。個大小相同的緩沖區(qū)。l 外設和外設和CPU可以交替使用這可以交替使用這2個緩沖區(qū),從而在一定個緩沖區(qū),從而在一定 程度上實現(xiàn)并行交換數(shù)據(jù)。程度上實現(xiàn)并行交換數(shù)據(jù)。- 27 -航天航天軟軟件中心件中心操作系操作系統(tǒng)統(tǒng) for 2013級級本科本科l單緩沖,雙緩沖,環(huán)形緩沖,緩沖池單緩沖,雙緩沖,環(huán)形緩沖,緩沖池緩沖技術軟件緩沖的緩沖技術軟件緩沖的4 4種實現(xiàn)方法種實現(xiàn)方法3.環(huán)形緩沖:環(huán)形緩沖:在內存中設置大小相等的多個緩沖區(qū),并將在內存中設置大小相等的多個緩沖區(qū),并將它

29、們鏈接稱為一個環(huán)形鏈表。它們鏈接稱為一個環(huán)形鏈表。HeadFullEmptyn Head一直指向緩沖區(qū)鏈表的第一個緩沖區(qū);一直指向緩沖區(qū)鏈表的第一個緩沖區(qū);n Full一直指向緩沖區(qū)鏈表中的第一個存滿數(shù)據(jù)的緩沖區(qū);一直指向緩沖區(qū)鏈表中的第一個存滿數(shù)據(jù)的緩沖區(qū);n Empty一直指向緩沖區(qū)鏈表中的第一個空白的緩沖區(qū)。一直指向緩沖區(qū)鏈表中的第一個空白的緩沖區(qū)。n 初始化時:初始化時:Head=Full=Empty,整個緩沖區(qū)鏈表為空;,整個緩沖區(qū)鏈表為空;n 使用過程中:當使用過程中:當Full=Empty 整個緩沖區(qū)鏈表為空。整個緩沖區(qū)鏈表為空。- 28 -航天航天軟軟件中心件中心操作系操作系統(tǒng)

30、統(tǒng) for 2013級級本科本科l單緩沖,雙緩沖,環(huán)形緩沖,緩沖池單緩沖,雙緩沖,環(huán)形緩沖,緩沖池緩沖技術軟件緩沖的緩沖技術軟件緩沖的4 4種實現(xiàn)方法種實現(xiàn)方法4.緩沖池緩沖池: 緩沖池是有多個大小相同的緩沖區(qū)組成緩沖池是有多個大小相同的緩沖區(qū)組成l 池中的緩沖區(qū)是系統(tǒng)公共資源,所有進程均可以共享池中的緩沖區(qū)是系統(tǒng)公共資源,所有進程均可以共享l 池由系統(tǒng)管理程序統(tǒng)一管理,負責分配、回收工作池由系統(tǒng)管理程序統(tǒng)一管理,負責分配、回收工作l 池中每個緩沖區(qū)既可以用于輸入數(shù)據(jù),也可以用以輸出數(shù)據(jù)池中每個緩沖區(qū)既可以用于輸入數(shù)據(jù),也可以用以輸出數(shù)據(jù)提取輸出提取輸出輸入設備輸入設備緩沖池的工作流程緩沖池的

31、工作流程輸出設備輸出設備SoutHoutinCPU緩沖池緩沖池收容輸入收容輸入收容輸出收容輸出提取輸入提取輸入空緩沖隊列空緩沖隊列輸入緩沖隊列輸入緩沖隊列輸出緩沖隊列輸出緩沖隊列SinHin緩沖區(qū)號緩沖區(qū)號設備號設備號設備上的數(shù)據(jù)塊號設備上的數(shù)據(jù)塊號互斥標識位互斥標識位隊列指針隊列指針數(shù)據(jù)區(qū)數(shù)據(jù)區(qū)緩沖區(qū)數(shù)據(jù)結構緩沖區(qū)數(shù)據(jù)結構- 29 -航天航天軟軟件中心件中心操作系操作系統(tǒng)統(tǒng) for 2013級級本科本科l單緩沖,雙緩沖,環(huán)形緩沖,單緩沖,雙緩沖,環(huán)形緩沖,緩沖池緩沖池緩沖技術軟件緩沖的緩沖技術軟件緩沖的4 4種實現(xiàn)方法種實現(xiàn)方法緩沖池的工作流程緩沖池的工作流程提取輸出提取輸出輸入設備輸入設備

32、輸出設備輸出設備SoutHoutCPU緩沖池緩沖池收容輸入收容輸入收容輸出收容輸出提取輸入提取輸入空緩沖隊列空緩沖隊列輸入緩沖隊列輸入緩沖隊列輸出緩沖隊列輸出緩沖隊列SinHin緩沖區(qū)號緩沖區(qū)號設備號設備號設備上的數(shù)據(jù)塊號設備上的數(shù)據(jù)塊號互斥標識位互斥標識位隊列指針隊列指針數(shù)據(jù)區(qū)數(shù)據(jù)區(qū)緩沖區(qū)數(shù)據(jù)結構緩沖區(qū)數(shù)據(jù)結構- 30 -航天航天軟軟件中心件中心操作系操作系統(tǒng)統(tǒng) for 2013級級本科本科l單緩沖,雙緩沖,環(huán)形緩沖,單緩沖,雙緩沖,環(huán)形緩沖,緩沖池緩沖池緩沖技術軟件緩沖的緩沖技術軟件緩沖的4 4種實現(xiàn)方法種實現(xiàn)方法緩沖池的工作流程:緩沖池的工作流程:(1)當輸入設備需要進行數(shù)據(jù)輸入時,則從

33、空緩沖隊列的隊首)當輸入設備需要進行數(shù)據(jù)輸入時,則從空緩沖隊列的隊首取下一個空緩沖區(qū),將它作為收容輸入工作緩沖區(qū),當它被輸取下一個空緩沖區(qū),將它作為收容輸入工作緩沖區(qū),當它被輸入裝滿數(shù)據(jù)后,則被鏈接到輸入緩沖隊列的隊尾;入裝滿數(shù)據(jù)后,則被鏈接到輸入緩沖隊列的隊尾;(2)當某進程需要從緩沖池輸入數(shù)據(jù)時,則從輸入緩沖隊列的)當某進程需要從緩沖池輸入數(shù)據(jù)時,則從輸入緩沖隊列的隊首取一個緩沖區(qū)作為提取輸入工作緩沖區(qū),該進程從中提取隊首取一個緩沖區(qū)作為提取輸入工作緩沖區(qū),該進程從中提取數(shù)據(jù),取完后,則將該緩沖區(qū)鏈接到空緩沖區(qū)隊列的隊尾;數(shù)據(jù),取完后,則將該緩沖區(qū)鏈接到空緩沖區(qū)隊列的隊尾;(3)當某進程需

34、要輸出數(shù)據(jù)到緩沖池時,則從空緩沖隊列的隊)當某進程需要輸出數(shù)據(jù)到緩沖池時,則從空緩沖隊列的隊首取下一個空緩沖區(qū),將它作為收容輸出工作緩沖區(qū),該進程首取下一個空緩沖區(qū),將它作為收容輸出工作緩沖區(qū),該進程向該緩沖區(qū)中存放數(shù)據(jù),當它被裝滿數(shù)據(jù)后,則被鏈接到輸出向該緩沖區(qū)中存放數(shù)據(jù),當它被裝滿數(shù)據(jù)后,則被鏈接到輸出緩沖隊列的隊尾;緩沖隊列的隊尾;(4)當輸出設備需要進行數(shù)據(jù)輸出時,則從輸出緩沖隊列的隊)當輸出設備需要進行數(shù)據(jù)輸出時,則從輸出緩沖隊列的隊首取一個緩沖區(qū)作為提取輸出工作緩沖區(qū),并從中提取數(shù)據(jù)輸首取一個緩沖區(qū)作為提取輸出工作緩沖區(qū),并從中提取數(shù)據(jù)輸出,取完后,則將該緩沖區(qū)鏈接到空緩沖區(qū)隊列的隊尾。出,取完后,則將該緩沖區(qū)鏈接到空緩沖區(qū)隊列的隊尾。- 31 -航天航天軟軟件中心件中心操作系操作系統(tǒng)統(tǒng) for 2013級級本科本科lSPOOL Simultaneous Peripheral Operation On Line外部設備同時聯(lián)機操作,又稱假脫機操作。外部設備同時聯(lián)機操作,又稱假脫機操作。lSPOOL是操作系統(tǒng)中采用的一項將獨占設備改造成是操作系統(tǒng)中采

溫馨提示

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

評論

0/150

提交評論