为什么读写文件要有缓冲区?为什么要有输入输出缓冲区?

Posted Dontla

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么读写文件要有缓冲区?为什么要有输入输出缓冲区?相关的知识,希望对你有一定的参考价值。

有输入输出缓冲区用以暂时存放读写期间的文件数据而在内存区预留的一定空间。即利用主存的存储空间来暂存从磁盘中输入输出的信息。目的是缓和CPU 与 I/O 设备间速度不匹配的矛盾。减少对 CPU 的中断频率,放宽对 CPU 中断响应时间的限制。提高 CPU和 I/O 设备之间的并行性。


扩展资料:

输入输出缓冲区通过磁盘缓存来实现,磁盘缓存本身并不是一种实际存在的存储介质,它依托于固定磁盘,提供对主存储器存储空间的扩充。 主存可以看作是辅存的高速缓存, 因为辅存中的数据必须复制到主存方能使用;反之,数据也必须先存在主存中,才能最终输出到辅存。

当输入与输出或生产者与消费者的速度基本相匹配时,采用双缓冲能获得较好的效果,可使生产者和消费者基本上能并行操作。

如果要一次输入或输出多个字节,系统不一定能直接接受,缓冲区可以把多个字节先放在他里面,然后系统到里面去读取数据.你输入或输出的速度比系统读取速度快,缓冲区起到缓解速度不匹配的问题


数据缓冲这个东西,就是因为数据被输入后在处理的时候需要一定的时间,为了输入接着输出,零时差,就需要缓冲了,先预读并处理一部分信息,然后开始输出,在输出的同时进行后面的输入和处理,然后等缓冲的部分输出完后,另一部分的数据也处理完毕了,就可以接着输出了。根据处理速度的不同,需要的缓冲区大小也是不同的。
倘若没有这个缓冲,那么就会很卡了,断断续续的数据流,因为处理不完。
实际上缓存、内存、显存都是这种东西。

参考文章:为什么要有输入输出缓冲区?

以上是关于为什么读写文件要有缓冲区?为什么要有输入输出缓冲区?的主要内容,如果未能解决你的问题,请参考以下文章

缓冲区

什么是虚拟设备技术?

C语言重点篇:近万字总结文件操作函数

复制文件

关于header('location:url')的一些说明,php缓冲区

关于header('location:url')的一些说明,php缓冲区