CN105159838A - 访问内存的方法及计算机系统 - Google Patents
访问内存的方法及计算机系统 Download PDFInfo
- Publication number
- CN105159838A CN105159838A CN201510531948.4A CN201510531948A CN105159838A CN 105159838 A CN105159838 A CN 105159838A CN 201510531948 A CN201510531948 A CN 201510531948A CN 105159838 A CN105159838 A CN 105159838A
- Authority
- CN
- China
- Prior art keywords
- subarea
- equity
- virtual address
- maps
- memory
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 230000015654 memory Effects 0.000 title claims abstract description 263
- 238000000034 method Methods 0.000 title claims abstract description 77
- 238000006243 chemical reaction Methods 0.000 claims abstract description 102
- 238000013507 mapping Methods 0.000 claims abstract description 80
- 238000012545 processing Methods 0.000 claims abstract description 30
- 238000013519 translation Methods 0.000 claims description 68
- 230000014616 translation Effects 0.000 claims description 68
- 230000006870 function Effects 0.000 claims description 15
- 238000009826 distribution Methods 0.000 claims description 8
- 230000007704 transition Effects 0.000 claims description 7
- 238000007599 discharging Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 18
- 238000010586 diagram Methods 0.000 description 9
- 238000012544 monitoring process Methods 0.000 description 8
- 238000003860 storage Methods 0.000 description 5
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 238000004891 communication Methods 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 239000002253 acid Substances 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000035800 maturation Effects 0.000 description 1
- 210000003205 muscle Anatomy 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Landscapes
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明公开了一种访问内存的方法及计算机系统。内核态的对等映射区包括第一对等映射子区和第二对等映射子区,第一对等映射子区和第二对等映射子区具有不同的页表,原有系统任务和原有内核业务使用第一对等映射子区的虚拟地址访问物理内存,该方法包括:当受监控内核业务使用第二对等映射子区的虚拟地址请求访问对应的物理内存时,根据第二对等映射子区的页表的存在present位判断页表转换是否正常;在页表转换异常的情况下,触发缺页异常,并执行缺页异常处理流程;在页表转换正常的情况下,访问物理内存。本发明实施例能够避免内核态内存非法访问造成的影响,提高了系统的可靠性,有效减少了系统的死机频率。
Description
技术领域
本发明涉及计算机领域,尤其涉及访问内存的方法及计算机系统。
背景技术
可靠性、可用性、可维护性(Reliability、Availability、Serviceability,简称RAS)特性是目前高端服务器的一个重要特性。据统计,一分钟的宕机将会使行业造成几十甚至几百万美元的损失,因此系统的高可靠性是一个非常重要的指标,例如可靠性指标为99.999%时,意味着一年下来宕机时间不超过5分钟。
业务如果只涉及到用户态,那么内存非法访问一般会出现段错误(segmentfault)终止程序,这只影响业务自身,并不会对内核态造成干扰。目前内核的缺页异常(pagefault)机制可以监测到用户态缺页导致的非法访问。
内核层面的内存是共享的,所有内核页表在系统启动时就已都建立好,内核态不会发生缺页异常。但如果业务是以模块形式涉及到内核态的访问,那么该业务的内存非法访问就有可能引起系统崩溃。例如,一些质量不高的第三方软件(如驱动、特性模块等)由于内存非法访问致使内核态发生缺页异常、访问非法地址等,最终造成系统崩溃、死机。例如,在手机等终端领域,由于开发的应用程序质量层次不齐,经常导致闪退、系统重启等。
发明内容
本发明实施例提供了一种访问内存的方法及计算机系统,能够避免内核态内存非法访问造成的影响,提高了系统的可靠性,有效减少了系统的死机频率。
第一方面,提供了一种访问内存的方法,内核态的对等映射区包括第一对等映射子区和第二对等映射子区,所述第一对等映射子区和所述第二对等映射子区具有不同的页表,原有系统任务和原有内核业务使用所述第一对等映射子区的虚拟地址访问物理内存,所述方法包括:当受监控内核业务使用所述第二对等映射子区的虚拟地址请求访问对应的物理内存时,根据所述第二对等映射子区的页表的存在present位判断页表转换是否正常;在所述页表转换异常的情况下,触发缺页异常,并执行缺页异常处理流程;在所述页表转换正常的情况下,访问所述物理内存。
结合第一方面,在第一种可能的实现方式中,所述执行缺页异常处理流程,包括:确定所述受监控内核业务是否已注册错误处理函数handler;在所述受监控内核业务已注册handler的情况下,执行所述注册的handler;在所述受监控内核业务未注册handler的情况下,执行缺省handler。
结合第一方面或第一种可能的实现方式中,在第二种可能的实现方式中,在所述受监控内核业务使用所述第二对等映射子区的虚拟地址请求访问对应的物理内存之前,所述方法还包括:使用内存分配接口为所述受监控内核业务分配所述物理内存;使用转换宏将所述物理内存对应的物理地址转换为所述第二对等映射子区的虚拟地址;使用所述内存分配接口为所述受监控内核业务返回所述第二对等映射子区的虚拟地址;将所述第二对等映射子区的页表的present位置位。
结合第二种可能的实现方式,在第三种可能的实现方式中,还包括:使用内存释放接口接收所述受监控内核业务返回的所述第二对等映射子区的虚拟地址;使用所述转换宏将所述第二对等映射子区的虚拟地址转换为所述物理地址;使用内存释放接口为所述受监控内核业务释放所述物理地址对应的所述物理内存;将所述第二对等映射子区的页表的present位清零。
结合第三种可能的实现方式,在第四种可能的实现方式中,使用所述转换宏将所述第二对等映射子区的虚拟地址转换为所述物理地址,包括:使用所述转换宏将所述第二对等映射子区的虚拟地址转换为所述第一对等映射子区的虚拟地址;使用所述转换宏将所述第一对等映射子区的虚拟地址转换为所述物理地址。
结合第二种或第三种或第四种可能的实现方式,在第五种可能的实现方式中,所述使用转换宏将所述物理内存对应的物理地址转换为所述第二对等映射子区的虚拟地址,包括:使用所述转换宏将所述物理地址转换为所述第一对等映射子区的虚拟地址;使用所述转换宏将所述第一对等映射子区的虚拟地址转换为所述第二对等映射子区的虚拟地址。
结合第一方面或上述任一种可能的实现方式,在第六种可能的实现方式中,还包括:将所述对等映射区划分为所述第一对等映射子区和所述第二对等映射子区;建立所述第二对等映射子区的页表,并将所述第二对等映射子区的页表的present位清零;建立缺省handler,所述缺省handler用于处理所述缺页异常;配置转换宏,所述转换宏用于实现所述对等映射区的虚拟地址与物理地址之间的转换,以及所述第一对等映射子区的虚拟地址与所述第二对等映射子区的虚拟地址之间的转换;配置内存分配接口,所述内存分配接口用于为所述受监控内核业务返回所述第二对等映射子区的虚拟地址;配置内存释放接口,所述内存释放接口用于为所述受监控内核业务释放所述物理内存。
第二方面,提供了一种计算机系统,内核态的对等映射区包括第一对等映射子区和第二对等映射子区,所述第一对等映射子区和所述第二对等映射子区具有不同的页表,原有系统任务和原有内核业务使用所述第一对等映射子区的虚拟地址访问物理内存,所述计算机系统包括:第一处理单元,用于当受监控内核业务使用所述第二对等映射子区的虚拟地址请求访问对应的物理内存时,根据所述第二对等映射子区的页表的存在present位判断页表转换是否正常;第二处理单元,用于在所述页表转换异常的情况下,触发缺页异常,并执行缺页异常处理流程;所述第二处理单元还用于,用于在所述页表转换正常的情况下,访问所述物理内存。
结合第二方面,在第二方面的第一种可能的实现方式中,所述第二处理单元具体用于:确定所述受监控内核业务是否已注册错误处理函数handler;在所述受监控内核业务已注册handler的情况下,执行所述注册的handler;在所述受监控内核业务未注册handler的情况下,执行缺省handler。
结合第二方面或第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述第一处理单元还用于:在所述受监控内核业务使用所述第二对等映射子区的虚拟地址请求访问对应的物理内存之前,使用内存分配接口为所述受监控内核业务分配所述物理内存;使用转换宏将所述物理内存对应的物理地址转换为所述第二对等映射子区的虚拟地址;使用所述内存分配接口为所述受监控内核业务返回所述第二对等映射子区的虚拟地址;将所述第二对等映射子区的页表的present位置位。
结合第二方面的第二种可能的实现方式,在第二方面的第三种可能的实现方式中,所述第一处理单元还用于:使用内存释放接口接收所述受监控内核业务返回的所述第二对等映射子区的虚拟地址;使用所述转换宏将所述第二对等映射子区的虚拟地址转换为所述物理地址;使用内存释放接口为所述受监控内核业务释放所述物理地址对应的所述物理内存;将所述第二对等映射子区的页表的present位清零。
结合第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述第一处理单元具体用于:使用所述转换宏将所述第二对等映射子区的虚拟地址转换为所述第一对等映射子区的虚拟地址;使用所述转换宏将所述第一对等映射子区的虚拟地址转换为所述物理地址。
结合第二方面的第二种或第三种或第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述第一处理单元具体用于:使用所述转换宏将所述物理地址转换为所述第一对等映射子区的虚拟地址;使用所述转换宏将所述第一对等映射子区的虚拟地址转换为所述第二对等映射子区的虚拟地址。
结合第二方面或第二方面的上述任一种可能的实现方式,在第二方面的第六种可能的实现方式中,还包括:划分单元,用于将所述对等映射区划分为所述第一对等映射子区和所述第二对等映射子区;建立单元,用于建立所述第二对等映射子区的页表,并将所述第二对等映射子区的页表的present位清零;所述建立单元还用于,建立缺省handler,所述缺省handler用于处理所述缺页异常;配置单元,用于配置转换宏,所述转换宏用于实现所述对等映射区的虚拟地址与物理地址之间的转换,以及所述第一对等映射子区的虚拟地址与所述第二对等映射子区的虚拟地址之间的转换;所述配置单元还用于,配置内存分配接口,所述内存分配接口用于为所述受监控内核业务返回所述第二对等映射子区的虚拟地址;所述配置单元还用于,配置内存释放接口,所述内存释放接口用于为所述受监控内核业务释放所述物理内存。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍,显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例的访问内存的方法的示意性流程图。
图2是根据本发明另一实施例的访问内存的方法的系统初始化过程的示意性流程图。
图3是根据本发明实施例的访问内存的方法的原理示意图。
图4是根据本发明实施例的访问内存的方法的监控范围的示意图。
图5是根据本发明另一实施例的访问内存的方法的示意性流程图。
图6是根据本发明另一实施例的访问内存的方法的示意性流程图。
图7是根据本发明另一实施例的访问内存的方法的示意性流程图。
图8是根据本发明实施例的访问内存的方法应用于服务器的系统架构示意图。
图9是根据本发明实施例的访问内存的方法应用于手机的系统架构示意图。
图10是根据本发明实施例的计算机系统的示意性框图。
图11是根据本发明另一实施例的计算机系统的示意性框图。
图12是根据本发明实施例的计算机系统的示意性框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明的一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都应属于本发明保护的范围。
为方便理解本发明实施例,首先介绍本发明实施例中引入的几个要素:
Page:物理内存页,x86架构下一个page大小为4KB;
页表;提供虚拟地址到物理地址转换的机制;
内核态/用户态:运行在内核(kernel)层级的线程,具有特权状态,页表共享;运行在用户层级的进程,不具有特权状态,页表独立;
对等映射(directmapping)区:x86_64中的一个虚拟地址空间区域,一般内存分配时默认使用此区域的虚拟地址,且虚拟地址到物理地址的转换结果差一个固定的偏移量(即:物理地址=虚拟地址-偏移量),但具体转换时是中央处理器(CentralProcessingUnit,简称CPU)根据页表来计算的。
图1是根据本发明实施例的一种访问内存的方法100的示意性流程图。内核态的对等映射区包括第一对等映射子区和第二对等映射子区,第一对等映射子区和第二对等映射子区具有不同的页表,原有系统任务和原有内核业务使用所述第一对等映射子区的虚拟地址访问物理内存。如图1所示,方法100包括:
110、当受监控内核业务使用第二对等映射子区的虚拟地址请求访问对应的物理内存时,根据第二对等映射子区的页表的存在(present)位判断页表转换是否正常;
120、在页表转换异常的情况下,触发缺页异常(pagefault),并执行缺页异常处理流程;
130、在页表转换正常的情况下,访问物理内存。
present位,即P位,用于指示页目录或页表中的虚拟地址对应的物理地址是否已经分配,即是否有物理内存和该虚拟地址相对应。present位置位,即P=1,表示有效,或者表示该虚拟地址已经分配了物理内存;present位清零,即P=0,表示无效,或者表示该虚拟地址尚未分配物理内存。如果执行一个地址转换所需的页表项或页目录项的present位被清零,那么分页单元就把该线性地址存放在控制寄存器CR2中,并触发缺页异常。
管理员可以根据实际需要以及业务的重要程度指定受监控内核业务。
本发明实施例中,通过使原有系统任务和原有内核业务与受监控内核业务分别使用不同的对等映射子区的虚拟地址访问内存,使得受监控内核业务对应的页表独立于原有系统任务和原有内核业务对应的页表,并根据受监控内核业务对应的页表的present位判断页表转换是否正常,执行相应流程,能够避免受监控内核业务的内存非法访问对内核态的影响,提高了系统的可靠性,有效减少了系统的死机频率。
应理解,本发明实施例中,对等映射区还可以包括第三对等映射子区,第三对等映射子区同样可以用于监控一个内核业务。第三对等映射子区的描述可以参考本发明实施例中对第二对等映射子区的描述,受监控内核业务使用第三对等映射子区的虚拟地址访问物理内存的方法与本发明实施例中使用第二对等映射子区的虚拟地址访问物理内存的方法相同,为避免重复,在此不再赘述。同样,对等映射区还可以包括第四对等映射子区、第五对等映射子区等,在此不再一一描述。
可选地,对等映射区中的各个对等映射子区的容量相同。
可选地,作为另一实施例,如图2所示,系统初始化时,方法100还包括:
101、将对等映射区划分为第一对等映射子区和第二对等映射子区。
第一对等映射子区的起始地址和对等映射区的起始地址相同。具体地,还可以根据系统内存的容量确定能够监控的内核业务的数量,将对等映射区平均划分为多个对等映射子区。
第一对等映射子区和第二对等映射子区均满足虚拟地址和物理地址在数值上相差一个偏移量(offset)。同时,第二对等映射区的虚拟地址和第一对等映射区的虚拟地址在数值上也相差一个偏移量。
应理解,还可以将原对等映射区划分为1个第一对等映射子区和多个第二对等映射子区。
102、建立第二对等映射子区的页表,并将第二对等映射子区的页表的present位清零。
103、建立缺省错误处理函数(handler),缺省handler用于处理缺页异常。
具体地,受监控内核业务访问对应的内存时由于present位未置位导致缺页异常时,会先反馈给该受监控内核业务的handler,若该受监控内核业务没有注册handler,则调用该缺省handler,如终止(kill)该业务;
104、配置转换宏,转换宏用于实现对等映射区的虚拟地址与物理地址之间的转换,以及第一对等映射子区的虚拟地址与第二对等映射子区的虚拟地址之间的转换。
为了与现有技术兼容,具体可以在现有转换宏(如__va()和__pa())的基础上进行修改,或者可以针对第二对等映射子区新增转换宏__va_new(id)、__pa_new(id)。
105、配置内存分配接口,该内存分配接口用于为受监控内核业务返回第二对等映射子区的虚拟地址。
106、配置内存释放接口,内存释放接口用于为受监控内核业务释放物理内存。
其中内存分配接口可以为slab算法接口和伙伴算法接口等涉及到对等映射区内存分配的接口,内存释放接口可以为slab算法接口和伙伴算法接口等涉及到对等映射区内存释放的接口。
内存分配接口还可以用于根据当前(current)进程是否为受监控内核业务来返回对应的对等映射子区的虚拟地址。具体地,如果为受监控内核业务,则返回第二对等映射子区的虚拟地址;如果为原有系统任务或原有内核业务,则返回第一对等映射子区的虚拟地址。
应理解,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。
本发明实施例中,通过将对等映射区进行划分为多个对等映射子区,能够使原有系统任务和原有内核业务与受监控内核业务分别使用不同的对等映射子区的虚拟地址访问内存,使得受监控内核业务对应的页表独立与原有系统任务和原有内核业务对应的页表,从而避免了受监控内核业务的内存非法访问会对内核态的原有系统任务和原有内核业务产生影响。
可选地,在步骤120中,执行缺页异常处理流程,包括:
确定受监控内核业务是否已注册handler;
在受监控内核业务已注册handler的情况下,执行注册的handler;
在受监控内核业务未注册handler的情况下,执行缺省handler。
可选地,在受监控内核业务使用第二对等映射子区的虚拟地址请求访问对应的物理内存之前,方法100还可以包括:
使用内存分配接口为受监控内核业务分配物理内存;
使用转换宏将物理内存对应的物理地址转换为第二对等映射区的虚拟地址;
使用内存分配接口为受监控内核业务返回第二对等映射子区的虚拟地址;
将第二对等映射子区的页表的present位置位。
其中,可以使用转换宏直接将物理内存对应的物理地址转换为第二对等映射子区的虚拟地址,但本发明实施例并不限于此。使用转换宏将物理内存对应的物理地址转换为第二对等映射子区的虚拟地址,还可以包括:
使用转换宏将物理地址转换为第一对等映射子区的虚拟地址;
使用转换宏将第一对等映射子区的虚拟地址转换为第二对等映射子区的虚拟地址。
现有技术中,转换宏将物理内存的物理地址转换为未划分的对等映射区的虚拟地址(对应于第一对等映射子区的虚拟地址),也就是说第一对等映射子区的虚拟地址与物理地址之间的相互转换与现有技术相同。
本发明实施例中,使用转换宏先将物理地址转换为第一对等映射子区的虚拟地址,并使用内存分配接口为当前的内核业务返回第一对等映射子区的虚拟地址;若判断当前的内核业务为受监控内核业务时,则再使用转换宏将第一对等映射子区的虚拟地址进一步转化为第二对等映射子区的虚拟地址,并使用内存分配接口为该受监控内核业务返回第二对等映射子区的虚拟地址。这样能够与现有技术兼容。
具体地,为受监控内核业务分配物理内存时,可以使用转换宏将内存分配接口(如slab算法接口和伙伴算法接口)的返回地址从第一对等映射子区的虚拟地址转换为第二对等映射子区的虚拟地址。
可选地,作为另一实施例,方法100还包括:
使用内存释放接口接收受监控内核业务返回的第二对等映射子区的虚拟地址;
使用转换宏将第二对等映射子区的虚拟地址转换为物理地址;
使用内存释放接口为受监控内核业务释放该物理地址对应的物理内存;
将第二对等映射子区的页表的present位清零。
其中,可以使用转换宏直接将第二对等映射子区的虚拟地址转换为物理地址,但本发明实施例并不限于此。使用转换宏将第二对等映射子区的虚拟地址转换为物理地址还可以包括:
使用转换宏将第二对等映射子区的虚拟地址转换为第一对等映射子区的虚拟地址;
使用转换宏将第一对等映射子区的虚拟地址转换为物理地址。
相应地,为受监控内核业务释放物理内存时,方法100还可以包括:使用转换宏将内存分配接口返回的第二对等映射子区的虚拟地址转换为第一对等映射子区的虚拟地址。
如前所述,本发明实施例中,受监控内核业务释放物理内存时,使用转换宏将内存分配接口返回的地址转换为第一对等映射子区的虚拟地址,这样能够与现有技术兼容。例如,当再次为内核业务分配内存时,默认为该内核业务返回第一对等映射子区的虚拟地址,如果该内核业务为受监控内核业务,则继续使用转换宏将内存分配接口返回的地址转换为第二对等映射子区的虚拟地址。
图3所示为根据本发明实施例的访问内存的方法100的原理示意图。以x86_64的虚拟地址区间为例,未划分的对等映射区的容量为64太字节(Terabyte,简称T),通过页表转换后,最终虚拟地址和物理地址的数值上就差一个偏移量(offset),例如虚拟地址0xffff880000000000+xx对应物理地址0x0+xx。为了满足对等映射区足够覆盖物理内存大小的限制条件,对等映射区可以平均划分成2个或2个以上对等映射子区,如图3中所示将对等映射区分成了4个对等映射子区,每个对等映射子区为16T。
第二对等映射子区同样满足虚拟地址和物理地址在数值上只差一个偏移量的特性,例如虚拟地址0xffff880000000000+16T+xx对应物理地址0x0+xx、虚拟地址0xffff880000000000+32T+xx对应物理地址0x0+xx、虚拟地址0xffff880000000000+48T+xx对应物理地址0x0+xx。
如图3所示,4个对等映射子区包括第一对等映射子区、第二对等映射子区、第三对等映射子区和第四对等映射子区。其中,第一对等映射子区对应原有系统任务和原有内核业务,而第二对等映射子区、第三对等映射子区和第四对等映射子区分别对应1个受监控内核业务,即分别用于监控一个内核业务。如图3中所示,能够同时最多监控3个内核业务。
如图3中右侧所示,present位置位是内存正常访问的状态,可以页表转换成功进行正常访问;而present位清零是在发生越界访问的状态,会在访问时报错提示页表转换异常,从而也就监控到了受监控内核业务内存非法访问的情况。由于内存非法访问的情况能够被监控到,且不会对内核态原有业务产生影响,从而解决了系统应对内核态内存非法访问所带来的问题。
需要说明的是,本发明实施例的访问内存的方法能够监控大多数的用户态的业务的内存非法访问。
具体地,本发明实施例主要监控由受监控内核业务直接分配的内存,如图4中的内存3,以判断是否存在内存非法访问。内存非法访问可以包括:访问已释放的内存、越界访问(如数组溢出)、访问未分配的内存以及释放不属于自身的内存。图4所示的内存1和内存2则不在本发明实施例的监控范围内。这是由于内存1是由网络驱动在系统初始化时分配的,也就是说内存1是先于受监控内核业务存在的,对内存1正常访问还是非正常访问本发明实施例无法监控,即对于飞踩的问题是监控不了的。另外图4中的内存2是由受监控内核业务调用网络驱动去分配的,也就是说内存2由网络驱动直接分配,由于反向解析内存的原始调用者非常消耗时间,因此本发明实施例也不适于监控这类内存。另外,本发明实施例也不适于监控使用其他模块分配或已经分配的内存。
一般来说,内存1和内存2在设备的内存非法访问问题中比例很少,相对而言内存3出错的概率最大,因此本发明实施例能够监控大多数的内存非法访问。
因此,本发明实施例中,通过将对等映射区划分为多个对等映射子区,使系统任务和内核业务与受监控内核业务分别使用不同的对等映射子区的虚拟地址访问物理内存,使得受监控内核业务对应的页表独立于原有系统任务和原有内核业务对应的页表,并根据受监控内核业务对应的页表的present位判断页表转换是否正常,在页表转换异常的情况下,执行缺页异常处理流程,能够避免内核态内存非法访问造成的问题,提高了系统的可靠性,进而有效减少系统死机频率。
另外,由于根据本发明实施例的访问内存的方法使得受监控内核业务在内核态的页表相对独立,受监控内核业务发生问题不会影响原有系统任务和原有内核业务,且几乎不消耗系统性能,能够实现在生产环境下的内存非法访问监测。
图5是根据本发明实施例的访问内存的方法500的示意性流程图。图5是图1的具体例子。下面结合图5的具体例子详细描述根据本发明实施例的访问内存的方法。
501、在受监控内核业务运行之前,为受监控内核业务指定第二对等映射子区。
502、为受监控内核业务分配物理内存。
具体地,如图6所示,步骤502包括:502a,使用内存分配接口为受监控内核业务分配物理内存;502b,使用转换宏将物理内存的物理地址转换为第二对等映射子区的虚拟地址;502c,使用内存分配接口为受监控内核业务返回第二对等映射子区的虚拟地址;502d,将第二对等映射子区的页表的present位置位。
需要说明的是,系统实际运行过程中,在为当前内核业务分配物理内存时,首先需要判断当前内核业务指定的是否是对等映射区的对应的物理内存:如果当前内核业务指定是对等映射区对应的物理内存,则进一步判断当前内核业务是否为受监控内核业务,如果当前内核业务是受监控内核业务则执行步骤502,如果当前业务不是受监控内核业务,则直接分配第一对等映射子区对应的物理内存;如果当前内核业务指定的是其他虚拟地址区域对应的物理内存,相应地,采用其他内存分配接口为当前内核业务分配物理内存。
503、受监控内核业务请求访问物理内存。
504、根据第二对等映射子区的present位判断页表转换是否正常:如果页表转换正常,执行步骤505;如果页表转换异常,则执行步骤507。
505、受监控内核业务访问物理内存,即访问第二对等映射子区的虚拟地址对应的物理内存。物理内存访问结束后,执行步骤506。
506、为受监控内核业务释放物理内存。
具体地,如图7所示,步骤506包括:506a,使用内存释放接口接收受监控内核业务返回的第二对等映射子区的虚拟地址;506b,使用转换宏将第二对等映射子区的虚拟地址转换为物理地址;506c,使用内存释放接口为受监控内核业务释放该物理地址对应的物理内存;506d,将第二对等映射子区的页表的present位清零。
需要说明的是,在系统实际运行过程中,内核业务释放物理内存时,首先需要判断释放的物理内存是否对应对等映射区:如果释放的物理内存对应对等映射区,还需进一步判断当前业务是否为受监控内核业务,如果是受监控内核业务则执行步骤506,如果不是受监控内核业务则直接释放第一对等映射子区的虚拟地址对应的物理内存;如果释放的内存不对应对等映射区,则相应采用其他内存释放接口释放物理内存。
507、触发缺页异常。
508、判断受监控内核业务是否注册handler:如果受监控内核业务已注册handler,执行步骤509;如果未注册handler,则执行步骤510。
509、执行受监控内核业务的handler。
510;执行缺省handler。
因此,本发明实施例中,通过将对等映射区划分为多个对等映射子区,使系统任务和内核业务与受监控内核业务分别使用不同的对等映射子区的虚拟地址访问物理内存,使得受监控内核业务对应的页表独立于原有系统任务和原有内核业务对应的页表,并根据受监控内核业务对应的页表的present位判断页表转换是否正常,在页表转换异常的情况下,执行缺页异常处理流程,能够避免内核态内存非法访问造成的问题,提高了系统的可靠性,进而有效减少系统死机频率。
根据本发明实施例的访问内存的方法可以应用于单一中央处理器(CentralProcessingUnit,简称CPU)系统架构,也可以应用于多CPU系统架构,在硬件规范定义了对等映射区概念的前提下,如果对运行在内核态的第三方业务有较高的可靠性需求,就可以应用根据本发明实施例的访问内存的方法。除了在商用环境下使用外,在公司内部的软件开发调试领域,也可以应用根据本发明实施例的访问内存的方法作为一种调试工具或方法,能够帮助开发人员尽早发现问题,节省软件开发时间,为公司节约人力、时间成本,为新产品的快速上市提供支持。
下面结合图8和图9分别描述根据本发明实施例的访问内存的理方法在服务器领域和手机领域的应用。
图8和图9所示分别为根据本发明实施例的访问内存的方法应用于服务器和手机中的系统架构示意图。
其中,用户界面(UserInterface,简称UI)可以提供可视化的界面,管理员可以通过该用户界面指定受监控内核业务,并执行相应操作;
监控配置接口可以用于配置内存分配接口和内存释放接口;
内核页表用于存储为对等映射区中的各个对等映射子区建立的页表;
内存分配/释放用于为受监控内核业务分配/释放物理内存;
受监控内核业务用于运行受监内核控业务;
注册handler用于注册受监控内核业务的handler,在受监控内核业务访问内存时由于present位未置位导致缺页异常时,提供相应的处理流程;
缺省handler用于在受监控内核业务访问内存时由于present位未置位导致缺页异常、且受监控内核业务没有注册handler时,提供相应的处理流程;
图8和图9中示出的其他模块与现有技术中实现的功能相同或相似,在此不再赘述。
在服务器领域,受监控内核业务一般为定制化的需运行在内核态的特性模块,例如以模块(module)形式加载在内核态的业务,或特定硬件的第三方驱动等。
在手机领域,受监控内核业务一般为需要穿过内核层面与特定硬件打交道的业务,该业务需修改安卓(Android)和内核(kernel)代码,把软硬件垂直打通,并在用户态提供接口,如一些自带的管家类App。例如,深度定制的用户界面(UserInterface,简称UI)、特定的应用(Application,简称App)、一些手机部件的驱动等。
下面结合图10至图12,详细描述根据本发明实施例的计算机系统。
图10是根据本发明实施例的计算机系统1000的示意性框图。计算机系统中内核态的对等映射区包括第一对等映射子区和第二对等映射子区,第一对等映射子区和第二对等映射子区具有不同的页表,原有系统任务和原有内核业务使用第一对等映射子区的虚拟地址访问物理内存。如图10所示,计算机系统1000包括:第一处理单元1010和第二处理单元1020。
第一处理单元1010,用于当受监控内核业务使用第二对等映射子区的虚拟地址请求访问对应的物理内存时,根据第二对等映射子区的页表的存在present位判断页表转换是否正常;
第二处理单元1020,用于在页表转换异常的情况下,触发缺页异常,并执行缺页异常处理流程;
第二处理单元1020还用于,用于在页表转换正常的情况下,访问物理内存。
本发明实施例中,通过使原有系统任务和原有内核业务与受监控内核业务分别使用不同的对等映射子区的虚拟地址访问物理内存,使得受监控内核业务对应的页表独立于原有系统任务和原有内核业务对应的页表,并根据受监控内核业务对应的页表的present位判断页表转换是否正常,执行相应流程,能够避免受监控内核业务的内存非法访问对内核态的影响,提高了系统的可靠性,有效减少了系统的死机频率。
具体地,第二处理单元1020具体用于:
确定受监控内核业务是否已注册错误处理函数handler;
在受监控内核业务已注册handler的情况下,执行注册的handler;
在受监控内核业务未注册handler的情况下,执行缺省handler。
可选地,第一处理单元1010还可以用于:
在受监控内核业务使用第二对等映射子区的虚拟地址请求访问对应的物理内存之前,使用内存分配接口为受监控内核业务分配物理内存;
使用转换宏将物理内存对应的物理地址转换为第二对等映射子区的虚拟地址;
使用内存分配接口为受监控内核业务返回第二对等映射子区的虚拟地址;
将第二对等映射子区的页表的present位置位。
可选地,第一处理单元1010可以具体用于:
使用转换宏将物理地址转换为第一对等映射子区的虚拟地址;
使用转换宏将第一对等映射子区的虚拟地址转换为第二对等映射子区的虚拟地址。
可选地,第一处理单元1010还可以用于:
使用内存释放接口接收所述受监控内核业务返回的所述第二对等映射子区的虚拟地址;
使用转换宏将第二对等映射子区的虚拟地址转换为物理地址;
使用内存释放接口为受监控内核业务释放物理地址对应的物理内存;
将第二对等映射子区的页表的present位清零。
可选地,第一处理单元1010可以具体用于:
使用转换宏将第二对等映射子区的虚拟地址转换为第一对等映射子区的虚拟地址;
使用转换宏将第一对等映射子区的虚拟地址转换为物理地址。
可选地,如图11所示,计算机系统1000还可以包括:
划分单元1030,用于将对等映射区划分为第一对等映射子区和第二对等映射子区;
建立单元1040,用于建立第二对等映射子区的页表,并将第二对等映射子区的页表的present位清零;
建立单元1040还用于,建立缺省handler,缺省handler用于处理缺页异常;
配置单元1050,用于配置转换宏,转换宏用于实现对等映射区的虚拟地址与物理地址之间的转换,以及第一对等映射子区的虚拟地址与第二对等映射子区的虚拟地址之间的转换;
配置单元1050还用于,配置内存分配接口,内存分配接口用于为受监控内核业务返回第二对等映射子区的虚拟地址;
配置单元1050还用于,配置内存释放接口,内存释放接口用于为受监控内核业务释放物理内存。
应理解,根据本发明实施例的计算机系统1000可对应于根据本发明实施例的访问内存的方法100,并且计算机系统1000中的各个模块/单元的上述和其它操作和/或功能分别为了实现图1的方法100的相应流程,为了简洁,在此不再赘述。
本发明实施例中,通过使原有系统任务和原有内核业务与受监控内核业务分别使用不同的对等映射子区的虚拟地址访问物理内存,使得受监控内核业务对应的页表独立于原有系统任务和原有内核业务对应的页表,并根据受监控内核业务对应的页表的present位判断页表转换是否正常,执行相应流程,能够避免受监控内核业务的内存非法访问对内核态的影响,提高了系统的可靠性,有效减少了系统的死机频率。
图12是根据本发明实施例的计算机系统1200的示意性框图。计算机系统中内核态的对等映射区包括第一对等映射子区和第二对等映射子区,第一对等映射子区和第二对等映射子区具有不同的页表,原有系统任务和原有内核业务使用第一对等映射子区的虚拟地址访问物理内存。如图12所示,计算机系统1200包括处理器1210、存储器1220和总线系统1230,处理器1210和存储器1220通过总线系统1230相连。存储器1220用于存储指令,处理器1210用于执行存储器1220存储的指令。应理解,计算机系统400还可以包括其他通用部件,本发明实施例在此不作任何限制。
其中,处理器1220用于:
当受监控内核业务使用第二对等映射子区的虚拟地址请求访问对应的物理内存时,根据第二对等映射子区的页表的存在present位判断页表转换是否正常;
在页表转换异常的情况下,触发缺页异常,并执行缺页异常处理流程;
在页表转换正常的情况下,访问物理内存。
本发明实施例中,通过使原有系统任务和原有内核业务与受监控内核业务分别使用不同的对等映射子区的虚拟地址访问物理内存,使得受监控内核业务对应的页表独立于原有系统任务和原有内核业务对应的页表,并根据受监控内核业务对应的页表的present位判断页表转换是否正常,执行相应流程,能够避免受监控内核业务的内存非法访问对内核态的影响,提高了系统的可靠性,有效减少了系统的死机频率。
应理解,在本发明实施例中,该处理器1210可以是CPU,该处理器1210还可以是其他通用处理器、数字信号处理器(DigitalSignalProcessing,简称DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,简称ASIC)、现场可编程门阵列(Field-ProgrammableGateArray,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
该存储器1220可以包括只读存储器和随机存取存储器,并向处理器1210提供指令和数据。存储器1220的一部分还可以包括非易失性随机存取存储器。例如,存储器1220还可以存储设备类型的信息。
该总线系统1230除包括数据总线之外,还可以包括电源总线、控制总线和状态信号总线等。但是为了清楚说明起见,在图中将各种总线都标为总线系统1230。
在实现过程中,上述方法的各步骤可以通过处理器1210中的硬件的集成逻辑电路或者软件形式的指令完成。结合本发明实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器、闪存、只读存储器、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器1220,处理器1210读取存储器1220中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
可选地,处理器1210具体用于:
确定受监控内核业务是否已注册错误处理函数handler;
在受监控内核业务已注册handler的情况下,执行注册的handler;
在受监控内核业务未注册handler的情况下,执行缺省handler。
可选地,处理器1210还可以用于:
在受监控内核业务使用第二对等映射子区的虚拟地址请求访问对应的物理内存之前,使用内存分配接口为受监控内核业务分配物理内存;
使用转换宏将物理内存对应的物理地址转换为第二对等映射子区的虚拟地址;
使用内存分配接口为受监控内核业务返回第二对等映射子区的虚拟地址;
将第二对等映射子区的页表的present位置位。
可选地,处理器1210可以具体用于:
使用转换宏将物理地址转换为第一对等映射子区的虚拟地址;
使用转换宏将第一对等映射子区的虚拟地址转换为第二对等映射子区的虚拟地址。
可选地,处理器1210还可以用于:
使用内存释放接口接收所述受监控内核业务返回的所述第二对等映射子区的虚拟地址;
使用转换宏将第二对等映射子区的虚拟地址转换为物理地址;
使用内存释放接口为受监控内核业务释放物理地址对应的物理内存;
将第二对等映射子区的页表的present位清零。
可选地,处理器1210可以具体用于:
使用转换宏将第二对等映射子区的虚拟地址转换为第一对等映射子区的虚拟地址;
使用转换宏将第一对等映射子区的虚拟地址转换为物理地址。
可选地,处理器1210还可以用于:
将对等映射区划分为第一对等映射子区和第二对等映射子区;
建立第二对等映射子区的页表,并将第二对等映射子区的页表的present位清零;
建立缺省handler,缺省handler用于处理缺页异常;
配置转换宏,转换宏用于实现对等映射区的虚拟地址与物理地址之间的转换,以及第一对等映射子区的虚拟地址与第二对等映射子区的虚拟地址之间的转换;
配置内存分配接口,内存分配接口用于为受监控内核业务返回第二对等映射子区的虚拟地址;
配置内存释放接口,内存释放接口用于为受监控内核业务释放物理内存。
应理解,根据本发明实施例的计算机系统1200可对应于根据本发明实施例的访问内存的方法100以及根据本发明实施例的计算机系统1000,并且计算机系统1200中的各个模块/单元的上述和其它操作和/或功能分别为了实现图1的方法100的相应流程,为了简洁,在此不再赘述。
本发明实施例中,通过使原有系统任务和原有内核业务与受监控内核业务分别使用不同的对等映射子区的虚拟地址访问物理内存,使得受监控内核业务对应的页表独立于原有系统任务和原有内核业务对应的页表,并根据受监控内核业务对应的页表的present位判断页表转换是否正常,执行相应流程,能够避免受监控内核业务的内存非法访问对内核态的影响,提高了系统的可靠性,有效减少了系统的死机频率。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,RandomAccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (14)
1.一种访问内存的方法,其特征在于,内核态的对等映射区包括第一对等映射子区和第二对等映射子区,所述第一对等映射子区和所述第二对等映射子区具有不同的页表,原有系统任务和原有内核业务使用所述第一对等映射子区的虚拟地址访问物理内存,所述方法包括:
当受监控内核业务使用所述第二对等映射子区的虚拟地址请求访问对应的物理内存时,根据所述第二对等映射子区的页表的存在present位判断页表转换是否正常;
在所述页表转换异常的情况下,触发缺页异常,并执行缺页异常处理流程;
在所述页表转换正常的情况下,访问所述物理内存。
2.根据权利要求1所述的方法,其特征在于,所述执行缺页异常处理流程,包括:
确定所述受监控内核业务是否已注册错误处理函数handler;
在所述受监控内核业务已注册handler的情况下,执行所述注册的handler;
在所述受监控内核业务未注册handler的情况下,执行缺省handler。
3.根据权利要求1或2所述的方法,其特征在于,在所述受监控内核业务使用所述第二对等映射子区的虚拟地址请求访问对应的物理内存之前,所述方法还包括:
使用内存分配接口为所述受监控内核业务分配所述物理内存;
使用转换宏将所述物理内存对应的物理地址转换为所述第二对等映射子区的虚拟地址;
使用所述内存分配接口为所述受监控内核业务返回所述第二对等映射子区的虚拟地址;
将所述第二对等映射子区的页表的present位置位。
4.根据权利要求3所述的方法,其特征在于,还包括:
使用内存释放接口接收所述受监控内核业务返回的所述第二对等映射子区的虚拟地址;
使用所述转换宏将所述第二对等映射子区的虚拟地址转换为所述物理地址;
使用所述内存释放接口为所述受监控内核业务释放所述物理地址对应的所述物理内存;
将所述第二对等映射子区的页表的present位清零。
5.根据权利要求4所述的方法,其特征在于,使用所述转换宏将所述第二对等映射子区的虚拟地址转换为所述物理地址,包括:
使用所述转换宏将所述第二对等映射子区的虚拟地址转换为所述第一对等映射子区的虚拟地址;
使用所述转换宏将所述第一对等映射子区的虚拟地址转换为所述物理地址。
6.根据权利要求3至5中任一项所述的方法,其特征在于,所述使用转换宏将所述物理内存对应的物理地址转换为所述第二对等映射子区的虚拟地址,包括:
使用所述转换宏将所述物理地址转换为所述第一对等映射子区的虚拟地址;
使用所述转换宏将所述第一对等映射子区的虚拟地址转换为所述第二对等映射子区的虚拟地址。
7.根据权利要求1至6中任一项所述的方法,其特征在于,还包括:
将所述对等映射区划分为所述第一对等映射子区和所述第二对等映射子区;
建立所述第二对等映射子区的页表,并将所述第二对等映射子区的页表的present位清零;
建立缺省handler,所述缺省handler用于处理所述缺页异常;
配置转换宏,所述转换宏用于实现所述对等映射区的虚拟地址与物理地址之间的转换,以及所述第一对等映射子区的虚拟地址与所述第二对等映射子区的虚拟地址之间的转换;
配置内存分配接口,所述内存分配接口用于为所述受监控内核业务返回所述第二对等映射子区的虚拟地址;
配置内存释放接口,所述内存释放接口用于为所述受监控内核业务释放所述物理内存。
8.一种计算机系统,其特征在于,内核态的对等映射区包括第一对等映射子区和第二对等映射子区,所述第一对等映射子区和所述第二对等映射子区具有不同的页表,原有系统任务和原有内核业务使用所述第一对等映射子区的虚拟地址访问物理内存,所述计算机系统包括:
第一处理单元,用于当受监控内核业务使用所述第二对等映射子区的虚拟地址请求访问对应的物理内存时,根据所述第二对等映射子区的页表的存在present位判断页表转换是否正常;
第二处理单元,用于在所述页表转换异常的情况下,触发缺页异常,并执行缺页异常处理流程;
所述第二处理单元还用于,用于在所述页表转换正常的情况下,访问所述物理内存。
9.根据权利要求8所述的计算机系统,其特征在于,所述第二处理单元具体用于:
确定所述受监控内核业务是否已注册错误处理函数handler;
在所述受监控内核业务已注册handler的情况下,执行所述注册的handler;
在所述受监控内核业务未注册handler的情况下,执行缺省handler。
10.根据权利要求8或9所述的计算机系统,其特征在于,所述第一处理单元还用于:
在所述受监控内核业务使用所述第二对等映射子区的虚拟地址请求访问对应的物理内存之前,使用内存分配接口为所述受监控内核业务分配所述物理内存;
使用转换宏将所述物理内存对应的物理地址转换为所述第二对等映射子区的虚拟地址;
使用所述内存分配接口为所述受监控内核业务返回所述第二对等映射子区的虚拟地址;
将所述第二对等映射子区的页表的present位置位。
11.根据权利要求10所述的计算机系统,其特征在于,所述第一处理单元还用于:
使用内存释放接口接收所述受监控内核业务返回的所述第二对等映射子区的虚拟地址;
使用所述转换宏将所述第二对等映射子区的虚拟地址转换为所述物理地址;
使用内存释放接口为所述受监控内核业务释放所述物理地址对应的所述物理内存;
将所述第二对等映射子区的页表的present位清零。
12.根据权利要求11所述的计算机系统,其特征在于,所述第一处理单元具体用于:
使用所述转换宏将所述第二对等映射子区的虚拟地址转换为所述第一对等映射子区的虚拟地址;
使用所述转换宏将所述第一对等映射子区的虚拟地址转换为所述物理地址。
13.根据权利要求10至12中任一项所述的计算机系统,其特征在于,所述第一处理单元具体用于:
使用所述转换宏将所述物理地址转换为所述第一对等映射子区的虚拟地址;
使用所述转换宏将所述第一对等映射子区的虚拟地址转换为所述第二对等映射子区的虚拟地址。
14.根据权利要求7至13中任一项所述的计算机系统,其特征在于,还包括:
划分单元,用于将所述对等映射区划分为所述第一对等映射子区和所述第二对等映射子区;
建立单元,用于建立所述第二对等映射子区的页表,并将所述第二对等映射子区的页表的present位清零;
所述建立单元还用于,建立缺省handler,所述缺省handler用于处理所述缺页异常;
配置单元,用于配置转换宏,所述转换宏用于实现所述对等映射区的虚拟地址与物理地址之间的转换,以及所述第一对等映射子区的虚拟地址与所述第二对等映射子区的虚拟地址之间的转换;
所述配置单元还用于,配置内存分配接口,所述内存分配接口用于为所述受监控内核业务返回所述第二对等映射子区的虚拟地址;
所述配置单元还用于,配置内存释放接口,所述内存释放接口用于为所述受监控内核业务释放所述物理内存。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510531948.4A CN105159838B (zh) | 2015-08-27 | 2015-08-27 | 访问内存的方法及计算机系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510531948.4A CN105159838B (zh) | 2015-08-27 | 2015-08-27 | 访问内存的方法及计算机系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105159838A true CN105159838A (zh) | 2015-12-16 |
CN105159838B CN105159838B (zh) | 2018-06-26 |
Family
ID=54800700
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510531948.4A Active CN105159838B (zh) | 2015-08-27 | 2015-08-27 | 访问内存的方法及计算机系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105159838B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105718357A (zh) * | 2016-01-22 | 2016-06-29 | 烽火通信科技股份有限公司 | 一种内存监视的方法 |
CN106843906A (zh) * | 2017-02-22 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种调整系统页面大小的方法和服务器 |
CN109783220A (zh) * | 2017-11-10 | 2019-05-21 | 上海寒武纪信息科技有限公司 | 内存分配方法、装置、计算机系统及存储介质 |
CN110383254A (zh) * | 2016-12-01 | 2019-10-25 | 安培计算有限责任公司 | 优化与网络节点相关联的内存映射 |
CN113467981A (zh) * | 2020-03-31 | 2021-10-01 | 华为技术有限公司 | 异常处理的方法和装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102369518A (zh) * | 2011-08-31 | 2012-03-07 | 华为技术有限公司 | 管理计算机系统内存的方法、内存管理单元和计算机系统 |
CN103198028A (zh) * | 2013-03-18 | 2013-07-10 | 华为技术有限公司 | 一种内存数据迁移方法、装置及系统 |
EP2772853A1 (en) * | 2011-10-31 | 2014-09-03 | Huawei Technologies Co., Ltd | Method and device for building memory access model |
CN104572313A (zh) * | 2013-10-22 | 2015-04-29 | 华为技术有限公司 | 一种进程间的通信方法及装置 |
CN104850787A (zh) * | 2015-02-11 | 2015-08-19 | 数据通信科学技术研究所 | 基于高保证内核模块的移动终端操作系统及其实现方法 |
-
2015
- 2015-08-27 CN CN201510531948.4A patent/CN105159838B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102369518A (zh) * | 2011-08-31 | 2012-03-07 | 华为技术有限公司 | 管理计算机系统内存的方法、内存管理单元和计算机系统 |
EP2772853A1 (en) * | 2011-10-31 | 2014-09-03 | Huawei Technologies Co., Ltd | Method and device for building memory access model |
CN103198028A (zh) * | 2013-03-18 | 2013-07-10 | 华为技术有限公司 | 一种内存数据迁移方法、装置及系统 |
CN104572313A (zh) * | 2013-10-22 | 2015-04-29 | 华为技术有限公司 | 一种进程间的通信方法及装置 |
CN104850787A (zh) * | 2015-02-11 | 2015-08-19 | 数据通信科学技术研究所 | 基于高保证内核模块的移动终端操作系统及其实现方法 |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105718357A (zh) * | 2016-01-22 | 2016-06-29 | 烽火通信科技股份有限公司 | 一种内存监视的方法 |
CN105718357B (zh) * | 2016-01-22 | 2018-12-28 | 烽火通信科技股份有限公司 | 一种内存监视的方法 |
CN110383254A (zh) * | 2016-12-01 | 2019-10-25 | 安培计算有限责任公司 | 优化与网络节点相关联的内存映射 |
CN110383254B (zh) * | 2016-12-01 | 2023-06-23 | 安培计算有限责任公司 | 优化与网络节点相关联的内存映射 |
CN106843906A (zh) * | 2017-02-22 | 2017-06-13 | 郑州云海信息技术有限公司 | 一种调整系统页面大小的方法和服务器 |
CN106843906B (zh) * | 2017-02-22 | 2021-02-02 | 苏州浪潮智能科技有限公司 | 一种调整系统页面大小的方法和服务器 |
CN109783220A (zh) * | 2017-11-10 | 2019-05-21 | 上海寒武纪信息科技有限公司 | 内存分配方法、装置、计算机系统及存储介质 |
CN109783220B (zh) * | 2017-11-10 | 2020-12-11 | 安徽寒武纪信息科技有限公司 | 内存分配方法、装置、计算机系统及存储介质 |
CN113467981A (zh) * | 2020-03-31 | 2021-10-01 | 华为技术有限公司 | 异常处理的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105159838B (zh) | 2018-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6839892B2 (en) | Operating system debugger extensions for hypervisor debugging | |
US20220245242A1 (en) | Detection of compromised storage device firmware | |
US6910160B2 (en) | System, method, and computer program product for preserving trace data after partition crash in logically partitioned systems | |
CN105159838A (zh) | 访问内存的方法及计算机系统 | |
US6834340B2 (en) | Mechanism to safely perform system firmware update in logically partitioned (LPAR) machines | |
US7484127B2 (en) | Method and system for preserving crash dump in a diskless system | |
CN108369544B (zh) | 计算系统中延期的服务器恢复方法和设备 | |
US8707017B2 (en) | Method and system for managing core configuration information | |
US6971002B2 (en) | Method, system, and product for booting a partition using one of multiple, different firmware images without rebooting other partitions | |
KR19980033217A (ko) | 웹 바이오스를 통한 전자시스템의 기술적 서포트를 제공하기위한 시스템 및 방법 | |
JP6032360B2 (ja) | コンフィグレーション制御システム及びコンフィグレーション制御方法 | |
US20040064718A1 (en) | System, method, and computer program product for prohibiting unauthorized access to protected memory regions | |
US11231854B2 (en) | Methods and apparatus for estimating the wear of a non-volatile memory | |
CN109828774B (zh) | 一种服务器系统及其启动方法 | |
US11989548B2 (en) | Pushing a firmware update patch to a computing device via an out-of-band path | |
US11226755B1 (en) | Core dump in a storage device | |
CN112667422A (zh) | 内存故障处理方法及装置、计算设备、存储介质 | |
CN105868038B (zh) | 内存错误处理方法及电子设备 | |
US11977753B2 (en) | BIOS NVRAM storage extension system and method for secure and seamless access for various boot architectures | |
US20030131279A1 (en) | System, method, and computer program product for preventing machine crashes due to hard errors in logically partitioned systems | |
CN114385537A (zh) | 一种页槽号动态分配方法、装置、设备及介质 | |
CN106445573B (zh) | 固件升级方法、装置及高速外围设备互联集群系统 | |
CN115298658A (zh) | 针对改进的系统管理来重载硬件引脚的方法 | |
US6915460B2 (en) | Method, apparatus, and program for service processor surveillance with multiple partitions | |
JP2019114197A (ja) | コンピュータシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20211227 Address after: 450046 Floor 9, building 1, Zhengshang Boya Plaza, Longzihu wisdom Island, Zhengdong New Area, Zhengzhou City, Henan Province Patentee after: xFusion Digital Technologies Co., Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Patentee before: HUAWEI TECHNOLOGIES Co.,Ltd. |