linux对块设备的请求处理

linux对块设备请求的处理是一种层次体系结构,可以分为5层:

1.vfs:这层对所有文件系统的一种封装

2.mapping layer:这层用来定位数据的物理位置

这个操作分为2步:

a.首先确定包含文件的文件系统的block size,然后计算请求的数据包含多少file block。

b.调用跟文件系统有关的函数来访问文件的inode,确定请求的数据在磁盘上的逻辑块地址,事实上

   磁盘被看成由一个一个的block组成,所以kernel需要确定请求数据的起始块号

这层跟下层的区别在于这层看不到sector结构,只看到block结构

3.generic block layer:

这层有个核心的数据结构bio,它代表一次i/o操作,读取连续的磁盘扇区,如果请求的数据不是连续的,那么

需要发送多个bio结构,也就是多次i/o操作。这层将block转到对应的sector。

4.i/o scheduler layer:

这层负责将i/o操作进行排序,采用某种算法来高效地处理操作,下面的博客i/o scheduler将进行详细阐述

5.block device driver:

这层实现真正的数据传输,通过发送命令给磁盘控制器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值