linux – CPU如何从磁盘读取?
发布时间:2020-12-13 23:22:47 所属栏目:Linux 来源:网络整理
导读:我对IO的整个想法有点困惑,我想知道CPU如何从磁盘读取(例如SATA磁盘)? 当带有read()/ write()的程序符合对特定文件的引用时,当CPU遇到此引用时,它是否直接从磁盘读取(通过内存映射的IO端口)?或者写入RAM然后写回磁盘? 解决方法 我建议阅读: http://www.m
我对IO的整个想法有点困惑,我想知道CPU如何从磁盘读取(例如SATA磁盘)?
当带有read()/ write()的程序符合对特定文件的引用时,当CPU遇到此引用时,它是否直接从磁盘读取(通过内存映射的IO端口)?或者写入RAM然后写回磁盘? 解决方法
我建议阅读:
http://www.makelinux.net/books/ulk3/understandlk-CHP-13-SECT-1 补充: http://en.wikipedia.org/wiki/Direct_memory_access 关于RAM中的缓冲:大多数编程语言和操作系统至少将I / O操作(读和写)的一部分缓冲到存储器中.这通常是异步完成的:即创建,填充和处理缓冲区.对于读取,CPU将(使用磁盘控制器)创建IO指令以获取数据和将其放入内存的位置,填充该空间,然后将其内容呈现给发出请求的程序.对于写入请求,这将是对写入操作及其相关数据进行排队,然后将它们发送到IO控制器并最终将磁盘执行.缓冲可能发生在多个地方:CPU的缓存,RAM,(有时)磁盘控制器或硬盘本身.完成了多少缓冲,以及我提到的抽象操作序列是如何处理的,取决于您的硬件架构,操作系统和任务. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |