![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
内核之块设备IO
文章平均质量分 81
uestc-leon
我想做一个强者
展开
-
普通文件的读流程分析
关于VFS的通用读,我们不做考虑,本文以如下函数为根,往下分析:[cpp] view plain copydo_generic_mapping_read(*ppos,*mapping,*desc) 本函数的目的是,从磁盘读数据到用户态,先是从*ppos开始的页,一直读到*ppos+desc->count 为止转载 2017-07-11 09:46:57 · 279 阅读 · 0 评论 -
从用户空间开始进行对文件的读过程
读:读取一个文件的时候,陷入系统调用,先检查数据是否在缓存中,如果没有则触发一次读盘操作,然后等待磁盘上的数据被更新到缓存中。 读取磁盘过程:调用文件系统层的readpages函数,使用各种文件系统层的get_block函数获取磁盘物理地址,存放到bh里(即buffer_head),使用bh构造bio,然后提交bio(一般使用submit_bio函数将数据bio提交到io的块设备层)。函数gener转载 2017-07-17 14:39:24 · 433 阅读 · 0 评论 -
磁盘I/O那些事
背景计算机硬件性能在过去十年间的发展普遍遵循摩尔定律,通用计算机的CPU主频早已超过3GHz,内存也进入了普及DDR4的时代。然而传统硬盘虽然在存储容量上增长迅速,但是在读写性能上并无明显提升,同时SSD硬盘价格高昂,不能在短时间内完全替代传统硬盘。传统磁盘的I/O读写速度成为了计算机系统性能提高的瓶颈,制约了计算机整体性能的发展。硬盘性能的制约因素是什么?如何根据磁盘I/O特性来转载 2017-11-02 22:33:50 · 8621 阅读 · 0 评论