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

下載本文檔

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

文檔簡介

緩沖管理在兩種不同速度的設(shè)備之間傳輸信息時(shí)平滑傳輸過程的手段高速設(shè)備低速設(shè)備緩沖5.4緩沖管理1、分析說明引入緩沖的目的2、緩沖的實(shí)現(xiàn)機(jī)制:

(1)分析說明單緩沖的概念及工作過程

(2)分析說明雙緩沖的概念及工作過程

(3)分析說明循環(huán)緩沖的概念及工作過程

(4)緩沖池:緩沖池的概念、緩沖池的組成緩沖池的使用:同步互斥問題get_buff()、put_buff()緩沖池的工作方式(講解)緩沖池舉例:Unix的塊緩沖池(講解)5.4緩沖管理(2)提高CPU和I/O設(shè)備之間的并行性。(3)減少對(duì)CPU的中斷頻率,放寬對(duì)CPU中斷響應(yīng)時(shí)間的限制。(1)緩和CPU與I/O設(shè)備間速度不匹配的矛盾。cpu設(shè)備緩沖引入緩沖管理的目的有哪些呢?5.4緩沖管理拓展:緩沖的類型全緩沖行緩沖無緩沖1位緩沖100Kb/s8位緩沖寄存器送內(nèi)存100Kb/s(b)(a)例:在一個(gè)遠(yuǎn)程通信系統(tǒng)中,在本地接收從遠(yuǎn)程終端發(fā)來的數(shù)據(jù),速率為100kb/s。送內(nèi)存CPU中斷頻率:100K;CPU響應(yīng)時(shí)間:10us;CPU中斷頻率:12.5K;CPU響應(yīng)時(shí)間:10us;●

1位數(shù)據(jù)到達(dá)需要多少時(shí)間?每1位數(shù)據(jù)到達(dá)約10微秒兩個(gè)8位緩沖寄存器100Kb/s送內(nèi)存(c)CPU中斷頻率:12.5K;CPU響應(yīng)時(shí)間:80us;送內(nèi)存●

5.4緩沖管理思考題:1、高速緩存與緩沖區(qū)的區(qū)別?區(qū)別高速緩存緩沖存放數(shù)據(jù)存放的是低速設(shè)備上某些數(shù)據(jù)的拷貝,即高速緩存上的數(shù)據(jù)低速設(shè)備上一定有存放的是低速設(shè)備上傳輸給高速設(shè)備的數(shù)據(jù)(或者相反),這些數(shù)據(jù)在低速設(shè)備(或高速設(shè)備)上不一定有目的存放的是高速設(shè)備經(jīng)常要訪問的數(shù)據(jù),如果高速設(shè)備要訪問的數(shù)據(jù)不在高速緩存中,則需要訪問低速設(shè)備緩和高速設(shè)備與低速設(shè)備之間速度不匹配的矛盾,提高兩者的并行性哪個(gè)小組來分析一下?二.緩沖實(shí)現(xiàn)機(jī)制1.單緩沖(SingleBuffer)系統(tǒng)對(duì)一塊數(shù)據(jù)的處理時(shí)間:5.4緩沖管理

Max(C,T)+MT、M、C三個(gè)時(shí)間之間的串行與并行關(guān)系是怎樣的?2.雙緩沖(DoubleBuffer)

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

M

C5.4緩沖管理

二.緩沖實(shí)現(xiàn)機(jī)制Max(C+M,T)T、M、C三個(gè)時(shí)間之間的串行與并行關(guān)系是怎樣的?設(shè)從磁盤將一塊數(shù)據(jù)傳送到緩沖區(qū)所用時(shí)間為80us,將緩沖區(qū)中的數(shù)據(jù)傳送到用戶區(qū)所用時(shí)間為40us,CPU處理一塊數(shù)據(jù)所用時(shí)間為30us。如果有多塊數(shù)據(jù)要處理,則下面結(jié)果正確的是()。采用單緩沖區(qū)機(jī)制,處理一塊數(shù)據(jù)所用的總時(shí)間是120us采用單緩沖區(qū)機(jī)制,處理一塊數(shù)據(jù)所用的總時(shí)間是80us采用雙緩沖區(qū)機(jī)制,處理一塊數(shù)據(jù)所用的總時(shí)間是120us采用雙緩沖區(qū)機(jī)制,處理一塊數(shù)據(jù)所用的總時(shí)間是80usABCD提交多選題10分解題思路:1、設(shè)從磁盤將一塊數(shù)據(jù)傳送到緩沖區(qū)所用時(shí)間為80us,將緩沖區(qū)中的數(shù)據(jù)傳送到用戶區(qū)所用時(shí)間為40us,CPU處理一塊數(shù)據(jù)所用時(shí)間為30us。如果有多塊數(shù)據(jù)要處理,并采用單緩沖區(qū)機(jī)制,則處理一塊數(shù)據(jù)所用的總時(shí)間是多少?如果是雙緩沖呢?5.4緩沖管理解答:單緩沖中,設(shè)備與處理機(jī)對(duì)緩沖的操作是串行的,當(dāng)進(jìn)行第i次讀磁盤數(shù)據(jù)至緩沖區(qū)時(shí),系統(tǒng)在同時(shí)處理第i-1次讀入的數(shù)據(jù),即兩項(xiàng)工作是并行的,所以處理一塊數(shù)據(jù)的總時(shí)間為:=MAX(80us,30us)+40us=120us雙緩沖:對(duì)一塊數(shù)據(jù)的處理時(shí)間是max((C+M),T)=max((30+40),80)=80大家算一下,結(jié)果是多少?發(fā)彈幕3.循環(huán)緩沖5.4緩沖管理

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

2341n…765outin滿緩沖區(qū)空緩沖區(qū)要特別注意的一個(gè)問題是什么?同步互斥應(yīng)如何解決?4.緩沖池(BufferPool)(1)緩沖池的組成①緩沖隊(duì)列

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

空緩沖區(qū):空緩沖隊(duì)列emq;裝滿輸入數(shù)據(jù)的緩沖區(qū):裝滿輸出數(shù)據(jù)的緩沖區(qū):5.4緩沖管理有哪幾種緩沖隊(duì)列?4.緩沖池(BufferPool)(1)緩沖池的組成②工作緩沖區(qū)

進(jìn)程正在使用的緩沖區(qū)收容輸入工作緩沖區(qū)提取輸入工作緩沖區(qū)收容輸出工作緩沖區(qū)提取輸出工作緩沖區(qū)5.4緩沖管理有哪幾種工作緩沖區(qū)?這幾種工作緩沖區(qū)的含義?(2)緩沖池的使用:

①Getbuf(type):

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

Putbuf(type,number):

釋放一個(gè)緩沖區(qū);信號(hào)量設(shè)置:資源信號(hào)量:表示某類緩沖隊(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)為實(shí)現(xiàn)互斥同步,需要設(shè)置哪些信號(hào)量?voidGet_buf(type){wait(Rs(type));wait(mutex(type));B(number)=takebuf(type);signal(mutex(type));}(2)緩沖池的使用:4.緩沖池(BufferPool)type代表:empq,inq,outq哪個(gè)小組來解釋下這段偽代碼?voidPut_buf(type,number){wait(mutex(type));add_buf(type,number);signal(mutex(type));signal(Rs(type));}Number表示緩沖區(qū)編號(hào)哪個(gè)小組來解釋下這段偽代碼?(2)緩沖池的使用:4.緩沖池(BufferPool)(3)緩沖池的工作方式

輸入隊(duì)列

空緩沖隊(duì)列

輸出隊(duì)列Getbuf(emq)收容輸入Putbuf(inq)Putbuf(outq)Getbuf(emq)Getbuf(inq)Putbuf(emq)Getbuf(outq)Putbuf(emq)提取輸入收容輸出提取輸出4.緩沖池(BufferPool)哪個(gè)小組來分析下緩沖池四種工作方式的大致工作過程?(1)UNIX系統(tǒng)緩沖管理的思路目標(biāo):盡量減少對(duì)磁盤的I/O操作次數(shù),加快系統(tǒng)響應(yīng)。預(yù)先緩存:當(dāng)進(jìn)程要從磁盤讀數(shù)據(jù)時(shí),首先從高速緩沖中讀延遲發(fā)送:當(dāng)進(jìn)程要寫數(shù)據(jù)到磁盤時(shí),先寫入高速緩沖中高速緩沖

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

用戶數(shù)據(jù)區(qū)用戶進(jìn)程磁盤5.UNIX系統(tǒng)的緩沖區(qū)管理(塊緩沖)(2)緩沖管理數(shù)據(jù)結(jié)構(gòu)①

緩沖區(qū)的組成

ⅰ緩存數(shù)組

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

ⅱ緩存首部

——描述緩沖區(qū)特性的數(shù)據(jù)結(jié)構(gòu)5.UNIX系統(tǒng)的緩沖區(qū)管理(塊緩沖)

②緩存首部結(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)、塊號(hào)說明緩存信息對(duì)應(yīng)的磁盤上的塊狀態(tài)flag——描述了緩沖區(qū)當(dāng)前的狀態(tài)忙標(biāo)志BUSY:緩沖區(qū)當(dāng)前正“忙”延遲寫DELWR:還未真正寫到磁盤上寫標(biāo)志W(wǎng)RITE:正把緩沖區(qū)的內(nèi)容寫到磁盤讀標(biāo)志READ:正從磁盤往緩沖區(qū)讀信息等待位

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

ⅰ設(shè)備緩沖區(qū)隊(duì)列:散列隊(duì)列(設(shè)備號(hào)、塊號(hào)):簡稱b鏈5.UNIX系統(tǒng)的緩沖區(qū)管理(2)緩沖管理數(shù)據(jù)結(jié)構(gòu)b_forwb_backb_forwb_backb_forwb_backb_forwb_back設(shè)備緩沖區(qū)隊(duì)列

③緩沖區(qū)隊(duì)列結(jié)構(gòu)

ⅱ空閑緩沖區(qū)隊(duì)列:簡稱av鏈。

av_forwav_backav_forwav_backav_forwav_backav_forwav_back空閑緩沖區(qū)隊(duì)列

空閑緩沖區(qū)與空緩沖區(qū)一樣嗎?5.UNIX系統(tǒng)的緩沖區(qū)管理(2)緩沖管理數(shù)據(jù)結(jié)構(gòu)③緩沖區(qū)隊(duì)列結(jié)構(gòu)

緩沖區(qū)

設(shè)備緩沖區(qū)隊(duì)列

空閑緩沖區(qū)隊(duì)列存放著某個(gè)設(shè)備的數(shù)據(jù)沒有正在被進(jìn)程使用

B_BUSY=05.UNIX系統(tǒng)的緩沖區(qū)管理(2)緩沖管理數(shù)據(jù)結(jié)構(gòu)是否有可能一個(gè)緩沖區(qū)同時(shí)位于兩個(gè)緩沖隊(duì)列中?分配一個(gè)buf讀/寫某設(shè)備上的塊使用設(shè)備號(hào)、塊號(hào)查找設(shè)備緩沖隊(duì)列b鏈:(3)UNIX緩沖管理算法:LRU算法5.UNIX系統(tǒng)的緩沖區(qū)管理找到B_BUSY=0B_BUSY=1分配一個(gè)buf讀/寫某設(shè)備上的塊

若找不到,去空閑緩沖隊(duì)列鏈?zhǔn)自兀?)UNIX緩沖管理算法:LRU算法5.UNIX系統(tǒng)的緩沖區(qū)管理緩沖區(qū)無延遲寫標(biāo)記緩沖區(qū)有延遲寫標(biāo)記對(duì)延遲寫的處理(3)UNIX緩沖管理算法5.UNIX系統(tǒng)的緩沖區(qū)管理移出空閑緩沖隊(duì)列寫入磁盤插入空閑緩沖隊(duì)列隊(duì)首保留在原設(shè)備緩沖隊(duì)列中釋放緩沖區(qū)緩沖區(qū)讀寫操作結(jié)束插入空閑緩沖隊(duì)列隊(duì)尾保留在原設(shè)備緩沖隊(duì)列中某文件占10個(gè)磁盤塊,現(xiàn)要把該文件磁盤塊依次讀入主存緩沖區(qū),并送至用戶區(qū)進(jìn)行處理,假設(shè)一個(gè)緩沖區(qū)與一個(gè)磁盤塊大小相同,把一個(gè)磁盤塊讀入緩沖區(qū)的時(shí)間為100us,將緩沖區(qū)的數(shù)據(jù)傳送到用戶區(qū)的時(shí)間為50us,CPU對(duì)一塊數(shù)據(jù)的處理時(shí)間為50us,在單緩沖區(qū)機(jī)制下,讀入并處理完成該文件的時(shí)間是()us。150015505001600ABCD提交單選題10分解題思路:某文件占10個(gè)磁盤塊,現(xiàn)要把該文件磁盤塊依次讀入主存緩沖區(qū),并送至用戶區(qū)進(jìn)行處理,假設(shè)一個(gè)緩沖區(qū)與一個(gè)磁盤塊大小相同,把一個(gè)磁盤塊讀入緩沖區(qū)的時(shí)間為100us,將緩沖區(qū)的數(shù)據(jù)傳送到用戶區(qū)的時(shí)間為50us,CPU對(duì)一塊數(shù)據(jù)的處理時(shí)間為50us,在單緩沖區(qū)和雙緩沖區(qū)機(jī)制下,讀入并處理完成該文件的時(shí)間分別是多少?單緩沖:每塊數(shù)據(jù)處理完成需要150us,第10塊最后還需要處理50us:

總時(shí)間=150us*10+50=1550us某文件占10個(gè)磁盤塊,現(xiàn)要把該文件磁盤塊依次讀入主存緩沖區(qū),并送至用戶區(qū)進(jìn)行處理,假設(shè)一個(gè)緩沖區(qū)與一個(gè)磁盤塊大小相同,把一個(gè)磁盤塊讀入緩沖區(qū)的時(shí)間為100us,將緩沖區(qū)的數(shù)據(jù)傳送到用戶區(qū)的時(shí)間為50us,CPU對(duì)一塊數(shù)據(jù)的處理時(shí)間為50us,在雙緩沖區(qū)機(jī)制下,讀入并處理完成該文件的時(shí)間是()us。1000110012001500ABCD提交單選題10分每一塊所花時(shí)間100us:從緩沖到用戶區(qū)50us,處理50us:=100us*10=1000us

最后

溫馨提示

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

評(píng)論

0/150

提交評(píng)論