[发明专利]一种内存分配、释放方法及装置有效
申请号: | 201010187309.8 | 申请日: | 2010-05-21 |
公开(公告)号: | CN101859279A | 公开(公告)日: | 2010-10-13 |
发明(设计)人: | 马晓靖 | 申请(专利权)人: | 北京星网锐捷网络技术有限公司 |
主分类号: | G06F12/02 | 分类号: | G06F12/02 |
代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 郭润湘 |
地址: | 100036 北京市海*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 分配 释放 方法 装置 | ||
技术领域
本发明涉及内存管理技术领域,尤其涉及一种内存分配、释放方法及装置。
背景技术
在现代操作系统中,虚拟内存技术指的是:程序访问逻辑内存(或称为逻辑空间)的地址(通常称为逻辑地址)并不是实际的物理内存地址,而是由内核的内存管理单元(MMU,Memory Manage Unit)器件将程序访问的逻辑内存的地址映射为物理地址。地址映射管理的基本内存单元为“页”记录逻辑地址和物理地址映射关系的信息结构称为“页表”,内核的内存管理模块为每个程序建立一个页表,页表记录了程序(即应用程序)逻辑页的基本信息如读写权限、是否已分配对应的物理页、逻辑页对应的物理页(如果有)的页号等,页表供MMU器件使用,在程序运行访问内存时MMU器件能够自动完成逻辑页到物理页的转换过程。
一个简单的页表如图1所示,系统中有程序A和程序B,它们的内存空间分别包含4个逻辑页,而系统的物理内存的总数为6个物理页。程序A的第0个逻辑页尚未分配物理页,图中标为‘x’,第1个逻辑页映射到第0个物理页,第2个逻辑页映射到第4个物理页中,等等。当程序A访问第1个逻辑页时,MMU器件根据它的页表来控制访问到物理页0。
内核的内存管理模块在为应用程序分配物理内存时,并不为这些空间逻辑页分配物理页,而是在页表中标记这些逻辑页的物理页未分配。当程序访问这些未分配物理页的逻辑页时,会触发“缺页中断”处理过程,在缺页中断处理过程中,在确认内存访问的合法性之后,才为该逻辑页分配对应的物理页,并在页表中填写物理页号,这种内存管理技术称为请求页调度。
利用虚拟内存和请求页调度技术,允许一个系统内运行的所有程序所需逻辑内存总和大于系统可用物理内存总和,或者一个程序的逻辑内存需求就可大于整个系统的可用物理内存总和。根据程序运行的局部性原理:通常在一个时间段内程序对内存的访问总是集中在某个较小的内存区域内,因此程序运行时不需要将所有程序及数据都加载于逻辑内存中,而是将最近要使用的内容置于物理内存中,对于那些最近不常使用的物理页,可以将其换出存储到交换设备(通常是硬盘)中,而将物理内存分配给其它程序使用。这种内存管理技术叫做“交换”。当该程序访问已被换出的物理页对应的逻辑页时会触发缺页中断,在缺页中断处理程序中,内核的内存管理模块为其重新分配一个物理页(不一定是换出前的物理页),将逻辑页对应内容读取到重新分配的物理页中,并相应修改页表的内容。
内核的内存管理模块在空闲的物理内存小于某个预设值时,要有选择的将一部分正在使用的物理页换出到交换设备中,这样当缺页中断产生时,总能有空闲的物理页分配给程序。在如何选择换出的物理页面时,最常见使用的算法是最近最少使用(Least Recently Used,LRU)算法,这种算法的设计是基于程序的局部性原理:如果一个程序在过去的一个时间段内未使用这个物理页,那么它在未来的一个时间段内不使用这个物理页的概率也比较大。
现有操作系统建立在MMU器件基础上的虚拟内存技术、请求页调度和交换技术,存在下述不足:
现有的请求页调度技术中,当程序第一次访问读写逻辑内存时,会引发缺页中断,被中断的程序会在中断处继续执行,对程序会造成延迟,对实时性要求较高的程序例如网络交换设备所使用的程序其处理实时性的事件的性能会造成影响。
现有的“交换”技术中,基于跟踪各个物理页面的具体使用情况,来决定哪些物理页需要换出,那些被换出的物理页可能是程序已释放的不再需要使用的逻辑页的物理页,也可能是程序还未释放的逻辑页所对应的物理页,只是最近一个时间段内没有被访问过,内核是基于物理页的历史使用情况来推算该物理页未来的使用情况,可能某个物理页面刚刚被换出到交换设备中,程序又要访问这个物理页面,需要立即再将其换入到内存中,内核无法准确地根据程序的需要进行换页操作,这种“换页”的内存管理方式,对于实时性要求很高的程序来说,显然是很缺乏效率的,无法满足其实时性的要求。
并且,在支持“交换”的内存管理技术的设备中,当某个需要访问的逻辑页对应的物理页已经被换出时,需要等待再将该物理页换回物理内存中,由于物理页的换入/换出的时间开销远大于直接访问内存的时间,这种换页技术,无法满足实时性程序对于时延的要求。
发明内容
本发明提供一种内存分配、释放方法及装置,用以解决现有的内存管理方法无法满足程序的实时性要求的问题。
本发明提供的一种内存分配方法,包括:
在加载程序时,根据所述程序预先设置的实时属性,为所述程序的静态段占用的逻辑页分配对应的物理页;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京星网锐捷网络技术有限公司,未经北京星网锐捷网络技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010187309.8/2.html,转载请声明来源钻瓜专利网。