read系统调用流程.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Read 系统调用在用户空间中得处理过程Linux系统调用 (SCI,system call interface)得实现机制实际上就是一个多路中断这个入口点 (X86 系统结构 ) ;汇聚以及分解得过程 , 该汇聚点就就是0x80也就就是说 , 全部系统调用都从用户空间中汇聚到0x80中断点 , 同时储存详细得系统调用号;当 0x80中断处理程序运行时 , 将依据系统调用号对不同得系统调用分别处理 ( 调用不同得内核函数处理料;) ;系统调用得更多内容, 请参见参考资Read 系统调用也不例外 , 当调用发生时 , 库函数在储存read Read 系统调用在用户空间中得处理过程 Linux 系统调用 (SCI,system call interface) 得实现机制实际上就是一个多路 中断这个入口点 (X86 系统结构 ) ; 汇聚以及分解得过程 , 该汇聚点就就是 0x80 也就就是说 , 全部系统调用都从用户空间中汇聚到 0x80 中断点 , 同时储存详细 得系统调用号;当 0x80 中断处理程序运行时 , 将依据系统调用号对不同得系统 调用分别处理 ( 调用不同得内核函数处理 料; ) ;系统调用得更多内容 , 请参见参考资 Read 系统调用也不例外 , 当调用发生时 , 库函数在储存 read 系统调用号以及参 数后, 陷入 0x80 理也就完成了; 中断;这时库函数工作终止; Read 系统调用在用户空间中得处 回页首 Read 系统调用在核心空间中得处理过程 0x80 中断处理程序接管执行后 , 先检察其系统调用号 , 然后依据系统调用号查找 系统调用表 , 并从系统调用表中得处处理 read 系统调用得内核函数 sys_read , 最终传递参数并运行 sys_read 函数;至此 , 内核真正开头处理 read 系统调用 (sys_read 就是 read 系统调用得内核入口 ) ; 在讲解 read 系统调用在核心空间中得处理部分中 , 第一介绍了内核处理磁盘请 求得层次模型 , 然后再按该层次模型从上到下得次序依次介绍磁盘读恳求在各层 得处理过程; Read 系统调用在核心空间中处理得层次模型 图 1 显示了 read : 对 系统调用在核心空间中所要经受得层次模型;从图中瞧出 于磁盘得一次读恳求 , 第一经过虚拟文件系统层 (vfs layer), 其次就是详细得文 层) 、通用块层 、块设备驱动层 (block 件系统层 ( 例如 ext2), 接下来就是 cache 层(page cache (generic block layer) 、IO 调度层 (I/O scheduler layer) device driver layer), 最终就是物理块设备层 (block device layer) 图 1 read系统调用在核心空间中得处理层次虚拟文件系统层得作用 : 屏蔽下层详细文件系统操作得差异, 为上层得操., 所以可以把设备抽象作供应一个统一得接口;正就是由于有了这个层次成文件 , 使得操作设备就像操作文件一样简洁;在详细得文件系统层中 , 不同得文件系统 ( 例如 ext2与 NTFS)详细得操.作过程也就是不同得; 每种文件系统定义了自己得操作集合;统得更多内容 , 图 1 read 系统调用在核心空间中得处理层次 虚拟文件系统层得作用 : 屏蔽下层详细文件系统操作得差异 , 为上层得操 . , 所以可以把设备抽象 作供应一个统一得接口;正就是由于有了这个层次 成文件 , 使得操作设备就像操作文件一样简洁; 在详细得文件系统层中 , 不同得文件系统 ( 例如 ext2 与 NTFS)详细得操 . 作过程也就是不同得; 每种文件系统定义了自己得操作集合; 统得更多内容 , 请参见参考资料; 关于文件系 引入 cache linux 层得目得就是为了提高 操作系统对磁盘拜访得性能; . Cache 层在内存中缓存了磁盘上得部分数据;当数据得恳求到达时 , 假如 在 cache 中存在该数据且就是最新得 , 就直接将数据传递给用户程序 , 免 除了对底层磁盘得操作 , 提高了性能; 通用块层得主要工作就是 : 接收上层发出得磁盘恳求 , 并最终发出 IO 请 . 求;该层隐匿了底层硬件块设备得特性 , 为块设备供应了一个通用得抽象 视图; IO 调度层得功能 : 接收通用块层发出得 IO 恳求, 缓存恳求并试图合并相 . 邻得恳求 ( 假如这两个恳求得数据在磁盘上就是相邻得 ) ;并依据设置好得 调度算法 , 回调驱动层供应得恳求处理函数 , 以处理详细得 IO 恳求; IO 恳求, 驱动层中得驱动程序对应详细得物理块设备;它从上层中取出 . 并依据该 IO 恳求中指定得信息 , 通过向详

文档评论(0)

志强老师 + 关注
实名认证
文档贡献者

精品学习资料

1亿VIP精品文档

相关文档