CN101315608A - 存储器保护方法和设备 - Google Patents

存储器保护方法和设备 Download PDF

Info

Publication number
CN101315608A
CN101315608A CNA2008101084032A CN200810108403A CN101315608A CN 101315608 A CN101315608 A CN 101315608A CN A2008101084032 A CNA2008101084032 A CN A2008101084032A CN 200810108403 A CN200810108403 A CN 200810108403A CN 101315608 A CN101315608 A CN 101315608A
Authority
CN
China
Prior art keywords
task
memory
visit
information
zone
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
Application number
CNA2008101084032A
Other languages
English (en)
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.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
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 Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN101315608A publication Critical patent/CN101315608A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/14Protection against unauthorised use of memory or access to memory
    • G06F12/1416Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights
    • G06F12/1425Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block
    • G06F12/1441Protection against unauthorised use of memory or access to memory by checking the object accessibility, e.g. type of access defined by the memory independently of subject rights the protection being physical, e.g. cell, word, block for a range
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/78Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure storage of data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/468Specific access rights for resources, e.g. using capability register

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Storage Device Security (AREA)

Abstract

本发明提供了一种在实时操作系统环境(RTOS)中能够保护组件使用的存储器的存储器保护方法和设备。所述存储器保护方法包括:在实时操作系统中第一组件被调用以执行第一任务时,请求访问第一组件使用的第一存储器区域;参照包括关于被允许访问第一存储器区域的任务的信息的任务列表,允许第一任务访问第一存储器区域。

Description

存储器保护方法和设备
技术领域
根据本发明的方法和设备涉及存储器保护方法和设备,更具体地讲,涉及在实时操作系统环境中组件所使用的存储器的保护。
背景技术
通常,操作系统提供针对用户进程来保护存储器的功能。为了提供这种保护,如图1所示,操作系统将存储器区域划分为内核区域和用户区域,如果通过上下文切换(context switching)执行新的进程,那么操作系统执行将正在执行的进程映射到用户区域的操作,以禁止用户进程访问操作系统所使用的存储器。换言之,存储器保护技术仅允许用户进程访问分配给该进程的用户区域,而禁止用户进程访问其他进程的存储器空间或内核所使用的存储器空间。这种保护功能防止不可靠的用户进程使整个系统或其他进程停止。
然而,由于现有技术的存储器保护技术用于针对用户进程来保护操作系统(即,系统),所以这种技术不能从组件(如文件系统、库等)的角度保护存储器。即,在现有技术中,组件以内核驱动程序的形式形成,而且被包括在操作系统中作为操作系统的一部分。根据这种技术,可以针对用户进程来保护组件使用的存储器,但是不能针对其他内核驱动程序来保护该存储器。因此,在外部代码侵占组件所使用的存储器的情况下,开发者可能由于该组件中的缺陷(bug)而错误地断定该组件出现故障。因此,组件的开发、修理和维护非常困难。
此外,现有技术的存储器保护技术仅能在使用进程模型的一般操作系统中使用。然而,现有技术的保护技术难以应用于所有任务共享存储器空间的实时操作系统(RTOS)。例如,如图2所示,当在执行第一任务期间调用特定组件时,第一任务可以访问被调用的组件所使用的存储器区域。如果在第一任务的执行结束之前通过上下文切换来执行第二任务,那么第二任务也可以访问该存储器区域。在这种情况下,该存储器区域可能被第二任务破坏(corrupt)。
发明内容
本发明提供了一种在实时操作系统环境中能够保护组件所使用的存储器的存储器保护方法和设备。
根据本发明的一方面,提供了一种存储器保护方法,包括:在实时操作系统中第一组件被调用以执行第一任务时,请求访问第一组件使用的第一存储器区域;参照包括关于被允许访问第一存储器区域的任务的信息的任务列表,允许第一任务访问第一存储器区域。
根据本发明的另一方面,提供了一种存储器保护设备,包括:请求单元,在实时操作系统中第一组件被调用以执行第一任务时,请求访问第一组件使用的第一存储器区域;存储器访问控制器,参照包括关于被允许访问第一存储器区域的任务的信息的任务列表,允许第一任务访问第一存储器区域。
附图说明
通过下面结合附图对示例性实施例进行的详细描述,本发明的上述和其它方面将会变得清楚,其中:
图1是解释现有技术的存储器保护技术的示图;
图2是解释在RTOS环境中由于上下文切换可能发生的问题的示图;
图3是示出根据本发明示例性实施例的存储器保护设备的结构的示图;
图4是解释根据本发明示例性实施例的任务列表的示图;
图5是示出根据本发明示例性实施例的存储器保护设备的操作过程的流程图;
图6是详细示出图5中允许访问存储器区域的步骤S520的流程图;
图7是详细示出图5中禁止访问存储器区域的步骤S580的流程图;
图8是示出根据本发明另一示例性实施例的存储器保护设备的结构的示图;
图9是示出根据本发明另一示例性实施例的存储器保护设备的操作的流程图;
图10是详细示出图9中的处理页错误的步骤S960的流程图。
具体实施方式
下面将参照附图来详细描述本发明的示例性实施例。通过参照示例性实施例,本发明的各方面和特点以及实现本发明各方面和特点的方法将变得清楚,将参照附图来详细描述示例性实施例。然而,本发明不限于这里公开的实施例,而是可以以各种形式来实施。说明书中所定义的内容(如详细的结构和部件)只是被提供以帮助本领域普通技术人员全面理解本发明的具体细节,本发明仅限制在权利要求的范围内。在本发明的整个描述中,贯穿附图,相同的标号用于相同的部件。
这里将参照示出用于解释根据本发明示例性实施例的存储器保护方法和设备的框图和流程图的附图来描述本发明。应该理解,可通过计算机程序指令来实现流程图中的每个方框和流程图中多个方框的组合。这些计算机程序指令可被提供给通用计算机、专用计算机或其他可编程数据处理设备以产生机器,从而经计算机或其他可编程数据处理设备的处理器执行的指令创建用于实现流程图中的一个方框或多个方框中指定的功能的装置。
这些计算机程序指令还可以存储在可引导计算机或其他可编程数据处理设备按照特定方式运行的计算机可用或计算机可读存储器中,从而存储在计算机可用或计算机可读存储器中的指令产生包括用于实现流程图中的一个方框或多个方框中指定的功能的指令装置的一件产品。
计算机程序指令还可以被载入计算机或其他可编程数据处理设备中,使得一系列操作步骤在计算机或其他可编程数据处理设备中执行,产生计算机实现的处理,从而在计算机或其他可编程数据处理设备中执行的指令提供用于实现在流程图中的一个方框或多个方框中指定的功能的步骤。
此外,流程图中的每个方框可表示包括一个或多个用于实现指定的逻辑功能的可执行指令的模块、代码段或部分代码。还应该注意,在一些可选择的实施方式中,方框中提到的功能可以不按次序出现。例如,根据所涉及的功能,两个连续显示的方框实际上可以基本上同时执行,或者这两个方框有时可以按照相反的顺序执行。
图3是示出根据本发明示例性实施例的存储器保护设备的结构的示图。如图3所示,根据本发明示例性实施例的存储器保护设备300包括存储器310、存储器管理器330、请求单元370、存储器访问控制器360、中断处理器340和异常(exception)处理器350。
例如,可以按照页为单位将存储器310的地址空间划分为特定的单元。页是一种映射单位,其大小可以为4K或64K。为每个组件分配按照页为单位划分的地址空间。
存储器管理器330将组件所使用的存储器区域的虚拟地址转换为物理地址。为了实现这种转换,存储器管理器330参看指示组件所使用的存储器区域的虚拟地址与物理地址之间的对应关系的页表(未示出)。此外,为了创建页表,存储器管理器330划分存储页的地址空间,为每个组件分配划分的地址空间。页表包括关于访问组件所使用的存储器区域的权限的信息,页表被初始化以使得不能访问整个存储器区域。
当调用组件以执行任务时,请求单元370请求存储器访问控制器360允许访问被调用的组件所使用的存储器区域。如果被调用的组件的执行结束,那么请求单元370请求存储器访问控制器360禁止访问被调用的组件所使用的存储器区域。尽管图3作为示例示出请求单元370与各组件分离,但是请求单元可被实现为各组件的一部分。在这种情况下,通过相应的组件来请求允许/禁止访问特定组件所使用的存储器区域。
存储器访问控制器360控制对请求单元370所请求的存储器区域的访问。例如,当请求单元370请求允许访问特定组件使用的存储器区域时,存储器访问控制器360控制存储器管理器330允许访问该相应组件使用的存储器区域。如果请求单元370请求禁止访问特定组件所使用的存储器区域,那么存储器访问控制器360控制存储器管理器330禁止访问相应组件使用的存储器区域。
此外,存储器访问控制器360管理任务列表400。任务列表400包括关于被允许访问组件所使用的存储器区域的任务的信息,即,关于有权访问所述存储器区域的任务的信息。这里,任务信息包括任务的标识符和相应任务请求允许访问同一存储器区域的次数(以下称为“请求访问允许的次数”)中的至少一个。如图4所示,按照组件来划分任务列表400。
参照图3,如果从请求单元370接收到对允许/禁止访问特定存储器区域的请求,那么存储器访问控制器360参照图4所示的任务列表400控制所请求的对存储器区域的访问。
例如,如果第一任务调用第一组件,那么存储器访问控制器360参照任务列表400判断第一任务是否已经有权访问第一组件所使用的第一存储器区域。
如果判断结果是第一任务有权访问第一存储器区域,那么存储器访问控制器360增加任务列表400中第一任务请求访问的次数。
相反,如果第一任务无权访问第一存储器区域,那么存储器访问控制器360控制存储器管理器330允许访问第一存储器区域。之后,存储器访问控制器360将关于第一任务的信息插入到任务列表400中。此时,第一任务请求访问允许的次数被设置为“1”。
然而,如果第一组件结束其工作并接收到禁止访问第一存储器区域的请求,那么存储器访问控制器360判断对访问禁止的请求是否正确。为了判断访问禁止是否正确,存储器访问控制器360在任务列表400中搜索第一任务的标识符。
具体地讲,如果搜索任务列表400的结果是在有权访问第一存储器区域的任务中不存在第一任务,那么断定第一任务无权访问第一存储器区域。因此,存储器访问控制器360断定禁止访问第一存储器区域的请求异常,因而产生错误。
如果搜索任务列表400的结果是在有权访问第一存储器区域的任务中存在第一任务,那么断定第一任务已经有权访问第一存储器区域。在这种情况下,存储器访问控制器360减少任务列表400中第一任务请求访问允许的次数。如果第一任务请求访问的次数变为“0”,那么存储器访问控制器360控制存储器管理器330禁止第一任务访问第一存储器区域,随后从任务列表400中删除关于第一任务的信息。
因此,当在第一任务被允许访问第一存储器区域的状态下通过上下文切换来执行第二任务时,可参照任务列表400来确认第二任务是否有权访问第一存储器区域,因而可针对第二任务来保护第一存储器区域。
中断处理器340处理软件中断或硬件中断。
异常处理器350在异常(如中断、终止或未定义指令)发生时处理异常。例如,当不能访问存储有需要的指令或数据的存储器区域时,会发生终止异常。
图5是示出根据本发明实施例的存储器保护设备300的操作过程的流程图。
如果调用第一组件以执行第一任务,那么请求单元370请求存储器访问控制器360允许访问第一组件使用的存储器区域(以下称为“第一存储器区域”)(S510)。
如果访问允许的请求正确,那么存储器访问控制器360允许访问第一存储器区域(S520)。在S520,存储器访问控制器360参看包括关于有权访问第一存储器区域的任务的信息的任务列表400,以判断访问允许的请求是否正确。将参照图6更详细地描述允许访问存储器区域(S520)。
在第一任务获得访问第一存储器区域的权限之后第一任务结束时(S530的“是”),请求单元370请求存储器访问控制器360禁止访问第一存储器区域(S570)。
如果从请求单元370接收的对禁止访问第一存储器区域的请求正确,那么存储器访问控制器360禁止访问第一存储器区域(S580)。此时,为了判断访问禁止的请求是否正确,存储器访问控制器360参看包括关于有权访问第一存储器区域的任务的信息的任务列表400。将参照图7更详细地描述禁止访问存储器区域(S580)。
相反,如果在第一任务有权访问第一存储器区域的状态下(即,在允许第一任务访问第一存储器区域的状态下;S540的“是”),由于发生上下文切换而执行新任务(以下称为“第二任务”),那么存储器访问控制器360参照预先存储的任务列表400控制第二任务对第一存储器区域的访问(S560)。
图6是详细示出图5中允许访问存储器区域(S520)的步骤的流程图。
首先,存储器访问控制器360获得第一任务的标识符(S521)。
随后,存储器访问控制器360在任务列表400中搜索第一任务的标识符,并判断第一任务是否已经获得访问第一存储器区域的权限(S522)。
具体地讲,如果搜索任务列表400的结果是在已经获得访问第一存储器区域的权限的任务中存在第一任务的标识符,那么存储器访问控制器360断定第一任务已经获得了访问第一存储器区域的权限(S522的“是”)。换言之,存储器访问控制器360断定第一任务对第一存储器区域的访问已经被允许。在这种情况下,存储器访问控制器360将任务列表400中第一任务请求访问允许的次数加“1”(S523)。
如果搜索任务列表400的结果是在已经获得访问第一存储器区域的权限的任务中不存在第一任务的标识符,那么存储器访问控制器360断定第一任务还没有获得访问第一存储器区域的权限(S522的“否”)。换言之,存储器访问控制器360断定第一任务对第一存储器区域的访问还没有被允许。在这种情况下,存储器访问控制器360控制存储器管理器330向第一任务授予访问第一存储器区域的权限(S524)。
如果第一任务获得访问第一存储器区域的权限,那么存储器访问控制器360将关于第一任务的信息(即,第一任务的标识符和第一任务请求访问允许的次数)插入到任务列表中(S525)。结果,第一任务请求访问允许的次数被设置为“1”。
图7是详细示出图5中禁止访问存储器区域(S580)的流程图。
当接收到对禁止访问第一存储器区域的请求时,存储器访问控制器360首先获得第一任务的标识符(S581)。
随后,存储器访问控制器360通过在任务列表400中搜索第一任务的标识符来判断第一任务是否获得了访问第一存储器区域的权限(S582)。
具体地讲,如果搜索任务列表400的结果是在有权访问第一存储器区域的任务中不存在第一任务的标识符,那么存储器访问控制器360断定第一任务还没有获得访问第一存储器区域的权限(S582的“否”)。在这种情况下,存储器访问控制器360断定访问禁止的请求不正确,并产生错误(S583)。
如果搜索任务列表400的结果是在有权访问第一存储器区域的任务中存在第一任务的标识符,那么存储器访问控制器360断定第一任务已经获得访问第一存储器区域的权限(S582的“是”)。在这种情况下,存储器访问控制器360断定访问禁止的请求正确,并将任务列表400中第一任务请求访问允许的次数减“1”(S584)。
如果减少之后的第一任务请求访问允许的次数等于“0”(S585的“是”),那么存储器访问控制器360控制存储器管理器330禁止第一任务访问第一存储器区域(S586)。
随后,存储器访问控制器360从任务列表400中删除关于第一任务的信息,即,删除第一任务的标识符(S587)。
图8是示出根据本发明另一示例性实施例的存储器保护设备800的结构的示图。如图8所示,根据本发明另一实施例的存储器保护设备800包括存储器310、存储器管理器330、请求单元370、存储器访问控制器360、中断处理器840和异常处理器850。
由于图8所示的存储器310、存储器管理器330、请求单元370和存储器访问控制器360与上述根据本发明第一示例性实施例的存储器310、存储器管理器330、请求单元370和存储器访问控制器360相同,因此略掉了重复的解释,下面的解释将集中于中断处理器840和异常处理器850。
如果异常(如中断、终止或未定义指令)发生,那么中断处理器840在处理异常之前禁止访问所有组件使用的存储器区域。
如果在禁止访问所有组件使用的存储器区域的状态下特定任务尝试访问特定存储器区域,那么会针对特定任务想要访问的存储器区域产生页错误。如果产生了页错误,那么异常处理器850判断所述任务对存储器区域的访问是否正确,随后处理该页错误。
作为示例示出第一任务尝试访问第一组件使用的第一存储器区域来进行详细的解释。
如果在禁止访问所有组件使用的存储器区域的状态下第一任务尝试访问第一存储器区域,那么针对第一存储器区域产生页错误。
当产生了页错误时,异常处理器850参照页表确认使用产生了页错误的地址所属的存储器区域的组件。
随后,异常处理器850获得当前执行的任务(即,第一任务)的标识符。
随后,异常处理器850判断第一任务对存储器的访问是否正确。为了实现该判断功能,异常处理器850在任务列表400(见图4)中搜索第一任务的标识符。
具体地讲,如果搜索任务列表的结果是在有权访问第一存储器区域的任务中不存在第一任务,那么断定第一任务对存储器的访问不正确。在这种情况下,存储器访问控制器360产生错误以报告第一任务对存储器的访问不正确。
如果搜索任务列表的结果是在有权访问第一存储器区域的任务中存在第一任务,那么断定第一任务对存储器的访问正确。在这种情况下,存储器访问控制器360控制存储器管理器330允许第一任务访问第一存储器区域。
图9是示出根据本发明另一示例性实施例的存储器保护设备800的操作过程的流程图。
如果调用第一组件来执行第一任务,那么请求单元870请求存储器访问控制器860允许访问第一组件使用的存储器区域(以下称为“第一存储器区域”)(S900)。
如果访问允许的请求正确,那么存储器访问控制器360允许访问第一存储器区域(S910)。在该步骤中,存储器访问控制器360参看包括关于有权访问第一存储器区域的任务的信息的任务列表来判断访问允许的请求是否正确。上面已经参照图6描述了允许访问存储器区域(S910),因此略掉其解释。
在第一任务获得访问第一存储器区域的权限之后第一任务结束时,请求单元370请求存储器访问控制器360禁止访问第一存储器区域(S980)。
如果从请求单元接收的对禁止访问第一存储器区域的请求正确,那么存储器访问控制器360禁止访问第一存储器区域(S990)。为了判断访问禁止的请求是否正确,存储器访问控制器860参看包括关于有权访问第一存储器区域的任务的信息的任务列表。上面已经参照图7描述了禁止访问存储器区域(S990),因此略掉其解释。
相反,如果在第一任务有权访问第一存储器区域的状态下(即,在第一任务对第一存储器区域的访问被允许的状态下;S930的“是”)由于中断、终止或未定义指令而发生异常,那么中断处理器840禁止访问所有组件使用的存储器区域(S940)。
随后,如果在禁止访问所有组件使用的存储器区域的状态下(S950的“是”)由于发生上下文切换而执行新任务(以下称为“第二任务”),那么存储器访问控制器360参照预先存储的任务列表控制第二任务对第一存储器区域的访问(S970)。
具体地讲,如果搜索有权访问第一存储器区域的任务的结果是在任务列表中存在第二任务,那么存储器访问控制器360增加任务列表中第二任务请求访问允许的次数。
如果搜索有权访问第一存储器区域的任务的结果是在任务列表中不存在第二任务,那么存储器访问控制器360控制存储器管理器330允许第二任务访问第一存储器区域。随后,存储器访问控制器将关于第二任务的信息插入到任务列表中。此时,第二任务请求访问允许的次数可被设置为“1”。
相反,如果没有发生上下文切换(S950的“否”),那么继续执行第一任务。然而,如果在禁止访问所有组件使用的存储器区域的状态下第一任务尝试访问第一存储器区域,那么在第一存储器区域中产生页错误。
当产生了页错误时,异常处理器850判断第一任务对存储器的访问是否正确,随后根据判断结果处理页错误(S960)。将参照图10更详细地描述页错误处理(S960)。
首先,异常处理器850参照页表确认使用产生页错误的地址所属的存储器区域的组件(S961)。
随后,异常处理器850获得当前执行的第一任务的标识符(S962),并判断第一任务对存储器的访问是否正确。为此,异常处理器850在任务列表中搜索第一任务的标识符。
具体地讲,如果搜索任务列表的结果是在有权访问第一存储器区域的任务中不存在第一任务,那么异常处理器850断定第一任务对存储器的访问不正确(S963的“否”)。在这种情况下,存储器访问控制器360产生错误以报告第一任务对存储器的访问不正确(S965)。
如果搜索任务列表的结果是在有权访问第一存储器区域的任务中存在第一任务,那么异常处理器850断定第一任务对存储器的访问正确(S963的“是”)。在这种情况下,存储器访问控制器360控制存储器管理器330将访问第一存储器区域的权限授予第一任务(S964)。
如上所述,根据本发明示例性实施例的存储器保护方法和设备可产生下面的效果。
可针对其他组件或外部代码来保护在实时操作系统中组件使用的存储器。
可以容易地发现和纠正由于错误的存储器访问而导致的系统故障,因此能够缩短系统的开发时间,同时提高系统的稳定性。
尽管为了示例性目的描述了根据本发明示例性实施例的存储器保护方法和设备,但是本领域技术人员应该理解,在不脱离本发明的精神和范围的情况下,可以进行各种修改、添加和替换。上述实施例只是示例性的,不应该被解释为限制本发明。因此,本发明的范围应该由权利要求及其等同物限定。

Claims (30)

1、一种存储器保护方法,包括:
如果在实时操作系统中第一组件被调用以执行第一任务,那么请求访问第一组件使用的第一存储器区域;
参照包括关于被允许访问第一存储器区域的任务的信息的任务列表,允许第一任务访问第一存储器区域。
2、如权利要求1所述的存储器保护方法,还包括:创建页表,该页表指示第一存储器区域的虚拟地址与物理地址的对应关系。
3、如权利要求2所述的存储器保护方法,其中,创建页表的步骤还包括:
按照特定单位将存储器地址空间分组;
将分组的地址空间分配给组件;
存储所分配的地址空间与组件的对应关系。
4、如权利要求3所述的存储器保护方法,其中,所述特定单位是由一个地址空间或多个连续的地址空间构成的页。
5、如权利要求3所述的存储器保护方法,还包括:初始化页表以禁止访问分组的地址空间。
6、如权利要求1所述的存储器保护方法,还包括:将关于允许其访问的第一任务的信息存储在任务列表中,
其中,所述信息包括第一任务的标识符和第一任务请求允许访问第一存储器区域的次数中的至少一个。
7、如权利要求6所述的存储器保护方法,其中,将关于第一任务的信息存储在任务列表中的步骤包括:如果第一任务对第一存储器区域的访问不被允许,那么将关于第一任务的信息添加到任务列表。
8、如权利要求6所述的存储器保护方法,其中,存储关于第一任务的信息的步骤包括:如果第一任务对第一存储器区域的访问已经被允许,那么增加第一任务请求访问允许的次数。
9、如权利要求6所述的存储器保护方法,还包括:
如果允许其访问的第一任务结束,那么请求禁止访问第一存储器区域;
禁止访问第一存储器区域。
10、如权利要求9所述的存储器保护方法,其中,禁止访问第一存储器区域的步骤包括:
减少第一任务请求访问允许的次数;
如果减少之后的第一任务请求访问允许的次数为“0”,那么从任务列表中删除关于第一任务的信息。
11、如权利要求1所述的存储器保护方法,还包括:
如果在第一任务已经调用第一组件的状态下第二任务调用第一组件,那么在任务列表中搜索关于第二任务的信息;
如果在任务列表中存在关于第二任务的信息,那么允许第二任务访问第一存储器区域。
12、如权利要求11所述的存储器保护方法,还包括:如果任务列表中不存在关于第二任务的信息,那么产生错误。
13、如权利要求1所述的存储器保护方法,还包括:如果在第一任务已经调用第一组件的状态下产生了中断,那么禁止访问全部存储器区域。
14、如权利要求13所述的存储器保护方法,还包括:
如果在中断产生之后第一任务访问第一存储器区域,那么产生页错误;
在任务列表中搜索关于第一任务的信息;
如果任务列表中存在关于第一任务的信息,那么允许第一任务访问第一存储器区域。
15、如权利要求14所述的存储器保护方法,还包括:如果任务列表中不存在关于第一任务的信息,那么产生错误。
16、一种存储器保护设备,包括:
请求单元,在实时操作系统中第一组件被调用以执行第一任务时,请求访问第一组件使用的第一存储器区域;
存储器访问控制器,参照包括关于被允许访问第一存储器区域的任务的信息的任务列表,允许第一任务访问第一存储器区域。
17、如权利要求16所述的存储器保护设备,还包括:存储器管理器,创建页表,该页表指示第一存储器区域的虚拟地址与物理地址的对应关系。
18、如权利要求17所述的存储器保护设备,其中,存储器管理器按照特定单位将存储器地址空间分组,将分组的地址空间分配给组件,并存储所分配的地址空间与组件的对应关系。
19、如权利要求18所述的存储器保护设备,其中,所述单位是由一个地址空间或多个连续的地址空间构成的页。
20、如权利要求18所述的存储器保护设备,其中,存储器管理器初始化页表以禁止访问分组的地址空间。
21、如权利要求16所述的存储器保护设备,其中,存储器管理器将关于允许其访问的第一任务的信息存储在任务列表中,所述信息包括第一任务的标识符和第一任务请求允许访问第一存储器区域的次数中的至少一个。
22、如权利要求21所述的存储器保护设备,其中,如果第一任务对第一存储器区域的访问不被允许,那么存储器访问控制器将关于第一任务的信息添加到任务列表。
23、如权利要求21所述的存储器保护设备,其中,如果第一任务对第一存储器区域的访问已经被允许,那么存储器访问控制器增加第一任务请求访问允许的次数。
24、如权利要求21所述的存储器保护设备,其中,如果允许其访问的第一任务结束,并且随后请求禁止访问第一存储器区域,那么存储器访问控制器禁止访问第一存储器区域。
25、如权利要求24所述的存储器保护设备,其中,存储器访问控制器减少第一任务请求访问允许的次数,如果减少之后的第一任务请求访问允许的次数为“0”,那么存储器访问控制器从任务列表中删除关于第一任务的信息。
26、如权利要求16所述的存储器保护设备,其中,如果在第一任务已经调用第一组件的状态下第二任务调用第一组件,那么存储器访问控制器在任务列表中搜索关于第二任务的信息,如果在任务列表中存在关于第二任务的信息,那么存储器访问控制器允许第二任务访问第一存储器区域。
27、如权利要求26所述的存储器保护设备,其中,如果任务列表中不存在关于第二任务的信息,那么存储器访问控制器产生错误。
28、如权利要求16所述的存储器保护设备,还包括:中断处理器,如果在第一任务调用第一组件的状态下产生了中断,那么禁止访问全部存储器区域。
29、如权利要求28所述的存储器保护设备,还包括:异常处理器,如果在中断产生之后第一任务访问第一存储器区域从而产生页错误,那么在任务列表中搜索关于第一任务的信息,如果搜索结果是任务列表中存在关于第一任务的信息,那么允许第一任务访问第一存储器区域。
30、如权利要求29所述的存储器保护设备,其中,如果任务列表中不存在关于第一任务的信息,那么异常处理器产生错误。
CNA2008101084032A 2007-05-28 2008-05-27 存储器保护方法和设备 Pending CN101315608A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020070051568 2007-05-28
KR1020070051568A KR20080104591A (ko) 2007-05-28 2007-05-28 메모리 보호 방법 및 장치

Publications (1)

Publication Number Publication Date
CN101315608A true CN101315608A (zh) 2008-12-03

Family

ID=40089581

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2008101084032A Pending CN101315608A (zh) 2007-05-28 2008-05-27 存储器保护方法和设备

Country Status (3)

Country Link
US (1) US20080301389A1 (zh)
KR (1) KR20080104591A (zh)
CN (1) CN101315608A (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103500979A (zh) * 2013-09-23 2014-01-08 北京康拓科技有限公司 一种基于PXI-e的配置智能电网通讯规约的继电保护控制器
CN104636275A (zh) * 2014-12-30 2015-05-20 北京兆易创新科技股份有限公司 一种mcu芯片的信息保护方法和装置
CN107690628A (zh) * 2015-06-16 2018-02-13 Arm 有限公司 具有所有权表的数据处理装置和方法
CN110169017A (zh) * 2017-02-07 2019-08-23 欧姆龙株式会社 控制装置以及通信装置
CN110879886A (zh) * 2018-09-05 2020-03-13 西门子股份公司 用于运行网络服务器的方法

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101155123B1 (ko) * 2010-10-26 2012-06-11 한국과학기술원 커널 코드의 오류로부터 응용 프로그램의 메모리를 보호하는 장치 및 방법
KR101701515B1 (ko) * 2010-11-16 2017-02-01 삼성전자주식회사 메모리 접근 정보를 추적하기 위한 장치 및 방법
US9703622B2 (en) 2013-06-18 2017-07-11 Nxp Usa, Inc. Detection of data corruption in a data processing device
WO2014203031A1 (en) 2013-06-18 2014-12-24 Freescale Semiconductor, Inc. Device and method for executing a program, and method for storing a program
KR101460451B1 (ko) * 2013-09-06 2014-11-12 포항공과대학교 산학협력단 프로세스 주소 공간을 제어하는 장치 및 방법

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4649475A (en) * 1984-04-02 1987-03-10 Sperry Corporation Multiple port memory with port decode error detector
US5915131A (en) * 1995-05-05 1999-06-22 Apple Computer, Inc. Method and apparatus for handling I/O requests utilizing separate programming interfaces to access separate I/O services
US5845129A (en) * 1996-03-22 1998-12-01 Philips Electronics North America Corporation Protection domains in a single address space
US5963945A (en) * 1997-06-05 1999-10-05 Microsoft Corporation Synchronization of a client and a server in a prefetching resource allocation system
US6175924B1 (en) * 1997-06-20 2001-01-16 International Business Machines Corp. Method and apparatus for protecting application data in secure storage areas
US6032219A (en) * 1997-08-01 2000-02-29 Garmin Corporation System and method for buffering data
US7124170B1 (en) * 1999-08-20 2006-10-17 Intertrust Technologies Corp. Secure processing unit systems and methods
US7509391B1 (en) * 1999-11-23 2009-03-24 Texas Instruments Incorporated Unified memory management system for multi processor heterogeneous architecture
JP4818793B2 (ja) * 2006-04-20 2011-11-16 ルネサスエレクトロニクス株式会社 マイクロコンピュータ及びメモリアクセスの制御方法
CN101446909B (zh) * 2007-11-30 2011-12-28 国际商业机器公司 用于管理任务事件的方法和系统

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103500979A (zh) * 2013-09-23 2014-01-08 北京康拓科技有限公司 一种基于PXI-e的配置智能电网通讯规约的继电保护控制器
CN103500979B (zh) * 2013-09-23 2016-02-03 北京康拓科技有限公司 一种基于PXI-e的配置智能电网通讯规约的继电保护控制器
CN104636275A (zh) * 2014-12-30 2015-05-20 北京兆易创新科技股份有限公司 一种mcu芯片的信息保护方法和装置
WO2016106911A1 (zh) * 2014-12-30 2016-07-07 北京兆易创新科技股份有限公司 一种mcu芯片的信息保护方法和装置
CN104636275B (zh) * 2014-12-30 2018-02-23 北京兆易创新科技股份有限公司 一种mcu芯片的信息保护方法和装置
US10102155B2 (en) 2014-12-30 2018-10-16 Gigadevice Semiconductor (Beijing) Inc. Method and device of information protection for micro control unit chip
CN107690628A (zh) * 2015-06-16 2018-02-13 Arm 有限公司 具有所有权表的数据处理装置和方法
US11314658B2 (en) 2015-06-16 2022-04-26 Arm Limited Apparatus and method including an ownership table for indicating owner processes for blocks of physical addresses of a memory
CN110169017A (zh) * 2017-02-07 2019-08-23 欧姆龙株式会社 控制装置以及通信装置
US11036205B2 (en) 2017-02-07 2021-06-15 Omron Corporation Control device and communication device
CN110169017B (zh) * 2017-02-07 2021-06-25 欧姆龙株式会社 控制装置以及通信装置
CN110879886A (zh) * 2018-09-05 2020-03-13 西门子股份公司 用于运行网络服务器的方法

Also Published As

Publication number Publication date
US20080301389A1 (en) 2008-12-04
KR20080104591A (ko) 2008-12-03

Similar Documents

Publication Publication Date Title
CN101315608A (zh) 存储器保护方法和设备
US5764984A (en) System for multiple co-existing operating system personalities on a microkernel
JP4519738B2 (ja) メモリアクセス制御装置
US9424085B2 (en) Recognizing a process group that is related to an application
Glaser et al. System design of a computer for time sharing applications
CN101401069A (zh) 安全的操作系统切换
US20060282461A1 (en) Object virtualization
CN105247485A (zh) 用于中断处理的方法和装置
WO2017007864A1 (en) Gesture based sharing of user interface portion
US9658937B2 (en) Optimization of hardware monitoring for computing devices
JP2021504826A (ja) アプリケーションプログラムの起動方法、起動装置およびコンピュータ読み取り可能な記憶媒体
JP2018045638A (ja) 情報処理装置、情報処理方法及びプログラム
CN112256396B (zh) 内存管理方法、系统及安全处理装置、数据处理装置
JP2011510417A (ja) プロセス分離実行を通じたdrmクライアント衝突防止システム及び方法
JP2015067107A (ja) 車両用制御装置
KR101460451B1 (ko) 프로세스 주소 공간을 제어하는 장치 및 방법
JP6838223B2 (ja) 車両制御装置
JP4563707B2 (ja) メモリ保護装置
CN114490054A (zh) 上下文切换方法、装置、加速单元、电子设备和片上系统
JP2001005679A (ja) 電子計算機における処理の中断/再開方法
JP2005084721A (ja) マイクロコンピュータ
CN100495328C (zh) 用于开发计算机系统的装置及其方法
CN103679006A (zh) 一种运行驱动程序的方法及装置
CN117272412B (zh) 中断控制寄存器保护方法、装置、计算机设备及存储介质
JP2017204286A (ja) 車両用制御装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20081203