linux内核设计与实现读书笔记——IO层

  IO层设备分为两种

1)块设备:能够随机访问固定大小的数据片,以安装文件系统的方式使用

2)字符设备:按照字符流的方式被有序访问。

块设备的管理:

1)单位

文件块/IO块:扇区的2的整数倍,小于页面大小,访问文件系统的单位。

缓冲区:每个缓冲区与一个块对应,是磁盘块在内存中的表示;

缓冲区头:缓冲区的描述符,用buffer_head结构体描述,定义在<linux/buffer_head.h>

bio结构体:块操作的基本容器,定义在<linux/bio.h>中,代表正在现场的以片段(连续的内存缓冲区)链表形式组织的块IO操作。

每个块IO请求通过一个bio结构体表示,一个活多个块存储在bio_vec结构体数组中。 

2)请求队列

块设备将快请求保存在请求队列中,reques_queue结构体定义在<linux/blkdev.h>中,内核将请求加入队列,相应的块设备驱动程序从队列头获取请求。

request:队列中的每个请求,可由多个bio结构体组成。

3)IO调度程序

工作室管理块设备的请求队列,通过合并和排序等将磁盘IO资源分配给系统中所有挂起的块IO请求。

linus电梯调度程序(早期)

最终期限IO调度程序

预测IO调度程序

完全公正的排队IO调度程序(缺省)

空操作IO调度程序


reference:

http://www.360doc.com/content/12/0201/22/2459_183505470.shtml

http://www.cnblogs.com/liugf05/archive/2012/06/18/2553998.html



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值