一种实时操作系统中内存的保护方法及装置制造方法

文档序号:6511558阅读:158来源:国知局
一种实时操作系统中内存的保护方法及装置制造方法
【专利摘要】本发明公开了一种实时操作系统中内存的保护方法及装置,所述实时操作系统中内存的保护方法在运行一个任务前,会首先确定操作系统下一个即将运行的任务的数据访问权限,并在运行这个任务前,根据确定的任务的数据访问权限来设置内存的保护权限,这样,在每执行一个任务前,都会根据该任务的一些属性来确定任务对内存的数据访问权限,并根据确定的结果动态的来设置内存的保护权限,从而能够准确的对实时操作系统中的内存进行保护,有效防止操作系统运行过程中对内存错误访问的情况发生。
【专利说明】一种实时操作系统中内存的保护方法及装置
【技术领域】
[0001]本发明涉及数据保护领域,更具体的说,是涉及一种实时操作系统中内存的保护方法及装置。
【背景技术】
[0002]AUT0SAR OS (嵌入式实时操作系统)标准中规定操作系统的对象可以分配为不同的功能单元,即OS应用集。OS应用集的功能权限可以分为可信OS应用集和不可信OS应用集两种。为了保证不同的OS应用集,以及同一个OS应用集中不同任务之间的内存区域不被其他任务或者不可信的OS应用集非法或异常使用,需要对OS应用集中的内存进行保护。
[0003]现有技术中,对OS应用集的内存进行保护的方法主要采用基于硬件使用MMU(Memory Manage Unit,内存管理单元)的方式进行内存保护。这种使用MMU的内存保护方法只需要将内存访问权限设定好,就能够实现对设定访问权限的内存进行保护。但是,现有的这种使用MMU的内存保护方法,虽然能够实现对内存的保护,但其保护机制模式主要体现在其功能实现上,由于操作系统在不同的时刻运行的任务可能是不一样的,而且操作系统中不同OS应用集的功能权限是不同的,这样,使用现有的MMU的内存保护方法就不能够满足操作系统中进行任务实时变化和OS应用集功能权限不同的特点要求,从而无法有效的防止操作系统运行过程中对内存错误访问的情况发生。

【发明内容】

[0004]有鉴于此,本发明提供了一种实时操作系统中内存的保护方法及装置,以实现准确对实时操作系统中的内存进行保护,有效防止操作系统运行过程中对内存错误访问的情况发生。
[0005]为实现上述目的,本发明提供如下技术方案:
[0006]一种实时操作系统中内存的保护方法,包括:
[0007]确定操作系统下一个即将运行的任务的数据访问权限;
[0008]在运行所述任务前,根据所述数据访问权限设置内存的保护权限。
[0009]可选的,在所述确定操作系统下一个即将运行的任务的功能权限前,还包括:
[0010]将操作系统中的数据分类。
[0011]可选的,所述将操作系统中的数据分类,包括:
[0012]将操作系统中的数据分为私有数据类型、堆栈类型、操作系统代码类型和应用程序代码类型四类。
[0013]可选的,所述确定操作系统下一个即将运行的任务的数据访问权限,包括:
[0014]确定操作系统下一个即将运行的任务所属的OS应用集的功能权限;
[0015]根据确定的所述任务所属的OS应用集的功能权限和预设的任务/OS应用集与数据访问关系来确定所述任务的数据访问权限。
[0016]可选的,所述预设的任务/OS应用集与数据访问关系包括:[0017]可信OS应用集中的任务对自身以及不可信OS应用集中任务的私有数据类型的数据可读可写,对同一 OS应用集中其他任务的私有数据类型的数据可读;不可信OS应用集中的任务对自身的私有数据类型的数据可读可写,对其他的所有任务的私有数据类型的数据可读;
[0018]和/或,可信OS应用集中的任务对自身的堆栈类型的数据可读可写,对同一 OS应用集中其他任务及不可信OS应用集中任务的堆栈类型的数据可读;不可信OS应用集中任务对自身的堆栈类型的数据可读可写,对其他的所有任务的堆栈类型的数据可读;
[0019]和/或,可信OS应用集中的任务对自身所在应用集及不可信OS应用集的私有数据类型的数据可读可写;不可信OS应用集中的任务仅对自身所在应用集的私有数据可读可写。
[0020]一种实时操作系统中内存的保护装置,包括:
[0021]访问权限确定模块,用于确定操作系统下一个即将运行的任务的数据访问权限;
[0022]内存保护设置模块,用于在运行所述任务前,根据所述数据访问权限设置内存的保护权限。
[0023]可选的,还包括:
[0024]数据类型划分模块,用于在所述确定操作系统下一个即将运行的任务的功能权限前,将操作系统中的数据分类。
[0025]可选的,所述数据类型划分模块包括:
[0026]数据划分子模块,用于将操作系统中的数据分为私有数据类型、堆栈类型、操作系统代码类型和应用程序代码类型四类。
[0027]可选的,所述访问权限确定模块包括:
[0028]应用集权限确定模块,用于确定操作系统下一个即将运行的任务所属的OS应用集的功能权限;
[0029]访问权限确定子模块,用于根据确定的所述任务所属的OS应用集的功能权限和预设的任务/OS应用集与数据访问关系来确定所述任务的数据访问权限。
[0030]可选的,所述预设的任务/OS应用集与数据访问关系包括:
[0031 ] 可信OS应用集中的任务对自身以及不可信OS应用集中任务的私有数据类型的数据可读可写,对同一 OS应用集中其他任务的私有数据类型的数据可读;不可信OS应用集中的任务对自身的私有数据类型的数据可读可写,对其他的所有任务的私有数据类型的数据可读;
[0032]和/或,可信OS应用集中的任务对自身的堆栈类型的数据可读可写,对同一 OS应用集中其他任务及不可信OS应用集中任务的堆栈类型的数据可读;不可信OS应用集中任务对自身的堆栈类型的数据可读可写,对其他的所有任务的堆栈类型的数据可读;
[0033]和/或,可信OS应用集中的任务对自身所在应用集及不可信OS应用集的私有数据类型的数据可读可写;不可信OS应用集中的任务仅对自身所在应用集的私有数据可读可写。
[0034]经由上述的技术方案可知,与现有技术相比,本发明实施例公开了一种实时操作系统中内存的保护方法及装置,所述实时操作系统中内存的保护方法在运行一个任务前,会首先确定操作系统下一个即将运行的任务的数据访问权限,并在运行这个任务前,根据确定的任务的数据访问权限来设置内存的保护权限,这样,在每执行一个任务前,都会根据该任务的一些属性来确定任务对内存的数据访问权限,并根据确定的结果动态的来设置内存的保护权限,从而能够准确的对实时操作系统中的内存进行保护,有效防止操作系统运行过程中对内存错误访问的情况发生。
【专利附图】

【附图说明】
[0035]为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
[0036]图1为本发明公开的实时操作系统中内存的保护方法流程图;
[0037]图2为本发明公开的确定任务的数据访问权限的流程图;
[0038]图3为本发明公开的操作系统中内存使用示意图;
[0039]图4为本发明公开的任务数据段访问关系示意图;
[0040]图5为本发明公开的任务堆栈段访问关系示意图;
[0041]图6为本发明公开的OS应用集数据段访问关系示意图;
[0042]图7为本发明公开的另一个实时操作系统中内存的保护方法流程图;
[0043]图8为本发明公开的实时操作系统中内存的保护装置的结构示意图;
[0044]图9为本发明公开的另一种实时操作系统中内存的保护装置的结构示意图。
【具体实施方式】
[0045]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0046]图1为本发明公开的实时操作系统中内存的保护方法流程图,参见图1所示,所述方法可以包括:
[0047]步骤101:确定操作系统下一个即将运行的任务的数据访问权限;
[0048]步骤102:在运行所述任务前,根据所述数据访问权限设置内存的保护权限。
[0049]在一个示意性的示例中,步骤101的具体过程可以参见图2,图2为本发明公开的确定任务的数据访问权限的流程图,如图2所示,所述方法可以包括:
[0050]步骤201:确定操作系统下一个即将运行的任务所属的OS应用集的功能权限;
[0051]OS应用集按功能权限可以分为两种,即可信OS应用集和不可信OS应用集,一般来说,可信OS应用集相对于不可信OS应用集具有较高的访问权限。
[0052]步骤202:根据确定的所述任务所属的OS应用集的功能权限和预设的任务/OS应用集与数据访问关系来确定所述任务的数据访问权限。
[0053]为了便于任务/OS应用集与数据访问关系的确定,在确定任务的数据访问权限前,可以先将OS系统中的数据进行类型划分。为了便于理解本发明实施例对操作系统中数据的分类过程,首先需要大概介绍一下操作系统中数据的情况。图3为本发明公开的操作系统中内存使用示意图,如图3所示,OS系统中的数据主要有6种,即M1-M6,其中:
[0054]Ml:任务的私有数据;只有该任务使用的数据成为该任务的私有数据,每个任务都有自己的私有数据,数据区的大小为实际私有数据所占空间的大小;
[0055]M2:任务的堆栈;用于在任务执行时存放执行过程中的临时变量以及函数调用时的上下文,每个任务都有自己的堆栈,堆栈大小由应用者根据使用情况静态配置;
[0056]M3:中断服务函数的私有数据;同一 OS应用集中的中断服务函数使用的数据为该应用集的私有数据,其数据区的大小为实际私有数据所占空间大小;
[0057]M4:中断服务函数的堆栈;用于在中断执行时存放执行过程中的临时变量以及函数调用时的上下文,OS应用集中的所有任务使用一个堆栈,堆栈大小由应用者根据使用情况静态配置;
[0058]M5:0S应用集本身以及任务共用的私有数据;0S应用集本身的私有数据,以及该应用集中任务共用的数据,数据区的大小为实际私有数据所占空间大小;
[0059]M6:操作系统和应用程序代码;操作系统的内核代码和所有的应用程序代码,数据区的大小为实际代码所占空间大小。
[0060]本发明实施例中,将操作系统中的数据大致分为四类,分别为:私有数据类型(对应上述数据M1、M2和M5)、堆栈类型(对应上述数据M2和M4)、操作系统代码类型(对应上述数据M6)和应用程序代码类型(由于与本发明的实施无直接关系,图3中未示出此类数据)。由于操作系统代码类型的数据和应用程序代码类型的数据一般都存储在系统的FLASH内存中,即非易失性存储器中,因此,在本发明实施例对内存进行保护的过程中并不对FLASH内存中的数据进行保护。
[0061]此外,为了便于对操作系统中内存的保护,可以规定属于同一 OS应用集的任务和中断的堆栈在内存区域中连续分配,这样方便在内存保护机制的实现。同一 OS应用集的任务的数据段(私有数据)和该应用集本身的数据段的划分也应分配在同一内存连续区域内。任务堆栈段和任务数据段划分的多少与实际应用中的任务数相关。中断堆栈段和应用集数据段的多少与实际应用中OS应用集的数目相关。
[0062]在步骤202中,提到了预设的任务与数据访问关系,在本发明实施例中,所述预设的任务与数据访问关系可以参见图4、图5和图6,可以包括:
[0063]图4为本发明公开的任务数据段访问关系示意图,参见图4所示,假设操作系统中包括两个OS应用集,其中OS应用集I为可信OS应用集,OS应用集2为不可信OS应用集,OS应用集I包括任务I和任务2,OS应用集2包括任务3和任务4,则任务数据段(对应数据Ml)访问关系可以为:可信OS应用集中的任务对自身以及不可信OS应用集中任务的私有数据类型的数据可读可写,对同一 OS应用集中其他任务的私有数据类型的数据可读;不可信OS应用集中的任务对自身的私有数据类型的数据可读可写,对其他的所有任务的私有数据类型的数据可读。这样的访问关系的设置在操作系统中进行任务调度切换时需要判断任务所属OS应用集的权限,如为可信应用集,则将所有其他可信应用集的任务数据段设为只读状态,而所有非可信应用集的任务为可读可写状态。
[0064]图5为本发明公开的任务堆栈段访问关系示意图,参见图5所示,假设操作系统中包括两个OS应用集,其中OS应用集I为可信OS应用集,OS应用集2为不可信OS应用集,OS应用集I包括任务I和任务2,OS应用集2包括任务3和任务4,则任务堆栈段(对应数据M2)访问关系可以为:可信OS应用集中的任务对自身的堆栈类型的数据可读可写,对同一 OS应用集中其他任务及不可信OS应用集中任务的堆栈类型的数据可读;不可信OS应用集中任务对自身的堆栈类型的数据可读可写,对其他的所有任务的堆栈类型的数据可读。这样的访问关系设置在进行任务调度切换时也可以不判断任务所述OS应用集的功能权限,只需要将自身的堆栈段(对应数据M2)设置为可读可写,其他所有的堆栈段设置为只读状态。
[0065]图6为本发明公开的OS应用集数据段访问关系示意图,参见图6所示,假设操作系统中包括两个OS应用集,其中OS应用集I为可信OS应用集,OS应用集2为不可信OS应用集,OS应用集I包括任务I和任务2,OS应用集2包括任务3和任务4,则OS应用集数据段(对应数据M5)访问关系可以为:可信OS应用集中的任务对自身所在应用集及不可信OS应用集的私有数据类型的数据可读可写;不可信OS应用集中的任务仅对自身所在应用集的私有数据可读可写。
[0066]对于中断服务函数,由于同一个OS应用集的中断使用同一个中断堆栈,因此在处理中断时,在中断服务函数中需要先判断该中断所属的应用集,对该中断的中断堆栈具有可读可写权限,对于非自身的应用集内的中断堆栈段均设置为只读状态。
[0067]以上只列出操作系统中任务与几种类型数据的访问关系,其余没有举例说明的任务与某些类型数据的访问关系,可以根据数据的类型参照任务与相似类型数据的访问关系来确定,操作系统中任务与相同类型的数据的访问关系相似或相同。
[0068]在本发明实施例中,所述预设的任务与数据访问关系可以包括但不限定为图4和/或图5和/或图6对应的实例。
[0069]在确定好操作系统下一个即将运行的任务的数据访问权限后,就可以根据所述数据访问权限设置内存的保护权限了。例如,操作系统中包括任务I和任务2,当前操作系统中正在运行的是任务1,则此时任务I的堆栈段数据为可读可写状态,而任务2的堆栈段数据为只可读状态,这样以免操作系统将运行任务I过程中产生的数据写入任务2的堆栈段;而当任务I运行结束,需要运行任务2时,就需要动态的将任务2的堆栈段设置为可读可写状态,将任务I的堆栈段设置为只可读状态,以免操作系统在运行任务2时将产生的与任务2相关的数据写入任务I的堆栈段,避免操作系统运行过程中对内存的错误访问。
[0070]其中,操作系统对内存设置保护的过程,可以是通过操作系统中的MMU单元将对应的内存设置为可读可写、可读或不可读不可写的状态。
[0071]需要说明的是,动态内存权限保护设置必须在前一个任务运行完毕,且即将运行的任务还没有开始运行前,这样才能够保证准确的对实时操作系统中的内存进行保护。
[0072]本实施例中,所述实时操作系统中内存的保护方法在运行一个任务前,会首先确定操作系统下一个即将运行的任务的数据访问权限,并在运行这个任务前,根据确定的任务的数据访问权限来设置内存的保护权限,这样,在每执行一个任务前,都会根据该任务的一些属性来确定任务对内存的数据访问权限,并根据确定的结果动态的来设置内存的保护权限,从而能够准确的对实时操作系统中的内存进行保护,有效防止操作系统运行过程中对内存错误访问的情况发生。
[0073]图7为本发明公开的另一个实时操作系统中内存的保护方法流程图,参见图7所示,所述实时操作系统中内存的保护方法可以包括:[0074]步骤701:将操作系统中的数据分类;
[0075]具体的,步骤701可以将操作系统中的数据分为私有数据类型、堆栈类型、操作系统代码类型和应用程序代码类型四类。其划分原则在上一个实施例中已详细介绍,可参见上一个实施例中相关部分的描述。
[0076]步骤702:确定操作系统下一个即将运行的任务的数据访问权限;
[0077]步骤702的具体过程可以是:确定操作系统下一个即将运行的任务所属的OS应用集的功能权限;根据确定的所述任务所属的OS应用集的功能权限和预设的任务/OS应用集与数据访问关系来确定所述任务的数据访问权限。其中,预设的任务/OS应用集与数据访问关系的确定是基于操作系统中的数据类型实现的,任务与数据的访问关系与数据的类型和数据与任务的关系确定。
[0078]步骤703:在运行所述任务前,根据所述数据访问权限设置内存的保护权限。
[0079]在确定好操作系统下一个即将运行的任务的数据访问权限后,就可以根据所述数据访问权限设置内存的保护权限。操作系统对内存设置保护的过程,可以是通过操作系统中的MMU单元将对应的内存设置为可读可写、可读或不可读不可写的状态。
[0080]本实施例中,所述实时操作系统中内存的保护方法在运行一个任务前,会首先基于已经划分好类型的数据的属性确定操作系统下一个即将运行的任务的数据访问权限,并在运行这个任务前,根据确定的任务的数据访问权限来设置内存的保护权限,这样,在每执行一个任务前,都会根据该任务的一些属性来确定任务对内存的数据访问权限,并根据确定的结果动态的来设置内存的保护权限,从而能够准确的对实时操作系统中的内存进行保护,有效防止操作系统运行过程中对内存错误访问的情况发生。
[0081]上述本发明公开的实施例中详细描述了方法,对于本发明的方法可采用多种形式的装置实现,因此本发明还公开了一种装置,下面给出具体的实施例进行详细说明。
[0082]图8为本发明公开的实时操作系统中内存的保护装置的结构示意图,参见图8所示,所述实时操作系统中内存的保护装置80可以包括:
[0083]访问权限确定模块801,用于确定操作系统下一个即将运行的任务的数据访问权限;
[0084]在一个示意性的示例中,所述访问权限确定模块801可以包括:应用集权限确定模块,用于确定操作系统下一个即将运行的任务所属的OS应用集的功能权限;访问权限确定子模块,用于根据确定的所述任务所属的OS应用集的功能权限和预设的任务/OS应用集与数据访问关系来确定所述任务的数据访问权限。
[0085]其中,所述预设的任务/OS应用集与数据访问关系包括:
[0086]可信OS应用集中的任务对自身以及不可信OS应用集中任务的私有数据类型的数据可读可写,对同一 OS应用集中其他任务的私有数据类型的数据可读;不可信OS应用集中的任务对自身的私有数据类型的数据可读可写,对其他的所有任务的私有数据类型的数据可读;
[0087]和/或,可信OS应用集中的任务对自身的堆栈类型的数据可读可写,对同一 OS应用集中其他任务及不可信OS应用集中任务的堆栈类型的数据可读;不可信OS应用集中任务对自身的堆栈类型的数据可读可写,对其他的所有任务的堆栈类型的数据可读;
[0088]和/或,可信OS应用集中的任务对自身所在应用集及不可信OS应用集的私有数据类型的数据可读可写;不可信OS应用集中的任务仅对自身所在应用集的私有数据可读可写。
[0089]内存保护设置模块802,用于在运行所述任务前,根据所述数据访问权限设置内存的保护权限。
[0090]在确定好操作系统下一个即将运行的任务的数据访问权限后,就可以根据所述数据访问权限设置内存的保护权限了。例如,操作系统中包括任务I和任务2,当前操作系统中正在运行的是任务1,则此时任务I的堆栈段数据为可读可写状态,而任务2的堆栈段数据为只可读状态,这样以免操作系统将运行任务I过程中产生的数据写入任务2的堆栈段;而当任务I运行结束,需要运行任务2时,就需要动态的将任务2的堆栈段设置为可读可写状态,将任务I的堆栈段设置为只可读状态,以免操作系统在运行任务2时将产生的与任务2相关的数据写入任务I的堆栈段,避免操作系统运行过程中对内存的错误访问。
[0091]其中,操作系统对内存设置保护的过程,可以是通过操作系统中的MMU单元将对应的内存设置为可读可写、可读或不可读不可写的状态。
[0092]需要说明的是,动态内存权限保护设置必须在前一个任务运行完毕,且即将运行的任务还没有开始运行前,这样才能够保证准确的对实时操作系统中的内存进行保护。
[0093]本实施例中,所述实时操作系统中内存的保护装置在运行一个任务前,会首先确定操作系统下一个即将运行的任务的数据访问权限,并在运行这个任务前,根据确定的任务的数据访问权限来设置内存的保护权限,这样,在每执行一个任务前,都会根据该任务的一些属性来确定任务对内存的数据访问权限,并根据确定的结果动态的来设置内存的保护权限,从而能够准确的对实时操作系统中的内存进行保护,有效防止操作系统运行过程中对内存错误访问的情况发生。
[0094]图9为本发明公开的另一种实时操作系统中内存的保护装置的结构示意图,参见图9所示,所述实时操作系统中内存的保护装置90可以包括:
[0095]数据类型划分模块901,用于在所述确定操作系统下一个即将运行的任务的功能权限前,将操作系统中的数据分类;
[0096]所述数据类型划分模块901可以包括数据划分子模块,用于将操作系统中的数据分为私有数据类型、堆栈类型、操作系统代码类型和应用程序代码类型四类。
[0097]访问权限确定模块801,用于确定操作系统下一个即将运行的任务的数据访问权限;
[0098]所述访问权限确定模块801操作的具体过程可以是:确定操作系统下一个即将运行的任务所属的OS应用集的功能权限;根据确定的所述任务所属的OS应用集的功能权限和预设的任务/OS应用集与数据访问关系来确定所述任务的数据访问权限。其中,预设的任务/OS应用集与数据访问关系的确定是基于操作系统中的数据类型实现的,任务与数据的访问关系与数据的类型和数据与任务的关系确定。
[0099]内存保护设置模块802,用于在运行所述任务前,根据所述数据访问权限设置内存的保护权限。
[0100]在确定好操作系统下一个即将运行的任务的数据访问权限后,就可以根据所述数据访问权限设置内存的保护权限。操作系统对内存设置保护的过程,可以是通过操作系统中的MMU单元将对应的内存设置为可读可写、可读或不可读不可写的状态。[0101]本实施例中,所述实时操作系统中内存的保护装置在运行一个任务前,会首先基于已经划分好类型的数据的属性确定操作系统下一个即将运行的任务的数据访问权限,并在运行这个任务前,根据确定的任务的数据访问权限来设置内存的保护权限,这样,在每执行一个任务前,都会根据该任务的一些属性来确定任务对内存的数据访问权限,并根据确定的结果动态的来设置内存的保护权限,从而能够准确的对实时操作系统中的内存进行保护,有效防止操作系统运行过程中对内存错误访问的情况发生。
[0102]本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0103]还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有 更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0104]结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或【技术领域】内所公知的任意其它形式的存储介质中。
[0105]对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
【权利要求】
1.一种实时操作系统中内存的保护方法,其特征在于,包括: 确定操作系统下一个即将运行的任务的数据访问权限; 在运行所述任务前,根据所述数据访问权限设置内存的保护权限。
2.根据权利要求1所述的保护方法,其特征在于,在所述确定操作系统下一个即将运行的任务的功能权限前,还包括: 将操作系统中的数据分类。
3.根据权利要求2所述的保护方法,其特征在于,所述将操作系统中的数据分类,包括: 将操作系统中的数据分为私有数据类型、堆栈类型、操作系统代码类型和应用程序代码类型四类。
4.根据权利要求3所述的保护方法,其特征在于,所述确定操作系统下一个即将运行的任务的数据访问权限,包括: 确定操作系统下一个即将运行的任务所属的OS应用集的功能权限; 根据确定的所述任务所属的OS应用集的功能权限和预设的任务/OS应用集与数据访问关系来确定所述任务的数据访问权限。
5.根据权利要求4所述的保护方法,其特征在于,所述预设的任务/OS应用集与数据访问关系包括: 可信OS应用集中的任务对自身以及不可信OS应用集中任务的私有数据类型的数据可读可写,对同一 OS应用集中其他任务的私有数据类型的数据可读;不可信OS应用集中的任务对自身的私有数据类型的数据可读可写,对其他的所有任务的私有数据类型的数据可读; 和/或,可信OS应用集中的任务对自身的堆栈类型的数据可读可写,对同一 OS应用集中其他任务及不可信OS应用集中任务的堆栈类型的数据可读;不可信OS应用集中任务对自身的堆栈类型的数据可读可写,对其他的所有任务的堆栈类型的数据可读; 和/或,可信OS应用集中的任务对自身所在应用集及不可信OS应用集的私有数据类型的数据可读可写;不可信OS应用集中的任务仅对自身所在应用集的私有数据可读可写。
6.一种实时操作系统中内存的保护装置,其特征在于,包括: 访问权限确定模块,用于确定操作系统下一个即将运行的任务的数据访问权限; 内存保护设置模块,用于在运行所述任务前,根据所述数据访问权限设置内存的保护权限。
7.根据权利要求6所述的保护装置,其特征在于,还包括: 数据类型划分模块,用于在所述确定操作系统下一个即将运行的任务的功能权限前,将操作系统中的数据分类。
8.根据权利要求7所述的保护装置,其特征在于,所述数据类型划分模块包括: 数据划分子模块,用于将操作系统中的数据分为私有数据类型、堆栈类型、操作系统代码类型和应用程序代码类型四类。
9.根据权利要求8所述的保护装置,其特征在于,所述访问权限确定模块包括: 应用集权限确定模块,用于确定操作系统下一个即将运行的任务所属的OS应用集的功能权限;访问权限确定子模块,用于根据确定的所述任务所属的OS应用集的功能权限和预设的任务/OS应用集与数据访问关系来确定所述任务的数据访问权限。
10.根据权利要求9所述的保护装置,其特征在于,所述预设的任务/OS应用集与数据访问关系包括: 可信OS应用集中的任务对自身以及不可信OS应用集中任务的私有数据类型的数据可读可写,对同一 OS应用集中其他任务的私有数据类型的数据可读;不可信OS应用集中的任务对自身的私有数据类型的数据可读可写,对其他的所有任务的私有数据类型的数据可读; 和/或,可信OS应用集中的任务对自身的堆栈类型的数据可读可写,对同一 OS应用集中其他任务及不可信OS应用集中任务的堆栈类型的数据可读;不可信OS应用集中任务对自身的堆栈类型的数据可读可写,对其他的所有任务的堆栈类型的数据可读; 和/或,可信OS应用集中的任务对自身所在应用集及不可信OS应用集的私有数据类型的数据可读可写;不·可信OS应用集中的任务仅对自身所在应用集的私有数据可读可写。
【文档编号】G06F21/57GK103440176SQ201310419119
【公开日】2013年12月11日 申请日期:2013年9月13日 优先权日:2013年9月13日
【发明者】王载琼, 刘博 , 张阳 申请人:北京经纬恒润科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1