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