• 《精通linux设备驱动程序开发》 第14章块驱动程序 学习笔记


    主要内容:

    • 存储技术
    • LinuxI/O
    • I/O调度器
    • 块驱动程序数据结构和方法

    1. 存储技术

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

    IDE/ATAPC的存储接口技术,ATA-7支持133MB/s的速率;ATAPICD-ROM和磁带等存储设备,用ATAPI协议连接标准IDE电缆;SATAIDE/ATA的串行演进,支持超过300MB/s的传输速率;SCSI服务器环境中流行的存储技术,Ultra320 SCSI支持320MB/sUSB大容量存储技术,是指USB硬盘、笔驱动器、CD-ROM以及软盘驱动器。

    2.LinuxI/O

    LinuxI/O层的工作,如下图所示,存储介质包含了文件系统的文件,用户应用程序唤醒I/O系统调用来访问这些文件,先经过通用VFS层,高速缓冲区通过磁盘块来加速文件系统对块设备的访问。在这期间,I/O调度器操控请求队列,是磁盘访问延时最小,同时使吞吐量最大。

    3.I/O调度器

    I/O调度器的主要目标是通过尽量少减少寻道时间来增加系统的吞吐量。为此,I/O调度器维持一个排序过的请求队列,排序是将请求按相关磁盘扇区连续性进行排列。

    4. 块驱动程序数据结构和方法

    (1)内核用include/linux/genhd.h中定义的gendisk结构体表示一个磁盘

    struct gendisk {
    	int major;
    	int first_minor;
    	int minors;
    	
    	char disk_name[32];
    	struct block_device_operations *fops;
    	struct request_queue *queue;
    };

    (2)与每个块驱动程序相关的I/O请求队列用request_queue结构体描述,该结构体定义在include/linux/blkdev.h中。

    (3)每个request_queue队列中的请求用request结构体描述,该结构体定义在include/linux/blkdev.h中。

    (4)Block_device_operation是与file_operation结构体对应的块驱动程序结构体。

    stay hungry, stay foolish
  • 相关阅读:
    顶尖操盘手买入规则
    一个网友在评论见义勇为时候应该注意事项
    20111215 白糖空头控盘下的多头陷阱(与魂灵共舞)
    近期au黄金市场的探讨(2011年12月27日)
    ASP.NET MVC 中,手动移除已注册到容器的规则方法
    VS2010功能——任务列表
    关于SQL排序,父条件对应子条件排序
    确保每一步的业务代码都能够正确执行。
    C#程序代码中常用的快捷键
    cmd 下创建新文件(不是文件夹)
  • 原文地址:https://www.cnblogs.com/zygote/p/13946317.html
Copyright © 2020-2023  润新知