CN103164348B - 一种多系统下对实时操作系统所占用内存的保护方法 - Google Patents

一种多系统下对实时操作系统所占用内存的保护方法 Download PDF

Info

Publication number
CN103164348B
CN103164348B CN201310063262.8A CN201310063262A CN103164348B CN 103164348 B CN103164348 B CN 103164348B CN 201310063262 A CN201310063262 A CN 201310063262A CN 103164348 B CN103164348 B CN 103164348B
Authority
CN
China
Prior art keywords
operating system
rtos
real time
virtual address
time operating
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
CN201310063262.8A
Other languages
English (en)
Other versions
CN103164348A (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.)
Zhejiang University ZJU
Original Assignee
Zhejiang University ZJU
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 Zhejiang University ZJU filed Critical Zhejiang University ZJU
Priority to CN201310063262.8A priority Critical patent/CN103164348B/zh
Publication of CN103164348A publication Critical patent/CN103164348A/zh
Application granted granted Critical
Publication of CN103164348B publication Critical patent/CN103164348B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种多系统下对实时操作系统所占用内存的保护方法,过程如下:在具有内存管理单元的中央处理器上初始化进行地址映射操作所必需的数据;实时操作系统根据其占用的内存大小将其代码段和数据段确定在虚拟地址空间中的一个连续的虚拟地址区间上;普通操作系统将所述的虚拟地址区间按内存管理单元提供的机制映射到同一个未使用的物理页框上。本发明具有内存开销小,操作简单,不降低系统运行效率,不增加系统的时间开销的优点,通过普通操作系统将实时操作系统占用的虚拟地址区间映射到物理页框上,实现了内存隔离,没有对操作系统进行大的改动,没有添加额外的模块,只有一页物理页框的空间开销。

Description

一种多系统下对实时操作系统所占用内存的保护方法
技术领域
本发明属于计算机内存管理领域,尤其涉及一种多系统下对实时操作系统所占用内存的保护方法。
背景技术
在嵌入式领域,多个操作系统同时在一个硬件平台上运行是一个趋势,在这些操作系统中实时操作系统是很重要的一类。实时操作系统具有响应及时和可靠性高的特点,这是普通操作系统不能提供的。把实时操作系统和普通操作系统结合起来可以进行操作系统的优势互补,提供更多的功能,获得更高的硬件利用率。但多系统运行在同一个硬件平台上也带来了一些系统安全性的问题,特别是内存安全问题。内存保护是实时操作系统的重要研究内容,内存保护方法的优劣直接关系到实时操作系统的安全性、稳定性和可靠性。
美国WindRiver公司开发的VxWorks嵌入式实时操作系统,支持多任务,所有任务共享一个内存地址空间,彼此之间没有任何保护。这种设计实现简单、执行效率高,能够很好地满足嵌入式实时性需求。但是任务的正确执行完全依赖于程序员编写正确无误的程序。一个任务的错误可能会导致另外的任务无法执行,甚至整个系统的瘫痪,因此程序的可靠性和系统的健壮性都不高。
加拿大QNX软件系统有限公司开发的QNX实时操作系统是一个基于消息传递的微内核实时操作系统,支持进程/线程任务模型,进程管理功能属于一个动态可加载的模块。在没有配置进程管理器的QNX实时系统中,所有的应用线程和核心连接在一起,都处在一个地址空间中,这时的系统是无保护模式系统。当进程管理器启动以后,一个应用创建为一个进程,进程内部可能有若干线程,每个进程有自己的虚拟地址空间,支持完全基于内存管理单元的内存保护机制。这时系统在安全稳定性提高的同时,其对嵌入式实时性的支持就会降低。
现有的多个操作系统间的内存保护方法,大部分是使用一个独立的软件层来完成。这个独立的软件层,通常称作虚拟机,运行在硬件层和操作系统层之间。虽然这种方式可以实现内存保护,但是增加了系统的复杂度。
授权公告号为CN1269047C的中国专利公布了一种具有内存保护功能的内存管理方法,在具有MMU功能的CPU上进行内存管理;在需要保护的内存两端添加保护页;当有操作访问到所述保护页所在的区域时,实时操作系统确认所述操作为非法修改所述内存的操作,并报告内存访问异常。所述保护页的属性为不可访问。在内存中增加保护页会占用内存空间,也使内存的功能变得复杂,非法操作的报告会影响程序执行的流畅性,不利于实际使用。
发明内容
本发明针对现有技术中增加内存保护的功能会影响程序的可靠性、系统的健壮性、嵌入式的实时性,会增加系统的复杂性,导致程序执行不流畅和产生内存中可用空间等问题,提供了一种多系统下对实时操作系统所占用内存的保护方法,将实时操作系统和普通操作系统各自使用的虚拟地址空间进行隔离,在不增加系统复杂性的前提下提供对实时操作系统占用内存的保护。
一种多系统下对实时操作系统所占用内存的保护方法,包括如下步骤:
第一步:在具有内存管理单元的中央处理器上初始化进行地址映射操作所必需的数据;
第二步:实时操作系统根据其占用的内存大小将其代码段和数据段确定在虚拟地址空间中的一个连续的虚拟地址区间上;
第三步:普通操作系统将所述的虚拟地址区间按内存管理单元提供的机制映射到同一个未使用的物理页框上。
作为本发明技术方案的进一步改进:
所述实时操作系统的内存分配方式为静态分配,在编译阶段就可以把实时操作系统使用的代码段和数据段确定在虚拟地址空间中的一个连续的虚拟地址区间上。
所述初始化的工作为根据中央处理器的硬件寻址方式,建立一套访问已经存在的物理地址的机制。比较通用的技术是采用分页机制。采用多级页表的分页,可以优化查询效率,节约存储页表所需的内存空间,如果系统的寻址需要n级,系统就需要建立n级页表进行寻址,第n-1级页表提供第n级页表的基地址,相应的虚拟地址也要分为n段,其中n为正整数,各个段对应各级表的偏移,最后一项对应页框内的物理地址偏移。中央处理器把第一级表的基址,存放在一个特定的地址或寄存器里。
所述内存管理单元提供的机制是地址映射机制,将虚拟地址映射到物理地址。
所述普通操作系统将所述虚拟地址区间按内存管理单元提供的机制映射到同一个未使用的物理页框上的过程中,若所述虚拟地址区间包含多个虚拟页,所述的映射是普通操作系统循环地把实时操作系统占用的每一个虚拟页都映射到同一个选定的物理页框上。
本发明技术方案的有益效果为:内存开销小,只花费一个物理页框,供虚拟地址空间上的所有页映射;操作简单,只需在同时运行的其他操作系统上把相应的虚拟地址空间映射到同一个物理页框上;不降低系统运行效率,没有对操作系统进行大的改动,没有添加额外的模块,运行效率基本不受影响。本发明通过普通操作系统将实时操作系统占用的虚拟地址区间映射到物理页框上,实现了内存隔离,并且没有增加系统的时间开销,只有一页物理页框的空间开销。
附图说明
图1为本发明方法的流程图。
图2为本发明方法中多级页表的索引过程以及虚拟地址区间映射到物理页框的过程图。
图3为本发明方法中实时操作系统占用系统虚拟地址空间示意图。
图4为本发明方法中所述虚拟地址区间包含多个虚拟页时将虚拟地址区间映射到物理页框的过程图。
具体实施方式
本实施方式以在ARM双核处理器上同时运行Android和SmartOSEKOS为例,对本发明的技术方案做进一步阐述。
本实施方式的运行整体环境如下:
Android和SmartOSEKOS两个操作系统分别运行在基于ARM双核处理器的硬件平台的两个核上,两个操作系统共同使用硬件平台的物理内存。其中SmartOSEKOS是由浙江大学嵌入式工程中心根据国家汽车电子软件发展的需求而自主研发的符合OSEK/VDX标准的嵌入式实时操作系统。OSEK/VDX是国际汽车工业为提高汽车电子软件的重用性,降低软件开发成本而提出的汽车开放结构的工业标准。SmartOSEKOS分配内存的方式是静态分配,在编译阶段就可以把SmartOSEKOS使用的代码段和数据段连续的设定在一个虚拟地址空间内。对32位的中央处理器来说,一个系统的虚拟地址空间的大小是4G。
如图1所示,本实施方式的具体操作步骤如下:
第一步:在具有内存管理单元的中央处理器上初始化进行地址映射操作所必需的数据;
第二步:实时操作系统根据其占用的内存大小将其代码段和数据段确定在虚拟地址空间中的一个连续的虚拟地址区间上;
第三步:普通操作系统将所述的虚拟地址区间按内存管理单元提供的机制映射到同一个未使用的物理页框上。
其中,对于第一步,在具有内存管理单元的中央处理器上初始化进行地址映射操作所必需的数据,本实施方式采用如下方式:
本实施方式中系统的初始化分为两个部分,第一个核(Android使用的核)的初始化和第二个核(SmartOSEKOS使用的核)的初始化。系统的初始化开始于普通操作系统Android内核的初始化,在两个核初始化完成之后,初始化Android的上层部分,然后整个系统正常运行。
第一个核初始化中根据分页机制建立了两个页表。一个供普通操作系统Android使用,另一个供实时操作系统SmartOSEKOS使用。如图2所示,本实施方式中使用的是3级页表。每个虚拟地址分为4个段:总目录偏移、中间目录偏移、页目录偏移和页内偏移。前面的3个段分别对应3个表,总目录表、中间目录表和页目录表。CR3表示中央处理器特定的寄存器,用于存放第1级表的基址,在本实施方式CR3表示页目录基址寄存器,用于存放总目录的基址。根据虚拟地址找到物理地址的过程是:首先把从CR3中读出的总目录基址和虚拟地址中的总目录偏移相加,得到中间目录基址;然后把中间目录基址与虚拟地址中的中间目录偏移量相加,得到页目录基址;然后把页目录基址和虚拟地址中的页目录偏移相加,得到页的基址;最后把页的基址和虚拟地址中的页内偏移相加,得到了虚拟地址对应的物理地址。
对于第二步,实时操作系统根据其占用的内存大小将其代码段和数据段确定在虚拟地址空间中的一个连续的虚拟地址区间上,如图3所示,本实施方式中实时操作系统SmartOSEKOS占用基于ARM双核处理器的硬件平台中的基于ARM双核处理器是一个32位的中央处理器,因此其虚拟地址空间的大小是4G。本实施方式的实时操作系统SmartOSEKOS采用静态的内存分配方式,在编译阶段就可把其占用的虚拟地址空间的代码段和数据段确定在4G虚拟地址空间中的一个连续的虚拟地址区间上。
对于第三步,普通操作系统将所述的虚拟地址区间按内存管理单元提供的机制映射到同一个未使用的物理页框上,普通操作系统Android将实时操作系统SmartOSEKOS占用的虚拟地址空间映射到同一个选中的物理页框中的过程如图4所示,本实施方式中实时操作系统SmartOSEKOS占用的虚拟地址空间含多个虚拟页时,普通操作系统Android循环地把实时操作系统SmartOSEKOS占用的每一个虚拟页都映射到选定的同一个物理页框上。具体的映射工作由内存管理单元通过修改Android使用的页表中跟SmartOSEKOS使用的虚拟地址空间有关的页表项来完成。
在本实施例中,对于Android和SmartOSEKOS两个操作系统同时正常运行在基于ARM双核处理器的硬件平台时,实时操作系统SmartOSEKOS运行在第二步确定的虚拟地址空间里,实时操作系统SmartOSEKOS不会访问这个虚拟地址空间以外的地址空间,这样实时操作系统SmartOSEKOS就不会对普通操作系统Android所使用的虚拟地址空间进行读写操作;对于普通操作系统Android,不会再分配实时操作系统SmartOSEKOS使用的虚拟地址空间,如果普通操作系统Android越界访问到实时操作系统SmartOSEKOS占用的虚拟地址空间,其对实时操作系统SmartOSEKOS所使用的虚拟地址空间进行的读写操作实际上是对映射的那个的物理页框进行操作,获得的始终是无效数据,不会对实时操作系统SmartOSEKOS所实际使用的物理内存有任何影响。

Claims (2)

1.一种多系统下对实时操作系统所占用内存的保护方法,其特征在于,包括如下步骤:
第一步:在具有内存管理单元的中央处理器上初始化进行地址映射操作所必需的数据;所述的初始化的工作为根据中央处理器的硬件寻址机制,建立一套机制访问物理地址,所述的访问物理地址的机制是分页机制;
所述的初始化分为两个部分,第一个核的初始化和第二个核的初始化,所述的第一个核为普通操作系统使用的核,所述的第二个核为实时操作系统使用的核;
第一个核初始化中根据分页机制建立了两个页表,一个供普通操作系统使用,另一个供实时操作系统使用;
第二步:实时操作系统根据其占用的内存大小将其代码段和数据段确定在虚拟地址空间中的一个连续的虚拟地址区间上;
第三步:普通操作系统将所述的虚拟地址区间按内存管理单元提供的机制映射到同一个未使用的物理页框上,所述的内存管理单元提供的机制是地址映射机制,所述的普通操作系统将所述的虚拟地址区间按内存管理单元提供的机制映射到同一个未使用的物理页框上的过程中,若所述的虚拟地址区间包含多个虚拟页,所述的映射是普通操作系统循环地把实时操作系统占用的每一个虚拟页都映射到同一个选定的物理页框上。
2.根据权利要求1所述的多系统下对实时操作系统所占用内存的保护方法,其特征在于,所述的实时操作系统的内存分配方式为静态分配。
CN201310063262.8A 2013-02-28 2013-02-28 一种多系统下对实时操作系统所占用内存的保护方法 Expired - Fee Related CN103164348B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310063262.8A CN103164348B (zh) 2013-02-28 2013-02-28 一种多系统下对实时操作系统所占用内存的保护方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310063262.8A CN103164348B (zh) 2013-02-28 2013-02-28 一种多系统下对实时操作系统所占用内存的保护方法

Publications (2)

Publication Number Publication Date
CN103164348A CN103164348A (zh) 2013-06-19
CN103164348B true CN103164348B (zh) 2016-06-08

Family

ID=48587450

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310063262.8A Expired - Fee Related CN103164348B (zh) 2013-02-28 2013-02-28 一种多系统下对实时操作系统所占用内存的保护方法

Country Status (1)

Country Link
CN (1) CN103164348B (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110231988A (zh) * 2018-03-05 2019-09-13 龙芯中科技术有限公司 显存访问方法、装置及存储介质

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106502924B (zh) * 2016-10-27 2020-02-07 深圳创维数字技术有限公司 一种内存优化方法及系统
WO2020010556A1 (zh) * 2018-07-11 2020-01-16 华为技术有限公司 增强用户空间与内核空间的隔离性的方法和装置
CN111797390B (zh) * 2020-07-14 2024-01-26 北京元心科技有限公司 程序运行方法、装置、电子设备及计算机可读存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1567254A (zh) * 2003-06-17 2005-01-19 深圳市中兴通讯股份有限公司南京分公司 嵌入式实时操作系统高效可靠的内存保护方法
CN1581108A (zh) * 2003-07-31 2005-02-16 深圳市中兴通讯股份有限公司南京分公司 一种具有内存保护功能的内存管理方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8051301B2 (en) * 2001-11-13 2011-11-01 Advanced Micro Devices, Inc. Memory management system and method providing linear address based memory access security
CN100343828C (zh) * 2004-03-24 2007-10-17 华为技术有限公司 一种内存分配方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1567254A (zh) * 2003-06-17 2005-01-19 深圳市中兴通讯股份有限公司南京分公司 嵌入式实时操作系统高效可靠的内存保护方法
CN1581108A (zh) * 2003-07-31 2005-02-16 深圳市中兴通讯股份有限公司南京分公司 一种具有内存保护功能的内存管理方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
《基于模型驱动的汽车电子软件开发方法研究》;杨国青;《CNKI博士学位论文全文库》;20061001;第21-22页 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110231988A (zh) * 2018-03-05 2019-09-13 龙芯中科技术有限公司 显存访问方法、装置及存储介质
CN110231988B (zh) * 2018-03-05 2021-08-03 龙芯中科技术股份有限公司 显存访问方法、装置及存储介质

Also Published As

Publication number Publication date
CN103164348A (zh) 2013-06-19

Similar Documents

Publication Publication Date Title
CN100527098C (zh) 一种虚拟机管理器的动态内存映射方法
CN104081346B (zh) 用于使用跟踪数据消除处理器间中断来支持多处理器虚拟机环境中的地址转换的方法和设备
CN100593160C (zh) 利用覆盖较大地址空间的转换表的地址转换性能增强
CN102473139B (zh) 包括用于i/o和计算卸载的多层次地址转换的i/o存储器管理单元
CN102792285B (zh) 用于处理数据的装置和方法
CN104798061B (zh) 在虚拟化环境中控制对存储器页面组的访问
JP5611622B2 (ja) バーチャルマシーンシステムの物理的メモリのバーチャル化
CN102789429B (zh) 支持页属性的虚拟地址至物理地址的转换
CN101149707B (zh) 将翻译后援缓冲器同步到扩充的分页表
US8560806B2 (en) Using a multiple stage memory address translation structure to manage protected micro-contexts
US20110010483A1 (en) Memory protection unit in a virtual processing environment
CN104487953A (zh) 用于层次型存储器系统的存储器管理
US20210089468A1 (en) Memory management unit, address translation method, and processor
CN101027652A (zh) 对于直接存储器存取地址转换的高速缓存支持
CN102906721A (zh) 与访问地址空间并行地对地址空间调整大小
CN105830026A (zh) 用于调度来自虚拟机的图形处理单元工作负荷的装置和方法
CN103164348B (zh) 一种多系统下对实时操作系统所占用内存的保护方法
CN102906719A (zh) 输入/输出地址到存储器地址的转换
MX2008013345A (es) Memoria asociada de instrucciones etiquetada virtualmente con un comportamiento etiquetado fisicamente.
CN102498478A (zh) 在外围互连上对i/o和计算卸载设备使用两级地址转换的iommu
CN102906702A (zh) 对适配器的地址空间的访客端访问
CN101315602A (zh) 硬件化的进程内存管理核的方法
EP3163451B1 (en) Memory management method and device, and memory controller
US20240264768A1 (en) Request Processing Method, Apparatus, and System
CN113574512A (zh) 页表结构

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160608