块设备驱动程序

块设备是一种能随机访问的存储介质,与字符设备不同,块设备能够保存文件系统数据。

linux块IO层

存储介质包含了驻留于文件系统中的文件,用户应用程序唤醒IO系统调用来访问这些文件,相关文件系统操作在到达各自文件系统驱动程序前,会先经过通用VFS(virtual file system)虚拟文件系统,高速缓冲区通过缓冲磁盘块来加速文件系统对块设备的访问。如果能够再高速缓冲区中找到块,就可以通过访问磁盘读取块的时间。每个块设备指定的数据在请求队列中排队。文件系统驱程序将请求加入指定块设备的请求队列,同时块驱动程序从相应的队列中取出请求。在这期间,IO调度器操控请求队列,是硬盘访问延时最小,同时吞吐量最大。

用户空间

 文件io


内核空间

VFS层


单个文件系统(EXT3,EXT4,JFFS2,VFAT)


缓冲区高速缓存(页面缓存)


IO调度

‘块驱动程序


存储媒介

磁盘


gendisk    include/linux/genhd.h   代表一个磁盘


bio include/linux/bio.h 块IO操作的底层描述


内核编程


register_blkdev() block/genhd.c 向内核注册一个块驱动程序

unregister_blkdev() block/genhd.c  从内核注销一个块驱动程序

rq_for_each_bio() include/linux/blkdev.h     遍历每个请求的bio

end_request() block/ll_rw_blk.c  结束一个请求

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值