2014-04-18 设备管理之块设备框架
来源:互联网 发布:快递员取件抢单软件 编辑:程序博客网 时间:2024/06/07 18:11
块设备是一种能随机访问的存储介质。与字符设备不同,块设备能保存文件系统数据。
(1)IDE是PC机的常见存储接口,ATA是其规范,ATA5最大支持66MB/s;SCSI是服务器和高端工作站站选用的一种存储技术,比SATA速度快,支持320MB/s;RAID可实现冗余性和可靠性,定义了各种级别;然而在嵌入式领域,存储器比上述的技术的速度慢的多,如SD卡;
(2)块设备对I/O请求有对应的缓冲区,可以选择以什么顺序进行响应(调整顺序对块设备的读写效率很重要,只针对机械上的原因,因此SD卡和RamDisk不存在调整的必要),可被随机读写;而字符设备无缓冲区且被直接读写,只能被顺序读写。通过register_blk_dev和unregister_blk_dev来注册和注销,注意不是注册磁盘。
(3)gendisk表示一个独立的磁盘设备(或分区),包括磁盘的主设备号,含有block_device_operations指针即对块设备操作的集合(支持open,ioctl,mend-changed等函数);含有request_queue指针管理设备的I/O请求队列的指针;private_data指向自身的私有数据;disk_part_tbl表示分区表,part0是其子项,capacity表示相应扇区大小时的扇区数;通过alloc_disk,add_disk,del_gendisk来分配,添加,释放。用request表示正在等待的I/O请求,包括尚未完成的第一个扇区hard_sector,未完成的数hard_nr_sectors,当前待完成的扇区数hard_cur-sectors。分别都有副本备份;bio指针是请求中包含的bio的链表,通过_rq_for_each_bio来遍历获取;buffer指针存储传送的数据;可支持DMA映射,rq_data_dir来获得request的数据传送方向;
(4)request_queue跟踪块的request,存储用于的这个设备能够支持的请求的类型信息,硬件扇区大小,对齐,最大大小,包含一个插入接口,可用于选择调度器(电梯,FIFO,CFQ等),通过blk_init_queue,blk_cleanup_queue,elv_next_request等初始化,清除,提取下一个请求。
(5)用bio对应上层传递给块设备层的I/O请求;I/O调度算法可将连续的bio请求合并成一个request(经过bio合并过调整过的结果);核心是一个bio_vec,不应直接访问,通过bio_for_each_segment()来遍历真个bio的每一个段。
- 2014-04-18 设备管理之块设备框架
- 2014-04-14 设备管理之闪存技术设备框架
- 2014-04-19 设备管理之设备模型
- 2014-04-08 设备管理之I2C框架
- 2014-04-20 设备管理之网络设备驱动框架
- 块设备驱动程序分析之框架构建
- 块设备驱动程序分析之框架构建
- linux驱动之块设备驱动框架
- Linux设备驱动--块设备 之概念和框架
- 块设备驱动程序框架
- .块设备驱动程序框架
- 块设备驱动程序之nandflash——基本框架
- 块设备驱动程序之nandflash——基本框架
- 块设备(一)之概念和框架
- 嵌入式linux之块设备驱动程序概念,框架
- .Linux-块设备驱动之框架详细分析(详解)
- 块设备之三
- 块设备的驱动程序框架
- 关于学习C++和编程的50个观点
- expdp impdp中 exclude/include 的使用
- csdn第一天
- 教你快速入门Excel-宏与VBA(续)
- android 多渠道打包
- 2014-04-18 设备管理之块设备框架
- 蒙特卡罗模拟圆周率
- Tomcat 图片服务器的配置
- solr管理工具-- analysis
- WeiKuCMS 打造小微信大商场
- C++内存管理秘籍
- 查询历史使用过的命令并使用(history)
- 浅谈GC调优
- 《美国队长》为什么这么火