[精品]块设备的基础知识

[精品]块设备的基础知识

ID:45550602

大小:88.93 KB

页数:6页

时间:2019-11-14

[精品]块设备的基础知识_第1页
[精品]块设备的基础知识_第2页
[精品]块设备的基础知识_第3页
[精品]块设备的基础知识_第4页
[精品]块设备的基础知识_第5页
资源描述:

《[精品]块设备的基础知识》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、块设备的基础知识分类:疯狂内核Z输入输出2011-01-3123:43350人阅读评论(0)收藏举报1.4通用块层的处理在前而普通文件和块设备文件的readpage方法中介绍到,对于一个普通文件,要读取相对于文件头的ppos处开始size个连续的字节,就必须计算成对应的页面缓存在内存中;如果存在不连续的情况,如“文件的洞”,就调用块设备的readpage方法建立块设备页高速缓存存放不来连续的块。不管怎样,最终都将封装一个bio结构,并把请求传递给函数gcncric_makc_rcqucst,并由generic_make_request函数将请

2、求提交给通用块层处理。在进入通用块层Z前,先把块设备的一些预备知识清理了。1.4.1块设备的基础知识块设备主耍是指那些磁盘、U盘等一些用来存储的设备,他们的主要特点是,CPU和总线读写数据所花时间与磁盘破件的速度不匹配。块设备的平均访问时间很长。每个操作都需要儿个毫秒才能完成,主要是因为磁盘控制器必须在磁盘表面将磁头移动到记录数据的确切位置。但是,当磁头到达正确位置时,数据传送就可以稳定在每秒儿十MB的速率。块设备驷动程序上的每个操作都涉及很多内核组件,我们来看ULK・3的一幅经典的图:HardDiskHardDHk我们前面所有的内容都在讲一

3、个进程在某个磁盘文件上发出一个read()系统调用一一其实write请求本质上釆川同样的方式。下面咱们就站在设备管理的高度对通丿IJ块层之前的步骤进行一下总结和回顾:1.zd()系统调用的服务例程调用一个适当的VFS函数,也就是前面的generic_file_read,将文件描述符和文件内的偏移量传递给它。2.generic_file_read函数确定所请求的数据是否已经存在于页高速缓存中(address_space对应的基树中)。有时候没有必要访问磁盘上的数据,因为内核将人多数最近从块设备读出或写人其中的数据保存在页高速缓存中。3.我们假设

4、内核需要从块设备读数据,那么它就必须确定数据的物理位为了做到这点,内核依赖映射层(mappinglayer),主要执行下而两步:a)内核确定该文件所在文件系统的块大小,并根据文件块的大小计算所请求数据的长度。本质上,文件被看作拆分成许多块,因此调用do_generic_mapping_read确定请求数据所在的块号(文件开始位證的相对索引)。b)接下来,映射层调用一个具体文件系统的函数——cxt2_gct_block,它访问缓存在内存屮的文件的磁盘索引节点,然后根据逻辑块号确定所请求数据在磁盘上的位置。好了,现在我们已经走到这一步了,现在内核

5、可以对块设备发出读请求。内核利用通用块层(genericblocklnyer)Jj'l动I/O操作函数generic_make_request来传送所请求的数据。一般而言,每个1/0操作只针対磁盘上一组连续的块。山于请求的数据不必位于相邻的块中,所以通用块层可能启动儿次I/O操作。每次I/O操作是由一个“块I/O”(简称“bio”)结构描述,它收集底层组件需要的所有信息以满足所发岀的请求。通用块层为所有的块设备提供了一个抽彖视图,因而隐藏了硬件块设备间的差界性。几乎所冇的块设备都是磁盘,所以通川块层也提供了一些通川数据结构來描述“磁盘”或“磁

6、盘分区”。通用块层下面的“I/O调度程序”根据预先定义的内核策略将待处理的I/O数据传送请求进行归类。调度程序的作用是把物理介质上相邻的数据请求聚集在一起。我们将在后血的“I/O调度程序”一节中介绍调度程序。最示,块设备驱动程序向磁盘控制器的硬件接口发送适当的命令,从而进行实际的数据传送。我们将在后面的“块设备底层驱动程序”一节介绍通用块设备驱动程序的总体组织结构。我们看到,块设备中的数据存储涉及了许多内核组件;每个组件采用不同长度的块來管理磁盘数据:•硬件块设备控制器采川称为“扇区”(sector)的固定长度的块来传送数据,这个长度对于大多

7、数磁盘都是512个字节,特别是SCSI硬盘、U盘和光盘。因此,I/O调度程序和块设备驱动程序必须管理数据扇区。•虚拟文件系统、映射层和文件系统将磁盘数据存放在称为“块”(block)的逻辑单元中。一个块对应文件系统中一个最小的磁盘存储单元。•块设备驱动程序应该能够处理数据的“段”(segment):一个段就是一个内存页或内存页的一部分,它们包含磁盘上物理相邻的数据块。•磁盘高速缓存作用于磁盘数据的“页”(page)上,每页止好装在一个页框中。通用块层将所有的上层和下层的组件组合在一•起,因此它了解数据的扇区、块、段以及页。即使有许多不同的数据

8、块,它们通常也是共享相同的物理RAM单元。-uauj同5128SUB5UB5UB512B512B卜BSUB1KBIK8IKB1KB4KB3KB我们看到上图就显示了一

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。