在小型操作系统中实现内存保护模式的装置和方法制造方法及图纸

技术编号:11351703 阅读:88 留言:0更新日期:2015-04-24 18:13
本发明专利技术涉及一种在小型操作系统中实现内存保护模式的装置和方法。所述装置包括:全局参数配置模块,用于在所述操作系统进行初始化之前,从非易失性存储器中获取地址分配表;地址保护模块,用于根据所述地址分配表和当前的程序计数器指针,获取所述当前访问者所属的空间,根据所述当前访问者所属的空间、访问者的历史访问记录和访问目标地址,获取所述当前访问者的访问权限,根据所述当前访问者的访问权限,对存储器进行访问控制并对数据总线和指令总线进行处理,其中,所述当前访问者所属的空间包括特权空间和非特权空间。本发明专利技术可以为小规模操作系统提供一种简单而有效的内存保护模式实现方案。

【技术实现步骤摘要】

本专利技术涉及操作系统领域,尤其涉及一种。
技术介绍
保护模式的概念最先出现在X86机器上,目前大部分的x86操作系统都在保护模式下运行,比如Linux、Freebsd、以及Windows系列。比如最初的80286机器,它的段寄存器不再像之前的几代机器那样直接存储段基址,而是通过高13位来指向全局描述表(globaldescriptor table,简称:GDT)或者局部描述表(local descriptor table,简称:LDT)其中的某一项,而低两位用来表示访问权限,而该项就作为实际段的基址,至此80286可以定义多个段,并设置每个段的权限。而后来的几代X86机器,虽然寻址空间在不断提高,但是保护模式一直延续,而且为了兼容最初的实模式,在机器启动的时候在实模式下运行,而后通过操作系统再去打开保护模式。保护模式通过对段表的权限控制来提供存储器的保护,可以避免某些任务去破坏其他程序任务或者操作系统所拥有的存储器,保证了多任务多用户模式下的系统稳定性和安全性。保护模式不仅对于通用计算机系统,而且对于嵌入式系统来说也意义非凡。只要是系统中有多种访问权限存在,为了区分多个具有不同访问对象和访问目的的用户,需要建立保护模式以便它们获取到适用于它们自身的访问权限。在现有技术中,通常通过内存管理单元(memory management unit,简称:MMU)实现内存保护模式,该技术是由页表完成的。如果系统可访问的逻辑地址空间较大,可以分为二级或者多级页表,这些页表除了完成逻辑地址映射外,还完成各个页表的访问权限控制。在系统启动时,地址映射系统处于直接映射模式,这个类似于实地址模式,此时一部分页表会被加载进旁路转换缓冲(translat1n look-aside buffer,简称:TLB) cache中,以完成后续程序的地址映射操作,这加快了地址的映射速度,也保证了相关逻辑页的权限控制。虽然MMU技术相对比较成熟,但是存在如下缺陷:当需要映射的逻辑地址没有被TLB中的页表命中,则需要等待TLB重新去加载页表,并按照某些规律去更新TLB中的页表,这些会增加内存访问的时间开销。此外,上述重新加载和更新页表需要操作系统进行支持,所以一定程度上增加了软件设计的复杂性。由于以上缺陷,对于规模较小的操作系统,MMU技术显然不合适,所以需要一种简单而有效的内存保护模式实现方案。
技术实现思路
本专利技术提供一种,用以实现为小规模操作系统提供一种简单而有效的内存保护模式实现方案。本专利技术提供一种在小型操作系统中实现内存保护模式的装置,包括:全局参数配置模块,用于在所述操作系统进行初始化之前,从非易失性存储器中获取地址分配表;地址保护模块,用于根据所述地址分配表和当前的程序计数器指针,获取所述当前访问者所属的空间,根据所述当前访问者所属的空间、访问者的历史访问记录和访问目标地址,获取所述当前访问者的访问权限,根据所述当前访问者的访问权限,对存储器进行访问控制并对数据总线和指令总线进行处理,其中,所述当前访问者所属的空间包括特权空间和非特权空间。本专利技术还提供一种在小型操作系统中实现内存保护模式的方法,包括:在所述操作系统进行初始化之前,从非易失性存储器中获取地址分配表;根据所述地址分配表和当前的程序计数器指针,获取所述当前访问者所属的空间,根据所述当前访问者所属的空间、访问者的历史访问记录和访问目标地址,获取所述当前访问者的访问权限,根据所述当前访问者的访问权限,对存储器进行访问控制并对数据总线和指令总线进行处理,其中,所述当前访问者所属的空间包括特权空间和非特权空间。本实施例实现了对访问者的权限控制,而且在操作系统运行之前将地址分配表从非易失性存储器中读出并发送给地址保护模块,无须维护页表项,降低了软件设计的复杂性,提高了小规模操作系统的效率,增加了系统的安全性和可靠性,提高了内存访问的灵活性,为小规模操作系统提供了一种简单而有效的内存保护模式实现方案。【附图说明】图1为本专利技术在小型操作系统中实现内存保护模式的装置实施例的结构示意图;图2为本专利技术在小型操作系统中实现内存保护模式的方法实施例的流程示意图;图3为本专利技术在小型操作系统中实现内存保护模式的方法实施例中地址保护模块12的一个工作实例的流程示意图。【具体实施方式】下面结合说明书附图和【具体实施方式】对本专利技术作进一步的描述。如图1所示,为本专利技术在小型操作系统中实现内存保护模式的装置实施例的结构示意图,该装置可以包括全局参数配置模块11和地址保护模块12。全局参数配置模块11用于在操作系统进行初始化之前,从非易失性存储器中获取地址分配表。地址保护模块12用于根据地址分配表和当前的程序计数器指针,获取当前访问者所属的空间,根据当前访问者所属的空间、访问者的历史访问记录和访问目标地址,获取当前访问者的访问权限,根据当前访问者的访问权限,对存储器进行访问控制并对数据总线和指令总线进行处理,其中,当前访问者所属的空间包括特权空间和非特权空间。一般情况下,如果访问者所属的空间为特权空间,则可以访问特权空间和非特权空间。如果访问者所属的空间为非特权空间,则只能访问非特权空间,而不能访问特权空间,如果必须要访问特权空间,可以将访问者通过一些特殊指令来提升访问者的访问权限,这些特殊指令可以保存在访问者的历史访问记录中。本实施例的工作过程如下:如图2所示,为本专利技术在小型操作系统中实现内存保护模式的方法实施例的流程示意图,该方法可以包括如下步骤;步骤21、全局参数配置模块11在操作系统进行初始化之前,从非易失性存储器中获取地址分配表;步骤22、地址保护模块12根据地址分配表和当前的程序计数器指针,获取当前访问者所属的空间,根据当前访问者所属的空间、访问者的历史访问记录和访问目标地址,获取当前访问者的访问权限,根据当前访问者的访问权限,对存储器进行访问控制并对数据总线和指令总线进行处理;其中,当前访问者所属的空间包括特权空间和非特权空间。可选地,特权空间的数量可以有两个以上,非特权空间的数量可以有两个以上,各个空间可以具有独立的访问权限控制属性。本实施例实现了对访问者的权限控制,而且在操作系统运行之前将地址分配表从非易失性存储器中读出并发送给地址保护模块12,无须维护页表项,降低了软件设计的复杂当前第1页1 2 3 本文档来自技高网
...
<a href="http://www.xjishu.com/zhuanli/55/CN104536912.html" title="在小型操作系统中实现内存保护模式的装置和方法原文来自X技术">在小型操作系统中实现内存保护模式的装置和方法</a>

【技术保护点】
一种在小型操作系统中实现内存保护模式的装置,其特征在于,包括:全局参数配置模块,用于在所述操作系统进行初始化之前,从非易失性存储器中获取地址分配表;地址保护模块,用于根据所述地址分配表和当前的程序计数器指针,获取所述当前访问者所属的空间,根据所述当前访问者所属的空间、访问者的历史访问记录和访问目标地址,获取所述当前访问者的访问权限,根据所述当前访问者的访问权限,对存储器进行访问控制并对数据总线和指令总线进行处理,其中,所述当前访问者所属的空间包括特权空间和非特权空间。

【技术特征摘要】

【专利技术属性】
技术研发人员:陈世柱刘忠志
申请(专利权)人:昆腾微电子股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1