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