文件I/O的内存缓冲技术

前言

应用缓冲技术对提高系统的效率是很明显的,它的主要思想是一次读入大量的数据然后放入缓冲区,进程需要的时候从缓冲区取得数据。
管理员模式和用户模式之间的切换需要消耗时间,相比之下,磁盘的I/O操作消耗的时间更多,为了提高效率,内核也使用缓冲技术来提高对磁盘的访问速度。

内存缓冲技术原理

  1. 内核将磁盘上的数据块复制到内核缓冲中,当一个用户空间中的进程要从磁盘上读数据时,内核一般不直接读磁盘,而是将内核缓冲区中的数据复制到进程的缓冲区中。
  2. 当进程所要求的数据块不在内核缓冲区时,内核会把相应的数据块加人到请求数据列表中,然后把该进程挂起,接着为其他进程服务。
    一段时间之后(很短),内核把相应的数据块从磁盘读到内核缓冲区,然后再把数据复制到进程的缓冲区中,最后唤醒被挂起的进程。
  3. 理解内核缓冲技术的原理有助于更好地掌握系统调用read和write, read把数据从内核缓冲区复制到进程缓冲区.write把数据从进程缓冲区复制到内核缓冲区,它们并不等价于数据在内核缓冲和磁盘之间的交换。
    从理论上讲,内核可以在任何时候写磁盘,但并不是所有的write操作都会导致内核的写动作。内核会把要写的数据暂时存在缓冲区中,积累到一定数量后再一次性写入。有时会导致意外情况,比如突然断电,内核还来不及把内核缓冲区中的数据写到磁盘上,这些更新的数据就会丢失。
    内核文件I/O示意图
    应用内核缓冲技术导致的结果:
  4. 提高磁盘1/O效率
  5. 优化磁盘的写操作
  6. 需要及时地将缓冲数据写人磁盘
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值