一种管理内存的方法及装置的制作方法

文档序号:6401125阅读:153来源:国知局

专利名称::一种管理内存的方法及装置的制作方法
技术领域
:本发明属于计算机领域,尤其涉及一种管理内存的方法及装置。
背景技术
:X86单板在基本输入输出系统(BasicInputOutputSystem,BIOS)启动阶段的实现都是基于Intel提出的统一可扩展固件接口(UnifiedExtensibleFirewareInterface,UEFI)规范,该规范在内存管理方面制定了一套系统的实现机制。X86单板上电启动后,BIOS通过系统管理总线(SystemManagementBus,SMBUS)物理链路读取内存条上的模组存在的串行检测(SerialPresenceDetect,SPD)信息,从而计算出当前物理内存的大小,BIOS启动过程中,需要根据产品的需求,预先保留部分内存区域用作特殊用途,通常是直接修改BIOS的执行代码,即这些内存保留区都是在BIOS的执行代码中静态固定的,一旦BIOS的执行代码文件生成,当前系统的内存保留区就已经固定,BIOS正常启动完毕后,会统一将系统的内存使用情况通过内存映射表(Memorymappingtable)发送给操作系统(OperatingSystem,OS),告诉OS当前系统的内存分布和属性,供OS使用。这套机制是基于服务器或通用个人电脑(PersonalComputer,PC)领域提出的,当其应用在电信平台时,就暴露出一些明显的缺陷。当BIOS的执行代码文件烧录到X86单板后,X86单板每次启动后,内存保留区都是固定的,因此体现给OS的内存使用情况也是一致的,即不同平台的BIOS文件不可通用,而在电信领域往往对内存有一些定制化的需求,如需要在BIOS启动过程中动态预留一块或几块内存区域用于记录临终遗言、启动日志,启动日志用于记录系统配置更改信息或者系统出错信息,不同的电信平台对这些内存保留区域的起始地址和大小的需求都不一样,即使在同一平台,随着应用场景的切换这些内存保留区域也需要做相应的变更,此时原有的UEFI内存保留机制已无法满足这些要求。
发明内容本发明实施例的目的在于提供一种管理内存的方法,旨在解决如何设计一套动态管理内存的方法从而实现在不升级BIOS的情况下,动态决定哪些内存对OS可用的问题。第一方面,一种管理内存的方法,所述方法包括:当基本输入输出系统BIOS启动时下载内存保留区的配置文件,所述配置文件用于定义所述内存保留区;解析所述配置文件,根据解析后的配置文件的内容更新内存保留区记录表;根据更新后的内存保留区记录表修改内存映射表;将修改后的内存映射表发送给OS,使得所述OS获取内存的使用情况。结合第一方面,在第一方面的第一种可能的实现方式中,所述解析所述配置文件,根据解析后的配置文件的内容更新内存保留区记录表,包括:解析所述配置文件,调用内存保留区注册驱动中的注册接口和注销接口,将解析后的配置文件的内容注册或者注销到内存保留区记录表中。结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述将解析后的配置文件的内容注册到内存保留区记录表中,包括:判断内存保留区记录表中的内存保留区是否为已满;当判断所述内存保留区已满,则返回存储已满;当判断所述内存保留区未满,则根据注册接口调用者提供的GUID判断,与所述内存保留区记录表中的参数进行比较,若有重复,则返回重复注册;当判断所述内存保留区无重复,则根据所述注册接口调用者提供的内存保留区的地址和内存保留区的大小,与所述内存保留区记录表中的参数进行比较,当所述内存保留区的地址大于第i块内存保留区的地址和第i块内存保留区的大小之和,或者当所述第i块内存保留区的地址大于所述内存保留区的地址和内存保留区的大小之和时,则将所述解析后的配置文件的内容注册到所述内存保留区记录表中,否则返回注册空间重叠错误。结合第一方面的第一种可能的实现方式,在第一方面的第三种可能的实现方式中,所述将解析后的配置文件的内容注销到内存保留区记录表中,包括:根据注销接口调用者提供的注销内存保留区的参数,与所述内存保留区记录表中的参数进行匹配;当找到匹配项,则删除所述匹配项的节点;当未找到匹配项,则返回注销错误。结合第一方面或者第一方面的第一种可能的实现方式或者第一方面的第二种可能的实现方式或者第一方面的第三种可能的实现方式,在第一方面的第四种可能的实现方式中,所述根据更新后的内存保留区记录表修改内存映射表,包括:调用所述内存保留区注册驱动中的查询接口,查询更新后的内存保留区记录表;根据更新后的内存保留区记录表修改内存映射表。结合第一方面的第四种可能的实现方式,在第一方面的第五种可能的实现方式中,所述内存保留区记录表存储在非易失性存储器,并将所述非易失性存储器分为两块,其中一块用来存储所述内存保留区记录表,另一块用来存储BIOS代码。结合第一方面或者第一方面的第一种可能的实现方式或者第一方面的第二种可能的实现方式或者第一方面的第三种可能的实现方式或者第一方面的第四种可能的实现方式或者第一方面的第五种可能的实现方式,在第一方面的第六种可能的实现方式中,所述方法还包括:调用所述内存保留区注册驱动中的查询接口,以判断是否需要清零内存。第二方面,一种管理内存的装置,所述装置包括:下载单元,用于当基本输入输出系统BIOS启动时下载内存保留区的配置文件,所述配置文件用于定义所述内存保留区;解析单元,用于解析所述配置文件,根据解析后的配置文件的内容更新内存保留区记录表;修改单元,用于根据更新后的内存保留区记录表修改内存映射表;发送单元,用于将修改后的内存映射表发送给OS,使得OS获取内存的使用情况。结合第二方面,在第二方面的第一种可能的实现方式中,所述解析单元具体用于:解析所述配置文件,调用内存保留区注册驱动中的注册接口和注销接口,将解析后的配置文件的内容注册或者注销到内存保留区记录表中。结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述解析单元中执行步骤将解析后的配置文件的内容注册到内存保留区记录表中,包括:判断内存保留区记录表中的内存保留区是否为已满;当判断所述内存保留区已满,则返回存储已满;当判断所述内存保留区未满,则根据注册接口调用者提供的GUID判断,与所述内存保留区记录表中的参数进行比较,若有重复,则返回重复注册;当判断所述内存保留区无重复,则根据所述注册接口调用者提供的内存保留区的地址和内存保留区的大小,与所述内存保留区记录表中的参数进行比较,当所述内存保留区的地址大于第i块内存保留区的地址和第i块内存保留区的大小之和,或者当所述第i块内存保留区的地址大于所述内存保留区的地址和内存保留区的大小之和时,则将所述解析后的配置文件的内容注册到所述内存保留区记录表中,否则返回注册空间重叠错误。结合第二方面的第一种可能的实现方式,在第二方面的第三种可能的实现方式中,所述解析单元中执行步骤将解析后的配置文件的内容注销到内存保留区记录表中,包括:根据注销接口调用者提供的注销内存保留区的参数,与所述内存保留区记录表中的参数进行匹配;当找到匹配项,则删除所述匹配项的节点;当未找到匹配项,则返回注销错误。结合第二方面或者第二方面的第一种可能的实现方式或者第二方面的第二种可能的实现方式或者第二方面的第三种可能的实现方式,在第二方面的第四种可能的实现方式中,所述修改单元具体用于:调用所述内存保留区注册驱动中的查询接口,查询更新后的内存保留区记录表;根据更新后的内存保留区记录表修改内存映射表。结合第二方面的第四种可能的实现方式,在第二方面的第五种可能的实现方式中,所述内存保留区记录表存储在非易失性存储器,并将所述非易失性存储器分为两块,其中一块用来存储所述内存保留区记录表,另一块用来存储BIOS代码。结合第二方面或者第二方面的第一种可能的实现方式或者第二方面的第二种可能的实现方式或者第二方面的第三种可能的实现方式或者第二方面的第四种可能的实现方式或者第二方面的第五种可能的实现方式,在第二方面的第六种可能的实现方式中,所述装置还包括清零单元,所述清零单元用于:调用所述内存保留区注册驱动中的查询接口,以判断是否需要清零内存。与现有技术相比,本发明实施例提供一种管理内存的方法,所述方法通过在BIOS启动时从后台下载内存保留区的配置文件,解析所述配置文件,并根据解析后的配置文件的内容更新内存保留区记录表,根据更新后的内存保留区记录表修改内存映射表,将修改后的内存映射表发送给OS,使得所述OS获取内存的使用情况,从而实现在不升级BIOS的情况下,动态决定哪些内存对OS可用,解决了电信平台对内存灵活使用的要求。为了更清楚地说明本发明实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。图1是本发明实施例提供的一种管理内存的方法示意图;图2是本发明实施例提供的一种管理内存的方法流程图;图3是本发明实施例提供的一种接口模型;图4是本发明实施例提供的一种管理内存的装置结构图;图5是本发明实施例提供的一种管理内存的装置结构图。具体实施例方式为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。参考图1,图1是本发明实施例提供的一种管理内存的方法示意图。本发明实施例设计一种基本输入输出系统(BasicInputOutputSystem,BIOS)启动过程中动态注册或者注销内存保留区的机制。内存保留区记录表存放在非易失性存储器上,这个存储器可以与存放BIOS代码的存储器属于同一个存储器,也可以在不同的存储器上,优先考虑存放所述内存保留区记录表的存储器和存放BIOS代码的存储器属于不同的存储器,如一般BIOS代码存放在串行外设接口(SerialPeripheralInterface,SPI)flash,内存保留区记录表放在非或Norflash,这样设计是出于对BIOS文件安全性的考虑,因为所述内存保留区记录表会被修改,如果修改的时候断电,有可能会破坏BIOS代码,所以优先考虑将所述内存保留区记录表和BIOS代码存放在不同的介质中。所述方法包括如下步骤:UBIOS启动过程中从后台下载到内存保留的配置文件;其中,所述配置文件包括存放临终遗言数据内存的信息、存放日志记录数据内存的信息等。2、解析配置文件后,调用内存保留区注册驱动中的注册接口或注销接口,将不同功用的内存保留区的信息注册或注销到内存保留区记录表中;3、在启动OS前,BIOS调用内存保留区注册驱动中的查询接口,查询到当前内存存储的内存保留区记录表,同步修改内存映射表;4、OS根据所述内存映射表,知道当前系统的内存使用情况;5、同时BIOS下内存清零模块也可调用内存保留区注册驱动中的查询接口,来决定在引导OS前哪些内存需要清零,哪些不需要清零。参考图2,图2是本发明实施例提供的一种管理内存的方法流程图。如图2所示,所述方法包括以下步骤:步骤201,当基本输入输出系统BIOS启动时下载内存保留区的配置文件,所述配置文件用于定义所述内存保留区;BIOS启动时,从后台下载内存保留区的配置文件,所述配置文件用于定义所述内存保留区。步骤202,解析所述配置文件,根据解析后的配置文件的内容更新内存保留区记录表;本步骤中,所述解析所述配置文件,根据解析后的配置文件的内容更新内存保留区记录表,包括:解析所述配置文件,调用内存保留区注册驱动中的注册接口和注销接口,将解析后的配置文件的内容注册或者注销到内存保留区记录表中。可选地,所述将解析后的配置文件的内容注册到内存保留区记录表中,包括:判断内存保留区记录表中的内存保留区是否为已满;当判断所述内存保留区已满,则返回存储已满;当判断所述内存保留区未满,则根据注册接口调用者提供的全局唯一标识符(GloballyUniqueIdentifier,⑶ID)判断,与所述内存保留区记录表中的参数进行比较,若有重复,则返回重复注册;当判断所述内存保留区无重复,则根据所述注册接口调用者提供的内存保留区的地址和内存保留区的大小,与所述内存保留区记录表中的参数进行比较,当所述内存保留区的地址大于第i块内存保留区的地址和第i块内存保留区的大小之和,或者当所述第i块内存保留区的地址大于所述内存保留区的地址和内存保留区的大小之和时,则将所述解析后的配置文件的内容注册到所述内存保留区记录表中,否则返回注册空间重叠错误。其中,若根据注册接口调用者提供的GUID和所述内存保留区记录表中的GUID参数进行比较,若⑶ID参数一致,则通知注册接口调用者当前⑶ID已存在内存保留区中,不允许调用者复叠注册。参考图3,图3是本发明实施例提供的一种接口模型。如图3所示,在预初始化阶段(Pre-EF1-1nitialization,PEI)阶段,注册步骤如下:1、将所述内存保留区域表由flash导到传递模块(hand-offblocks,Hob)中,判断所述内存保留区域表的内存保留区数量是否已满,如果是则返回存储已满,否则执行步骤302;2、根据接口调用者提供的保留区⑶ID,与所述Hob中的内存保留区记录表的参数进行比较,如果重复,返回重复注册。如果没有重复,则执行步骤303;3、根据接口调用者提供的内存保留区的地址和内存保留区大小,与所述Hob中的内存保留记录表的参数进行比较,只有在满足下面两种情况下,才执行步骤304,否则返回注册空间重叠错误;An+l>Ai+LiAi>An+l+Ln+l其中,0<i〈=n,n+l〈=最大保留区数量,η表示所述hob中已经存储的内存保留区数量,Ai表示第i块内存保留区地址,Li表示第i块内存保留区大小;4、将新增的内存保留区的参数添加到所述Hob中的内存保留记录表中。可选地,所述将解析后的配置文件的内容注销到内存保留区记录表中,包括:根据注销接口调用者提供的注销内存保留区的参数,与所述内存保留区记录表中的参数进行匹配;当找到匹配项,则删除所述匹配项的节点;当未找到匹配项,则返回注销错误。参考图3,注销步骤如下:根据接口调用者提供的需要注销内存保留区的参数跟存储在Hob中的内存保留区记录表中的参数中进行匹配,存储在Hob中的内存保留区记录表中的所有参数都必须参入匹配,如果找到匹配项,删除该匹配项的节点;如果找不到则返回错误。其中,内存保留区记录表中存储的数据是多个相同结构的数据块,所述节点是指其中一个数据库。步骤203,根据所述内存保留区记录表修改内存映射表;可选地,所述根据更新后的内存保留区记录表修改内存映射表,包括:调用所述内存保留区注册驱动中的查询接口,查询更新后的内存保留区记录表;根据更新后的内存保留区记录表修改内存映射表。参考图3,查询步骤如下:1、根据接口调用者提供的内存保留区的参数跟存储在Hob中的内存保留区记录表中的参数进行匹配,如果找到匹配项,返回该匹配项的所有参数信息及匹配项数,所述参数信息是指数据块的内容,所述匹配项数是指数据块的个数;如果找不到则返回错误;2、同时所述查询接口中还提供全部查询功能,上述步骤查询结果中输入的全部参数均返回为错误时,则给出所述内存保留区记录表的全部参数信息和总项数。如图3所示,在驱动执行坏境(DriverExacutiionEnvironment,DXE)阶段,注册、注销和查询接口基本功能与PEI阶段相同,唯一的区别是DXE阶段每调用一次注册、注销接口,都会将存储Hob中内存保留区记录表实时更新到flash中。其中,所述内存保留区记录表存储在非易失性存储器nonvolatileram,并将所述非易失性存储器分为两块,其中一块用来存储所述内存保留区记录表,另一块用来存储BIOS代码。步骤204,将修改后的内存映射表发送给OS,使得所述OS获取内存的使用情况。作为一种可优选的实施例,所述方法还包括:调用所述内存保留区注册驱动中的查询接口,以判断是否需要清零内存。本发明实施例提供一种管理内存的方法,所述方法通过在BIOS启动时从后台下载内存保留区的配置文件,解析所述配置文件,并根据解析后的配置文件的内容更新内存保留区记录表,根据更新后的内存保留区记录表修改内存映射表,将修改后的内存映射表发送给OS,使得所述OS获取内存的使用情况,从而实现在不升级BIOS的情况下,动态决定哪些内存对OS可用,解决了电信平台对内存灵活使用的要求。参考图4,图4是本发明实施例提供的一种管理内存的装置结构图。如图4所示,所述装置包括如下单元:下载单元401,用于当基本输入输出系统BIOS启动时下载内存保留区的配置文件,所述配置文件用于定义所述内存保留区;BIOS启动时,从后台下载内存保留区的配置文件,所述配置文件用于定义所述内存保留区。解析单元402,用于解析所述配置文件,根据解析后的配置文件的内容更新内存保留区记录表;可选地,所述解析单元402具体用于:解析所述配置文件,调用内存保留区注册驱动中的注册接口和注销接口,将解析后的配置文件的内容注册或者注销到内存保留区记录表中。可选地,所述解析单元402中执行步骤将解析后的配置文件的内容注册到内存保留区记录表中,包括:判断内存保留区记录表中的内存保留区是否为已满;当判断所述内存保留区已满,则返回存储已满;当判断所述内存保留区未满,则根据注册接口调用者提供的GUID判断,与所述内存保留区记录表中的参数进行比较,若有重复,则返回重复注册;当判断所述内存保留区无重复,则根据所述注册接口调用者提供的内存保留区的地址和内存保留区的大小,与所述内存保留区记录表中的参数进行比较,当所述内存保留区的地址大于第i块内存保留区的地址和第i块内存保留区的大小之和,或者当所述第i块内存保留区的地址大于所述内存保留区的地址和内存保留区的大小之和时,则将所述解析后的配置文件的内容注册到所述内存保留区记录表中,否则返回注册空间重叠错误。参考图3,图3是本发明实施例提供的一种接口模型。如图3所示,在PEI阶段,注册步骤如下:1、判断所述内存保留区域表的内存保留区数量是否已满,如果是则返回存储已满,否则执行步骤302;2、根据接口调用者提供的保留区⑶ID,与所述Hob中的内存保留区记录表的参数进行比较,如果重复,返回重复注册。如果没有重复,则执行步骤303;3、根据接口调用者提供的内存保留区的地址和内存保留区大小,与所述Hob中的内存保留记录表的参数进行比较,只有在满足下面两种情况下,才执行步骤304,否则返回注册空间重叠错误;An+l>Ai+LiAi>An+l+Ln+l其中,0<i<=n,n+l<=最大保留区数量,η表示所述hob中已经存储的内存保留区数量,Ai表示第i块内存保留区地址,Li表示第i块内存保留区大小;4、将新增的内存保留区的参数添加到所述Hob中的内存保留记录表中。可选地,所述解析单元402中执行步骤将解析后的配置文件的内容注销到内存保留区记录表中,包括:根据注销接口调用者提供的注销内存保留区的参数,与所述内存保留区记录表中的参数进行匹配;当找到匹配项,则删除所述匹配项的节点;当未找到匹配项,则返回注销错误。参考图3,注销步骤如下:根据接口调用者提供的需要注销内存保留区的参数跟存储在Hob中的内存保留区记录表中的参数中进行匹配,存储在Hob中的内存保留区记录表中的所有参数都必须参入匹配,如果找到匹配项,删除该匹配项的节点;如果找不到则返回错误。修改单元403,用于根据更新后的内存保留区记录表修改内存映射表;可选地,所述修改单元403具体用于:调用所述内存保留区注册驱动中的查询接口,查询更新后的内存保留区记录表;根据更新后的内存保留区记录表修改内存映射表。参考图3,查询步骤如下:1、根据接口调用者提供的内存保留区的参数跟存储在Hob中的内存保留区记录表中的参数进行匹配,如果找到匹配项,返回该匹配项的所有参数信息及匹配项数;如果找不到则返回错误;2、同时所述查询接口中还提供全部查询功能,上述步骤查询结果中输入的全部参数均返回为错误时,则给出所述内存保留区记录表的全部参数信息和总项数。如图3所示,在DXE阶段,注册、注销和查询接口基本功能与PEI阶段相同,唯一的区别是DXE阶段每调用一次注册、注销接口,都会将存储Hob中内存保留区记录表实时更新到flash中ο其中,所述内存保留区记录表存储在非易失性存储器,并将所述非易失性存储器分为两块,其中一块用来存储所述内存保留区记录表,另一块用来存储BIOS代码。发送单元404,用于将修改后的内存映射表发送给OS,使得OS获取内存的使用情况。作为一种可选的实施例,所述装置还包括清零单元405,所述清零单元405用于:调用所述内存保留区注册驱动中的查询接口,以判断是否需要清零内存。本发明实施例提供一种管理内存的装置,所述装置通过在BIOS启动时从后台下载内存保留区的配置文件,解析所述配置文件,并根据解析后的配置文件的内容更新内存保留区记录表,根据更新后的内存保留区记录表修改内存映射表,将修改后的内存映射表发送给OS,使得所述OS获取内存的使用情况,从而实现在不升级BIOS的情况下,动态决定哪些内存对OS可用,解决了电信平台对内存灵活使用的要求。图5是本发明实施例提供的一种管理内存的装置结构图。参考图5,图5是本发明实施例提供的一种管理内存的装置500,本发明具体实施例并不对所述管理内存的装置的具体实现做限定。所述管理内存的装置500包括:处理器(processor)5Ol,通信接口(CommunicationsInterface)5O2,存储器(memory)503,总线504。处理器501,通信接口502,存储器503通过总线504完成相互间的通信。通信接口502,用于与其他设备进行通信;处理器501,用于执行程序。具体地,程序可以包括程序代码,所述程序代码包括计算机操作指令。处理器501可能是一个中央处理器CPU,或者是特定集成电路ASIC(ApplicationSpecificIntegratedCircuit),或者是被配置成实施本发明实施例的一个或多个集成电路。存储器503,用于存放程序。存储器503可能包含高速RAM存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。程序具体可以包括:当基本输入输出系统BIOS启动时下载内存保留区的配置文件,所述配置文件用于定义所述内存保留区;解析所述配置文件,根据解析后的配置文件的内容更新内存保留区记录表;根据更新后的内存保留区记录表修改内存映射表;将修改后的内存映射表发送给OS,使得所述OS获取内存的使用情况。所述解析所述配置文件,根据解析后的配置文件的内容更新内存保留区记录表,包括:解析所述配置文件,调用内存保留区注册驱动中的注册接口和注销接口,将解析后的配置文件的内容注册或者注销到内存保留区记录表中。所述将解析后的配置文件的内容注册到内存保留区记录表中,包括:判断内存保留区记录表中的内存保留区是否为已满;当判断所述内存保留区已满,则返回存储已满;当判断所述内存保留区未满,则根据注册接口调用者提供的GUID判断,与所述内存保留区记录表中的参数进行比较,若有重复,则返回重复注册;当判断所述内存保留区无重复,则根据所述注册接口调用者提供的内存保留区的地址和内存保留区的大小,与所述内存保留区记录表中的参数进行比较,当所述内存保留区的地址大于第i块内存保留区的地址和第i块内存保留区的大小之和,或者当所述第i块内存保留区的地址大于所述内存保留区的地址和内存保留区的大小之和时,则将所述解析后的配置文件的内容注册到所述内存保留区记录表中,否则返回注册空间重叠错误。所述将解析后的配置文件的内容注销到内存保留区记录表中,包括:根据注销接口调用者提供的注销内存保留区的参数,与所述内存保留区记录表中的参数进行匹配;当找到匹配项,则删除所述匹配项的节点;当未找到匹配项,则返回注销错误。所述根据更新后的内存保留区记录表修改内存映射表,包括:调用所述内存保留区注册驱动中的查询接口,查询更新后的内存保留区记录表;根据更新后的内存保留区记录表修改内存映射表。所述内存保留区记录表存储在非易失性存储器,并将所述非易失性存储器分为两块,其中一块用来存储所述内存保留区记录表,另一块用来存储BIOS代码。所述方法还包括:调用所述内存保留区注册驱动中的查询接口,以判断是否需要清零内存。以上所述仅为本发明的优选实施方式,并不构成对本发明保护范围的限定。任何在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明要求包含范围之内。权利要求1.一种管理内存的方法,其特征在于,所述方法包括:当基本输入输出系统BIOS启动时下载内存保留区的配置文件,所述配置文件用于定义所述内存保留区;解析所述配置文件,根据解析后的配置文件的内容更新内存保留区记录表;根据更新后的内存保留区记录表修改内存映射表;将修改后的内存映射表发送给操作系统(OperatingSystem,OS),使得所述OS获取内存的使用情况。2.根据权利要求1所述的方法,其特征在于,所述解析所述配置文件,根据解析后的配置文件的内容更新内存保留区记录表,包括:解析所述配置文件,调用内存保留区注册驱动中的注册接口和注销接口,将解析后的配置文件的内容注册或者注销到内存保留区记录表中。3.根据权利要求2所述的方法,其特征在于,所述将解析后的配置文件的内容注册到内存保留区记录表中,包括:判断内存保留区记录表中的内存保留区是否为已满;当判断所述内存保留区已满,则返回存储已满;当判断所述内存保留区未满,则根据注册接口调用者提供的GUID判断,与所述内存保留区记录表中的参数进行比较,若有重复,则返回重复注册;当判断所述内存保留区无重复,则根据所述注册接口调用者提供的内存保留区的地址和内存保留区的大小,与所述内存保留区记录表中的参数进行比较,当所述内存保留区的地址大于第i块内存保留区的地址和第i块内存保留区的大小之和,或者当所述第i块内存保留区的地址大于所述内存保留区的地址和内存保留区的大小之和时,则将所述解析后的配置文件的内容注册到所述内存保留区记录表中,否则返回注册空间重叠错误。4.根据权利要求2所述的方法,其特征在于,所述将解析后的配置文件的内容注销到内存保留区记录表中,包括:根据注销接口调用者提供的注销内存保留区的参数,与所述内存保留区记录表中的参数进行匹配;当找到匹配项,则删除所述匹配项的节点;当未找到匹配项,则返回注销错误。5.根据权利要求1-4任意一项所述的方法,其特征在于,所述根据更新后的内存保留区记录表修改内存映射表,包括:调用所述内存保留区注册驱动中的查询接口,查询更新后的内存保留区记录表;根据更新后的内存保留区记录表修改内存映射表。6.根据权利要求5所述的方法,其特征在于,所述内存保留区记录表存储在非易失性存储器,并将所述非易失性存储器分为两块,其中一块用来存储所述内存保留区记录表,另一块用来存储BIOS代码。7.根据权利要求1-6任意一项所述的方法,其特征在于,所述方法还包括:调用所述内存保留区注册驱动中的查询接口,以判断是否需要清零内存。8.—种管理内存的装置,其特征在于,所述装置包括:下载单元,用于当基本输入输出系统BIOS启动时下载内存保留区的配置文件,所述配置文件用于定义所述内存保留区;解析单元,用于解析所述配置文件,根据解析后的配置文件的内容更新内存保留区记录表;修改单元,用于根据更新后的内存保留区记录表修改内存映射表;发送单元,用于将修改后的内存映射表发送给OS,使得OS获取内存的使用情况。9.根据权利要求8所述的装置,其特征在于,所述解析单元具体用于:解析所述配置文件,调用内存保留区注册驱动中的注册接口和注销接口,将解析后的配置文件的内容注册或者注销到内存保留区记录表中。10.根据权利要求9所述的装置,其特征在于,所述解析单元中执行步骤将解析后的配置文件的内容注册到内存保留区记录表中,包括:判断内存保留区记录表中的内存保留区是否为已满;当判断所述内存保留区已满,则返回存储已满;当判断所述内存保留区未满,则根据注册接口调用者提供的GUID判断,与所述内存保留区记录表中的参数进行比较,若有重复,则返回重复注册;当判断所述内存保留区无重复,则根据所述注册接口调用者提供的内存保留区的地址和内存保留区的大小,与所述内存保留区记录表中的参数进行比较,当所述内存保留区的地址大于第i块内存保留区的地址和第i块内存保留区的大小之和,或者当所述第i块内存保留区的地址大于所述内存保留区的地址和内存保留区的大小之和时,则将所述解析后的配置文件的内容注册到所述内存保留区记录表中,否则返回注册空间重叠错误。11.根据权利要求9所述的装置,其特征在于,所述解析单元中执行步骤将解析后的配置文件的内容注销到内存保留区记录表中,包括:根据注销接口调用者提供的注销内存保留区的参数,与所述内存保留区记录表中的参数进行匹配;当找到匹配项,则删除所述匹配项的节点;当未找到匹配项,则返回注销错误。12.根据权利要求8-11任意一项所述的装置,其特征在于,所述修改单元具体用于:调用所述内存保留区注册驱动中的查询接口,查询更新后的内存保留区记录表;根据更新后的内存保留区记录表修改内存映射表。13.根据权利要求12所述的装置,其特征在于,所述内存保留区记录表存储在非易失性存储器,并将所述非易失性存储器分为两块,其中一块用来存储所述内存保留区记录表,另一块用来存储BIOS代码。14.根据权利要求8-13任意一项所述的装置,其特征在于,所述装置还包括清零单元,所述清零单元用于:调用所述内存保留区注册驱动中的查询接口,以判断是否需要清零内存。全文摘要本发明实施例公开一种管理内存的方法及装置,所述方法通过在BIOS启动时从后台下载内存保留区的配置文件,解析所述配置文件,并根据解析后的配置文件的内容更新内存保留区记录表,根据更新后的内存保留区记录表修改内存映射表,将修改后的内存映射表发送给OS,使得所述OS获取内存的使用情况,从而实现在不升级BIOS的情况下,动态决定哪些内存对OS可用,解决了电信平台对内存灵活使用的要求。文档编号G06F17/30GK103176915SQ20131010482公开日2013年6月26日申请日期2013年3月28日优先权日2013年3月28日发明者杨丽萍,龚彬阳,徐志刚申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1