缓冲管理
為了緩和CPU與I/O設(shè)備速度不匹配的矛盾,提高它們之間的并行性,在現(xiàn)代計(jì)算機(jī)系統(tǒng)中,幾乎所有的I/O設(shè)備在與CPU交換數(shù)據(jù)時(shí),都用了緩沖區(qū)。緩沖管理的主要職責(zé)是組織好這些緩沖區(qū),并向進(jìn)程提供獲得和釋放緩沖區(qū)的手段。
緩沖機(jī)制的作用:1)緩和CPU和I/O設(shè)備間速度不匹配的矛盾 2)減少對(duì)CPU 的中斷頻率 3)提高CPU和I/O設(shè)備的并行性
可以通過(guò)下面這個(gè)例子分析緩沖區(qū)對(duì)CPU中斷頻率和響應(yīng)時(shí)間的影響。
例子:在一個(gè)遠(yuǎn)程通信系統(tǒng)中,在本地接收從遠(yuǎn)程終端發(fā)來(lái)的數(shù)據(jù),速率為100kb/s。
1)對(duì)于一位緩沖
CPU中斷頻率為100kb/1b=100k,CPU響應(yīng)時(shí)間為10us。
2)對(duì)于一個(gè)8緩沖區(qū)
設(shè)備可以等到8位緩沖區(qū)填充完后再向CPU發(fā)出中斷,所以CPU中斷頻率為100kb/8b=12.5k
當(dāng)緩沖區(qū)填滿時(shí),不能再接受下一位的輸入,所以CPU的響應(yīng)時(shí)間必須是1b/100kb=10us。
3)對(duì)于兩個(gè)8位緩沖區(qū)
設(shè)備可以等到1號(hào)8位緩沖區(qū)填充完后再向CPU發(fā)出中斷,所以CPU中斷頻率為100kb/8b=12.5k
當(dāng)1號(hào)8位緩沖區(qū)填滿時(shí),可以將本區(qū)內(nèi)容傳遞至2號(hào)緩沖區(qū)進(jìn)行送內(nèi)存操作,而1號(hào)緩沖區(qū)繼續(xù)接受下8位數(shù)據(jù),所以CPU的響應(yīng)時(shí)間必須是8b/100kb=80us。
緩沖的實(shí)現(xiàn)機(jī)制:
按照系統(tǒng)中設(shè)置的緩沖區(qū)個(gè)數(shù)及對(duì)緩沖區(qū)的組織方式,緩沖區(qū)的實(shí)現(xiàn)機(jī)制分為單緩沖、雙緩沖、循環(huán)緩沖、緩沖池機(jī)制。
1)單緩沖
在塊設(shè)備輸入數(shù)據(jù)的過(guò)程中,首先把磁盤(pán)數(shù)據(jù)送到緩沖區(qū),花費(fèi)的時(shí)間為T(mén)s,(簡(jiǎn)記為T(mén)s過(guò)程)
???????????????????????????????????????????????????然后把操作系統(tǒng)緩沖區(qū)的數(shù)據(jù)送到用戶區(qū),花費(fèi)的時(shí)間為T(mén)m,(簡(jiǎn)記為T(mén)m過(guò)程)
???????????????????????????????????????????????????最后用戶進(jìn)程對(duì)這批數(shù)據(jù)進(jìn)行計(jì)算,花費(fèi)的時(shí)間為T(mén)c。(簡(jiǎn)記為T(mén)c過(guò)程)
當(dāng)Tc過(guò)程與Tm過(guò)程操作同一塊緩沖區(qū)時(shí),這兩個(gè)操作不能并行(讀寫(xiě)鎖),Ts過(guò)程和Tm一直都不能并行
單緩沖的情況如下:
當(dāng)Ts>Tc,(上圖)主要是Tm與Ts不能并行,因此總時(shí)間T=(n*(Ts+Tm)+Tc)/n=Ts+Tm
當(dāng)Ts<Tc,(上圖)主要是Tm與Tc不能并行,因此總時(shí)間T=(n*(Tc+Tm)+Ts)/n=Tc+Tm
綜上,單緩沖下總時(shí)間T=max(Ts+Tc)+Tm
2)
雙緩沖條件下,Ts過(guò)程與Tm過(guò)程可以并行,Tm過(guò)程與Tc過(guò)程不能并行
當(dāng)Ts>Tc時(shí),(上圖)由于Tm<<Tc且Tm<<Ts,所以T=(n*Ts+Tm+Tc)/n=Ts=max(Tc,Ts)
當(dāng)Ts<Tc時(shí),Tm與Tc不能并行,T=(n*(Tm+Tc)+Ts)/n=Tm+Tc=max(Tc,Ts)+Tm,但Ts<Tc這種情況非常少,所以一般做題時(shí)填雙緩沖的時(shí)間都填Ts>Tc情況下的max(Tc,Ts)
綜上,雙緩沖時(shí)間為max(Tc,Ts)
3)循環(huán)緩沖
相比雙緩沖區(qū),增加了緩沖區(qū)的數(shù)量。對(duì)于多緩沖區(qū),將它們組織成循環(huán)緩沖的形式。
4)緩沖池
為了提高緩沖區(qū)的利用率,目前廣泛采用公用緩沖池機(jī)制。在緩沖池中設(shè)置多個(gè)緩沖區(qū),可供若干個(gè)進(jìn)程共享。
參考博客:https://blog.csdn.net/a649339266/article/details/77836813
總結(jié)
- 上一篇: iOS 开发:彻底理解 iOS 内存管理
- 下一篇: diary_mna_2016