计算机基础实战课
彭东
网名 LMOS,Intel 傲腾项目关键开发者
19719 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 57 讲
计算机基础实战课
15
15
1.0x
00:00/00:00
登录|注册

31|外设通信:IO Cache与IO调度

你好,我是 LMOS。
从这节课开始,我们进入 IO 相关基础知识的学习,想要开发高性能的应用程序,这些基础知识必不可少。
前面的课程里,我们已经对进程和内存有了一定了解。进程在运行时刻和 CPU 是紧密相关的,抽象出进程就是为了提高 CPU 的利用率。因此,我们关注进程和内存,等同于关注 CPU 和 RAM。
一个计算机系统,无论是 PC,还是手机,除了有 CPU 和 RAM,还有各种外设,如键鼠、硬盘、显卡、以太网卡、声卡等各种 USB 扩展设备。
这些设备独立在 CPU 和内存之外,统称为外设。但是,外设通信的速度、大小、数据类型和传输方式各不相同,所以为了实现系统的整体效率最大化,操作系统实现了 IO Cache 和 IO 调度。今天我们就来研究它们。

IO Cache

顾名思义,Cache 即为缓存,IO 是指令外设传输(IN/OUT)数据的操作。
缓存是怎么回事我们都知道,由此我们就可以这样理解 IO Cache:把外设的 IO 操作的数据保存起来,当重新执行 IO 操作时,先从之前保存的地方开始查找,若找到需要的数据,即为命中,这时就不要去操作外设了;若没有命中就去操作外设。其中的数据,会根据 IO 操作频率进行组织,把操作最频繁的内容放在最容易找到的位置,达到性能最优化。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入介绍了外设通信中的IO Cache和IO调度的基础知识。首先,文章解释了IO Cache的概念,即将外设的IO操作数据保存起来,以提高系统整体效率。在Linux系统中,IO Cache包括Buffer Cache和Page Cache,用于缓存IO设备的读写数据。接着,文章详细描述了Linux内核中的IO操作过程,包括经过文件系统层、块层和设备层的逻辑层次,以及IO操作的具体流程。最后,文章介绍了IO调度的过程,包括pdflush线程的作用、块层的IO调度器对bio进行合并和排序,以及设备驱动程序处理IO请求队列的过程。通过本文的阐述,读者可以快速了解外设通信中IO Cache和IO调度的基本原理和作用,有助于理解和开发高性能的应用程序。文章还重点讨论了三种IO调度算法,分别是Noop、CFQ、Deadline,其中综合性能最好的是Deadline。文章还对硬盘结构和不同场景下的IO调度器选择进行了深入讨论,为读者提供了全面的技术知识。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《计算机基础实战课》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(7)

  • 最新
  • 精选
  • ryohei
    牛逼 这节课,很多之前不清楚的概念 弄明白了

    作者回复: 哈哈 有帮助就好

    2022-10-13归属地:湖北
    3
  • 顾琪瑶
    很多不明白的点, 都在这个课程中解答了, 真的牛逼. 想问下这些资料都是从哪获取的呢

    作者回复: 没有系统的资料 看linux代码

    2022-10-14归属地:湖北
    2
  • 苏流郁宓
    文件系统有ntfs和ext4,很多游戏软件只支持ntfs格式,由于磁盘运行效率远低于cpu,好的算法文件系统可以提高磁盘的利用效率(包括跳过磁片中的坏点) io cache是必须的,就好比如把d盘的文件a剪切到c盘中,观察可以得知,假如传输过程中故意关机等,再次开机文件a还在d盘。预计cpu是传输完再删除,这样尽可能的减少磁盘碎片(特别的减少不能被系统识别的碎片冗余存在),io cache也方便操作系统部分情况下延迟应对硬件需求!

    作者回复: 是 的

    2022-10-12归属地:湖北
    2
  • VMNode
    图是 page cache 建立在 buffer cache 上,文稿写反了吧……

    编辑回复: 问过老师了,你可能理解反了,你再结合课程内容想想看~

    2023-02-01归属地:广东
  • 后视镜
    想问下,mmap 文件的话,是否经过pagecache啊,没搞清楚mmap和pagecache的关系,希望得到老师的指点。

    作者回复: 会经过pagecache

    2022-11-07归属地:湖北
  • 浩仔是程序员
    一直有个疑问,如果一个写操作,写到cache,还没写到磁盘,断电了,上层应用能感知吗?

    作者回复: 不能

    2022-10-26归属地:湖北
  • 青玉白露
    固态硬盘的出现大大降低了io的耗时

    作者回复: 是的 正确

    2022-10-16归属地:湖北
收起评论
显示
设置
留言
7
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部