icon-cookie
The website uses cookies to optimize your user experience. Using this website grants us the permission to collect certain information essential to the provision of our services to you, but you may change the cookie settings within your browser any time you wish. Learn more
I agree
blank_error__heading
blank_error__body
Text direction?

浅谈Linux内核IO体系之磁盘IO - 知乎

Measure
Measure
Related Notes
Get a free MyMarkup account to save this article and view it later on any device.
Create account

End User License Agreement

Summary | 23 Annotations
通用块层以及之后的的IO都必须是块大小对齐的
2020/09/02 07:15
内核确定该文件所在文件系统或者块设备的块大小,并根据文件大小计算所请求数据的长度以及所在的逻辑块号
2020/09/02 07:15
映射层
2020/09/02 07:13
Linux内核为每一个块设备维护了一个IO队列
2020/09/02 06:32
mmap直接把PageCache映射到用户态,少了一次系统调用,也少了一次数据在用户态和内核态的拷贝。
2020/09/02 05:18
如果inode类型为块设备文件的话
2020/09/02 04:44
如果inode类型为普通文件的话
2020/09/02 04:44
每个磁盘都建立一个线程,负责每个磁盘的刷盘
2020/09/02 04:36
xfs_file_aio_read函数,对应于块设备文件就是blkdev_aio_read函数
2020/09/02 04:33
异步IO
2020/09/02 03:46
内核提供的通用函数上
2020/09/01 15:23
XFS
2020/09/01 15:22
read、write系统调用实际上是对vfs_read、vfs_write的一个封装
2020/09/01 15:21
fd_array
2020/09/01 15:20
用户程序能接触的VFS对象只有file,由进程管理。我们常用的打开一个文件就是创建一个file对象,并返回一个文件描述符
2020/09/01 15:19
VFS把所有的dentry放在dentry_hashtable哈希表里面,使用LRU淘汰算法
2020/09/01 15:19
目录项,由于每一个文件必定存在于某个目录内,我们通过路径查找一个文件时,最终肯定找到某个目录项
2020/09/01 15:19
文件的元数据,比如大小、最后修改时间、权限等
2020/09/01 15:18
整个文件系统的元信息
2020/09/01 15:18
IO调度层
2020/09/01 15:16
通用块层
2020/09/01 15:16
映射层
2020/09/01 15:16
固定大小的连续Page,通常为4K
2020/09/02 09:41