CN1307558C - 通信系统中分系统间的虚拟内存分配管理方法 - Google Patents

通信系统中分系统间的虚拟内存分配管理方法 Download PDF

Info

Publication number
CN1307558C
CN1307558C CNB011381051A CN01138105A CN1307558C CN 1307558 C CN1307558 C CN 1307558C CN B011381051 A CNB011381051 A CN B011381051A CN 01138105 A CN01138105 A CN 01138105A CN 1307558 C CN1307558 C CN 1307558C
Authority
CN
China
Prior art keywords
subsystem
memory
bytes
communication system
virtual
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.)
Expired - Fee Related
Application number
CNB011381051A
Other languages
English (en)
Other versions
CN1430150A (zh
Inventor
黄峰
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CHINA TECHNOLOGY EXCHANGE Co Ltd
State Grid Beijing Electric Power Co Ltd
Beijing Borui Xianglun Technology Development Co Ltd
Original Assignee
ZTE Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by ZTE Corp filed Critical ZTE Corp
Priority to CNB011381051A priority Critical patent/CN1307558C/zh
Publication of CN1430150A publication Critical patent/CN1430150A/zh
Application granted granted Critical
Publication of CN1307558C publication Critical patent/CN1307558C/zh
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开了一种通信系统中分系统间的虚拟内存分配管理方法,包括下列步骤:(1)对通信系统的需求进行分析,确定所有的分系统;(2)确定分系统的任务数;(3)将整个系统的空间地址,按分系统的实际需要加上一定的冗余来分配所需内存;(4)确定各分系统的内存分配管理方案。采用本发明提出的内存分配管理方法,分系统独立控制内存块的分配、操作以及按页保护,避免了内存错误在整个系统中蔓延,而将之局限在子系统中,从而使得整个系统的稳定性、可靠性得到了提高。

Description

通信系统中分系统间的虚拟内存分配管理方法
技术领域
本发明涉及内存的分配管理,更具体的说,涉及一种通信系统中分系统间的虚拟内存分配管理方法。
背景技术
内存资源在通信系统以及嵌入式系统中始终是项目开发过程中管理的重点和难点。内存管理主要涉及到内存泄露、内存分配的效率及碎片问题、内存越界以及内存保护等问题。其中内存泄露主要与程序员本身和编程工具相关,比如在C++使用void指针不加以管理的话,很容易出现内存泄露。内存分配的效率及碎片问题可以采用有效的内存分配管理的算法来解决这个问题,一般的软件系统都有一套自己的内存分配管理算法。内存越界的问题在现有软件系统很少考虑,可以采用虚拟内存的形式来控制,当然虚拟内存需要相应的硬件以及操作系统内核的支持。
现有的通信系统中可能都采取了措施来解决内存资源的管理问题,但是都存在这样一个问题:错误没有得到很好的控制,当出现错误时,错误所引起的后果没有能够控制在某一个分系统或某一个进程中,而是在整个软件系统中蔓延,从而导致整个系统的稳定性和可靠性下降。在一个大的有关嵌入式系统的项目中,如果不能提供一个对内存行之有效的集中管理机制,势必会给系统的正常运行带来很大的威胁。
举例来说,几乎每一个操作系统都有malloc和free两个系统调用来申请和释放内存,但是他们是库函数,不在编译器的控制范围之内,假如忘记对某些对象进行初始化,以及把错误规模的对象传给了它,都会给系统带来不可估计的缺陷。如果能有一个完善的内存分配方案,在编译器的控制范围之内,并使用虚拟内存的状态可控的特点,就可以在错误发生之前就发现错误,或者采取一定的内存保护措施。
发明内容
本发明所要解决的技术问题是将内存错误引发的后果很好地控制在某一个分系统或某一个进程中,从而提高整个系统的稳定性和可靠性。
本发明的核心思想是在实现基本内存分配和解除分配功能的基础上,还适当兼顾到内存使用,检查非法操作等功能。使得由于应用程序使用内存而引起的错误在软件开发的早期阶段就能及早暴露,避免进一步在整个软件系统中蔓延,在各软件分系统中防止内存泄露、防止内存越界访问、防止释放错误地址的内存、防止重复释放。内存分配系统主要考虑了速度的瓶颈以及碎片问题,尤其在嵌入实时系统中,程序必须在有限的资源情况下运行很长的时间,就要求分配内存不允许出现内存耗尽或出现很多碎片的情况,本发明也考虑解决了这一问题。  主要目的是实现通信软件系统中各分系统的虚拟内存管理和分配方法,使各分系统具有相对的独立性。
本发明的技术方案是这样实现的。一种通信系统中分系统间的内存分配管理方法,包括下列步骤:
(1)对通信系统的需求进行分析,确定所有的分系统;
(2)确定分系统的任务数;
(3)将整个系统的虚拟内存空间地址,按分系统的实际需要加上一定的冗余来分配所需虚拟内存;
(4)确定各分系统的内存分配管理方案。
所述步骤(4)中的分系统的内存分配管理方案包括如下步骤:
(1)将分系统的地址空间划分为一定大小规格的内存块;
(2)确定每个内存块的保护属性:
(3)确定自定义的内存块头的结构。
上面所述的每一个内存块的最大可用数量是可以配置的;内存块大小可以为32字节、64字节、128字节、256字节、512字节、1024字节或2048字节;保护属性为可读或可写:内存块头的结构包括内存块的大小及数量、是否需要保护、属于哪个分系统等信息。
采用本发明提出的虚拟内存分配管理方法,分系统独立控制内存块的分配、操作以及按页保护,避免了内存错误在整个系统中蔓延,而将之局限在子系统中。同时采用了有效的内存分配管理方案防止内存越界,引入了虚拟内存易保护的特点,控制了系统其它地方对内存的非法操作,从而使得整个系统的稳定性、可靠性得到了提高。
附图说明
图1是本发明提出的方法的流程图。
图2是分配分系统所需虚拟内存示意图。
图3是分系统内存分配管理方案的流程图。
图4是本发明的一个实施例的分系统中内存申请的流程图。
图5是本发明的一个实施例的分系统中内存释放的流程图。
具体实施方式
下面结合附图,以本发明在VxWorks操作系统中的应用为例来进行进一步的详细说明。
图1是本发明提出的方法的流程图。如图所示,1、确定分系统,对通信系统的需求进行分析,确定所有的分系统。2、确定分系统的任务数。根据VxWorks操作系统内核的属性,加上目标是实现分系统的内存管理和分配,主要是要考虑分系统的特点以及所用硬件以及操作系统内核有关虚拟地址的相关操作。比如VxWorks操作系统中具有CONTEXT概念,在系统运行期间,只有一个CONTEXT是击活的,对于别的进程是毫无意义的。这就给系统的设计带来了很大难处,尤其是系统运行期间分系统间的通信,当然可以通过共享内存以及消息队列来解决,但太多地引入这些内存空间,会使分系统的内存分配和管理失去意义,只会给系统设计带来太多的麻烦。可以从下面两种情况来考虑:①一个分系统中只有一个任务,当然不是刻意把一个任务当成一个分系统,只是尽量减少整个系统的任务数量,这是符合嵌入式系统设计思想的。因为任务切换很耗时,严重影响系统的效率。这样为每个分系统建一个CONTEXT,在任务切换时交换CONTEXT。VxWorks中可以用任务切换钩子函数来实现。任务间通信可以用消息队列和全局虚拟内存CONTEXT等。②如果系统中任务很多,则可以只创建一个全局CONTEXT,然后为每个分系统指定所分配的页面。这样就把分系统的所有行为控制在指定的页面内。并且不存在交互的问题,因为在系统运行期间CONTEXT始终有效,并且很好地解决了前面所描述的问题。3、分配分系统所需虚拟内存。将整个系统的虚拟内存空间地址,按分系统的实际需要加上一定的冗余来分配所需虚拟内存。配置相关的内存映射,在PHYS_MEM_DESC结构中配置相关虚拟CONTEXT的属性,包括虚拟地址的起始地址、物理地址的起始地址,以及分配地址的地址长度(一个CONTEXT分配的长度),所分配页面的初始化状态等。根据前两种情况分别有不同的地址分配配置方案。关于每个CONTEXT的具体配置参考相关的操作系统。按第一种情况,为每个分系统配置一个CONTEXT,这样分系统的内存空间起始地址以及大小和所需要的状态都已定义好了。然而第二种情况只定义了一个虚拟CONTEXT,自己设计一个类似PHYS_MEM_DESC的结构来表示分系统在这个CONTEXT中起始地址以及大小,效果完全与第一种一样。4、确定分系统内存分配管理方案。在分系统内创建不同大小的内存块,必须按页面对齐,因为操作系统实现的是按页保护。比如象分配32字节大小的内存块,加上内存块头部16字节,共48字节,页面大小512字节,可以计算一个页面有10个内存块。这样就对小于页面大小的内存块实现内存保护比较困难,主要是页面上内存块对内存保护的要求不一样,这样在此页面上做内存保护会产生冲突,解决办法是对于需要内存保护,要求严格的数据分配给它的内存至少以页面大小为整数倍的内存块。
图2是分配分系统所需虚拟内存示意图。如图2所示,虚拟内存表示分系统所分配的虚拟内存空间,物理内存是分系统运行时使用的实际内存,全局虚拟内存是分系统之间的共用资源,可以相互通信。因为当一个分系统处于运行状态,其他分系统的虚拟内存失效,但如果其他分系统要与此系统通信的话,必须使这个通信资源对此分系统有效,故放入全局虚拟内存中。21表示系统配置,用于定义分系统的虚拟内存与物理内存之间的映射关系。22表示的是硬件和操作系统内核实现虚实地址之间转换。在虚拟内存空间范围(通常比物理地址空间大的多)内为每个分系统分配一定的地址空间范围,然后通过分系统页表映射到物理地址空间。所设计的内存管理方案在每个分系统内实现。当需要与其他分系统通信时,只需在全局虚拟内存空间中申请虚拟内存即可。采用这种分配方法,利用虚拟内存具有状态可控的特性,可以使分系统独立控制内存块的分配、操作以及按页保护,避免了内存错误在整个系统中蔓延,而将之局限在子系统中。同时采用了有效的内存分配管理方案防止内存越界,引入了虚拟内存易保护的特点,控制了系统其它地方对内存的非法操作。
图3是分系统内存分配管理方案的流程图。首先划分分系统的内存块。将分系统的地址空间划分为一定大小规格的内存块,每一个内存块的最大可用数量是可以配置的。这些内存块大小可以为32字节、64字节、128字节、256字节、512字节、1024字节或2048字节。然后确定每个内存块的保护属性。比如可读、可写等。对于需要保护的数据,应按页面大小的字节对齐。最后确定自定义内存块头的结构。内存块头的结构包括内存块的大小及数量、是否需要保护、属于哪个分系统等信息。
图4和图5表示了本发明的一个实施例的分系统中内存申请和释放的流程图。如图4所示,内存申请流程为1、获得当前的任务号;2、根据任务号,判断申请内存属于哪个分系统;3、判断申请内存的合法性以及数据保护的要求;4、找到相对应大小的内存UB(uniform memory block一致大小的内存块)块队列;5、返回申请到的内存地址。内存释放的流程为1、判断要释放内存的合法性;2、获得当前的任务号;3、根据任务号,判断内存属于哪个分系统;4、在分系统中找到相关的内存UB块,归还到相关的UB队列。在任务中分配内存时,首先找到自己的任务ID号,判断属于哪个分系统。然后在分系统中可以按内存分配方案来得到所需的内存,归还内存时,必须找到相对应的内存队列,先得判断内存块属于哪个分系统,然后按原来的内存分配方案归还内存。

Claims (5)

1、一种通信系统中分系统间的虚拟内存分配管理方法,包括下列步骤:
(1)对通信系统的需求进行分析,确定所有的分系统;
(2)确定分系统的任务数;
(3)将整个系统的虚拟内存空间地址,按分系统的实际需要加上一定的冗余来分配所需虚拟内存;
(4)确定各分系统的内存分配管理方案,具体如下:
(41)将分系统的地址空间划分为一定大小规格的内存块;
(42)确定每个内存块的保护属性;
(43)确定自定义的内存块头的结构。
3、如权利要求1所述的一种通信系统中分系统间的虚拟内存分配管理方法,其特征在于:所述的每一个内存块的最大可用数量是可以配置的。
4、如权利要求1所述的一种通信系统中分系统间的虚拟内存分配管理方法,其特征在于:所述步骤(41)中的内存块大小可以为32字节、64字节、128字节、256字节、512字节、1024字节或2048字节。
5、如权利要求1所述的一种通信系统中分系统间的虚拟内存分配管理方法,其特征在于:所述步骤(42)中的保护属性为可读或可写。
6、如权利要求1所述的一种通信系统中分系统间的虚拟内存分配管理方法,其特征在于:所述步骤(43)中的内存块头的结构包括内存块的大小及数量、是否需要保护、属于哪个分系统。
CNB011381051A 2001-12-29 2001-12-29 通信系统中分系统间的虚拟内存分配管理方法 Expired - Fee Related CN1307558C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB011381051A CN1307558C (zh) 2001-12-29 2001-12-29 通信系统中分系统间的虚拟内存分配管理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB011381051A CN1307558C (zh) 2001-12-29 2001-12-29 通信系统中分系统间的虚拟内存分配管理方法

Publications (2)

Publication Number Publication Date
CN1430150A CN1430150A (zh) 2003-07-16
CN1307558C true CN1307558C (zh) 2007-03-28

Family

ID=4674392

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB011381051A Expired - Fee Related CN1307558C (zh) 2001-12-29 2001-12-29 通信系统中分系统间的虚拟内存分配管理方法

Country Status (1)

Country Link
CN (1) CN1307558C (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1670702B (zh) * 2004-03-15 2013-01-02 致伸科技股份有限公司 一种多功能一体机的内存管理方法
CN100343828C (zh) * 2004-03-24 2007-10-17 华为技术有限公司 一种内存分配方法
CN100452761C (zh) * 2004-04-27 2009-01-14 华为技术有限公司 通信设备中数据包的存储方法
CN101114940B (zh) * 2007-06-26 2011-12-07 中兴通讯股份有限公司 实现模块逻辑化的方法
CN102331978A (zh) * 2011-07-07 2012-01-25 曙光信息产业股份有限公司 一种龙芯刀片大内存地址设备dma控制器访问的实现方法
US9165337B2 (en) * 2013-05-31 2015-10-20 Qualcomm Incorporated Command instruction management
CN105955892A (zh) * 2016-04-25 2016-09-21 浪潮电子信息产业股份有限公司 一种计算机系统中地址空间的扩展方法
CN107247673B (zh) * 2017-06-07 2020-05-26 苏州浪潮智能科技有限公司 一种内存分配方法和装置
CN108958926B (zh) * 2018-05-25 2021-09-07 厦门普杰信息科技有限公司 一种基于达尔文流媒体服务器的虚拟内存池设计方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4414624A (en) * 1980-11-19 1983-11-08 The United States Of America As Represented By The Secretary Of The Navy Multiple-microcomputer processing
GB2322209A (en) * 1996-12-23 1998-08-19 Ibm Multi-tasking computer system has shared address space among multiple virtual address spaces
CN1197955A (zh) * 1997-04-17 1998-11-04 阿尔卡塔尔-阿尔斯托姆通用电气公司 管理共享内存的方法
CN1320863A (zh) * 2000-06-13 2001-11-07 深圳市中兴通讯股份有限公司 一种实时系统中内存快速分配与释放的方法

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4414624A (en) * 1980-11-19 1983-11-08 The United States Of America As Represented By The Secretary Of The Navy Multiple-microcomputer processing
GB2322209A (en) * 1996-12-23 1998-08-19 Ibm Multi-tasking computer system has shared address space among multiple virtual address spaces
CN1197955A (zh) * 1997-04-17 1998-11-04 阿尔卡塔尔-阿尔斯托姆通用电气公司 管理共享内存的方法
CN1320863A (zh) * 2000-06-13 2001-11-07 深圳市中兴通讯股份有限公司 一种实时系统中内存快速分配与释放的方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
操作系统 殷兆麟,钱旭等,92,中国矿业大学出版社 2001 *
操作系统 殷兆麟,钱旭等,92,中国矿业大学出版社 2001;软件工程导论 张海藩,38.40,清华大学出版社 1998 *
软件工程导论 张海藩,38.40,清华大学出版社 1998 *

Also Published As

Publication number Publication date
CN1430150A (zh) 2003-07-16

Similar Documents

Publication Publication Date Title
JP5510556B2 (ja) 仮想マシンのストレージスペースおよび物理ホストを管理するための方法およびシステム
US9122575B2 (en) Processing system having memory partitioning
CN102193814A (zh) 嵌入式虚拟化内存动态分配方法及系统
CN104915151A (zh) 多虚拟机系统中一种主动共享的内存超量分配方法
CN102449607B (zh) 具有多个闪存封装的存储系统
CN102779074B (zh) 基于内存空洞机制的虚拟机内存资源分配方法
CN101859279B (zh) 一种内存分配、释放方法及装置
CN1307558C (zh) 通信系统中分系统间的虚拟内存分配管理方法
CN110162328B (zh) 一种智能卡操作系统升级方法及装置
CN104317734A (zh) 一种适用于slab的内存分配方法及装置
CN110727517A (zh) 一种基于分区设计的内存分配方法和装置
CN103455433A (zh) 内存管理方法及系统
CN109976898B (zh) 分层任务系统的SPI与Eeprom异步通讯方法
CN105469173A (zh) 一种静态内存进行优化管理的方法
CN103218305A (zh) 存储空间的分配方法
US9697047B2 (en) Cooperation of hoarding memory allocators in a multi-process system
US5950231A (en) Memory manager system
CN105512091A (zh) 一种内存分配方法及装置
CN112162818B (zh) 一种虚拟内存分配方法、装置、电子设备及存储介质
US7840772B2 (en) Physical memory control using memory classes
CN108845822A (zh) 实现软件不中断业务升级的内存管理方法及系统
CN117435343A (zh) 内存的管理方法及装置
CN112650693B (zh) 一种静态内存管理方法及装置
CN100363905C (zh) 一种基于绝对座标体系的操作系统客体重用测试方法
TW202223646A (zh) 用於使用組合系統執行工作量之系統及方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
ASS Succession or assignment of patent right

Owner name: SHENZHENG CITY ZTE CO., LTD.

Free format text: FORMER OWNER: SHENZHENG CITY ZTE CO., LTD. SHANGHAI SECOND INSTITUTE

Effective date: 20030724

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20030724

Applicant after: Zhongxing Communication Co., Ltd., Shenzhen City

Applicant before: Shanghai Inst. of No.2, Zhongxing Communication Co., Ltd., Shenzhen City

C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
ASS Succession or assignment of patent right

Owner name: BEIJING BORUI XIANGLUN TECHNOLOGY DEVELOPMENT CO.,

Effective date: 20131225

Owner name: STATE GRID BEIJING ELECTRIC POWER COMPANY

Free format text: FORMER OWNER: ZTE CORPORATION

Effective date: 20131225

C41 Transfer of patent application or patent right or utility model
COR Change of bibliographic data

Free format text: CORRECT: ADDRESS; FROM: 518057 SHENZHEN, GUANGDONG PROVINCE TO: 100031 XICHENG, BEIJING

TR01 Transfer of patent right

Effective date of registration: 20131225

Address after: 100031 Beijing Qianmen West Street, Xicheng District, No. 41

Patentee after: State Grid Beijing Electric Power Company

Patentee after: BEIJING BORUI XIANGLUN TECHNOLOGY DEVELOPMENT CO., LTD.

Patentee after: CHINA TECHNOLOGY EXCHANGE CO., LTD.

Address before: 518057 Department of law, Zhongxing building, South Science and technology road, Nanshan District hi tech Industrial Park, Shenzhen

Patentee before: ZTE Corporation

CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20070328

Termination date: 20141229

EXPY Termination of patent right or utility model