CN116010295A - 一种实时操作系统的内存管理方法、系统、设备及介质 - Google Patents
一种实时操作系统的内存管理方法、系统、设备及介质 Download PDFInfo
- Publication number
- CN116010295A CN116010295A CN202310078191.2A CN202310078191A CN116010295A CN 116010295 A CN116010295 A CN 116010295A CN 202310078191 A CN202310078191 A CN 202310078191A CN 116010295 A CN116010295 A CN 116010295A
- Authority
- CN
- China
- Prior art keywords
- memory
- custom
- memory area
- call interface
- area
- 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.)
- Pending
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Storage Device Security (AREA)
Abstract
本发明属于计算机领域,具体涉及一种实时操作系统的内存管理方法、系统、设备及介质。方法包括:基于可用内存划分自定义内存区域,并对自定义内存区域进行初始化;基于初始化的自定义内存区域为应用程序创建内存调用接口,并通过内存调用接口对所述自定义内存区域进行访问。通过本发明提出的一种实时操作系统的内存管理方法,对内存段进行了更详尽的划分,增加了灵活性。对自定义内存区域进行了使用权限划分,明确权限等级,避免应用层开发者误使用造成的风险。封装了MMU相关接口,应用层开发者可根据需求方便直观的定义使用内存分段内容。同时在不增加硬件的情况下,实现对权限的分级管理。为本领域技术人员提供一种方便快捷的开发工具。
Description
技术领域
本发明属于计算机领域,具体涉及一种实时操作系统的内存管理方法、系统、设备及可读存储介质。
背景技术
操作系统分为一般操作系统和实时操作系统(RTOS,Real Time OperatingSystem,是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,调度一切可利用的资源完成实时任务,并控制所有实时任务协调一致运行的操作系统),我们熟悉的Linux、Windows、macOS等,都属于一般操作系统,而针对一些特定的应用,尤其是实时性要求比较高的场景,一般使用实时操作系统(RTOS),常见的RTOS有ThreadX、FreeRTOS、VxWorks等,如图5所示。而操作系统一般需要具备的功能有进程管理、内存管理、磁盘与文件系统等,如图6所示。
进一步地,内存管理需要借助单独的硬件MMU(全称Memory Management Unit,中文名是内存管理单元。它是一种负责处理中央处理器(CPU)的内存访问请求的计算机硬件。它的功能包括内存分配与保护、内存回收、虚拟地址到物理地址的转换(即虚拟内存管理)、内存空间的扩充等)模块实现,如果不使能该模块,则此时CPU内部执行单元产生的虚拟地址会直接通过地址总线发送到芯片引脚,被内存芯片接收,放在寻址总线上进行读取或者置位,这种方法有较大的安全隐患,因此一般意义上,都会选择使能MMU,使其发挥作用。一般内存管理需要具备的功能有内存分配与保护、内存回收、虚拟内存管理,内存空间的扩充等,
应用程序在ThreadX上运行使用内存时,其申请方式有两种:块内存池和字节池。这两种方式均直接从ThreadX原生定义的默认内存区域中申请内存,所申请的内存区域权限均相同,不做区分。
但由于操作系统默认的内存分段区域范围,和系统硬件紧密相关,而一般应用层开发者往往不具备相关硬件知识,因此无法显式的知晓各个内存分段区域的范围和权限,从而极易发生内存越界或踩踏等情况,进而引发系统故障
再者,原生ThreadX的MMU模块设置由汇编语言编写,编写阅读均较为麻烦,而一旦出错,调试更是需要具备针对性的工具,一般程序员掌握的较少,因此在应用开发时常常出现内存越界或踩踏等错误,需要花费大量的时间去排查错误。同时当硬件配置或者应用程序改变时相似的问题又要重复发生。
因此,亟需一种有效的应对方案以解决上述问题。
发明内容
为解决上述问题,本发明提出一种实时操作系统的内存管理方法,包括:
基于可用内存划分自定义内存区域,并对所述自定义内存区域进行初始化;
基于初始化的自定义内存区域为应用程序创建内存调用接口,并通过所述内存调用接口对所述自定义内存区域进行访问。
在本发明的一些实施方式中,基于可用内存划分自定义内存区域,并对所述自定义内存区域进行初始化包括:
基于实际硬件配置以及应用程序需要创建内存计划。
在本发明的一些实施方式中,基于可用内存划分自定义内存区域,并对所述自定义内存区域进行初始化还包括:
基于创建的所述内存计划通过内存管理器初始化内存空间。
在本发明的一些实施方式中,基于初始化的自定义内存区域为应用程序创建内存调用接口,并通过所述内存调用接口对所述自定义内存区域进行访问包括:
向操作系统注册初始化后的自定义内存区域,并根据预定策略对所述自定义内存区域设置权限。
在本发明的一些实施方式中,基于初始化的自定义内存区域为应用程序创建内存调用接口,并通过所述内存调用接口对所述自定义内存区域进行访问包括:
基于所述自定义内存区域的物理地址建立对应的虚拟内存地址,并建立所述物理内存地址和虚拟内存地址的映射表。
在本发明的一些实施方式中,方法还包括:
响应于应用程序通过所述内存调用接口对所述自定义内存区域进行访问,基于应用程序的身份对所述应用程序对自定义内存区域的访问行为进行管理。
在本发明的一些实施方式中,基于应用程序的身份对所述应用程序对自定义内存区域的访问行为进行管理包括:
对应用程序在所述自定义内存区域写入的数据进行分类,并基于所述分类管理其他应用程序对所述数据的访问行为。
本发明的另一方面还提出一种实时操作系统的内存管理系统,包括:
硬件初始化模块,所述硬件初始化模块配置用于基于可用内存划分自定义内存区域,并对所述自定义内存区域进行初始化;
内存访问管理模块,所述内存访问管理模块配置用于基于初始化的自定义内存区域为应用程序创建内存调用接口,并通过所述内存调用接口对所述自定义内存区域进行访问。
本发明的又一方面还提出一种计算机设备,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现上述实施方式中任意一项所述方法的步骤。
本发明的再一方面还提出一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述实施方式中任意一项所述方法的步骤。
通过本发明提出的一种实时操作系统的内存管理方法,对内存段进行了更详尽的划分,根据需求,设置自定义内存区域,可划定后续字节池或块池申请内存的区域,增加了灵活性。对自定义内存区域进行了使用权限划分,明确权限等级,避免应用层开发者误使用造成的风险。使用高级语言封装MMU相关接口,应用层开发者可根据需求更加方便直观的定义使用内存分段内容。同时在不增加硬件的情况下,实现对权限的分级管理。为本领域技术人员提供一种方便快捷的开发工具。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种实时操作系统的内存管理方法的方法流程示意图;
图2为本发明实施例提供的一种实施操作系统的内存管理系统的结构示意图;
图3为本发明实施例提供的一种计算机设备的结构示意图;
图4为本发明实施例提供的一种计算机可读存储介质的结构示意图。
图5为本法实施例提供的实时操作系统的功能结构示意图;
图6为本发明实施例提供的一般操作系统的功能结构示意图;
图7为本发明实施例提供的一种实时操作系统的内存管理方法对应的内存结构示意图;
图8为本发明实施例提供的一种实时操作系统的内存管理方法的实施过程示意图;
图9为本发明实施例提供的一种实时操作系统的内存管理方法向操作系统中出注册内存区域的过程示意图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明实施例进一步详细说明。
本发明旨在解决ThreadX实时操作系统开发时,内存空间的使用对开发人员门槛较高问题。ThreadX是是一种实时操作系统,多用于嵌入式领域,其应用的领域的,在ThreadX操作系统中开发应用程序时,需要由开发人员根据所应用的硬件设备的内存空间大小等硬件条件开发对应的应用程序,代码中的变量数据一般以内存物理地址进行保存。对于开发人员的要求较高,很容易将内存空间设置出错,导致内存越界或者踩踏,程序运行出错。几乎是与硬件深度绑定。因此对于本领域技术人员来说有使用ThreadX实施操作系统存在较高的门槛。
如图1所示,为解决上述问题,本发明提出一种实时操作系统的内存管理方法,包括:
步骤S1、基于可用内存划分自定义内存区域,并对所述自定义内存区域进行初始化;
步骤S2、基于初始化的自定义内存区域为应用程序创建内存调用接口,并通过所述内存调用接口对所述自定义内存区域进行访问。
在本发明的实施例中,可用内存是指ThreadX操作系统所要应用的硬件平台的内存,即计算机设备中的内存,自定义存储区域是指除ThreadX操作系统用于保存操作系统数据之外的存储空间,该存储空间可用于应用程序使用。故,在步骤S1中,首先基于所开发的应用程序所要部署的硬件平台的内存大小指定用于自定义内存区域的大小,同时对划分的区域进行硬件层次的初始化。
在步骤S2中,通过高级编程语言,开发相应的内存调用接口,并将内存调用接口所操作的内存空间设置到自定义内存区域,用于向应用程序提供内存调用功能,当应用程序需要申请内存空间存储数据时或者从自定义内存区域读取数据时,可通过内存调用接口传递对应的内存地址,内存调用接口根据具体的地址在自定义内存区域对应的地址读取或写入数据。
在本发明的一些实施方式中,基于可用内存划分自定义内存区域,并对所述自定义内存区域进行初始化包括:
基于实际硬件配置以及应用程序需要创建内存计划。
在本实施例中,在划分自定义内存区域时需要根据开发的应用程序所部署的硬件配置以及应用程序所需要的大小设定内存计划,所谓内存计划是指将该硬件配置下多大的内存空间设置为自定义内存空间,以及多大的空间用于ThreadX操作系统通用的数据存储空间。在本发明中内存计划是一个配置文件,即脚本文件,具体地本发明使用.ld文件作为链接脚本,该链接脚本主要用于规定如何把输入文件内的自定义内存区域放入输出文件内,并控制输出文件内各部分在程序地址空间内的布局,根据硬件配置,划分存储空间。
在本发明的一些实施方式中,基于可用内存划分自定义内存区域,并对所述自定义内存区域进行初始化还包括:
基于创建的所述内存计划通过内存管理器初始化内存空间。
在本实施例中,内存管理器(也称内存管理单元)为MMU,所谓基于创建的所述内存计划通过内存管理器初始化内存空间是指,通过编译相关启动文件,将对内存划分的配置计划编译成操作系统加载后相关配置信息,以及对MMU相关寄存器进行配置,使MMU支持虚拟内存地址到物理内存地址的映射,以支持自定义内存区域可以使用虚拟内存地址,当应用或操作系统传递给MMU对应的自定义内存区域的内存地址时,通过MMU找到对应的自定义内存区域在硬件平台内存中的物理地址。即将自定义内存区域通过MMU实现物理地址空间的管理,实现自定义内存区域对应的物理内存空间的初始化,并通过MMU来管理自定义内存区域对应的物理内存空间。在本发明的一些实施方式中,基于初始化的自定义内存区域为应用程序创建内存调用接口,并通过所述内存调用接口对所述自定义内存区域进行访问包括:
向操作系统注册初始化后的自定义内存区域,并根据预定策略对所述自定义内存区域设置权限。
在本实施例中,将自定义内存区域注册到操作系统中,同时对自定义内存区域的读写权限进行设定,如果自定义内存区域中存在某一自定义段的权限为可读可写,则允许应用程序对该自定义段的空间进行申请,申请后应用程序可以通过内存调用接口对该自定义段进行数据读写。自定义段的权限类型还包括:只读、只写等。
其中,只读段是指不允许应用程序修改的区域;只写段是可以修改内容的,但不能查看内容,应用较少。权限划分依据:只读:该区域仅可读,存一些不会修改的变量或值;
只写:该区域仅支持修改,不支持读取;
可读写:该区域既可以读取,也可以修改,应用最为普遍。
进一步,还可根据应用需要对自定义内存区域的访问权限进行划分。具体地,如果应用程序想要自主的修改内存访问权限,首先确认想要修改的内存区域对应的虚拟地址到物理地址的映射表,将内存区域的权限字段更改为所需权限,并根据更新后的字段来更新该映射表相关的页目录和页表项内容,可使得应用程序有更灵活的权限。
在本发明的一些实施方式中,基于初始化的自定义内存区域为应用程序创建内存调用接口,并通过所述内存调用接口对所述自定义内存区域进行访问包括:
基于所述自定义内存区域的物理地址建立对应的虚拟内存地址,并建立所述物理内存地址和虚拟内存地址的映射表。
在本实施例中,建立并维护自定义内存区域对应的虚拟地址和物理地址的映射表,当应用程序通过内存调用接口访问对应的自定义内存区域对应的自定义段时,通过映射表可以定位到需要访问的物理地址,并通过MMU找到对应的物理内存地址上进行访问。
在本发明的一些实施方式中,方法还包括:
响应于应用程序通过所述内存调用接口对所述自定义内存区域进行访问,基于应用程序的身份对所述应用程序对自定义内存区域的访问行为进行管理。
在本发明的一些实施方式中,基于应用程序的身份对所述应用程序对自定义内存区域的访问行为进行管理包括:
对应用程序在所述自定义内存区域写入的数据进行分类,并基于所述分类管理其他应用程序对所述数据的访问行为。
在本实施例中,当应用程序调用内存调用接口访问对应的自定义内存区域时,记录该应用程序访问的自定义内存区域的地址,并设置应用程序对该自定义内存区域地址的程序级的访问属性分类,如果该地址的数据对应的访问属性分类为私有数据,则限制其他应用程序对该自定义内存区域的地址访问。如果对应的应用程序在通过内存调用接口访问某自定义内存空间后并未指明数据的访问属性分类,则允许其他应用程序访问该地址上的数据。
实施例:
本发明提出设计一种提高ThreadX内存管理权限灵活性的方法,以解决原生ThreadX内存管理权限单一,调试使用不够灵活的问题。
本发明提出的提高ThreadX内存管理权限灵活性的方法,结合硬件配置,自定义设置不同的内存分段,并为各段指定不同的访问权限,通过c语言从软件层面二次封装有关MMU的自定义存储段的地址范围和权限,使得调试和使用都更加灵活方便。
具体地,本发明使用.ld文件作为链接脚本,该链接脚本主要用于规定如何把输入文件内的section段放入输出文件内,并控制输出文件内各部分在程序地址空间内的布局。根据硬件配置,划分存储空间。
本发明的启动文件是startup.S启动文件。该文件在系统上电或者冷启动的时候,第一个被执行,由汇编语言编写的,完成基于硬件平台的最初的初始化,也就是CPU的相关初始化。关于MMU部分,主要对相关寄存器进行置位来开启硬件MMU模块,执行完成后,会跳转到C语言的入口,进而进入到应用程序的运行。应用程序的内存布局,如图7所示,传统的应用数据主要有vectors、text、rodata、ctors、dtors、data段等,其中,vectors段保存异常向量表,text段保存可执行的代码,rodata段存储常量数据,ctors段保存全局构造函数指针,dtors段保存全局析构函数指针,data段存放经过初始化的全局变量和静态变量。因此,本发明根据应用程序需求,添加自定义段,以提供给后续业务申请内存用,提高灵活性。
本发明技术方案的主要实施流程如图8所示,具体如下:
步骤一:程序编译阶段。根据硬件配置,编写.ld链接文件,对物理硬件对应的存储区域进行地址和权限划分,设置自定义段,如自定义段1、自定义段2。
步骤二:硬件初始化。在startup.S文件中置位寄存器使能硬件MMU模块。
步骤三:软件初始化。自定义注册内存区域,通过注册新的内存区域,使用C语言将划分的内存分段再次细分封装,并设置不同的地址范围和权限,实现对接口的二次封装。具体实现流程如图9所示。
注册自定义内存区域过程:
1)在操作系统中注册自定义内存区域。划定欲使用的内存区间。
2)设置权限。可根据外设或是内存进行权限区分,同时限定读写执行权限。
3)建立映射。建立内存虚拟地址到内存物理地址的映射,并基于内存虚拟地址到内存物理地址的映射构建应用程序的使用自定义内存区域的查找表。
4)根据应用程序的行为更新查找表。通过查找表,程序可定位到需要访问的自定义内存区域具体地址。
步骤四:应用程序运行。使用自定义分段区域来申请内存,比如字节池时,可显示的让其在指定内存段(如“自定义段1”)进行申请,例如,内存调用接口的C语言函形式为:tx_byte_pool_create(&byte_pool_0,"byte pool 0","自定义段1",DEMO_BYTE_POOL_SIZE);其中第3个参数为对应的自定义内存区域的内存地址,即自定义段1。tx_byte_pool_create方法执行时向MMU发送“自定义段1”,MMU则将“自定义段1”对应的物理内存地址空间作为该应用程序的自定义数据地址空间。
通过本发明提出的一种实时操作系统的内存管理方法,对内存段进行了更详尽的划分,根据需求,设置自定义内存区域,可划定后续字节池或块池申请内存的区域,增加了灵活性。对自定义内存区域进行了使用权限划分,明确权限等级,避免应用层开发者误使用造成的风险。使用高级语言封装MMU相关接口,应用层开发者可根据需求更加方便直观的定义使用内存分段内容。同时在不增加硬件的情况下,实现对权限的分级管理。为本领域技术人员提供一种方便快捷的开发工具。
本发明实施例中,以C语言作为内存调用接口的开发语言,C语言属于高级语言,应用面广,能够结构化编程,编写的程序结构清晰,移植性好,因此本发明用C语言对接口进行二次封装,使得开发更加灵活方便。因此本发明提出提供接口,在应用层,也让开发者可以对内存进行二次定义和设置,显式的掌握各内存分段的范围和权限,从而可以更加灵活方便的调试使用,避免无意的非法操作引发的系统问题。
本发明的另一方面还提出一种实时操作系统的内存管理系统,包括:
硬件初始化模块1,所述硬件初始化模块1配置用于基于可用内存划分自定义内存区域,并对所述自定义内存区域进行初始化;
内存访问管理模块2,所述内存访问管理模块2配置用于基于初始化的自定义内存区域为应用程序创建内存调用接口,并通过所述内存调用接口对所述自定义内存区域进行访问。
如图3所示,本发明的又一方面还提出一种计算机设备,包括:
至少一个处理器21;以及
存储器22,所述存储器22存储有可在所述处理器21上运行的计算机指令23,所述指令23由所述处理器21执行时实现一种实时操作系统的内存管理方法,包括:
基于可用内存划分自定义内存区域,并对所述自定义内存区域进行初始化;
基于初始化的自定义内存区域为应用程序创建内存调用接口,并通过所述内存调用接口对所述自定义内存区域进行访问。
在本发明的一些实施方式中,基于可用内存划分自定义内存区域,并对所述自定义内存区域进行初始化包括:
基于实际硬件配置以及应用程序需要创建内存计划。
在本发明的一些实施方式中,基于可用内存划分自定义内存区域,并对所述自定义内存区域进行初始化还包括:
基于创建的所述内存计划通过内存管理器初始化内存空间。
在本发明的一些实施方式中,基于初始化的自定义内存区域为应用程序创建内存调用接口,并通过所述内存调用接口对所述自定义内存区域进行访问包括:
向操作系统注册初始化后的自定义内存区域,并根据预定策略对所述自定义内存区域设置权限。
在本发明的一些实施方式中,基于初始化的自定义内存区域为应用程序创建内存调用接口,并通过所述内存调用接口对所述自定义内存区域进行访问包括:
基于所述自定义内存区域的物理地址建立对应的虚拟内存地址,并建立所述物理内存地址和虚拟内存地址的映射表。
在本发明的一些实施方式中,方法还包括:
响应于应用程序通过所述内存调用接口对所述自定义内存区域进行访问,基于应用程序的身份对所述应用程序对自定义内存区域的访问行为进行管理。
在本发明的一些实施方式中,基于应用程序的身份对所述应用程序对自定义内存区域的访问行为进行管理包括:
对应用程序在所述自定义内存区域写入的数据进行分类,并基于所述分类管理其他应用程序对所述数据的访问行为。
如图4所示,本发明的再一方面还提出一种计算机可读存储介质401,所述计算机可读存储介质401存储有计算机程序402,所述计算机程序402被处理器执行时实现一种实时操作系统的内存管理方法,包括:
基于可用内存划分自定义内存区域,并对所述自定义内存区域进行初始化;
基于初始化的自定义内存区域为应用程序创建内存调用接口,并通过所述内存调用接口对所述自定义内存区域进行访问。
在本发明的一些实施方式中,基于可用内存划分自定义内存区域,并对所述自定义内存区域进行初始化包括:
基于实际硬件配置以及应用程序需要创建内存计划。
在本发明的一些实施方式中,基于可用内存划分自定义内存区域,并对所述自定义内存区域进行初始化还包括:
基于创建的所述内存计划通过内存管理器初始化内存空间。
在本发明的一些实施方式中,基于初始化的自定义内存区域为应用程序创建内存调用接口,并通过所述内存调用接口对所述自定义内存区域进行访问包括:
向操作系统注册初始化后的自定义内存区域,并根据预定策略对所述自定义内存区域设置权限。
在本发明的一些实施方式中,基于初始化的自定义内存区域为应用程序创建内存调用接口,并通过所述内存调用接口对所述自定义内存区域进行访问包括:
基于所述自定义内存区域的物理地址建立对应的虚拟内存地址,并建立所述物理内存地址和虚拟内存地址的映射表。
在本发明的一些实施方式中,方法还包括:
响应于应用程序通过所述内存调用接口对所述自定义内存区域进行访问,基于应用程序的身份对所述应用程序对自定义内存区域的访问行为进行管理。
在本发明的一些实施方式中,基于应用程序的身份对所述应用程序对自定义内存区域的访问行为进行管理包括:
对应用程序在所述自定义内存区域写入的数据进行分类,并基于所述分类管理其他应用程序对所述数据的访问行为。
以上是本发明公开的示例性实施例,但是应当注意,在不背离权利要求限定的本发明实施例公开的范围的前提下,可以进行多种改变和修改。根据这里描述的公开实施例的方法权利要求的功能、步骤和/或动作不需以任何特定顺序执行。此外,尽管本发明实施例公开的元素可以以个体形式描述或要求,但除非明确限制为单数,也可以理解为多个。
应当理解的是,在本文中使用的,除非上下文清楚地支持例外情况,单数形式“一个”旨在也包括复数形式。还应当理解的是,在本文中使用的“和/或”是指包括一个或者一个以上相关联地列出的项目的任意和所有可能组合。
上述本发明实施例公开实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
结合这里的公开所描述的方法或算法的步骤可以直接包含在硬件中、由处理器执行的软件模块中或这两者的组合中。软件模块可以驻留在RAM存储器、快闪存储器、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM、或本领域已知的任何其它形式的存储介质中。示例性的存储介质被耦合到处理器,使得处理器能够从该存储介质中读取信息或向该存储介质写入信息。在一个替换方案中,所述存储介质可以与处理器集成在一起。处理器和存储介质可以驻留在ASIC中。ASIC可以驻留在用户终端中。在一个替换方案中,处理器和存储介质可以作为分立组件驻留在用户终端中。
所属领域的普通技术人员应当理解:以上任何实施例的讨论仅为示例性的,并非旨在暗示本发明实施例公开的范围(包括权利要求)被限于这些例子;在本发明实施例的思路下,以上实施例或者不同实施例中的技术特征之间也可以进行组合,并存在如上所述的本发明实施例的不同方面的许多其它变化,为了简明它们没有在细节中提供。因此,凡在本发明实施例的精神和原则之内,所做的任何省略、修改、等同替换、改进等,均应包含在本发明实施例的保护范围之内。
Claims (10)
1.一种实时操作系统的内存管理方法,其特征在于,包括:
基于可用内存划分自定义内存区域,并对所述自定义内存区域进行初始化;
基于初始化的自定义内存区域为应用程序创建内存调用接口,并通过所述内存调用接口对所述自定义内存区域进行访问。
2.根据权利要求1所述的方法,其特征在于,所述基于可用内存划分自定义内存区域,并对所述自定义内存区域进行初始化包括:
基于实际硬件配置以及应用程序需要创建内存计划。
3.根据权利要求2所述的方法,其特征在于,所述基于可用内存划分自定义内存区域,并对所述自定义内存区域进行初始化还包括:
基于创建的所述内存计划通过内存管理器初始化内存空间。
4.根据权利要求1所述的方法,其特征在于,所述基于初始化的自定义内存区域为应用程序创建内存调用接口,并通过所述内存调用接口对所述自定义内存区域进行访问包括:
向操作系统注册初始化后的自定义内存区域,并根据预定策略对所述自定义内存区域设置权限。
5.根据权利要求4所述的方法,其特征在于,所述基于初始化的自定义内存区域为应用程序创建内存调用接口,并通过所述内存调用接口对所述自定义内存区域进行访问包括:
基于所述自定义内存区域的物理地址建立对应的虚拟内存地址,并建立所述物理内存地址和虚拟内存地址的映射表。
6.根据权利要求1所述的方法,其特征在于,还包括:
响应于应用程序通过所述内存调用接口对所述自定义内存区域进行访问,基于应用程序的身份对所述应用程序对自定义内存区域的访问行为进行管理。
7.根据权利要求6所述的方法,其特征在于,所述基于应用程序的身份对所述应用程序对自定义内存区域的访问行为进行管理包括:
对应用程序在所述自定义内存区域写入的数据进行分类,并基于所述分类管理其他应用程序对所述数据的访问行为。
8.一种实时操作系统的内存管理系统,其特征在于,包括:
硬件初始化模块,所述硬件初始化模块配置用于基于可用内存划分自定义内存区域,并对所述自定义内存区域进行初始化;
内存访问管理模块,所述内存访问管理模块配置用于基于初始化的自定义内存区域为应用程序创建内存调用接口,并通过所述内存调用接口对所述自定义内存区域进行访问。
9.一种计算机设备,其特征在于,包括:
至少一个处理器;以及
存储器,所述存储器存储有可在所述处理器上运行的计算机指令,所述指令由所述处理器执行时实现权利要求1-7任意一项所述方法的步骤。
10.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-7任意一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310078191.2A CN116010295A (zh) | 2023-01-30 | 2023-01-30 | 一种实时操作系统的内存管理方法、系统、设备及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310078191.2A CN116010295A (zh) | 2023-01-30 | 2023-01-30 | 一种实时操作系统的内存管理方法、系统、设备及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116010295A true CN116010295A (zh) | 2023-04-25 |
Family
ID=86035500
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310078191.2A Pending CN116010295A (zh) | 2023-01-30 | 2023-01-30 | 一种实时操作系统的内存管理方法、系统、设备及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116010295A (zh) |
-
2023
- 2023-01-30 CN CN202310078191.2A patent/CN116010295A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5805880A (en) | Operating system independent method for avoiding operating system security for operations performed by essential utilities | |
US5136709A (en) | Method for generating an operating system by a static link-editor | |
US7213247B1 (en) | Protection domains for a computer operating system | |
RU2640300C2 (ru) | Движок интроспекции памяти для защиты целостности виртуальных машин | |
EP1939754B1 (en) | Providing protected access to critical memory regions | |
KR102617102B1 (ko) | 서명 바운디드 포인터를 생성하기 위한 장치 및 방법 | |
JP4981006B2 (ja) | 仮想計算機を制御する方法及びシステム | |
US8127098B1 (en) | Virtualization of real mode execution | |
KR101799261B1 (ko) | 하드웨어 모드와 보안 플래그에 의존하여 판독된 명령어에 대한 메모리 영역의 제한 | |
KR102649092B1 (ko) | 바운디드 포인터의 사용을 제어하기 위한 장치 및 방법 | |
KR20050035833A (ko) | 가상 기계에서 합성 명령어를 사용하는 시스템 및 방법 | |
JPH0769844B2 (ja) | データ空間への共通アクセス装置及び方法 | |
WO1996009584A2 (en) | A microcontroller system for performing operations of multiple microcontrollers | |
US20020046305A1 (en) | Method for effective binary translation between different instruction sets using emulated supervisor flag and multiple page tables | |
Tang et al. | Exploring control flow guard in windows 10 | |
JP2020525934A (ja) | 命令の実行を制御する装置および方法 | |
CN114756296A (zh) | 可读写挂载启动方法、装置、存储介质及电子设备 | |
CN107368739B (zh) | 一种内核驱动的监视方法和装置 | |
CN112256396B (zh) | 内存管理方法、系统及安全处理装置、数据处理装置 | |
CN113449292B (zh) | 一种可信应用的运行方法、装置及设备 | |
CN116010295A (zh) | 一种实时操作系统的内存管理方法、系统、设备及介质 | |
US20240078129A1 (en) | Execution of bios components with virtual machines | |
US11150887B2 (en) | Secure code patching | |
TW202420076A (zh) | 基於指令提取位址的區域識別符 | |
JP7369720B2 (ja) | アクションをトリガするための装置及び方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |