[发明专利]一种缺页异常的处理方法、装置及系统有效
申请号: | 201210087940.X | 申请日: | 2012-03-29 |
公开(公告)号: | CN102662864A | 公开(公告)日: | 2012-09-12 |
发明(设计)人: | 林志南 | 申请(专利权)人: | 华为技术有限公司 |
主分类号: | G06F12/08 | 分类号: | G06F12/08 |
代理公司: | 深圳市深佳知识产权代理事务所(普通合伙) 44285 | 代理人: | 唐华明 |
地址: | 518129 广东*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 异常 处理 方法 装置 系统 | ||
技术领域
本发明涉及操作系统技术领域,具体涉及一种缺页异常的处理方法、装置及系统。
背景技术
现在的操作系统,都使用基于分页机制的虚拟内存,虚拟内存一般有4G,虚拟地址(virtual address)就是4G虚拟地址空间中的地址,每个进程有4GB的虚拟地址空间,进程通过访问4GB的虚拟地址进行物理内存的访问。
内存可以视为连续的字节,即内存为字节数组,内存单元的地址编号,可作为字节数组的索引,分页管理时,将4KB个字节视为一页。此时,内存变成了连续的页,即内存为页数组,每一页物理内存叫页帧,以页为单位对内存进行编号,该编号可作为页数组的索引,又称为页帧号。
进程在实际需要某个虚拟内存区(VMA,Virtual Memory Area)的数据之前,虚拟地址和物理内存之间的关联不会建立。如果进程访问的虚拟地址空间尚未与物理内存中的页帧关联,则中央处理器(CPU,Central Processing Unit)自动地引发一个缺页异常。
现有技术中发生缺页异常时,CPU在缺页异常处理函数中做相应处理,找到虚拟地址对应的VMA,如果该虚拟地址属于代码段或者数据段,则申请一个4KB页映射到该VMA,如果该地址属于栈,则扩展栈对应的VMA,并调入一个4KB页以扩展该VMA。
在对现有技术的研究和实践过程中,本发明的发明人发现,无论进程访问代码段数据段还是访问栈地址所引发的缺页异常,针对请求调页方面,都是每次缺页异常申请分配一页,当程序本身的代码段、数据段或者栈都较大时,那么对对应段的访问将导致大量的缺页异常,需要多次请求调页,假设一个程序代码段大小为1M,那么该程序对代码段的访问最多将需要经历256次缺页异常才能完成,需要申请256次调页,降低了系统的性能。
发明内容
本发明实施例提供一种缺页异常处理方法,可以在一次缺页异常中申请分配多个页面,从而减少缺页异常的次数,提高系统性能。本发明实施例还提供相应的装置及系统。
一种缺页异常的处理方法,包括:
当同一进程在同一虚拟内存区VMA中连续发生缺页异常的次数达到预置阈值时,获取第一数值和第二数值,所述第一数值为发生缺页异常的次数达到预置阈值后,每次发生缺页异常时,建立VMA中虚拟地址页与物理页帧关联映射的个数,所述第二数值为所述同一进程所在的VMA中未映射物理页帧的虚拟地址页的个数;
比较所述获取的第一数值和所述第二数值的大小;
当所述第二数值大于等于所述第一数值时,每次发生缺页异常时,按照关联映射的方向,建立连续的第一数值个虚拟地址页与物理页帧的关联映射,以使所述同一进程快速读取物理内存;
当所述第二数值小于第一数值时,每次缺页异常时,按照关联映射的方向,建立连续的第二数值个虚拟地址页与物理页帧的关联映射,以使所述同一进程快速读取物理内存。
一种缺页异常的处理方法,包括:
当同一进程在同一VMA中连续发生缺页异常的次数达到预置阈值时,获取第三数值,所述第三数值为所述VMA中未与物理页帧关联映射的虚拟地址页的个数;
按照关联映射的方向,建立连续的第三数值个虚拟地址页与物理页帧的关联映射。
一种缺页异常的处理装置,包括:
第一获取单元,用于当同一进程在同一虚拟内存区VMA中连续发生缺页异常的次数达到预置阈值时,获取第一数值和第二数值,所述第一数值为发生缺页异常的次数达到预置阈值后,每次发生缺页异常时,建立VMA中虚拟地址页与物理页帧关联映射的个数,所述第二数值为所述同一进程所在的VMA中未映射物理页帧的虚拟地址页的个数;
比较单元,用于比较所述第一获取单元获取的第一数值和第二数值的大小;
第一映射建立单元,用于当所述比较单元比较出所述第二数值大于等于所述第一数值时,每次发生缺页异常时,按照关联映射的方向,建立连续的第一数值个虚拟地址页与物理页帧的关联映射,以使所述同一进程快速读取物理内存;
所述第一映射建立单元,还用于当所述比较单元比较出第二数值小于第一数值时,每次缺页异常时,按照关联映射的方向,建立连续的第二数值个虚拟地址页与物理页帧的关联映射,以使所述同一进程快速读取物理内存。
一种缺页异常的处理装置,包括:
第二获取单元,用于当同一进程在同一VMA中连续发生缺页异常的次数达到预置阈值时,获取第三数值,所述第三数值为所述VMA中未与物理页帧关联映射的虚拟地址页的个数;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华为技术有限公司,未经华为技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210087940.X/2.html,转载请声明来源钻瓜专利网。