用于控制子上下文之间的存储器访问的装置、系统和方法制造方法及图纸

技术编号:2844621 阅读:205 留言:0更新日期:2012-04-11 18:40
一种用于在计算设备中控制子上下文之间的存储器访问的装置、系统和方法。所述装置、系统和方法实现了关联存储器块组的子上下文。所述装置、系统和方法保持用于子上下文间的存储器访问的权限映射。控制模块监视所有的子上下文间的存储器访问,并且阻止那些不存在权限映射的访问。

【技术实现步骤摘要】

本专利技术涉及计算设备中的存储器保护,并尤其涉及依照当前的代码执行点来保护存储器。
技术介绍
在早期的计算设备中,在计算机上一次只运行一个程序。运行的程序完全控制了机器中的硬件,其中这些硬件包括逻辑设备、处理器、存储器、输入设备以及输出设备。运行的程序中的程序缺陷可导致该运行程序工作不正常或终止。然而,由于一次仅仅运行一个程序,因此其他程序是不受影响的。随着计算机变得更为复杂,在单个计算机上运行了多个程序。多任务处理核心采用了不同方式来调整处理器访问。在常规的多任务处理的实现方式中,该核心在很短的时间片中调度计算机上运行的每一个程序。在每一个时间片期间运行一个程序。在每一个时间片末端,该核心保存当前运行的程序的状态,然后恢复挂起(suspended)程序的状态,并且允许挂起程序在新的时间片期间运行。通过毫秒级别的时间片,计算机能够连续运行多个程序,同时给出同时运行多个程序的效果。在早期的多任务环境中,每一个程序在其时间片期间会完全控制计算机。当前运行的程序控制了处理器、存储器、输入设备以及输出设备。当前运行的程序有能力影响分配给挂起程序的存储器。字处理程序有能力修改分配给统计程序的存储器。尽管软件程序员尝试避免这些错误,但是这些错误还是会发生,并且这些错误导致很多问题。一个程序对分配给另一个程序的存储器执行的存储器访问是普遍的,并且是很难检测的。响应于这些问题,计算机体系结构和软件的设计人员共同工作而设计了基于进程的受保护的存储器系统。在基于进程的受保护的存储器系统中,核心是运行进程中的程序。并且核心基于进程而将存储器分配给程序。举例来说,核心启动进程中的程序。该核心调度进程来运行和分配运行进程的时间片。当该程序是当前运行的进程时,该程序从核心请求存储器块。然后,核心分配存储器块,并且会将该存储器块与特定的进程相关联。核心结合了专用硬件来监视运行进程进行的存储器访问。运行进程对当前分配给该运行进程的存储器所进行的访问是得到许可的。然而,运行进程对未分配给它的存储器所进行的访问创建出异常。核心处理该异常,并且阻止对未分配给当前进程的存储器的访问。基于进程的受保护存储器系统实现了其目的——防止同时运行的程序影响到分配给其他程序的计算机资源。然而,它是以很高的代价来实现其目的的。首先,从一个进程切换到另一个进程所需要的时间量会增长。其次,进程切换必须更频繁的进行,以便处理进程间的通信(IPC)。第三,核心对计算机资源的请求必须通过进程切换或通过系统中断来调整,这创建了切换开销并且占用了关键的核心资源。核心必须了解分配给每一个进程的存储器块以及权限。通常,核心使用了用于每个进程的页表来存储该信息。该页表保持了运行进程所用虚拟地址与物理存储器位置的映射。此外,该页表还追踪哪个存储器被交换到磁盘。用于单个进程的页表可以是非常大的。很多计算机系统都使用了转换后备缓冲器(TLB)来缓存该页表,以便加速地址转换。进程切换是耗时的过程。在由核心调度进程的时候,该核心会转储清除(flush)TLB,并且会设置指向新页表的指针。该页表的某些部分必须被加载到存储器中,并且与包括了代码页以及数据页的进程相关联的附加存储器页必须被加载到存储器中。通过采用这种方式来将存储器分配给进程,核心能够限制进程间的存储器访问。然而,即使是从一个进程到另一个进程的最简单的调用也会导致进程切换开销。在基于进程的受保护的存储器系统中存在异常,以便允许核心以及高度可信的程序访问计算机中的所有存储器。举例来说,核心通常是以特许模式运行的,该模式允许核心访问任何存储器地址而不会导致异常。此外,某些设备驱动器和其享库同样可以在特许等级上运行。这些异常减少所需要的进程切换的数量,但也降低了系统的稳定性。目前已经提出了很多建议,以便减小核心代码的大小以及将尽可能多的系统级服务推送到非核心应用中。这种系统有时被称为微核心。基于微核心的操作系统从核心中分离出了很多系统功能。这些被分离的系统功能可以存在于系统代码段中,也可以存在于独立的进程中。如果被分离的系统功能是作为系统代码段而存在的,那么它们必定会由不可信的进程所调用。在基于进程的存储器保护体系结构中,这种设计将会允许不可信的程序直接调用系统代码,由此绕过存储器保护标准。作为选择,系统功能可以作为独立进程来实施,该进程会为来自不可信进程的请求提供服务。然而,通过创建附加进程来执行系统功能将会产生与进程切换相关联的很高的开销成本。从以上论述中可知,目前明显需要一种装置、系统和方法,其允许计算设备上运行的应用直接调用系统功能,而不会产生进程切换开销,同时维持存储器保护标准来防止不可信的应用不恰当地访问系统资源。非常有益的是,这种装置、系统和方法将会提升系统的稳定性,同时减少调用系统功能所需要的时间。这种装置、系统和方法还将减少与进程间的通信相关联的开销。
技术实现思路
本专利技术是响应于本领域的当前状况而被开发的,特别地,本专利技术是响应于本领域中尚未被当前可用的存储器保护系统完全解决的需要和问题而被开发的。相应地,通过开发本专利技术,可以提供一种用于实现受保护的虚拟存储器子上下文(subcontext)的装置、系统和方法,其中所述虚拟存储器子上下文克服了众多或所有的如上所述的本领域内的缺陷。用于实现受保护的虚拟存储器子上下文的装置提供有包含多个模块的逻辑单元,这些模块被配置成在功能上执行以下的必要步骤将存储器块分配给特定子上下文,在子上下文映射模块中存储所述分配,在子上下文映射模块中存储子上下文间的存储器访问权限,追踪当前子上下文的身份,追踪当前子上下文所执行的子上下文间存储器访问,以及阻拦那些并未得到子上下文映射模块中存储的子上下文间存储器访问权限许可的存储器访问。在一实施例中,该装置被配置成阻拦被禁止的子上下文存储器读写。在一实施例中,该装置还被配置成保持子上下文入口点以及相关权限的表格,并且阻拦没有正确使用已注册子上下文入口点或没有正确权限进行此类调用的子上下文间的程序调用。在另一实施例中,该装置可以被配置成使得进程间的通信更便利。还提供了本专利技术的一种用于实现受保护的虚拟存储器子上下文的系统。该系统可以包括中央处理单元、随机存取存储器、子上下文映射模块以及控制模块,其中该控制模块被配置成阻止没有被子上下文映射模块中存储的权限所许可的子上下文间的存储器访问。特别地,在一实施例中,该系统还包括入口点表格,该表格被配置成保持子上下文入口点与子上下文间的权限的列表,并且被配置成阻拦没有使用具有恰当权限的已注册子上下文入口点的子上下文间的程序调用。还提供了一种用于服务和安装本专利技术的方法,以便实现受保护的虚拟存储器子上下文。在所公开的实施例中的方法基本上包括了安装和服务本专利技术所必需的步骤。在一实施例中,该方法包括将算计可读代码集成到计算系统中,其中所述代码与计算系统相结合而将存储器块分配给子上下文,在子上下文映射模块中存储子上下文间的访问权限,追踪当前子上下文的身份,追踪当前子上下文所执行的子上下文间存储器访问,以及阻拦那些没有子上下文映射模块中存储的匹配权限的存储器访问。该方法还可以包括保持子上下文入口点模块,并且阻拦没有在子上下文入口点模块中注册的子上下文间的程序调用。该方法还可以阻拦没有在子上下文入口点模块中存储匹本文档来自技高网
...

【技术保护点】
一种用于在计算设备中控制子上下文之间的存储器访问的装置,该装置包括:子上下文存储器关联模块,被配置对存储器块到子上下文分配进行管理;子上下文映射模块,被配置保持子上下文间的存储器访问权限;以及控制模块,被配置阻止与一 子上下文相关联的计算机代码对分配给另一子上下文的存储器块的存储器访问,除非所述子上下文间的存储器访问权限允许所述存储器访问。

【技术特征摘要】
US 2005-8-31 11/216,9811.一种用于在计算设备中控制子上下文之间的存储器访问的装置,该装置包括子上下文存储器关联模块,被配置对存储器块到子上下文分配进行管理;子上下文映射模块,被配置保持子上下文间的存储器访问权限;以及控制模块,被配置阻止与一子上下文相关联的计算机代码对分配给另一子上下文的存储器块的存储器访问,除非所述子上下文间的存储器访问权限允许所述存储器访问。2.如权利要求1所述的装置,其中所述存储器访问是从包括存储器读取、存储器写入以及指令加载的组中选出的。3.如权利要求1所述的装置,其中所述子上下文映射模块还包括子上下文入口点模块,该模块被配置保持用于子上下文的已注册入口点以及子上下文间的入口点权限,所述控制模块进一步被配置阻止未使用已注册子上下文入口点的子上下文间的代码调用,其中所述已注册子上下文入口点的权限允许当前的子上下文调用已注册入口点的子上下文。4.如权利要求3所述的装置,其中所述计算设备以硬件形式实现用于所述子上下文映射模块的高速缓存、用于入口点表的硬件高速缓存、以及用于与当前代码执行点相关联的子上下文的寄存器。5.如权利要求1所述的装置,还包括页表,该页表被配置分配来自随机存取存储器的存储器页,其中所述控制模块还阻止进程对并未分配给该进程的存储器位置的存储器访问。6.如权利要求1所述的装置,其中所述子上下文存储器关联模块还被配置将多个进程可以访问的存储器块与子上下文相关联。7.如权利要求6所述的装置,其中单个虚拟地址被配置允许多个进程访问所述存储器块。8.如权利要求6所述的装置,其中所述子上下文映射模块中的存储器访问权限还被配置允许使用所述存储器块的多个进程之间的进程间通信。9.如权利要求6所述的装置,其中所述子上下文映射模块中的存储器访问权限还被配置允许在多个进程中运行的多个线程访问单个子上下文中的存储器。10.如权利要求6所述的装置,其中所述子上下文存储器映射模块中的存储器访问权限还被配置允许一子上下文中的应用直接调用系统级别库子上下文中,由此不需要进行上下文切换。11.一种用于控制子上下文之间的存储器访问的系统,该系统包括计算设备,包括中央处理单元;以及可以被所述中央处理单元访问的随机存取存储器;子上下文存储器关联模块,被配置保持存储器块到子上下文的分配;子上下文映射模块,被配置保持子上下文间的存储器访问权限;以及控制模块,被配置阻止与一子上下文相关联的计算机代码对分...

【专利技术属性】
技术研发人员:RL路易斯
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:US[美国]

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

1