《計算機操作系統 》課件-5.4緩沖管理_第1頁
《計算機操作系統 》課件-5.4緩沖管理_第2頁
《計算機操作系統 》課件-5.4緩沖管理_第3頁
《計算機操作系統 》課件-5.4緩沖管理_第4頁
《計算機操作系統 》課件-5.4緩沖管理_第5頁
已閱讀5頁,還剩18頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

5.4緩沖管理

緩沖的引入緩沖的實現機制5.4緩沖管理

一.緩沖的引入(2)提高CPU和I/O設備之間的并行性。(3)減少對CPU的中斷頻率,放寬對CPU中斷響應時間的限制。緩沖是在兩種不同速度的設備之間傳輸信息時平滑傳輸過程的常用手段(1)緩和CPU與I/O設備間速度不匹配的矛盾。cpu設備緩沖1位緩沖100Kb/s8位緩沖寄存器送內存100Kb/s(b)(a)例:在一個遠程通信系統中,在本地接收從遠程終端發來的數據,速率為100kb/s。送內存CPU中斷頻率:100K;CPU響應時間:10us;CPU中斷頻率:12.5K;CPU響應時間:10us;●

兩個8位緩沖寄存器100Kb/s送內存(c)CPU中斷頻率:12.5K;CPU響應時間:80us;送內存●

二.緩沖實現機制1.單緩沖(SingleBuffer)系統對一塊數據的處理時間:Max(C,T)+M

5.4緩沖管理

2.雙緩沖(DoubleBuffer)

系統對一塊數據的處理時間:Max(C+M,T)

T

M

C5.4緩沖管理

二.緩沖實現機制3.循環緩沖5.4緩沖管理

二.緩沖實現機制

2341n…765outincurrent滿緩沖區空緩沖區4.緩沖池(BufferPool)(1)緩沖池的組成①緩沖隊列

由內存中一組緩沖區組成,由系統統一管理。

輸入隊列inq;輸出隊列outq。

空緩沖區:空緩沖隊列emq;

裝滿輸入數據的緩沖區:

裝滿輸出數據的緩沖區:5.4緩沖管理

4.緩沖池(BufferPool)(1)緩沖池的組成②工作緩沖區

進程正在使用的緩沖區收容輸入工作緩沖區提取輸入工作緩沖區收容輸出工作緩沖區提取輸出工作緩沖區5.4緩沖管理

(2)緩沖池的使用:

①Getbuf(type):

申請一個緩沖區;

Putbuf(type,number):

釋放一個緩沖區;信號量設置:資源信號量:表示某類緩沖隊列中緩沖區的數量:

RS(emq)=n;RS(inq)=0;RS(outq)=0;互斥信號量:實現相應緩沖隊列的互斥使用:

MS(emq)=MS(inq)=MS(outq)=1;4.緩沖池(BufferPool)voidGet_buf(type){wait(Rs(type));wait(mutex(type));B(number)=takebuf(type);signal(mutex(type));}(2)緩沖池的使用:4.緩沖池(BufferPool)2.緩沖池的使用:

voidPut_buf(type,number){wait(mutex(type));add_buf(type,number);signal(mutex(type));signal(Rs(type));}4.緩沖池(BufferPool)(3)緩沖池的工作方式

輸入隊列

空緩沖隊列

輸出隊列Getbuf(emq)收容輸入Putbuf(inq)Putbuf(outq)Getbuf(emq)Getbuf(inq)Putbuf(emq)Getbuf(outq)Putbuf(emq)提取輸入收容輸出提取輸出4.緩沖池(BufferPool)5.4緩沖管理

205.UNIX系統的緩沖區管理(塊緩沖)(1)UNIX系統緩沖管理的思路減少對磁盤的I/O操作次數,加快系統響應。預先緩存:當進程要從磁盤讀數據時,首先從高速緩沖中讀延遲發送:當進程要寫數據到磁盤時,先寫入高速緩沖中高速緩沖

用戶數據區用戶進程磁盤高速緩沖

用戶數據區用戶進程磁盤21(2)緩沖管理數據結構①

緩沖區的組成

ⅰ緩存數組

——含有磁盤上的數據的存儲器數組

ⅱ緩存首部

——描述緩沖區特性的數據結構5.4緩沖管理

5.UNIX系統的緩沖區管理(塊緩沖)22

②緩存首部結構設備號dev塊號blkno狀態flag指向數據區域的指針字節數返回的I/O出錯信息b_forw

設備緩沖區隊列前向指針b_back

設備緩沖區隊列后向指針av_forw

空閑緩沖區隊列前向指針av_back

空閑緩沖區隊列后向指針

ⅰ設備號dev緩沖區所包含的信息所屬設備的設備號

ⅱ塊號blkno由設備號指出的設備上相對于第0塊的塊號

ⅲ狀態flag——描述了緩沖區當前的狀態忙標志BUSY:緩沖區當前正“忙”有效位AVE:緩沖包含的數據有效延遲寫DELWR:核心在某緩沖區重新分配出去之前必須把緩沖區內容寫到磁盤上寫標志WRITE:核心當前正把緩沖區的內容寫到磁盤讀標志READ:核心當前正從磁盤往緩沖區寫信息等待位

WAIT:一個進程當前正在等候緩沖區變為空閑(2)緩沖管理數據結構23③緩沖區隊列結構

ⅰ設備緩沖區隊列與某類設備有關的所有緩沖區組成的隊列稱為設備緩沖區隊列,簡稱b鏈。5.UNIX系統的緩沖區管理(2)緩沖管理數據結構b_forwb_backb_forwb_backb_forwb_backb_forwb_back設備緩沖區隊列

245.UNIX系統的緩沖區管理③緩沖區隊列結構

ⅱ空閑緩沖區隊列可供重新分配使用的緩沖區組成的隊列稱為空閑緩沖區隊列,簡稱av鏈。

(2)緩沖管理數據結構av_forwav_backav_forwav_backav_forwav_backav_forwav_back空閑緩沖區隊列

26分配一個buf讀/寫某設備上的塊:①首先尋找該設備的b鏈,若找到:1)B_BUSY=0:移出av鏈,B_BUSY=1;使用完后,B_BUSY=0,鏈入av鏈隊尾。2)B_BUSY=1:緩沖區不在av鏈上,該進程睡眠②若b鏈中找不到:取av鏈(空閑buf隊列)的首元素:1)若無延遲寫標記,直接分配,插入b鏈,B_BUSY=1;用完后,鏈入av鏈隊尾,B_BUSY=02)若有延遲寫標記:分配下一個空閑緩沖區,然后同1)(3)UNIX緩沖管理算法:LRU算法5.UNIX系統的緩沖區管理27對延遲寫的處理當一個具有延遲寫標記的buf移到av鏈頭,要用于分配時,立即進行寫操作:從av鏈上摘除,使用完后又送入av頭部,同時仍保留在原b鏈中釋放一個緩沖區:

緩沖區讀寫操作結束后,保留在b鏈,并插入av鏈尾。(3)UNIX緩沖管理算法5.UNIX系統的緩沖區管理思考題:1、引入緩沖的主要目的是()。A.提高CPU的利用率B.提高I/O設備的利用率C.改善CPU與I/O設備速度不匹配的問題D.節省內存2、為了使并發進程能有效地進行輸入和輸出,最好采用()結構的緩沖技術。緩沖池B.循環緩沖C.單緩沖D.雙緩沖3、緩沖技術中的緩沖區設置在()。A.主存B.外存C.ROMD.寄存器思考題:3、設從磁盤將一塊數據傳送到緩沖區所用時間為80us,將緩沖區中的數據傳送到用戶區所用時間為40us,CPU處理一塊數據所用時間為30us。如果有多塊數據要處理,并采用單緩沖區機制,則處理一塊數據所用的總時間是多少?解答:單緩沖中,設備與處理機對緩沖的操作是串行的,當進行第i次讀磁盤數據至緩沖區時,系統在同時處理第i-1次讀入的數據,即兩項工作是并行的,所以處理一塊數據的總時間為:=MAX(80us,30us)+40us=120us小組討論:4、某文件占10個磁盤塊,現要把該文件磁盤塊依次讀入主存緩沖區,并送至用戶區進行處理,假設一個緩沖區與一個磁盤塊大小相同,把一個磁盤塊讀入緩沖區的時間為100us,將緩沖區的數據傳送到用戶區的時間為50us,CPU對一塊數據的處理時間為50us,在單緩沖區和雙緩沖區機制下,讀入并處理完成

溫馨提示

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

評論

0/150

提交評論