一种内存分配、释放方法及装置制造方法及图纸

技术编号:4008577 阅读:192 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种内存分配、释放方法及装置,内存分配方法包括:在加载程序时,根据程序预先设置的实时属性,为程序的静态段占用的逻辑页分配对应的物理页;在程序运行过程中,记录逻辑内存中每个逻辑页使用者的数量;当程序的动态段申请的逻辑内存所在的逻辑页由空闲变为有使用者使用时,为动态段申请的逻辑内存所在的逻辑页分配对应的物理页。内存释放方法包括:在程序运行过程中,记录当前逻辑内存中每个逻辑页使用者的数量;当逻辑页由有使用者使用转为空闲时,释放该逻辑页对应的物理页。本发明专利技术由内核主动为程序的静态段分配物理页,以及根据程序对逻辑页的需求为其分配和释放物理页,满足了程序对于实时性的要求。

【技术实现步骤摘要】

本专利技术涉及内存管理
,尤其涉及一种内存分配、释放方法及装置
技术介绍
在现代操作系统中,虚拟内存技术指的是程序访问逻辑内存(或称为逻辑空间) 的地址(通常称为逻辑地址)并不是实际的物理内存地址,而是由内核的内存管理单元 (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器件基础上的虚拟内存技术、请求页调度和交换技术, 存在下述不足现有的请求页调度技术中,当程序第一次访问读写逻辑内存时,会引发缺页中断, 被中断的程序会在中断处继续执行,对程序会造成延迟,对实时性要求较高的程序例如网 络交换设备所使用的程序其处理实时性的事件的性能会造成影响。现有的“交换”技术中,基于跟踪各 个物理页面的具体使用情况,来决定哪些物理 页需要换出,那些被换出的物理页可能是程序已释放的不再需要使用的逻辑页的物理页, 也可能是程序还未释放的逻辑页所对应的物理页,只是最近一个时间段内没有被访问过, 内核是基于物理页的历史使用情况来推算该物理页未来的使用情况,可能某个物理页面刚 刚被换出到交换设备中,程序又要访问这个物理页面,需要立即再将其换入到内存中,内核 无法准确地根据程序的需要进行换页操作,这种“换页”的内存管理方式,对于实时性要求 很高的程序来说,显然是很缺乏效率的,无法满足其实时性的要求。并且,在支持“交换”的内存管理技术的设备中,当某个需要访问的逻辑页对应的 物理页已经被换出时,需要等待再将该物理页换回物理内存中,由于物理页的换入/换出 的时间开销远大于直接访问内存的时间,这种换页技术,无法满足实时性程序对于时延的 要求。
技术实现思路
本专利技术提供一种内存分配、释放方法及装置,用以解决现有的内存管理方法无法 满足程序的实时性要求的问题。本专利技术提供的一种内存分配方法,包括在加载程序时,根据所述程序预先设置的实时属性,为所述程序的静态段占用的 逻辑页分配对应的物理页;在所述程序运行过程中,记录逻辑内存中每个逻辑页使用者的数量;当所述程序 的动态段申请的逻辑内存所在的逻辑页由空闲变为有使用者使用时,为所述动态段申请的 逻辑内存所在的逻辑页分配对应的物理页。本专利技术实施例提供的一种内存的释放方法,包括在所述程序运行过程中,记录当前逻辑内存中每个逻辑页使用者的数量;当逻辑页由有使用者使用转为空闲时,释放该逻辑页对应的物理页。本专利技术实施例提供的一种内存分配装置,包括静态段分配模块,用于在加载程序时,根据所述程序预先设置的实时属性,为所述 程序的静态段占用的逻辑页分配对应的物理页;动态段分配模块,用于在所述程序运行过程中,记录逻辑内存中每个逻辑页使用 者的数量;当所述程序的动态段申请的逻辑内存所在的逻辑页由空闲变为有使用者使用 时,为所述动态段申请的逻辑内存所在的逻辑页分配对应的物理页。本专利技术实施例提供的一种内存的释放装置,包括记录模块,用于在所述程序运行过程中,记录当前逻辑内存中每个逻辑页使用者 的数量;释放模块,用于当逻辑页由有使用者使用转为空闲时,释放该逻辑页对应的物理页。本专利技术有益效果包括本专利技术实施例提供的内存分配方法及装置,在记载程序时,主动为程序的静态段占用的逻辑页分配对应的物理页;在程序运行过程中,如果程序动态段申请的逻辑内存所 在的逻辑页由空闲变为有使用者使用时,为动态段申请的逻辑内存所在的逻辑页分配对应 的物理页,在本专利技术实施例中,主动为静态段占用的逻辑页分配对应的物理页,并为程序需 要使用的逻辑页分配对应的物理页,这样避免了现有“请求页调度”技术中,程序第一次访 问逻辑内存所在的逻辑页时,由于逻辑页预先未分配对应的物理页,触发缺页中断,在缺页 中断处理过程中才为逻辑页分配物理页,从而引发程序处理时延的问题,保证了程序对于 实时性的要求。本专利技术实施例提供的内存释放方法及装置,记录当前逻辑内存中每个逻辑页使用 者的数量,当逻辑页不再有使用者使用时,释放该逻辑页对应的物理页,本专利技术实施例提供 的内存释放方法及装置根据程序的需要来释放逻辑页对应的物理页,避免了现有的“交换” 技术中,某个物理页面刚刚被换出到交换设备中,程序又要访问这个物理页面,需要立即再 将其换入到内存中,内核无法准确地根据程序的需要进行换页操作,无法满足其实时性的 要求的问题。附图说明图1为现有技术的页表的示意图;图2为本专利技术实施例提供的内存分配方法的流程图;图3为本专利技术实施例提供的内存释放方法的流程图;图4为本专利技术实施例提供的内存分配装置的结构示意图;图5为本专利技术实施例提供的动态段分配模块的结构示意图;图6为本专利技术实施例提供的内存释放装置的结构示意图;图7为本专利技术实施例提供本文档来自技高网
...

【技术保护点】
一种内存分配方法,其特征在于,包括:在加载程序时,根据所述程序预先设置的实时属性,为所述程序的静态段占用的逻辑页分配对应的物理页;在所述程序运行过程中,记录逻辑内存中每个逻辑页使用者的数量;当所述程序的动态段申请的逻辑内存所在的逻辑页由空闲变为有使用者使用时,为所述动态段申请的逻辑内存所在的逻辑页分配对应的物理页。

【技术特征摘要】

【专利技术属性】
技术研发人员:马晓靖
申请(专利权)人:北京星网锐捷网络技术有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1