爲了緩和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