为什么读写文件要有缓冲区?为什么要有输入输出缓冲区?
有輸入輸出緩沖區(qū)用以暫時(shí)存放讀寫期間的文件數(shù)據(jù)而在內(nèi)存區(qū)預(yù)留的一定空間。即利用主存的存儲(chǔ)空間來(lái)暫存從磁盤中輸入輸出的信息。目的是緩和CPU 與 I/O 設(shè)備間速度不匹配的矛盾。減少對(duì) CPU 的中斷頻率,放寬對(duì) CPU 中斷響應(yīng)時(shí)間的限制。提高 CPU和 I/O 設(shè)備之間的并行性。
擴(kuò)展資料:
輸入輸出緩沖區(qū)通過(guò)磁盤緩存來(lái)實(shí)現(xiàn),磁盤緩存本身并不是一種實(shí)際存在的存儲(chǔ)介質(zhì),它依托于固定磁盤,提供對(duì)主存儲(chǔ)器存儲(chǔ)空間的擴(kuò)充。 主存可以看作是輔存的高速緩存, 因?yàn)檩o存中的數(shù)據(jù)必須復(fù)制到主存方能使用;反之,數(shù)據(jù)也必須先存在主存中,才能最終輸出到輔存。
當(dāng)輸入與輸出或生產(chǎn)者與消費(fèi)者的速度基本相匹配時(shí),采用雙緩沖能獲得較好的效果,可使生產(chǎn)者和消費(fèi)者基本上能并行操作。
如果要一次輸入或輸出多個(gè)字節(jié),系統(tǒng)不一定能直接接受,緩沖區(qū)可以把多個(gè)字節(jié)先放在他里面,然后系統(tǒng)到里面去讀取數(shù)據(jù).你輸入或輸出的速度比系統(tǒng)讀取速度快,緩沖區(qū)起到緩解速度不匹配的問(wèn)題
數(shù)據(jù)緩沖這個(gè)東西,就是因?yàn)閿?shù)據(jù)被輸入后在處理的時(shí)候需要一定的時(shí)間,為了輸入接著輸出,零時(shí)差,就需要緩沖了,先預(yù)讀并處理一部分信息,然后開始輸出,在輸出的同時(shí)進(jìn)行后面的輸入和處理,然后等緩沖的部分輸出完后,另一部分的數(shù)據(jù)也處理完畢了,就可以接著輸出了。根據(jù)處理速度的不同,需要的緩沖區(qū)大小也是不同的。
倘若沒(méi)有這個(gè)緩沖,那么就會(huì)很卡了,斷斷續(xù)續(xù)的數(shù)據(jù)流,因?yàn)樘幚聿煌辍?br /> 實(shí)際上緩存、內(nèi)存、顯存都是這種東西。
參考文章:為什么要有輸入輸出緩沖區(qū)?
總結(jié)
以上是生活随笔為你收集整理的为什么读写文件要有缓冲区?为什么要有输入输出缓冲区?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: VS报错 <error-type> 此声
- 下一篇: C语言sprintf函数(发送格式化输出