用于基于特权的存储器锁定的方法和系统的制作方法

文档序号:10613136阅读:414来源:国知局
用于基于特权的存储器锁定的方法和系统的制作方法
【专利摘要】本申请提供了用于基于特权的存储器锁定的方法和系统。该方法包括接收来自在操作系统上执行的进程的用于锁定一定量的地址空间存储器的请求。操作系统包括可配置的操作模式。在强制模式中,操作系统根据请求者进程的基于角色分级结构的特权等级来执行用于锁定地址空间存储器的请求。当所请求的量大于操作系统的可用于锁定存储器的存储器量时,操作系统使所述请求失败。然而,当操作系统可以从相对于请求者进程具有较低特权级别的进程满足所述请求时,将来自这些进程中的一个或多个的存储器解除锁定。
【专利说明】
用于基于特权的存储器锁定的方法和系统
技术领域
[0001]本公开一般涉及计算机系统安全,并且更特别地涉及基于特权的存储器锁定机制。
【背景技术】
[0002]高性能计算(HPC)聚焦于开发超级计算机、并行处理算法和相关软件。一些领域(诸如期望获得高性能水平的气象和地质研究或基因组研究)可以实现HPC系统。具有针对操作系统资源的足够权限的应用进程可以锁定其地址空间存储器页的一些或全部以试图提高性能。通过使用被锁定的存储器,数据访问可以显著更快,因为包含所需的数据的页已经在存储器中,并且不必通过操作系统的调页子系统来定位。另外,被锁定的存储器页不会遭受从主存储器被调出至外部存储设备。尽管被锁定的存储器页的量可以在系统级上被限制于系统存储器的某一百分比,但是在没有附加访问控制的情况下,应用进程可以锁定并且不释放其地址空间页的较大部分,从而负面地影响整体系统性能,尤其对于高优先级的应用而言。常规地,操作系统通过一套系统化的权限来保护计算机资源(诸如,存储器段及其相关联的页),所述一套系统化的权限控制进程可以在计算机资源上执行哪些操作(诸如读取或写入)。基于角色的访问控制(RBAC)是用于控制对计算机资源的访问的备选安全机制。在一组织内,为各种作业功能创建角色,并且执行操作的权限被指派给角色。这样,系统用户被指派特定的角色,诸如操作者角色。除其它权限外,操作者角色被指派用于关闭和重新启动计算机系统的权限。因为个体用户没有被直接指派权限,而是仅通过角色来获取权限,所以个体用户权限的管理变成简单地将用户指派给适当角色的事情。当扩展RBAC以允许基于分级结构的系统时,进程可以随后被类似地区分优先次序以用于对共享存储器进行锁定。

【发明内容】

[0003]根据一个实施例,提供了一种用于基于特权的存储器锁定(memorypinning)的方法。该方法包括:由在计算机上执行的操作系统接收来自在所述操作系统中执行的请求者进程的用于锁定一定量的地址空间存储器的请求。所述操作系统执行用于锁定所述一定量的地址空间存储器的请求,由此所述请求者进程有特权(privi Ieged)。所述操作系统拒绝用于锁定所述一定量的地址空间存储器的请求,由此所述请求者进程具有低优先级(under-privileged)。所述操作系统基于对请求的执行,更新处于使用中的被锁定存储器的其系统表格中的一个或多个。
[0004]根据另一实施例,提供了一种用于基于特权的存储器锁定的计算机程序产品。该计算机程序产品包括计算机可读存储介质,其可由处理电路读取并且存储指令用于由处理电路执行以执行一种方法。该方法包括:由在计算机上执行的操作系统接收来自在所述操作系统中执行的请求者进程的用于锁定一定量的地址空间存储器的请求。所述操作系统执行用于锁定所述一定量的地址空间存储器的请求,由此所述请求者进程有特权。所述操作系统拒绝用于锁定所述一定量的地址空间存储器的请求,由此所述请求者进程具有低优先级。所述操作系统基于对请求的执行,更新处于使用中的被锁定存储器的其系统表格中的一个或多个。
[0005]根据另一实施例,提供了一种用于基于特权的存储器锁定的计算机系统。该计算机系统包括存储器、可通信地耦接到所述存储器的处理单元、以及可通信地耦接到所述存储器和处理单元的管理模块,其中所述管理模块配置成执行一种方法的步骤。所述方法包括:由在计算机上执行的操作系统接收来自在所述操作系统中执行的请求者进程的用于锁定一定量的地址空间存储器的请求。所述操作系统执行用于锁定所述一定量的地址空间存储器的请求,由此所述请求者进程有特权。所述操作系统拒绝用于锁定所述一定量的地址空间存储器的请求,由此所述请求者进程具有低优先级。所述操作系统基于对请求的执行,更新处于使用中的被锁定存储器的其系统表格中的一个或多个。
【附图说明】
[0006]为了更完整地理解本公开,现在参考结合附图给出的以下简要说明、以及详细说明,其中同样的附图标记代表同样的部件。
[0007]图1示出可操作用于本公开的各种实施例的示例性计算节点。
[0008]图2示出根据本公开的各种实施例的示例性角色分级结构。
[0009]图3是示出根据本公开的各种实施例的用于基于特权的存储器锁定的算法的操作流程图。
[0010]图4是示出根据本公开的各种实施例的用于基于特权的存储器锁定的备选算法的操作流程图。
[0011 ]图5是根据图3和4的进程的实施例的计算机环境的硬件和软件的示意性框图。
【具体实施方式】
[0012]尽管在下面提供了一个或多个实施例的说明性实现,但是所公开的系统和/或方法可以使用许多技术来实现。本公开决不应限于下面示出的说明性实现、附图和技术(包括本文示出和描述的示例性设计和实现),而是可以在所附权利要求的范围及其等效物的完整范围内进行修改。
[0013]本公开一般涉及计算机系统领域,并且更特别地涉及基于特权的存储器锁定机制。在当前操作中,具有足够权限的进程可以锁定其地址空间存储器页的一些或全部以试图提高性能。通过使用被锁定的存储器,数据访问可以显著更快,因为包含所需的数据的页已经在存储器中,并且不必通过操作系统的调页子系统来定位。下面所述的示例性实施例提供了一种系统、方法和程序产品,用于基于角色分级结构扩展基于角色的访问控制(RBAC)以便包括区分了优先次序的对共享存储器的锁定。
[0014]本公开通过凭借经改进的对被锁定存储器的优先级访问,提高存储器利用的效率,来改进计算机的功能。具有足够系统权限的进程可以锁定其地址空间存储器页的一些或全部以试图提高性能。在当前操作中,具有较低优先级的进程可以使其锁定的存储器保持该操作的持续时间,因为锁定存储器页的能力并不通过优先级来管理。当足够数量的这样的低优先级进程锁定存储器时,较高优先级进程可能无法使其请求得到满足,因为已经达到可用于锁定的系统存储器的最大量。用于抢占(pre-empt)较低优先级进程的机制通过扩展的RBAC实现来确保较高优先级进程在需要时可以锁定存储器。作为附加益处,进程可以针对其锁定的存储器量(例如,以千兆字节或页表示的存储器量)以及存储器被锁定的持续时间而被计费。这样,在共享云计算环境中,可以鼓励程序设计员提高其应用的效率。另夕卜,利用锁定存储器算法,企业可以准确地测量并预测被锁定的存储器使用。在共享基础设施或高性能集群环境(诸如云)中,可能会期望颗粒化的计量以便准确地预测资源使用。通过使用具有特权锁定算法实现的RBAC,可以准确地测量并报告存储器使用,并且资源成本可以适当地在资源的消费者之间分摊。
[0015]如本领域技术人员应理解的,本公开的各方面可以实施为系统、方法或计算机程序产品。因此,本公开的各方面可以采取纯硬件实施例、纯软件实施例(包括固件、驻留软件、微代码等)、或者将软件和硬件方面进行组合的实施例的形式,上述实施例可在本文中全部被一般地称为“逻辑”、“电路”、“模块”或“系统”。而且,本发明的各方面可以采取在一个或多个计算机可读介质中实施的计算机程序产品的形式,所述一个或多个计算机可读介质在其上体现有计算机可读程序代码。
[0016]下面参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述本公开的各方面。应理解的是,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机程序指令实现。
[0017]现在转到图1,其示出可操作用于本公开的各种实施例的示例性计算机系统(SP,服务器)12的框图。如图所示,服务器12仅是用于实现基于特权的存储器锁定机制的适合的计算机的一个示例,并且并非旨在暗示关于本文描述的本公开的实施例的使用范围或功能范围的任何限制。
[0018]服务器12可在许多其它计算系统环境或配置中运行。例如,服务器12可以是独立机器、在物理主机上的虚拟分区、集群化的服务器环境、或者包括以上系统或设备等中的任何一种的分布式云计算环境。当在分布式云计算环境中实践时,任务可以由连接在一起并通过通信网络(诸如网络99)通信的本地和远程服务器12两者执行。
[0019]服务器12可以在可执行指令(诸如程序,或者更具体地,操作系统(0S)40)的背景中描述,所述操作系统40是由处理单元16执行以控制服务器12的操作的程序模块42的集合。程序模块42执行OS 40的特定任务,诸如进程管理、存储器管理以及设备管理。程序模块42可以被实现为例如例程、程序、对象、组件、逻辑或数据结构。执行特定任务的程序模块42可以根据程序模块42所控制的服务器12组件,按照功能被归组。程序模块42的至少一部分可以被专门化以执行图3和4的算法。
[0020]在分布式计算环境诸如云计算环境中,每个参与服务器12可以在分别驻留在每个本地和远程服务器12上的OS 40的控制下。在虚拟机(也被称为虚拟服务器)中,虚拟机的每个实例是物理计算机的模拟。物理计算机可以承载多个虚拟机实例,每个虚拟机器实例共享物理计算机的硬件资源并且每个虚拟机实例模拟物理计算机。虚拟机实例中的每一个在OS 40的控制下。
[0021]如图1所示,服务器12的组件可以包括但不限于一个或多个处理器或处理单元16、系统存储器28、以及将各种系统组件(诸如系统存储器28)耦接至处理器16的总线18。
[0022]系统存储器28可以包括易失性存储器形式的计算机系统可读介质,诸如随机存取存储器(RAM)30和/或高速缓冲存储器32。服务器12还可以包括其它可移动/非可移动、易失性/非易失性计算机系统存储介质。
[0023]仅举例来说,存储系统34可以被提供为用于从非可移动、非易失性磁介质诸如硬盘驱动(HDD)或光盘驱动诸如⑶-R0M、DVD-R0M读取和向其写入的一个或多个设备。存储系统34的每个设备可以通过一个或多个数据介质接口连接到总线18。程序模块42、0S 40和一个或多个应用程序可以存储在存储系统34上,并且随后根据需要加载到存储器28中用于执行。
[0024]服务器12还可以与以下组件通信:一个或多个外部设备14,诸如键盘、指点设备、显示器24等;一个或多个使用户能够与服务器12交互的设备;和/或使服务器12能够与一个或多个其它计算设备通信的任何设备(例如,网卡、调制解调器等)。这样的通信可以经由I/O接口 22发生。仍然,服务器12可以经由网络适配器20与一个或多个网络诸如局域网(LAN)、通用广域网和/或公共网络(例如,因特网)通信。如图所示,网络适配器20经由总线18与服务器12的其它组件通信。外部存储适配器26连接服务器12与外部存储子系统,诸如存储区域网络(SAN)15或RAID阵列。取决于架构实现,示例性外部存储适配器26包括但不限于主机总线适配器(HBA)、主机通道适配器(HCA)、SCSI和iSCSI。外部存储适配器26通过总线18与服务器12的处理单元16和存储器28通信。
[0025]应理解的是,尽管未示出,但是其它硬件和/或软件组件可以与服务器12结合使用。示例包括但不限于:微码、设备驱动器、冗余处理单元、外部磁盘驱动器阵列、RAID系统、磁带驱动器和数据存档存储系统等。
[0026]现在参考图2,其示出具有若干角色的示例性基于角色的分级结构。一般来讲,OS40(图1)中的传统特权管理是通过超级用户账户递送的,所述超级用户账户被称为根用户(root user),其具有在服务器12(图1)上执行系统管理的所有方面的权限。根用户可以创建另外的用户,并且每个用户可以具有根权限的子集。OS 40(图1)通过唯一的用户标识(UID)号来识别用户。根用户还可以创建通过组标识(GID)来识别的一个或多个组。基于针对一对象具有类似的访问需求,多个用户被指派给一个组。特权也可以使用自主访问控制(DAC)来管理。在DAC中,创建了一对象(诸如文件或可执行程序)的用户定义一系列对象权限位,其确定另一用户或组是否可以访问该对象、以及可以执行什么类型的操作。对象权限位描述拥有者、组和其它实体的访问(即读取、写入、执行),并且基于用户所属的UID和GID。拥有者、组和其它实体的对象权限位常规地被称为rwxrwxrwx。例如,如果对象是可执行程序,则通过使用UID/GID访问控制,仅仅具有适当UID或具有适当的组中的成员资格的那些用户可以执行该程序。一般用户可以通过在被称为setuid的操作中暂时采用根用户的身份,来执行特权操作(诸如锁定存储器)。然而,执行setuid程序的用户也会暂时继承根用户的所有权限,从而引起安全漏洞。另外,DAC和setuid模型都缺少一种机制来抢占较低优先级的进程,使其不会消耗不相称的量的可用的被锁定存储器资源。
[0027]如在RBAC标准中描述的最少特权原则是另一种获得安全性的方法,其仅向程序进程授予执行特定任务所需的权限。通过实现角色分级结构,本公开还提供了抢占较低优先级进程。在核心RBAC中,用户被指派给角色,权限被指派给角色,并且用户通过作为角色的成员而获取权限。在多对多关系中,同一用户可以被指派给许多角色,并且单个角色可以具有许多用户。类似地,单个权限可以被指派给许多角色,并且单个角色可以被指派给许多权限。因此,RBAC提供了一种机制,通过该机制,当用户被指派给适当的角色时,通常为根用户保留的活动可以被指派给非根的一般系统用户。活动可以包括某些特权管理员命令,诸如reboot (重新启动)和shutdown(关闭)。享有特权的系统调用(诸如用于锁定存储器的mlock())也可以被指派给角色。当以分级结构构建角色时,关系可以在进程之间建立,使得具有较低优先级的进程(也被称为初级角色)可以被较高优先级的进程(即高级角色)抢占。RBAC标准在本领域中是熟知的,并且还取决于实现。因此,定义和激活角色同样将不参考本公开进行讨论,因为可以使用任何可用的实现。
[0028]如图2所示,生产200角色是最高级的角色。在该示例中,除其它功能外,生产200角色被允许执行系统调用以锁定并操纵共享存储器。由用户标识(userid)识别的生产用户可以被指派给生产200角色。测试用户可以被指派给测试角色210,其比生产200角色的级别低。当执行测试210角色的任务时,测试员也可以被允许执行系统调用以锁定并操纵共享存储器。然而,根据本公开的RBAC实现,作为分级结构中的初级角色,测试员的请求可以在服从来自生产用户的较高优先级请求的情况下得到满足。类似地,开发人员215角色比生产200角色和测试210角色都级别低。因此,被指派了开发人员215角色的用户可以服从来自生产200角色和测试210角色两者的在先锁定请求。工程师220(其在分级结构中为最初级的)与更高级的角色相比可以仅被指派功能的小子集。例如,被指派给工程师220角色的用户不可以被允许执行系统调用以锁定并操纵共享存储器。
[0029]现在参考图3,其示出根据本公开的各种实施例的用于基于特权的存储器锁定的算法。图3示出具有活跃的RBAC实现的系统。RBAC是若干可用的安全选项中的一个,在所述RBAC中,用户基于他们被指派的角色而获得权限。在不具有活跃的RBAC实现的情况下,锁定存储器请求可以根据操作系统的原有算法(native algorithm)来处理。在300处,OS 40(图1)接收来自进程(即,请求者进程)的用于锁定其地址空间存储器页的一部分的请求。
[0030]在305处,评估所述进程的RBAC角色。如果在305处,所述进程与低优先级用户相关联,那么在340处,OS 40(图1)利用永久错误(诸如EPERM)使所述请求失败。低优先级用户是被指派给与另一个角色相比在RBAC分级结构中处于较低位置的角色的用户。对于该示例,低优先级用户是被指派给相对于作为请求者进程用户的父亲(parent)的用户(S卩,特权用户)的角色而言,在RBAC分级结构中处于较低位置的角色的用户。
[0031]如果在305处,如UID所识别的那样,所述进程与特权用户相关联,那么在310处,OS40(图1)确定是否有任何被锁定的存储器可用于分配。在实践中,操作系统设置其存储器的可配置的最大百分比(诸如80%),其可以用于满足对存储器进行锁定的请求。通过设置限值,OS 40(图1)确保存储器可用于其它任务,诸如创建和调度进程。另外,可用存储器不充足会造成不良的性能,因为在低存储器环境中,进程对存储器页的请求仅可以通过从存储器中逐出(evict)另一进程的页而得到满足。因此,如果在310处,特权进程的锁定存储器请求可以从可用于这样的请求的存储器量中得到满足,那么在330处,把所请求的锁定存储器量分配给特权进程。最后,在335处,OS 40(图1)可以通过把其存储器已经被解除锁定的那些进程减少、并把成功的请求者进程的被锁定存储器使用量增加,来更新其对进程存储器使用量进行跟踪的各种表格和结构。OS 40(图1)还可以更新由于满足锁定存储器请求而产生的任何段和/或页的所有权修改。
[0032]然而,在310处,在系统上可能没有足够量的可用存储器来满足对被锁定存储器的请求。因此,在315处,OS 40(图1)计算有多少被锁定的存储器当前正被低优先级用户所执行的进程使用。在实践中,OS 40(图1)可以对被锁定的存储器系统资源实施可配置的每用户或每进程的限值,并跟踪处于使用中的实际量。因此,通过合计用于每个用户和/或进程的被锁定存储器的量、并添加由内核使用的任何量,来确定处于使用中的被锁定存储器的总量。
[0033]在320处,如果被锁定存储器的处于使用中的量大于或等于所请求的锁定存储器量,那么在325处,OS 40(图1)将来自至少一个低优先级进程的一定量的被锁定存储器解除锁定以满足所述请求。在一个实施例中,OS 40(图1)可以在其跟踪状态信息的内部进程控制表格、列表或其它类似结构中,搜索具有在量上大约等于所请求的量的被锁定存储器的低优先级进程。在另一实施例中,OS 40(图1)可以将来自一个或多个低优先级进程的存储器解除锁定以满足所请求的要锁定的量。在又一实施例中,0S40(图1)可以从具有被锁定最长持续时间的存储器的一个或多个低优先级进程中解除存储器的锁定。在又一实施例中,OS 40(图1)可以将来自一个或多个低优先级进程的统计量(诸如百分比)解除锁定。
[0034]在330处,在已经把来自至少一个低优先级进程的足够存储器解除锁定的情况下,OS 40(图1)将所请求的锁定存储器量分配给发出请求的特权请求者进程。最后,在335处,OS 40(图1)可以通过把其存储器被解除锁定的那些用户减少、并把成功的请求者的被锁定存储器使用量增加,来更新其对进程存储器使用量进行跟踪的各种表格和结构。
[0035]然而,如果在320处,总的被锁定存储器使用量不大于所请求的量,那么在355处,所述请求失败,且带有存储器不足错误(诸如ΕΝ0ΜΕΜ)。在这种情况下,使所述请求失败,因为可用于满足这样的请求的存储器的量被耗尽,并且即使释放由低优先级进程保持的被锁定存储器,仍没有足够的存储器可用于满足所述请求。
[0036]现在参考图4,其示出用于基于特权的存储器锁定的备选算法。在400处,OS40(图1)接收来自进程的用于锁定其地址空间存储器页的一部分的请求。如在图3的实施例中那样,该实施例包括活跃的RBAC实现。本实施例包括一种可配置的操作模式,其允许OS 40(图1)可选地绕过先前参考图3描述的算法。在自主模式中,尽管实现了RBAC,0S 40(图1)仍可以使用操作系统的原有算法(诸如基于先到先服务的算法)来执行锁定存储器请求。然而,在强制模式中,OS 40(图1)可以执行图4的算法。操作模式可以在系统激活之前进行配置。可替代地,操作模式也可以在系统运行期间例如由系统管理员动态地改变。
[0037]在402处,OS40(图1)询问操作系统参数的可配置模式以确定如何执行对于被锁定存储器的请求。在自主模式中,尽管实现了RBAC,0S 40(图1)仍可以使用操作系统的原有算法来执行锁定存储器请求。在强制模式中,OS 40(图1)可以使用图4的算法。如果在402处配置了自主模式,那么在412处,锁定存储器请求可以根据操作系统的原有算法来处理。
[0038]然而,如果在402处配置了强制模式,那么在405处,评估作为请求者进程的父亲的用户的RBAC角色。低优先级用户是被指派给与另一个角色相比在RBAC分级结构中处于较低位置的角色的用户。对于该示例,低优先级用户是被指派给相对于作为请求者进程用户的父亲的用户(即,特权用户)的角色而言,在RBAC分级结构中处于较低位置的角色的用户。如果进程具有低优先级,那么在440处,OS 40(图1)利用永久错误(诸如EPERM)使所述请求失败。
[0039]如果在405处,如UID所识别的那样,所述进程与特权用户相关联,那么在410处,OS40(图1)确定是否有任何被锁定的存储器可用于分配。在实践中,操作系统设置其存储器的可配置的最大百分比(诸如80%),其可以用于满足对存储器进行锁定的请求。通过设置限值,OS 40(图1)确保存储器可用于其它任务,诸如创建和调度进程。另外,可用存储器不充足会造成不良的性能,因为在低存储器环境中,进程对存储器页的请求仅可以通过从存储器中逐出另一进程的页而得到满足。因此,如果在410处,特权进程的锁定存储器请求可以从可用于这样的请求的存储器量中得到满足,那么在330处,把所请求的锁定存储器量分配给特权进程。最后,在435处,OS 40(图1)可以通过把其存储器被解除锁定的那些用户减少、并把请求者的被锁定存储器使用量增加,来更新其对进程存储器使用量进行跟踪的各种表格和结构。OS 40(图1)还可以更新由于满足锁定存储器请求而产生的任何段和/或页的所有权修改。
[0040]然而,在410处,在系统上可能没有足够量的可用存储器来满足对被锁定存储器的请求。因此,在415处,OS 40(图1)计算有多少被锁定的存储器当前正被低优先级用户使用。在实践中,OS 40(图1)可以对被锁定的存储器系统资源实施可配置的每用户或每进程的限值,并跟踪处于使用中的实际量。因此,通过合计用于每个用户和/或进程的被锁定存储器的量、并添加由内核使用的任何量,来确定处于使用中的被锁定存储器的总量。
[0041]在420处,如果被锁定存储器的处于使用中的量大于或等于所请求的锁定存储器量,那么在425处,OS 40(图1)将来自至少一个低优先级进程的一定量的被锁定存储器解除锁定以满足所述请求。在一个实施例中,OS 40(图1)可以在其跟踪状态信息的内部进程控制表格、列表或其它类似结构中,搜索大约等于所请求的量的量。在另一实施例中,OS 40(图1)可以将来自一个或多个最低特权进程的存储器解除锁定以满足所请求的要锁定的量。在又一实施例中,OS 40(图1)可以从具有被锁定最长持续时间的存储器的一个或多个低优先级进程中解除存储器的锁定。在又一实施例中,OS 40(图1)可以将来自一个或多个低优先级进程的统计量(诸如百分比)解除锁定。
[0042]在430处,在已经把来自至少一个低优先级进程的足够存储器解除锁定的情况下,OS 40(图1)将所请求的锁定存储器量分配给特权进程。最后,在435处,OS 40(图1)可以通过把其存储器已经被解除锁定的那些进程减少、并把成功的请求者的被锁定存储器使用量增加,来更新其对进程存储器使用量进行跟踪的各种表格和结构。
[0043]然而,如果在420处,总的被锁定存储器使用量不大于所请求的量,那么在455处,所述请求失败,且带有存储器不足错误(诸如ΕΝ0ΜΕΜ)。在这种情况下,使所述请求失败,因为可用于满足这样的请求的存储器的量被耗尽,并且即使释放由低优先级用户保持的被锁定存储器,仍没有足够的存储器可用于满足所述请求。
[0044]现在参考图5,计算设备500可以包括相应的多组内部组件800和外部组件900,其可一起提供用于软件应用的环境。多组内部组件800中的每一组包括:在一个或多个总线826上的一个或多个处理器820; —个或多个计算机可读RAM 822 ; 一个或多个计算机可读ROM 824;执行图3和4的方法的一个或多个操作系统828;以及一个或多个计算机可读有形存储设备830。一个或多个操作系统828(包括另外的数据采集设施)被存储在相应的计算机可读有形存储设备830中的一个或多个上,以便经由相应的RAM 822 (其通常包括高速缓冲存储器)中的一个或多个由相应的处理器820中的一个或多个执行。在图5所示的实施例中,计算机可读有形存储设备830中的每一个是内部硬驱的磁盘存储设备。可替代地,计算机可读有形存储设备830中的每一个是半导体存储设备,诸如ROM 824、EPR0M、闪存存储器、或者可以存储计算机程序和数字信息的任何其它计算机可读有形存储设备。
[0045]每一组内部组件800还包括R/W驱动或接口 832以便从一个或多个计算机可读有形存储设备936(诸如⑶-R0M、DVD、SSD、记忆棒、磁带、磁盘、光盘或半导体存储设备)读取和向其写入。
[0046]每一组内部组件800还可以包括网络适配器(或交换机端口卡)或接口836,诸如TCP/IP适配器卡、无线W1-FI接口卡、或者3G或4G无线接口卡、或者其它有线或无线通信连接。可以经由网络(例如,因特网、局域网或其它广域网)和相应的网络适配器或接口 836,把与计算设备400相关联的操作系统828从外部计算机(例如,服务器)下载到计算设备500。从网络适配器(或交换机端口适配器)或接口 836,与计算设备500相关联的操作系统828被加载到相应的硬驱830和网络适配器836。网络可以包括铜导线、光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。
[0047]多组外部组件900中的每一组可以包括计算机显示监视器920、键盘930和计算机鼠标934。外部组件900还可以包括触摸屏、虚拟键盘、触摸板、指点设备和其它人类接口设备。多组内部组件800中的每一组还可以包括与计算机显示监视器920、键盘930和计算机鼠标934进行接口连接的设备驱动器840 ο设备驱动器840、R/W驱动器或接口 832、以及网络适配器或接口 836包括硬件和(存储在存储设备830和/SROM 824中的)软件。
[0048]本发明的各种实施例可以在适合于存储和/或执行程序代码的数据处理系统中实现,所述数据处理系统包括通过系统总线直接或间接耦接至存储器元件的至少一个处理器。存储器元件包括:例如,在程序代码的实际执行期间采用的本地存储器,大容量存储装置,以及高速缓冲存储器,其提供至少一些程序代码的暂时存储,以便减少在执行期间必须从大容量存储装置取回代码的次数。
[0049]输入/输出或I/O设备(包括但不限于键盘、显示器、指点设备、DASD、磁带、⑶、DVD、拇指驱动器和其它存储器介质等)可以直接或通过居间I/o控制器耦接至系统。网络适配器还可以耦接至系统以使数据处理系统能够通过居间的私有或公共网络耦接至其它数据处理系统或远程打印机或存储设备。调制解调器、电缆调制解调器和以太网卡仅是可用类型的网络适配器中的一些。
[0050]本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
[0051]计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是一一但不限于一一电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
[0052]这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
[0053]用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言一诸如Smalltalk、C++等,以及常规的过程式编程语言一诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络一包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
[0054]这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
[0055]这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
[0056]也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
[0057]附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
[0058]尽管已经在本文中详细绘出和描述了优选实施例,但是对于相关领域的技术人员来说明显的是,在不脱离本公开的精神的情况下可以做出各种修改、增加、替换等等,并且这些因此应被视为处于下面的权利要求所定义的本公开的范围内。
【主权项】
1.一种用于基于特权的存储器锁定的方法,包括: 由在计算机上执行的操作系统接收来自在所述操作系统中执行的请求者进程的用于锁定一定量的地址空间存储器的请求; 执行用于锁定所述一定量的地址空间存储器的请求,其中所述请求者进程有特权; 拒绝用于锁定所述一定量的地址空间存储器的请求,其中所述请求者进程具有低优先级;以及 基于所执行的请求,更新处于使用中的被锁定存储器的一个或多个操作系统表格。2.如权利要求1所述的方法,其中执行所述请求还包括: 通过合计由每个低优先级的非请求者进程使用的被锁定存储器的每进程的量,计算处于使用中的被锁定存储器的总量; 基于所请求的量大于所计算的总量,使用于锁定所述一定量的地址空间存储器的请求失败; 基于所计算的总量大于所请求的量,将来自至少一个低优先级的非请求者进程的一定量的被锁定存储器解除锁定;以及 锁定所请求的量的地址空间存储器。3.如权利要求1所述的方法,还包括操作模式,其中所述操作模式能够在所述操作系统激活后被动态地配置。4.如权利要求2所述的方法,其中被解除锁定的量基于下述中的至少一项: 来自每个低优先级的非请求者进程的被锁定存储器的统计量; 特权的级别;以及 持续时间。5.如权利要求3所述的方法,其中所述操作模式是自主操作模式,在所述自主操作模式中,所述操作系统执行原有的存储器锁定算法。6.如权利要求3所述的方法,其中所述操作模式是强制操作模式,在所述强制操作模式中,所述操作系统根据基于角色分级结构的特权级别来执行用于锁定所述一定量的地址空间存储器的请求。7.—种用于基于特权的存储器锁定的计算机系统,包括存储器、可通信地耦接到所述存储器的处理单元、以及可通信地耦接到所述存储器和处理单元的管理模块,其中所述管理模块配置成执行一种方法的步骤,所述方法包括: 由在计算机上执行的操作系统接收来自在所述操作系统中执行的请求者进程的用于锁定一定量的地址空间存储器的请求; 执行用于锁定所述一定量的地址空间存储器的请求,其中所述请求者进程有特权; 拒绝用于锁定所述一定量的地址空间存储器的请求,其中所述请求者进程具有低优先级;以及 基于所执行的请求,更新处于使用中的被锁定存储器的一个或多个操作系统表格。8.如权利要求7所述的计算机系统,其中执行所述请求还包括: 通过合计由每个低优先级的非请求者进程使用的被锁定存储器的每进程的量,计算处于使用中的被锁定存储器的总量; 基于所请求的量大于所计算的总量,使用于锁定所述一定量的地址空间存储器的请求失败; 基于所计算的总量大于所请求的量,将来自至少一个低优先级的非请求者进程的一定量的被锁定存储器解除锁定;以及 锁定所请求的量的地址空间存储器。9.如权利要求7所述的计算机系统,还包括操作模式,其中所述操作模式能够在所述操作系统激活后被动态地配置。10.如权利要求7所述的计算机系统,其中被解除锁定的量基于下述中的至少一项: 来自每个低优先级的非请求者进程的被锁定存储器的统计量; 特权的级别;以及 持续时间。11.如权利要求9所述的计算机系统,其中所述操作模式是自主操作模式,在所述自主操作模式中,所述操作系统执行原有的存储器锁定算法。12.如权利要求9所述的计算机系统,其中所述操作模式是强制操作模式,在所述强制操作模式中,所述操作系统根据基于角色分级结构的特权级别来执行用于锁定所述一定量的地址空间存储器的请求。13.如权利要求9所述的计算机系统,其中在所述自主操作模式中,被锁定的存储器基于先到先服务原则被分配。
【文档编号】G06F21/78GK105975817SQ201610134770
【公开日】2016年9月28日
【申请日】2016年3月10日
【发明人】S·马基尼蒂, S·R·M·帕塔萨拉蒂
【申请人】国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1