linux内核完全注释(课件)第六章.ppt_第1页
linux内核完全注释(课件)第六章.ppt_第2页
linux内核完全注释(课件)第六章.ppt_第3页
linux内核完全注释(课件)第六章.ppt_第4页
linux内核完全注释(课件)第六章.ppt_第5页
已阅读5页,还剩50页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、湘潭大学信息工程学院Linux操作系统内核分析,讲座内容,设备管理简介,硬盘驱动器,虚拟磁盘驱动器,块设备的运行模式,P132图6-2,设备管理模块的读取过程,将块(2个扇区)读取到缓冲模块的过程请求。缓冲模块检查块是否已经被缓冲。如果已经缓冲,直接返回缓冲块;否则,向设备管理模块发出读取请求。设备管理模块接受该请求。如果设备不忙,向设备发送命令;否则,请求将被插入设备的请求队列。缓冲模块暂停进程。设备控制器将数据从设备读入自己的缓冲区,并产生一个中断。设备中断处理程序将数据从控制器缓冲区读取到内存缓冲区,然后唤醒进程。步骤267:设备管理模块写进程,缓冲模块决定回写缓冲块。如果块是脏的,则向

2、设备管理模块发出写请求。设备管理模块接受该请求。如果设备不忙,向设备发送命令和数据;否则,请求将被插入设备的请求队列。缓冲模块暂停进程。设备控制器将数据写入设备并产生中断。设备中断处理程序唤醒进程。低级读写过程,根据缓冲区头创建请求,将请求插入设置的请求队列,并向设备发送命令,是或否,表示设备空闲,设备编号,设备由主要设备编号和次要设备编号(构成物理设备编号)区分。主要设备编号:区分不同类型的设备(P131表6-2)。次要设备编号:区分同一类型设备中的单个逻辑设备编号。逻辑设备号=主要设备号8)#定义MINOR(a)(a)/逻辑设备号,-/命令(P395第2629号)int错误;/如果超过最大

3、误差,复位设备无符号长扇区;/要读取或写入的无符号长nr _ sectors/要读取或写入char *缓冲区的数字;/数据缓冲区指针结构task_struct *正在等待;/等待请求完成的进程队列结构buffer _ head * bh/缓冲区头指针结构请求*下一步;/同一设备的下一个请求项;P131或P134,第23行,阻塞设备请求项目数组。为了方便查找空闲的请求项,建立了请求项数组。结构请求requestNR _ REQUEST/定义在ll_rw_blk.c(P150,第21行)#定义NR_REQUEST32 /定义在blk.h(P134,第15行)块设备结构中,每个块设备都有自己独立的请

4、求队列。为了方便地管理队列,建立了块设备结构。struct blk _ dev _ struct void(* request _ fn)(void);/设备特定的请求处理函数指针结构请求* current _ request/请求队列头指针;/blk.h(P134,第45行或P130),块器件结构。Linux支持多种块设备。为所有这些块设备结构建立一个数组,数组的索引是设备的主设备号。支柱blk _ dev _ struct blk _ dev _ NR _ blk _ dev/p151第32行#定义NR_BLK_DEV7,数据结构之间的关系,P132图6-1,设备管理模块接口,设备管理模块

5、,文件管理模块(缓冲区),ll_rw_block,中断管理模块。HD _中断软盘_中断,初始化模块,blk _ dev _ init HD _ init软盘_ init设置,初始化,Void blk_dev_init(void) /在ll_rw_blk.c(P153,第157行)中定义。功能:完成请求项数组的初始化。void hd_init(void) /在hd.c(P146,第343行)中定义void flowd _ init(void)/Long rd _ init(Long mem _ start,int length)在flowd . c(p168的第457行)/在ram disk .

6、 c(p155的第52行)中定义,低级读写操作,void ll_rw_block (int rw,Struct buffer _ head * BH)/在ll_rw_blk.c(P153,第143行)中定义功能:完成低级读写操作参数:读写读写命令bh缓冲头指针,升降算法,读写头向一个方向移动,以满足该方向最近的请求。当这个方向上的所有请求都被处理时,其他请求则以相反的方向处理。例如,磁头在第5个柱面上处理请求,磁头向内移动,然后有5个请求到达,它们是第7、2、6、1和8个柱面上的请求。那么处理顺序是:5 6 7 8 2 1,电梯算法。在正常情况下,所有请求都可以得到正确处理。然而,在极端情况下,它仍然会导致饥饿。例如,在上述示例中,如果在第5个柱面之后有处理

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论