《計(jì)算機(jī)操作系統(tǒng) 》課件-5.4緩沖管理_第1頁(yè)
《計(jì)算機(jī)操作系統(tǒng) 》課件-5.4緩沖管理_第2頁(yè)
《計(jì)算機(jī)操作系統(tǒng) 》課件-5.4緩沖管理_第3頁(yè)
《計(jì)算機(jī)操作系統(tǒng) 》課件-5.4緩沖管理_第4頁(yè)
《計(jì)算機(jī)操作系統(tǒng) 》課件-5.4緩沖管理_第5頁(yè)
已閱讀5頁(yè),還剩18頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

5.4緩沖管理

緩沖的引入緩沖的實(shí)現(xiàn)機(jī)制5.4緩沖管理

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

兩個(gè)8位緩沖寄存器100Kb/s送內(nèi)存(c)CPU中斷頻率:12.5K;CPU響應(yīng)時(shí)間:80us;送內(nèi)存●

二.緩沖實(shí)現(xiàn)機(jī)制1.單緩沖(SingleBuffer)系統(tǒng)對(duì)一塊數(shù)據(jù)的處理時(shí)間:Max(C,T)+M

5.4緩沖管理

2.雙緩沖(DoubleBuffer)

系統(tǒng)對(duì)一塊數(shù)據(jù)的處理時(shí)間:Max(C+M,T)

T

M

C5.4緩沖管理

二.緩沖實(shí)現(xiàn)機(jī)制3.循環(huán)緩沖5.4緩沖管理

二.緩沖實(shí)現(xiàn)機(jī)制

2341n…765outincurrent滿(mǎn)緩沖區(qū)空緩沖區(qū)4.緩沖池(BufferPool)(1)緩沖池的組成①緩沖隊(duì)列

由內(nèi)存中一組緩沖區(qū)組成,由系統(tǒng)統(tǒng)一管理。

輸入隊(duì)列inq;輸出隊(duì)列outq。

空緩沖區(qū):空緩沖隊(duì)列emq;

裝滿(mǎn)輸入數(shù)據(jù)的緩沖區(qū):

裝滿(mǎn)輸出數(shù)據(jù)的緩沖區(qū):5.4緩沖管理

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

進(jìn)程正在使用的緩沖區(qū)收容輸入工作緩沖區(qū)提取輸入工作緩沖區(qū)收容輸出工作緩沖區(qū)提取輸出工作緩沖區(qū)5.4緩沖管理

(2)緩沖池的使用:

①Getbuf(type):

申請(qǐng)一個(gè)緩沖區(qū);

Putbuf(type,number):

釋放一個(gè)緩沖區(qū);信號(hào)量設(shè)置:資源信號(hào)量:表示某類(lèi)緩沖隊(duì)列中緩沖區(qū)的數(shù)量:

RS(emq)=n;RS(inq)=0;RS(outq)=0;互斥信號(hào)量:實(shí)現(xiàn)相應(yīng)緩沖隊(duì)列的互斥使用:

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)緩沖池的工作方式

輸入隊(duì)列

空緩沖隊(duì)列

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

205.UNIX系統(tǒng)的緩沖區(qū)管理(塊緩沖)(1)UNIX系統(tǒng)緩沖管理的思路減少對(duì)磁盤(pán)的I/O操作次數(shù),加快系統(tǒng)響應(yīng)。預(yù)先緩存:當(dāng)進(jìn)程要從磁盤(pán)讀數(shù)據(jù)時(shí),首先從高速緩沖中讀延遲發(fā)送:當(dāng)進(jìn)程要寫(xiě)數(shù)據(jù)到磁盤(pán)時(shí),先寫(xiě)入高速緩沖中高速緩沖

用戶(hù)數(shù)據(jù)區(qū)用戶(hù)進(jìn)程磁盤(pán)高速緩沖

用戶(hù)數(shù)據(jù)區(qū)用戶(hù)進(jìn)程磁盤(pán)21(2)緩沖管理數(shù)據(jù)結(jié)構(gòu)①

緩沖區(qū)的組成

ⅰ緩存數(shù)組

——含有磁盤(pán)上的數(shù)據(jù)的存儲(chǔ)器數(shù)組

ⅱ緩存首部

——描述緩沖區(qū)特性的數(shù)據(jù)結(jié)構(gòu)5.4緩沖管理

5.UNIX系統(tǒng)的緩沖區(qū)管理(塊緩沖)22

②緩存首部結(jié)構(gòu)設(shè)備號(hào)dev塊號(hào)blkno狀態(tài)flag指向數(shù)據(jù)區(qū)域的指針字節(jié)數(shù)返回的I/O出錯(cuò)信息b_forw

設(shè)備緩沖區(qū)隊(duì)列前向指針b_back

設(shè)備緩沖區(qū)隊(duì)列后向指針av_forw

空閑緩沖區(qū)隊(duì)列前向指針av_back

空閑緩沖區(qū)隊(duì)列后向指針

ⅰ設(shè)備號(hào)dev緩沖區(qū)所包含的信息所屬設(shè)備的設(shè)備號(hào)

ⅱ塊號(hào)blkno由設(shè)備號(hào)指出的設(shè)備上相對(duì)于第0塊的塊號(hào)

ⅲ狀態(tài)flag——描述了緩沖區(qū)當(dāng)前的狀態(tài)忙標(biāo)志BUSY:緩沖區(qū)當(dāng)前正“忙”有效位AVE:緩沖包含的數(shù)據(jù)有效延遲寫(xiě)DELWR:核心在某緩沖區(qū)重新分配出去之前必須把緩沖區(qū)內(nèi)容寫(xiě)到磁盤(pán)上寫(xiě)標(biāo)志W(wǎng)RITE:核心當(dāng)前正把緩沖區(qū)的內(nèi)容寫(xiě)到磁盤(pán)讀標(biāo)志READ:核心當(dāng)前正從磁盤(pán)往緩沖區(qū)寫(xiě)信息等待位

WAIT:一個(gè)進(jìn)程當(dāng)前正在等候緩沖區(qū)變?yōu)榭臻e(2)緩沖管理數(shù)據(jù)結(jié)構(gòu)23③緩沖區(qū)隊(duì)列結(jié)構(gòu)

ⅰ設(shè)備緩沖區(qū)隊(duì)列與某類(lèi)設(shè)備有關(guān)的所有緩沖區(qū)組成的隊(duì)列稱(chēng)為設(shè)備緩沖區(qū)隊(duì)列,簡(jiǎn)稱(chēng)b鏈。5.UNIX系統(tǒng)的緩沖區(qū)管理(2)緩沖管理數(shù)據(jù)結(jié)構(gòu)b_forwb_backb_forwb_backb_forwb_backb_forwb_back設(shè)備緩沖區(qū)隊(duì)列

245.UNIX系統(tǒng)的緩沖區(qū)管理③緩沖區(qū)隊(duì)列結(jié)構(gòu)

ⅱ空閑緩沖區(qū)隊(duì)列可供重新分配使用的緩沖區(qū)組成的隊(duì)列稱(chēng)為空閑緩沖區(qū)隊(duì)列,簡(jiǎn)稱(chēng)av鏈。

(2)緩沖管理數(shù)據(jù)結(jié)構(gòu)av_forwav_backav_forwav_backav_forwav_backav_forwav_back空閑緩沖區(qū)隊(duì)列

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

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

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論