关于磁盘缓存与磁盘缓冲区的理解与延伸

本文深入探讨了磁盘缓存和磁盘缓冲区的概念,解释了它们在操作系统中的作用,以及如何提高数据读写效率。通过学习,读者将能够理解这两个概念的差异和重要性。

前言

前两天的腾讯电话面试,问到一个问题,文件写入磁盘的过程是怎样的?当时的回答是:用系统调用函数write文件内容到内核缓存中,后台有个守护进程会周期性的将缓存持久化到磁盘中。然后面试官问了一个问题:磁盘中有没有缓存?磁盘中有没有缓存呢?

磁盘缓存与磁盘缓冲区

查了一些资料,终于搞明白了。
磁盘缓存,又称磁盘快取,实际上就是将下载到的数据先保存于系统为软件分配的内存空间中(这个内存空间被称之为“内存池”),当保存到内存池中的数据达到一个程度时,便将数据保存到硬盘中。这样可以减少实际的磁盘操作,有效的保护磁盘免于重复的读写操作而导致的损坏。
磁盘缓冲区,磁盘的缓冲区是硬盘与外部总线交换数据的场所。硬盘的读数据的过程是将磁信号转化为电信号后,通过缓冲区一次次地填充与清空,再填充,再清空,一步步按照PCI总线的周期送出,可见,缓冲区的作用是相当重要的。它的作用也是提高性能,但是它与缓存的不同之处在于:一、它是容量固定的硬件,而不像缓存是可以由操作系统在内存中动态分配的。二、它对性能的影响大大超过磁盘缓存对性能的影响,因为如果没有缓冲区,就会要求每传一个字(通常是4字节)就需要读一次磁盘或写一次磁盘。
总而言之,磁盘缓存是属于内存的,而磁盘缓冲区是硬盘与PCI总线之间的容量固定的硬件。

延伸

CPU缓存即Cache是为了解决CPU主频与内存运行速度相差太大的问题。标准IO中的缓存是在用户态动态分配的内存。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值