单缓冲、双缓冲、循环缓冲
緩沖區管理
什么是緩沖區?有什么作用?
緩沖區是一個存儲區域,可以由專門的硬件寄存器組成,也可以利用內存作為緩沖區。
使用硬件作為緩沖區的成本較高,容量也較小,一般僅用在對速度非常高的場合(存儲器管理寄存器,有對頁表訪問的頻率較高,因此使用速度很快的聯想寄存器 來存放頁表項的副本)
一般情況下更多的是使用內存作為緩沖區,“設備獨立性軟件”的緩沖區就是要組織管理好這些緩沖區。
緩沖區的作用
單緩沖
什么是單緩沖:
假設某用戶進程請求某塊設備讀入若干塊數據。若采用單緩沖的策略,操作系統會在主存中為其分配一個緩沖區。
當緩沖區不為空時不能往里面放入數據,只有緩沖區為空才能放入數據,但是一次放入的數據必須充滿整個緩沖塊,才能從緩沖區把數據傳出。
結論:采用單緩沖策略,處理一塊數據平均耗時MAX(C,T)+M。其中C是CPU處理工作區的時間,T是從IO到緩沖區的時間,M是緩沖區的數據存到工作區的時間。
雙緩沖
若采用雙緩沖策略,操作系統會在主存中為其分配兩個緩沖區。
采用雙緩沖策略,處理一個數據塊的平均耗時是Max(T, C+M).
使用單緩沖/雙緩沖在通信時的區別
單緩沖
雙緩沖。若是雙緩沖通信,則同一時刻可以實現雙向的數據傳輸。
管道通信中的管道就是緩沖區。要想實現雙向通信必須設置兩個管道。
循環緩沖區
將大小相等的緩沖區連接成一個循環隊列。循環隊列中有兩種緩沖區,一種是沒有數據的空閑緩沖區,一種是由數據的滿緩沖區。又有兩個指針分別指向空緩沖區和滿緩沖區。
緩沖池
緩沖池有系統中共用的緩沖區組成。這些緩沖區按照使用狀況可以分為:空緩沖隊列、裝滿輸入數據的緩沖隊列、裝滿輸出數據的緩沖隊列。
根據一個緩沖區在實際運算中扮演的功能不同,又設置了四種工作緩沖區:用于收容輸入數據的工作緩沖區(hin)、用于提取輸入數據的工作緩沖區(sin)、用于收容輸出數據的工作緩沖區(hout)、用于提取輸出數據的工作緩沖區(sout)。
總結
以上是生活随笔為你收集整理的单缓冲、双缓冲、循环缓冲的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电子血压计方案提供模块芯片开发服务
- 下一篇: 心理测评系统软件使用问题二