緩衝管理

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章