介绍Linux内核文件Cache管理机制(下)
5 、文件Cache相关API及其实现
内核中与文件Cache操作相关的API有很多,按其使用方式可以分成两类:一类是以拷贝方式操作的相关接口, 如read/write/sendfile等,其中sendfile在2.6系列的内核中已经不再支持;另一类是以地址映射方式操作的相关接口,如mmap等。
第一种类型的API在不同文件的Cache之间或者Cache与应用程序所提供的用户空间buffer之间拷贝数据,其实现如图7所示。
第二种类型的API将Cache项映射到用户空间,使得应用程序可以像使用内存指针一样访问文件,Memory map访问Cache的方式在内核中是采用请求页面机制实现的,其工作过程如图8所示。
首先,应用程序调用mmap(图中1),陷入到内核中后调用do_mmap_pgoff(图中2)。该函数从应用程序的地址空间中分配一段区域作为映射的内存地址,并使用一个VMA(vm_area_struct)结构代表该区域,之后就返回到应用程序(图中3)。当应用程序访问mmap所返回的地址指针时(图中4),由于虚实映射尚未建立,会触发缺页中断(图中5)。之后系统会调用缺页中断处理函数(图中6),在缺页中断处理函数中,内核通过相应区域的VMA结构判断出该区域属于文件映射,于是调用具体文件系统的接口读入相应的Page Cache项(图中7、8、9),并填写相应的虚实映射表。经过这些步骤之后,应用程序就可以正常访问相应的内存区域了。
6 、小结
文件Cache是Linux操作系统的一个重要组成部分,同时也是研究领域一个很热门的研究方向。目前,Linux内核在这个方面的工作集中在开发更有效的Cache替换算法上,如LIRS(其变种ClockPro)、ARC等。相关信息可见http://linux-mm.org/AdvancedPageReplacement。
- · RouterOS断流解决办法探讨
- · 系统管理:Cron服务配置详解
- · apache中禁止mp3试听
- · 基于linux操作系统架构openvpn总结
- · Linux集群认证介绍
- · Linux集群应用的新挑战
- · Linux指导第7部分 网络
- · Linux指导第6部分 使用分区和文件系统
- · Linux指导第5部分 Linux日志
- · Linux指导第4部分 用户管理
- · Linux指导第3部分 Webmin简介
- · Linux指导第2部分 控制台速成班
- · Linux指导第1部分 Linux思想
- · Linux环境下邮件服务器的分析比较
- · FedoraCore5安装后的快速配置
- · Apache服务器实现用户验证
- · Telnet到Scounix执行并取得结果
- · 全面解决ROUTEROSIP限速问题
- · 如何用ROUTEROS封闭P2P类软件
- · routeros端口映射方法
- · 介绍Linux内核文件Cache管理机制(下)
- · 介绍Linux内核文件Cache管理机制(中)
- · 介绍Linux内核文件Cache管理机制(上)
- · 网络编程之-原始套接字
- · linux编程之——C 内存管理详解
- · Novell开放工作组套件
- · Linux将可以跟Googletalk语音通话了
- · Linux再遇能否使用专有代码老问题
- · 如何解决AIX的文件系统故障
- · 系统操作:RedHatlinuxinittab
- · 银行选择Linux无法回避高成本
- · 学习Linux的好工具:LiveCD
- · Linux个人防火墙的设计与实现
- · Thinkpad上安装Ubuntu笔记(下)
- · Linux命令:改变文件或目录的访问权限(上)
- · Thinkpad上安装Ubuntu笔记(上)
- · Thinkpad上安装Ubuntu笔记(中)
- · 应用:postfix邮件服务器安全策略4(完)
- · 应用:postfix邮件服务器安全策略3
- · 应用:postfix邮件服务器安全策略2
- · Linux套件宝座上的SUSELinux
- · 应用:postfix邮件服务器安全策略1
- · 用流量监控控制限速的开关
- · ROS专业企业软件路由防火墙功能介绍
- · 让Linux象Windows一样安装卸载

