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