read系统调用流程
14页1、Read系统调用在用户空间中的处理过程Linux系统调用(SCI,systemcallinterfaced的实现机制实际上是一个多路汇聚以及分解的过程,该汇聚点就是0x80中断这个入口点(X86系统结构)。也就是说,所有系统调用都从用户空间中汇聚到0x80中断点,同时保存具体的系统调用号。当0x80中断处理程序运行时,将根据系统调用号对不同的系统调用分别处理(调用不同的内核函数处理)。系统调用的更多内容,请参见参考资料。Read系统调用也不例外,当调用发生时,库函数在保存read系统调用号以及参数后,陷入0x80中断。这时库函数工作结束。Read系统调用在用户空间中的处理也就完成了。回页首Read系统调用在核心空间中的处理过程0x80中断处理程序接管执行后,先检察其系统调用号,然后根据系统调用号查找系统调用表,并从系统调用表中得到处理read系统调用的内核函数sys_read,最后传递参数并运行sys_read函数。至止匕,内核真正开始处理read系统调用(sys_read是read系统调用的内核入口)。在讲解read系统调用在核心空间中的处理部分中,首先介绍了内核处理磁盘请求的层次模
2、型,然后再按该层次模型从上到下的顺序依次介绍磁盘读请求在各层的处理过程。Read系统调用在核心空间中处理的层次模型图1显示了read系统调用在核心空间中所要经历的层次模型。从图中看出:对于磁盘的一次读请求,首先经过虚拟文件系统层(vfslayer),其次是具体的文件系统层(例如ext2),接下来是cache层(pagecache层)、通用块层(genericblocklayer)、IO调度层(I/Oschedulerlayei)、块设备驱动层(blockdevicedriverlayer),最后是物理块设备层(blockdevicelayer)VFSLayerBlockDeviceDriverLayerBlockDeviceLayer虚拟文件系统层的作用:屏蔽下层具体文件系统操作的差异,为上层的操作提供一个统一的接口。正是因为有了这个层次,所以可以把设备抽象成文件,使得操作设备就像操作文件一样简单。在具体的文件系统层中,不同的文件系统(例如ext2和NTFS)具体的操作过程也是不同的。每种文件系统定义了自己的操作集合。关于文件系统的更多内容,请参见参考资料。引入cache层的目的是为了
3、提高linux操作系统对磁盘访问的性能。Cache层在内存中缓存了磁盘上的部分数据。当数据的请求到达时,如果在cache中存在该数据且是最新的,则直接将数据传递给用户程序,免除了对底层磁盘的操作,提高了性能。通用块层的主要工作是:接收上层发出的磁盘请求,并最终发出IO请求。该层隐藏了底层硬件块设备的特性,为块设备提供了一个通用的抽象视图。IO调度层的功能:接收通用块层发出的IO请求,缓存请求并试图合并相邻的请求(如果这两个请求的数据在磁盘上是相邻的)。并根据设置好的调度算法,回调驱动层提供的请求处理函数,以处理具体的IO请求。驱动层中的驱动程序对应具体的物理块设备。它从上层中取出IO请求,并根据该IO请求中指定的信息,通过向具体块设备的设备控制器发送命令的方式,来操纵设备传输数据。设备层中都是具体的物理设备。定义了操作具体设备的规范。相关的内核数据结构:Dentry:联系了文件名和文件的i节点inode:文件i节点,保存文件标识、权限和内容等信息file:保存文件的相关信息和各种操作文件的函数指针集合file_operations:操作文件的函数接口集合address_space描述文
4、件的pagecache结构以及相关信息,并包含有操作pagecache的函数指针集合address_space_operations操作pagecache的函数接口集合bio:IO请求的描述数据结构之间的关系:图2示意性地展示了上述各个数据结构(除了bio)之间的关系。可以看出:由dentry对象可以找到inode对象,从inode对象中可以取出address_space对象,再由address_spac取寸象找至Uaddress_space_operationS寸象。File对象可以根据当前进程描述符中提供的信息取得,进而可以找到dentry对象、address_spac取寸象和file_operations对象。图2数据结构关系图:前提条件:对于具体的一次read调用,内核中可能遇到的处理情况很多。这里举例其中的一种情况:要读取的文件已经存在文件经过pagecache要读的是普通文件磁盘上文件系统为ext2文件系统,有关ext2文件系统的相关内容,参见参考资料准备:注:所有清单中代码均来自内核原代码读数据之前,必须先打开文件。处理open系统调用的内核函数为sys_open。所以我
《read系统调用流程》由会员M****1分享,可在线阅读,更多相关《read系统调用流程》请在金锄头文库上搜索。
爱国心得体会学习300文字6个.docx
购买理财产品取得收益到底咋征增值税-一团乱麻吗?……(老会计人的经验).doc
幼儿教师专业成长总结范文(汇编3篇).docx
流动人口计划生育管理工作计划(四篇)
城南失地农民小区建没项目可行性分析论证报告.doc
2021年翻翻乐大班教案
工程心理学听课笔记-2011年4月.doc
2023年四年级下册数学试卷及答案.doc
(精品word)内皮细胞在血液循环系统中的影响及作用.doc
卫生局考试练习题三基综合考核.docx
小学英语教师工作计划.docx
无缝线路铺设与养护维修(毕业论文).doc
备战中考演讲稿
技术经理工作总结(DOC 12页)
热起来了教学设计.docx
陕西话的声调
干部考核会议主持词与干部职工会讲话稿
茶园各月农事
2023年妇女工作者二个人工作总结.docx
2018人教版四年级数学下册期中试卷.doc
2024-02-13 10页
2022-08-20 9页
2022-07-31 3页
2023-03-09 10页
2022-10-25 4页
2023-04-17 48页
2022-09-01 20页
2024-02-20 6页
2023-08-15 5页
2023-11-17 2页