您现在的位置: 精品资料网 >> 行业分类 >> IT行业 >> 资料信息

块设备驱动程序介绍(doc 15页)

所属分类:
IT行业
文件大小:
411 KB
下载地址:
相关资料:
驱动程序,程序介绍
块设备驱动程序介绍(doc 15页)内容简介
块设备驱动程序介绍内容提要:
Linux0.11内核包含3个块设备的驱动:ramdisk,硬盘,软盘。
首先需要注意的块设备的操作方式:在系统(内核)与硬盘进行IO操作时,需要考虑三个对象之间的交互作用。它们是系统、控制器和驱动器(例如硬盘或软盘驱动器)。
系统可以直接向控制器发送命令或等待控制器发出中断请求:控制器在接受到命令后就会控制驱动器的操作,读/写数据或者进行其他操作。因此我们可以把这里控制器发出的中断信号看作是这三者之间的同步操作信号,所经历的操作步骤为:
首先系统指明控制器在执行命令结束而引发的中断过程中应该调用的C函数,然后向块设备控制器发送读、写、复位或其他操作命令。当控制器完成了指定的命令,会发出中断请求信号,引发系统执行块设备的中断处理过程,并在其中调用指定的C函数对读/写或其他命令进行命令结束后的处理工作。
块设备表项和请求项数组构成的数据结构是块设备部分的核心数据结构
请求队列数组与块设备结构为如下关系
请求项数组存放所有系统中对块设备的请求,原因估计是块设备一般都是低速外设,所以处理时间较长,来不及的请求先存储起来。每个块设备表项的current_request指向当前需要处理的请求项数组中的请求项,在请求项数组中的请求项之间用指针相链接,这样就构成了对某一设备的请求队列。
下面分析ll_rw_blk.c程序,它是块设备(软硬盘,ramdisk)与缓冲管理之间的接口程序,主要功能是为块设备创建块设备读写请求项,并插入到指定块设备请求队列中。实际的读写操作由请求项处理函数request_fn完成。request_fn通过blk.h的宏定义映射到实际设备的操作(do_hd_request,do_fd_request,do_rd_request)

..............................