嵌入式虚拟化内存动态分配方法及系统的制作方法

文档序号:6598889阅读:459来源:国知局
专利名称:嵌入式虚拟化内存动态分配方法及系统的制作方法
技术领域
本发明涉及嵌入式虚拟化领域。
背景技术
随着企业硬件成本的持续增长,虚拟化技术由于其降成本和安全性等特点得到了长足发展,但嵌入式虚拟化目前还处于初始阶段,传统嵌入式虚拟化采用固定内存分配的方式,即虚拟对象如果需要512M内存,则在主机内存中固定划分512M内存给虚拟对象的内存使用,不考虑实时的内存需求,而具体应用中,虽然虚拟对象需要的内存最大为512M,但是并不意味着该512M内存需要每时每刻被占用,因此,分配固定内存空间的做法会导致内存浪费,进一步,对于嵌入式虚拟化而言,如果单主机支持多台嵌入式虚拟化系统,则导致的内存浪费更为严重。本发明提出的嵌入式虚拟化内存动态分配方法及系统能根据嵌入式虚拟化设备的动态需求按需分配映射内存空间,从而从整体上节约内存使用量,进一步达到降低嵌入式虚拟化硬件成本的目的。

发明内容
本发明提出的嵌入式虚拟化内存动态分配系统包含内存管理模块,嵌入式虚拟机内存监测模块及嵌入式虚拟机模块。其系统架构图如图1所示,其中虚拟内存监测模块用来监测虚拟机系统实时的内存使用情况,监测实时虚拟机内存申请和释放请求以及大小;内存管理模块用来根据虚拟内存监测模块捕获的指令,对物理内存进行动态管理;虚线右侧为嵌入式虚拟机部分,包括虚拟硬件及嵌入式操作系统以及应用等。嵌入式虚拟机模块用来生成嵌入式硬件虚拟环境并运行嵌入式操作系统,并在嵌入式操作系统之上执行各种嵌入式应用。进一步地,该系统执行流程如下1、初始化嵌入式虚拟机,计算嵌入式虚拟机内存分配固定值;2、嵌入式虚拟机内存逻辑内存空间建立,该假象空间并不真正占用物理内存,仅用来与嵌入式虚拟机操作系统兼容;3、预分配部分物理内存作为初始状态嵌入式虚拟机占用内存,预分配部分小于嵌入式虚拟机所需内存,并记载物理内存分配表;4、建立嵌入式虚拟机内存和真实预分配内存的映射机制;5、嵌入式虚拟机启动,如未执行关闭虚拟机操作,执行第6步,否则执行第7步;6、检索虚拟机内存状况,并记录占用空间需求,如占用空间大于等于已分配内存空间,则另分配额外内存空间,内存额外分配空间需满足内存额外分配空间>=虚拟机所需内存空间-已分配内存空间,同时,需满足条件,已分配内存<=假象内存值;如占用空间小于已分配内存空间,则缩减已分配内存空间,缩减量需满足缩减量< 已分配内存空间-虚拟机所需内存空间;无论是新增内存空间或者缩减内存空间,执行后,更新嵌入式内存和真实分配内存的映射机制;7、释放已分配内存。进一步地,内存分配以页面为单位,所以内存更新先以兆字节计算数值,然后转化为所需内存页。计算额外分配空间值采用求模+1的方式,计算内存缩减量采用求模的方式。进一步地,内存动态更新的过程中,为处理简单,可采用比内存页更大单元的分配方法,即内存更新先以兆字节计算数值,然后转化为所需单位存储空间,例如,以64页为基本单元。进一步地,启动虚拟机预分配物理单元可根据启动占用内存大小选择合适的预分配单元,也可固定分配一定的数值,例如,分配虚拟机操作系统所定义内存单元的1/4。进一步地,针对单台服务器运行多个嵌入式虚拟机的状况,其物理内存和嵌入式虚拟机实时内存可建立整体的映射管理机制,需要实时统计未分配单元且更新释放单元, 将实时的未分配单元纳入整体待分配内存池统一管理,可根据虚拟机应用环境不同设置不同优先级,建立整体的调度机制。进一步地,该系统的初始时的逻辑内存空间建立是一假象,即通知操作系统已成功分配满足操作系统需求的内存空间,但真实物理空间并未分配或只做了预分配,并未完全分配。进一步地,该系统不需要修改嵌入式操作系统,而是在虚拟机监控层增加实时内存预占有的监控机制。


图1是嵌入式虚拟化内存动态分配系统架构图
具体实施例方式本实施例虚拟化操作系统为Android 1. 5操作系统,虚拟硬件内存为256MB。首先,在虚拟内存映射模块中设置假象内存值256M,虚拟机监测硬件值为假象内存值256M,接下来,为该操作系统预分配固定内存空间128M,并初始化内存映射表,将该 128M内存空间锁定为虚拟机专用空间。虚拟机启动后,通过虚拟机内存监测模块动态监测实时内存需求,如已分配空间不足,则以32MB为基本单位重新分配,例如,已分配空间为128MB,实时需要内存空间为 188MB,则所需新的内存块为MOD((188-128)/32)+1 = 2,则需额外分配内存空间为2个 32MB内存块,实时需要内存空间为92MB,则缩减内存块为MOD ((128-92) /32) = 1,则缩减内存为1块32M内存,每次更新后,更新内存映射表。虚拟机关闭时,虚拟机内存监测模块监测操作系统关闭状态,当操作系统关闭后, 发布关闭指令给内存管理模块,释放虚拟机锁定内存。多嵌入式虚拟机同时运行时,内存管理单元增加响应调度机制,在实施中采用轮询机制,即根据内存更新请求的时间,按时间先后次序响应,每个嵌入式虚拟机拥有独立的内存映射表,内存管理单元提供整体的内存使用状况表。 本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.嵌入式虚拟化内存动态分配方法及系统,其方法通过预分配小于实际需求内存,实时监测内存需求状况,动态更新内存分配空间。其系统包括内存管理模块、嵌入式虚拟机内存监测模块及嵌入式虚拟机模块。
2.根据权利要求1所述的方法,其处理流程包括1)初始化嵌入式虚拟机,计算嵌入式虚拟机内存分配固定值;2)嵌入式虚拟机内存逻辑内存空间建立,该假象空间并不真正占用物理内存,仅用来与嵌入式虚拟机操作系统兼容;3)预分配部分物理内存作为初始状态嵌入式虚拟机占用内存,预分配部分小于嵌入式虚拟机所需内存,并记载物理内存分配表;4)建立嵌入式虚拟机内存和真实预分配内存的映射机制;5)嵌入式虚拟机启动,如未执行关闭虚拟机操作,执行第6步,否则执行第7步;6)检索虚拟机内存状况,并记录占用空间需求,如占用空间大于等于已分配内存空间, 则另分配额外内存空间,内存额外分配空间需满足内存额外分配空间>=虚拟机所需内存空间-已分配内存空间,同时,需满足条件,已分配内存 <=假象内存值;如占用空间小于已分配内存空间,则缩减已分配内存空间,缩减量需满足缩减量< 已分配内存空间-虚拟机所需内存空间;无论是新增内存空间或者缩减内存空间,执行后,更新嵌入式内存和真实分配内存的映射机制;7)释放已分配内存。
3.如权利要求1所述的方法,其特征在于,内存分配以页面为单位,所以内存更新先以兆字节计算数值,然后转化为所需内存页。计算额外分配空间值采用求模+1的方式,计算内存缩减量采用求模的方式;
4.如权利要求1所述的方法,其特征在于,内存动态更新的过程中,为处理简单,可采用比内存页更大单元的分配方法,即内存更新先以兆字节计算数值,然后转化为所需单位存储空间,例如,以64页为基本单元;
5.如权利要求1所述的方法,其特征在于,针对单台服务器运行多个嵌入式虚拟机的状况,其物理内存和嵌入式虚拟机实时内存可建立整体的映射管理机制,需要实时统计未分配单元且更新释放单元,将实时的未分配单元纳入整体待分配内存池统一管理,可根据虚拟机应用环境不同设置不同优先级,建立整体的调度机制;
6.如权利要求1所述的方法,其特征在于,该系统的初始时的逻辑内存空间建立是一假象,即通知操作系统已成功分配满足操作系统需求的内存空间,但真实物理空间并未分配或只做了预分配,并未完全分配;
7.如权利要求1所述的方法,其特征在于,该系统不需要修改嵌入式操作系统,而是在虚拟机监控层增加实时内存预占有的监控机制。
8.如权利要求1所述的系统,其特征在于,虚拟内存监测模块用来监测虚拟机系统实时的内存使用情况,监测实时虚拟机内存申请和释放请求以及大小;内存管理模块用来根据虚拟内存监测模块捕获的指令,对物理内存进行动态管理;嵌入式虚拟机模块,包括虚拟硬件及嵌入式操作系统以及应用等。嵌入式虚拟机模块用来生成嵌入式硬件虚拟环境并运行嵌入式操作系统,并在嵌入式操作系统之上执行各种嵌入式应用。
全文摘要
本发明公开了一种嵌入式虚拟化内存动态分配方法及系统,本发明提供的内存动态分配方法能有效避免传统嵌入式虚拟化固定内存分配导致的内存资源浪费。该系统包括内存管理模块,嵌入式虚拟机内存监测模块及嵌入式虚拟机模块。虚拟机内存监测模块用来实时监测嵌入式系统的实时内存需求状况;内存管理模块用来初始化内存分配,初始化内存映射表建立,根据虚拟机内存监测模块的监测情况,实时更新内存分配,更新内存映射表;嵌入式虚拟机模块用来生成嵌入式硬件虚拟环境并运行嵌入式操作系统,并在嵌入式操作系统之上执行各种嵌入式应用。
文档编号G06F12/02GK102193814SQ20101011995
公开日2011年9月21日 申请日期2010年3月9日 优先权日2010年3月9日
发明者杨霄鹏, 程作仁, 费晓峰 申请人:上海拜翰网络科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1