CN100570565C - 在管理程序中提供基于策略的操作系统服务的方法和系统 - Google Patents
在管理程序中提供基于策略的操作系统服务的方法和系统 Download PDFInfo
- Publication number
- CN100570565C CN100570565C CNB200710153643XA CN200710153643A CN100570565C CN 100570565 C CN100570565 C CN 100570565C CN B200710153643X A CNB200710153643X A CN B200710153643XA CN 200710153643 A CN200710153643 A CN 200710153643A CN 100570565 C CN100570565 C CN 100570565C
- Authority
- CN
- China
- Prior art keywords
- system service
- operating system
- kernel
- service
- node
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5055—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering software capabilities, i.e. software resources associated or available to the machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5061—Partitioning or combining of resources
- G06F9/5077—Logical partitioning of resources; Management or configuration of virtualized resources
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
- Hardware Redundancy (AREA)
Abstract
本发明公开了在计算系统上的管理程序中提供基于策略的操作系统服务的方法、装置和产品。计算系统包括至少一个计算节点。计算节点包括操作系统和管理程序。操作系统包括内核。管理程序包含内核代理和具有某种服务类型的多个操作系统服务。在计算系统上的管理程序中提供基于策略的操作系统服务包括在计算节点上建立指定供内核代理使用的服务类型的操作系统服务之一的内核策略,和由内核代理访问指定操作系统服务。计算系统还可以实现成包括一个或多个操作系统服务节点的分布式计算系统。一个或多个操作系统服务节点可以分布在操作系统服务节点之中。
Description
技术领域
本发明涉及数据处理领域,尤其涉及在计算系统上的管理程序(hypervisor)中提供基于策略的操作系统服务的方法、装置和产品。
背景技术
1948年开发出EDVAC计算机系统常常被引证为计算机时代的开始。自那时起,计算机系统已发展为极其复杂的设备。今天的计算机要比像EDVAC那样的早期系统完善得多。计算机系统通常包括硬件和软件组件、应用程序、操作程序、处理器、总线、存储器、输入/输出设备等的组合。随着半导体处理和计算机结构的进步推动计算机的性能越来越高,更完善的计算机软件发展利用更高性能的硬件,使得今天的计算机系统比前几年强大得多。
计算机软件发展利用高性能硬件的一个领域是操作系统。早期计算机缺乏任何形式的操作系统。系统管理人员装入机器专用的应用程序。为了操作计算机,应用程序必须直接访问和控制计算机硬件。后来,计算机伴有链接到应用程序中以协助像输入输出那样的操作的支持代码库。这些库是现代操作系统的前身。但是,计算机仍然每次只运行单个应用程序。现代操作系统能够同时运行多个应用程序。这些现代操作系统还将计算机硬件的抽象概念提供给应用程序,以简化应用程序开发和支持将应用程序从一个硬件平台移植到另一个硬件平台的能力。
内核是大多数计算机操作系统中管理系统资源和硬件与软件组件之间的通信的中心部分。作为操作系统的基本组件,内核为硬件,特别是为存储器、处理器和允许硬件和软件通信的I/O提供了抽象层。内核还通过进程间通信机制和系统调用使这些设施可用于应用程序和其它操作系统服务。
取决于它们的设计和实现,对于不同的内核,以不同的方式执行这些内核任务。在单决(monolithic)内核中,所有操作系统服务驻留在相同存储区中并利用相同存储区执行。由于单块内核试图执行相同地址空间中的所有代码,单块内核结构比其它解决方案更易于设计和实现,并且,如果编写得很好则极其有效。单块内核的主要缺点是系统组件之间的相关性。大内核变得非常难以维护,并且内核的一个部分中的故障可能使整个系统崩溃。
在微内核结构中,内核利用一组原语或系统调用提供硬件的简单抽象,以实现像例如存储器管理、多任务处理、和进程间通信那样的微小操作系统服务。包括像例如联网那样的通常由内核提供的那些的其它服务在通常具有它们自己的地址空间的用户空间程序中实现。微内核比单块内核更易于维护,但大量系统调用和上下文切换可能降低系统速度。
与用于实现操作系统的内核结构无关,当安装了操作系统时,设置在当前操作系统中的操作系统服务组一般说来是固定的。也就是说,操作系统不考虑在由操作系统管理的硬件上运行的应用程序利用相同存储器管理算法、相同I/O调度算法、相同联网算法等。但是,经常,一个应用程序在使用一个操作系统服务时可能有效地利用计算机资源,而另一个应用程序在使用相同操作系统服务时可能低效地利用计算机资源。例如,在操作系统中提供I/O调度的操作系统服务可能导致计算机资源有效用于I/O密集的应用程序,而导致计算机资源低效用于I/O不密集的应用程序。由于当前操作系统提供相同操作系统服务而不考虑应用程序,当前操作系统常常不能有效地管理应用程序与计算机硬件之间的交互。因此,读者应该理解,在在操作系统中提供操作系统服务的方式方面存在改进的余地。
计算机软件发展利用高性能硬件的另一个领域是称为管理程序的一组软件工具。管理程序是在操作系统层下面在计算机硬件上运行以使多个操作系统可以不加修改地同时在主计算机上运行的系统软件层。管理程序最初是在二十世纪七十年代早期,当企业成本降低迫使将多个分散部门计算机合并成为多个部门服务的单个较大计算机-巨型机时开发的。通过同时运行多个操作系统,管理程序给系统带来了健壮性和稳定性措施。即使一个操作系统崩溃了,其它操作系统也可以不中断地继续工作。的确,这甚至允许部署和调试操作系统的β或试验版本而不危及稳定主生产系统并且不要求开发者研制昂贵的第二和第三系统。
管理程序通过将一组虚拟资源提供给每个操作系统,允许多个操作系统同时在主计算机上运行。这些虚拟资源将计算机的一部分实际资源提供给每个操作系统。这些部分通常被实现成资源适合使用的总时间的时间片。利用管理程序,在单个计算机内分配计算机资源使计算机看起来像两个或更多个独立计算机那样工作。但是,利用管理程序使多个操作系统同时在主计算机上运行的确存在缺点。运行管理程序所需的管理开销减少了可用于运行操作系统和应用程序的总计算机资源。管理开销以管理程序与每个操作系统之间的处理器上下文切换的形式出现。因此,读者应该理解,通过在管理程序中实现操作系统的一些功能可以减少管理程序的管理开销。
发明内容
本发明公开了在计算系统上的管理程序中提供基于策略的操作系统服务的方法、装置和产品。计算系统包括至少一个计算节点。计算节点包括操作系统和管理程序。操作系统包括内核。管理程序包含内核代理和具有某种服务类型的多个操作系统服务。在计算系统上的管理程序中提供基于策略的操作系统服务包括在计算节点上建立指定供管理程序中的内核代理使用的服务类型的操作系统服务之一的内核策略,和由内核代理访问指定操作系统服务。
计算系统还可以实现为包括一个或多个操作系统服务节点的分布式计算系统。一个或多个操作系统服务可以分布在操作系统服务节点之中。内核策略还可以指定要提供指定操作系统服务的操作系统服务节点,并且由计算节点的内核代理访问指定操作系统服务可以包括由计算节点的内核代理访问操作系统服务节点的指定操作系统服务。
通过结合附图对本发明的示范性实施例进行如下更具体描述,本发明的前述和其它目的、特征和优点将更加清楚,在附图中,相同的标号一般代表本发明示范性实施例的相同部分。
附图说明
图1给出了例示根据本发明的实施例在管理程序中提供基于策略的操作系统服务的示范性计算系统的网络图;
图2给出了包含可用在根据本发明的实施例在计算系统上的管理程序中提供基于策略的操作系统服务中的示范性计算节点的自动计算机器的方块图;
图3给出了例示可用在根据本发明的实施例在计算系统上的管理程序中提供基于策略的操作系统服务中的配有管理程序的示范性计算节点的功能方块图;
图4给出了例示根据本发明的实施例在计算系统上的管理程序中提供基于策略的操作系统服务的示范性方法的流程图;
图5给出了例示根据本发明的实施例在计算系统上的管理程序中提供基于策略的操作系统服务的进一步示范性方法的流程图;
图6给出了例示根据本发明的实施例在计算系统上的管理程序中提供基于策略的操作系统服务的进一步示范性方法的流程图;和
图7给出了例示根据本发明的实施例在计算系统上的管理程序中提供基于策略的操作系统服务的进一步示范性方法的流程图。
具体实施方式
下面从图1开始,参照附图描述根据本发明的实施例在计算系统上的管理程序中提供基于策略的操作系统服务的示范性方法、装置、和产品。图1给出了例示根据本发明的实施例在管理程序中提供基于策略的操作系统服务的示范性计算系统(100)的网络图。图1的示范性计算系统(100)包括计算节点(110)。计算节点(110)包括操作系统(108)和管理程序(111)。操作系统(108)包括内核(109)。管理程序(111)包括内核代理(120)和具有某种服务类型的多个操作系统服务(124)。图1的示范性计算系统(100)一般用于根据本发明的实施例,通过在计算节点上建立指定供管理程序(111)中的内核代理(120)使用的服务类型的操作系统服务(124)之一的内核策略(122),和由内核代理(120)访问指定操作系统服务,在管理程序中提供基于策略的操作系统服务。
在图1的例子中,示范性计算系统(100)被实现成分布式计算系统。分布式计算系统是利用两个或更多个联网计算设备完成共同任务的计算系统。图1的分布式计算系统(100)包括通过网络(101)连接在一起以便进行数据通信的计算节点(110)、操作系统服务节点(112,114,116)和管理节点(118)。计算节点(110)通过有线连接(140)与网络(101)连接。操作系统服务节点112通过有线连接(142)与网络(101)连接。操作系统服务节点114通过有线连接(144)与网络(101)连接。操作系统服务节点116通过有线连接(146)与网络(101)连接。管理节点(118)通过有线连接(148)与网络(101)连接。图1的分布式计算系统(100)中的共同任务包括根据本发明的实施例在管理程序中提供基于策略的操作系统服务。
在图1的例子中,计算节点(110)利用安装在计算机机架(104)中的节点(102)之一实现。图1的每个节点(102)是执行计算机程序指令的处理设备。每个节点(102)包括一个或多个计算机处理器和可操作地与计算机处理器耦合的计算机存储器。图1的节点(102)被实现成安装在服务器机壳中的刀片(blade)服务器,服务器机壳又安装在计算机机架(104)上。但是,读者应该注意到,将节点实现成刀片服务器只是为了说明,而不是为了限制。事实上,图1的节点可以实现成联网工作站、连接在一起形成计算机群的计算机、并行计算机中的计算设备、或本领域的普通技术人员可以想到的任何其它实现方式。
在图1的例子中,计算节点(110)是可用在根据本发明的实施例在计算系统上的管理程序中提供基于策略的操作系统服务中的、配有包括内核代理(120)和内核策略(122)的管理程序(111)的节点。管理程序(111)是在操作系统层下面在计算机硬件上运行以使多个操作系统不加修改地同时在主计算机上运行的系统软件层。管理程序(111)通过利用逻辑分区将一组虚拟资源分配给每个操作系统,将这些资源提供给每个操作系统。逻辑分区(“LPAR”)是允许在单个计算机内分配计算机资源以使计算机像两个或更多个独立计算机那样工作的一组数据结构和服务。
为了使多个操作系统同时运行,管理程序(111)将虚拟处理器(115)分配给每个操作系统(108,117),并且在计算节点(110)的物理处理器上调度虚拟处理器(115)。虚拟处理器是实现对逻辑分区的处理器时间分配的子系统。物理处理器的共享池支持对逻辑分区的部分物理处理器分配(按时间片)。这种按时间片共享的部分物理处理器被称为“虚拟处理器”。当在虚拟处理器的时间片上运行时,一段执行线程被说成是在虚拟处理器上运行。子处理器分区以对于在逻辑分区中运行的操作系统不可见的方式在一组虚拟处理器之间按时间共享物理处理器。与在操作系统内进行多道编程(其中通过以中断-禁止模式运行使得线程保持受物理处理器控制)不同,在子处理器分区中,该线程在其虚拟处理器时间片结束时仍然被管理程序抢占,以便使物理处理器可用于不同虚拟处理器。
在图1的例子中,管理程序(111)将虚拟资源分配给为应用程序(106)和操作系统(108)提供执行环境的逻辑分区(103)。管理程序(111)还将虚拟资源分配给为应用程序(107)和辅助(guest)操作系统(117)提供执行环境的逻辑分区(105)。每个应用程序(106,107)是实现用户级数据处理的一组计算机程序指令。每个应用程序(106,107)可以是在单个计算节点上执行每个应用程序(106,107)的所有计算机程序指令的独立应用程序,或每个应用程序(106,107)可以是分布式应用程序,其中部分计算机程序指令串行地或与在其它计算节点上执行的其它部分计算机程序指令并行地执行。
在图1的示范性系统(100)中,操作系统(117)控制计算节点(110)上的应用程序(107)的执行。图1的操作系统(117)是通过管理程序(111)管理分配给逻辑分区(105)的虚拟资源的系统软件。操作系统(117)执行像例如控制和分配虚拟存储器、按优先级排列指令的处理、控制虚拟化输入和输出设备、促进联网、和管理虚拟化文件系统那样的基本任务。
类似地,图1的操作系统(108)控制计算节点(110)上的应用程序(106)的执行。图1的应用程序(106)通过内核(109)访问操作系统(108)提供的资源。内核(109)是管理系统资源和应用程序与管理程序(111)提供的虚拟资源之间的通信的操作系统(109)的核心部件。内核(109)将允许应用程序利用虚拟硬件资源的这些虚拟硬件资源的抽象层提供给软件应用程序。内核(109)通过进程间通信机制和内核应用编程接口(“API”)(119)使这些抽象层可用于用户级应用程序。
在图1的例子中,管理程序(111)被配置成利用内核代理(120)和操作系统服务(124)完成操作系统(108)的实际实现的很大一部分。内核代理(120)是提供通常在操作系统的内核中实现的操作系统服务的系统软件。当操作系统(108)需要配置在管理程序(111)中的服务时,内核(109)请求内核代理(120)执行所需服务。内核(109)利用进程间通信或通过内核代理API(121)访问内核代理(120)。将管理程序(111)配置为完成尽可能多的操作系统(108)的实际实现有利于提供极轻量的操作系统。
在图1的示范性系统(100)中,内核代理(120)与操作系统服务(124)之间的关系仿照微内核结构建模。也就是说,内核代理(120)包括像存储器管理、进程管理、和进程间通信那样的基本类型的操作系统服务的实现。但是,像例如联网、中断管理、I/O调度、设备驱动器、文件系统服务等那样的其它操作系统服务(124)利用独立的操作系统组件实现,每个组件具有与内核代理(120)不同的执行线程。内核代理(120)利用进程间通信或对服务API(125)的系统调用访问这些操作系统服务(124)。
在图1的示范性系统(100)中,每个操作系统服务(124)是实现未在内核代理(120)本身中实现的服务类型或实现已经由内核代理(120)提供的服务类型的专用版本的系统软件。为了说明起见,考虑例如图1的内核代理(120)不实现文件系统服务类型的任何服务的情况。在这样的例子中,操作系统服务(124)之一可以为Unix文件系统实现文件系统服务,而第二操作系统服务(124)可以为Reiser文件系统实现文件系统服务。取决于配置在管理程序(111)中的内核策略(122),内核代理(120)将利用Unix文件系统或Reiser文件系统提供文件系统服务。进一步考虑例如图1的内核代理(120)实现通用存储器管理服务的情况。在这样的例子中,操作系统服务(124)之一可以实现为密集I/O操作定制的存储器管理服务,取决于内核代理(122)的配置,内核代理(120)可以使用该服务取代在内核代理(120)中实现的通用存储器管理算法。
在图1的例子中,每个操作系统服务(124)提供特定服务类型的操作系统服务。操作系统服务(124)提供的服务的类型可以包括,例如,任务调度器、文件系统、存储器管理、设备驱动器、I/O调度器、中断/信号管理、安全、作业提交、tty管理等。在图1的示范性系统(100)中,作为相同服务类型的服务的操作系统服务具有相同的应用编程接口。也就是说,特定服务类型的每个服务(124)的服务API(125)具有内核代理(120)可以用来访问操作系统服务(124)的一组相同成员方法和参数。由于每种服务类型的服务具有相同的服务API,内核代理(120)可以利用相同应用编程接口访问在内核策略(122)中指定的操作系统服务而不考虑在内核策略(122)中为特定服务类型指定了哪个操作系统服务。
在图1的示范性系统(100)中,一个或多个操作系统服务(124)分布在操作系统服务节点(112,114,116)当中。也就是说,用于实现一个或多个操作系统服务(124)的计算机程序指令驻留在操作系统服务节点(112,114,116)上。每个服务(132,134,136)的相应操作系统服务(124)可以实现为实现每个服务(132,134,136)的计算机程序指令的副本。每个服务(132,134,136)的相应操作系统服务(124)也可以利用访问操作系统服务节点(112,114,116)上的操作程序服务(132,134,136)的数据通信子系统实现。这种数据通信子系统的例子可以包括万维网服务引擎、利用远程过程调用访问操作系统服务节点(112,114,116)上的操作系统服务(132,134,136)的计算节点(110)上的CORBA对象、MPI库的使用、或本领域的普通技术人员可以想到的任何其它实现方式。
“CORBA”指的是公共对象请求代理体系结构(Common ObjectRequest Broker Architecture)-对象管理组(“Object ManagementGroup,OMG”)制作的可互操作企业应用程序的计算机产业规范。CORBA是OMG在1991年首先公开的用于远程过程调用的标准。可以将CORBA当作作出远程过程调用的一种面向对象方式,但CORBA支持在传统远程过程调用中不存在的特征。CORBA使用说明性语言,即,接口定义语言(“IDL”)来描述对象接口。对采用IDL的接口描述加以编译,生成客户机侧的“桩模块(stub)”和服务器侧的“骨架(skeleton)”。利用这种生成代码,以像C++或Java那样的面对对象编程语言实现的远程方法调用看起来像本地对象中的本地成员方法的调用。
“MPI”指的是“消息传递接口(Message Passing Interface)”-现有技术并行通信库,即,用于并行计算机上的数据通信的计算机程序指令的模块。可以用于根据本发明的实施例在计算系统上的管理程序中提供基于策略的操作系统服务的现有技术并行通信库的例子包括MPI和“并行虚拟机(PVM)”库。PVM由Tennessee大学、Oak Ridge国家实验室和Emory大学开发。MPI由MPI论坛-代表来自定义和维护MPI标准的许多组织的开放组公布。MPI是用于在分布式存储器并行计算机上进行并行程序的节点之间的通信的事实标准。为了易于说明起见,本说明书有时使用MPI技术术语,但这样使用MPI不是本发明的要求或限制。
在图1的例子中,操作系统服务节点(112,114,116)利用安装在计算机机架(104)中的节点(102)实现。每个操作系统服务节点(112,114,116)是将操作系统服务提供给安装在计算机节点上的管理程序的节点。每个操作系统服务节点可以将一个或多个操作系统服务提供给在一个或多个计算机节点上运行的一个或多个管理程序。但是,在具有许多节点的分布式计算系统中,由于系统中的节点很多,每个操作系统服务节点通常只提供一个操作系统服务。在图1的例子中,操作系统服务节点(112)将操作系统服务(132)提供给内核(120);操作系统服务节点(114)将操作系统服务(134)提供给内核(120);而操作系统服务节点(116)将操作系统服务(136)提供给内核(120)。
为了将操作系统服务提供给内核(120),在图1的每个操作系统服务节点(112,114,116)上都安装了操作系统服务程序服务器。操作系统服务节点(112)包括服务程序服务器(133),操作系统服务节点(114)包括服务程序服务器(135),而操作系统服务节点(116)包括服务程序服务器(137)。每个服务程序服务器(133,135,137)是响应管理程序发送的请求或响应接收到来自系统管理人员的指令将操作系统服务提供给管理程序的软件组件。每个操作系统服务程序服务器(133,135,137)可以通过将实现所请求的操作系统服务的计算机程序指令传送到管理程序和使安装管理程序的计算节点执行计算机程序指令,将操作系统服务提供给管理程序。每个操作系统服务程序服务器(133,135,137)还可以通过指令服务器的操作系统服务节点执行实现所请求的操作系统服务的计算机程序指令来提供操作系统服务。管理程序(111)的内核代理(120)可以通过使用万维网服务,调用CORBA对象的成员方法、MPI库的使用、或本领域的普通技术人员可以想到的任何其它数据通信实现方式操作系统服务程序服务器(133,135,137)通信。
如上所述,管理程序(111)包括特定服务类型的两个或更多个操作系统服务(124)。例如,管理程序(111)可以根据示范性系统(100)的配置,包括文件系统服务的两种不同实现供内核代理使用。在另一个例子中,管理程序(111)可以根据应用程序(106)的需要包括存储器管理服务的两种不同实现。拥有特定服务类型的不止一个操作系统服务有利地提供了根据计算机节点(110)的硬件和软件环境优化操作系统服务算法的灵活性。
图1的内核策略(122)是将操作系统服务(124)之一映射到管理程序(111)中的内核代理(120)使用的一种操作系统服务的表格。通常,内核策略(122)建立在计算节点上,以优化配置成在节点上执行的应用程序(106)对节点资源的使用。在图1的例子中,内核代理(120)利用内核策略(122)来识别在管理程序中针对特定服务类型使用哪个操作系统服务。与操作系统服务(124)本地驻留在计算节点(110)上还是分布在像操作系统服务节点(112,114,116)那样的其它节点上无关,内核策略(122)指定特定服务类型的操作系统服务之一以便用在管理程序(111)中。当在内核策略(122)中指定的操作系统服务分布在操作系统服务节点(112,114,116)之一上时,内核策略(122)还指定将提供指定的操作系统服务的操作系统服务节点。利用内核策略(122),内核代理(120)根据本发明的实施例,通过访问在策略(122)中指定的操作系统服务,在计算系统上的管理程序中提供基于策略的操作系统服务。
经常,内核策略(122)未指定用在管理程序(111)中的服务类型之一的操作系统服务,或内核代理(120)不能访问在内核策略(122)中指定的操作系统服务。因此,在图1的例子中,管理程序(111)包括默认操作系统服务(126)。默认操作系统服务(126)是当内核策略(122)未指定特定服务类型的操作系统服务,或内核代理(120)不能访问在策略(122)中指定的操作系统服务时内核代理(120)可以使用的特定服务类型的操作系统服务。考虑例如内核策略(122)未指定供管理程序(111)使用的文件系统服务、内核代理(120)本身未实现文件系统服务、和默认操作系统服务实现Unix文件系统的情况。由于内核代理(120)未实现文件系统服务并且在内核策略(122)中未指定文件系统服务,在这样例子中的内核代理(120)将使用实现Unix文件系统的默认操作系统服务(126)。内核代理(120)可以利用进程间通信或默认操作系统服务API(127)访问默认操作系统服务(126)。
在图1的例子中,系统管理人员(130)通过管理节点(118)配置分布式计算系统(100)。图1的管理节点(118)是管理图1的计算系统(100)的配置的计算设备。管理节点(118)可以实现成安装在机架(104)中的节点(102)之一、与节点(102)连接的工作站网络、或本领域的普通技术人员可以想到的任何其它计算机。
在图1的示范性系统(100)中,在管理节点(118)上安装了管理模块(128)。管理模块(128)是系统管理人员(130)配置示范性计算系统(100)的软件组件。管理模块(128)通过提供系统管理人员(130)与管理模块(128)交互的用户界面,和通过在像例如计算节点(110)那样的一个或多个计算节点上配置管理程序(111)、操作系统(108,117)和系统管理人员(130)提供的应用程序(106,107),允许系统管理人员(130)配置示范性计算系统(100)。管理模块(128)包括根据本发明的实施例,通过在计算节点(110)上建立指定供管理程序(111)中的内核代理(120)使用的一种服务类型的操作系统服务(124)之一的内核策略(122),在计算系统上的管理程序中提供基于策略的操作系统服务的一组计算机程序指令。
构成例示在图1中的示范性系统的服务器和其它设备的布置用于说明,而不是用于限制。可根据本发明的各种实施例使用的数据处理系统可以包括本领域的普通技术人员可以想到的、在图1中未示出的附加服务器、路由器、其它设备、和对等结构。这种数据处理系统中的网络可以支持许多数据通信协议,包括,例如传输控制协议(“TCP”)、因特网协议(“IP”)、超文本传送协议(“HTTP”)、无线访问协议(“WAP”)、手持设备传输协议(“HDTP”)、MPI协议和本领域的普通技术人员可以想到的其它协议。除了例示在图1中的那些之外,本发明的各种实施例可以在各种各样其它硬件平台上实现。例如,可用于根据本发明的实施例在管理程序中提供基于策略的操作系统服务的计算系统也可以实现成像例如IBM的BlueGene/L那样的并行计算机。
按照本发明在计算系统上的管理程序中提供基于策略的操作系统服务一般借助于计算机,即,自动计算机器实现。在图1的系统中,例如,所有节点至少在某种程度上被实现为计算机。因此,为了进一步说明,图2给出了包含可用在根据本发明的实施例在计算系统上的管理程序中提供基于策略的操作系统服务中的示范性计算节点(110)的自动计算机器的方块图。图2的计算节点(110)包括至少一个计算机处理器(156)或“CPU”,以及通过高速存储器总线(166)和总线适配器(158)与处理器(156)和与计算节点的其它组件连接的随机访问存储器(“RAM”)(168)。
存储在RAM(168)中的是管理程序(111)、应用程序(106,107)、和操作系统(108,117)。管理程序(111)将虚拟资源分配给为应用程序(106)和操作系统(108)提供执行环境的逻辑分区(103)。操作系统(108)包括内核(109)。管理程序(111)还将虚拟资源分配给为应用程序(107)和辅助操作系统(117)提供执行环境的逻辑分区(105)。每个逻辑分区(103,105)是允许在单个计算机内分配计算机资源、使计算机像两个或更多个独立计算机那样工作的一组数据结构和服务。
在图2中,管理程序(111)包括虚拟处理器(115)、内核代理(120)、内核策略(122)、操作系统服务(124)、和默认操作系统服务(126)。图2的内核策略(122)是将操作系统服务(124)之一映射到内核代理(120)使用的一种类型的操作系统服务的表格。虚拟处理器(115)是实现对逻辑分区的处理器时间分配的子系统。例示在图2中的应用程序(106,107)、操作系统(108,117)、内核(109)、管理程序(111)、内核代理(120)、操作系统服务(124)、和默认操作系统服务(126)是与计算代码有关的如参照图1所述那样工作的软件组件,即,计算机程序指令。可以针对按照本发明在计算系统上的管理程序中提供基于策略的操作系统服务加以改进的操作系统可以包括UNIXTM、LinuxTM、Microsoft NTTM、IBM的AIXTM、IBM的i5/OSTM和本领域的普通技术人员可以想到的其它操作系统。图2的例子中的操作系统(108,117)、应用程序(106,107)、逻辑分区(103,105)、和管理程序(111)示出在RAM(168)中,但这样软件的许多组件通常也存储在非易失性存储器中,例如,存储在硬盘驱动器(170)上。
图2的示范性计算节点(111)包括总线适配器(158)、包含用于高速总线的驱动电子设备的计算机硬件组件、前侧总线(162)、和存储器总线(166),以及用于较慢扩充总线(160)的驱动电子设备。可用在可根据本发明的实施例使用的计算节点中的总线适配器的例子包括Intel北桥、Intel存储器控制器中心、Intel南桥、和Intel I/O控制器中心。可用在可根据本发明的实施例使用的计算节点中的扩充总线的例子可以包括外围部件互连(“PCI”)总线和PCI特快(“PCIe”)总线。
尽管未描绘在图2的示范性计算节点(110)中,但总线适配器(158)也可以包括用于支持视频适配器与计算节点(110)的其它组件之间的数据通信的视频总线的驱动电子设备。图2未描绘这样的视频部件是因为计算节点通常实现成安装在服务器机壳中的刀片服务器或没有专用视频支持的并行计算机中的节点。但是,读者应该注意到,可用在本发明实施例中的计算节点可以包括这样的视频部件。
图2的示范性计算节点(110)还包括通过扩充总线(160)和总线适配器(158)与处理器(156)和示范性计算节点(110)的其它组件耦合的盘驱动器适配器(172)。盘驱动器适配器(172)将具有盘驱动器(170)形式的非易失性数据存储设备与示范性计算节点(110)连接。用在计算节点中的盘驱动器适配器包括集成驱动电子设备(“IDE”)适配器、小型计算机系统接口(“SCSI”)适配器、和本领域的普通技术人员可以想到的其它适配器。另外,对于计算节点,非易失性计算机存储器可以实现成本领域的普通技术人员可以想到的光盘驱动器、电可擦除可编程只读存储器(所谓的“EEPROM”或“闪速”存储器)、RAM驱动器等。
图2的示范性计算节点(110)包括一个或多个输入/输出(“I/O”)适配器(178)。计算节点中的I/O适配器通过例如控制到像计算机显示屏那样的显示设备的输出,以及来自像键盘和鼠标那样的用户输入设备(181)的用户输入的软件驱动程序和计算机硬件,实现面向用户的输入/输出。尽管未描述在图2的例子中,但本发明的其它实施例中的计算节点可以包括特别为到像显示屏或计算机监视器那样的显示设备的图形输出设计的作为I/O适配器的例子的视频适配器。视频适配器通常通过高速视频总线、总线适配器(158)、和也是高速总线的前侧总线(162)与处理器(156)连接。
图2的示范性计算节点(110)包括用于与其它计算机(182)进行数据通信和用于与数据通信网络(101)进行数据通信的通信适配器(167)。这样的数据通信可以通过RS-232连线,通过像通用串行总线(“USB”)那样的外部总线,通过像IP数据通信网络那样的数据通信网络,和以本领域的普通技术人员可以想到的其它方式串行进行。通信适配器实现一个计算机直接或通过数据通信网络将数据发送到另一个计算机的硬件级数据通信。可用于根据本发明的实施例在计算系统上的管理程序中提供基于策略的操作系统服务的通信适配器的例子包括用于有线拨号通信的调制解调器、用于有线数据通信网络通信的IEEE 802.3以太网适配器、和用于无线数据通信网络通信的IEEE802.11b适配器。
尽管参照示范性计算节点对图2作了讨论,但读者应该注意到,包含可用在根据本发明的实施例在计算系统上的管理程序中提供基于策略的操作系统服务中的示范性操作系统服务节点和示范性管理节点的自动计算机器与图2的示范性计算节点(110)类似。也就是说,这样的示范性操作系统服务节点和示范性管理节点包括本领域的普通技术人员可以想到的、与图2的示范性计算节点(110)类似的一个或多个处理器、总线适配器、总线、RAM、通信适配器、I/O适配器、盘驱动器适配器、和其它部件。
为了进一步说明通过管理程序将虚拟处理器分配给逻辑分区,图3给出了例示可用在根据本发明的实施例在计算系统上的管理程序中提供基于策略的操作系统服务中的配有管理程序的示范性计算节点的功能方块图。
图3的系统包括LPAR(302)和LPAR(304)。图3的系统包括分别在LPAR(302)和LPAR(304)中的两个操作系统(306,308)。图3的系统包括六个逻辑处理器(320-325),其中两个用于LPAR(302)中的操作系统(306),四个用于LPAR(304)中的操作系统(308)。逻辑处理器是用于调度执行线程的操作系统结构。它代表能够完成线程执行的处理器资源的一部分。六个线程(310-315)分别在六个逻辑处理器(320-325)上运行,每个逻辑处理器一个线程。图3的系统包括管理程序(111)和四个虚拟处理器,其中两个虚拟处理器(330,331)指定给LPAR(302),两个虚拟处理器(332,333)指定给LPAR(304)。
图3的系统还包括三个物理处理器(340,342,344)。在本说明书中的例子中,根据处理单位(processing unit)分享物理处理器(340,342,344),1.0处理单位代表一个物理处理器的处理能力。在本例中,按如下方式将三个物理处理器(340,342,344)的处理能力分派给LPAR:
--将物理处理器(340)的所有处理能力全部分配给虚拟处理器(330),以便逻辑处理器(320)可使用整个物理处理器(340)。
--将物理处理器(342)的一半处理能力分配给虚拟处理器(331),以便逻辑处理器(321)在时间片方面可使用一半物理处理器(342)。
--将物理处理器(342)的一半处理能力分配给虚拟处理器(332)。将虚拟处理器(332)分配给利用用于虚拟处理器(332)的两个逻辑处理器(322,323)以同时多线程模式运行的LPAR(304)。逻辑处理器(322)和逻辑处理器(323)的每一个在时间片方面可使用物理处理器(342)的四分之一处理能力。
--将物理处理器(342)的所有处理能力分配给虚拟处理器(333)。将虚拟处理器(333)分配给以利用用于虚拟处理器(333)的两个逻辑处理器(324,325)以同时多线程模式运行的LPAR(304)。逻辑处理器(324)和逻辑处理器(325)的每一个在时间片方面可使用物理处理器(344)的一半处理能力。
图3的系统中物理处理器、虚拟处理器、和逻辑处理器的编号、布置、和分配只是为了说明,而不是限制本发明。可用于根据本发明的实施例在计算系统上的管理程序中提供基于策略的操作系统服务的计算节点可以支持众多逻辑分区,并可以包括物理处理器、虚拟处理器、和逻辑处理器的任何编号、布置、和分配。
为了进一步说明,图4给出了例示根据本发明的实施例在计算系统上的管理程序中提供基于策略的操作系统服务的示范性方法的流程图。计算系统包括至少一个计算节点。计算节点包括操作系统和管理程序。操作系统包括内核。管理程序包括内核代理和具有某种服务类型的多个操作系统服务。
图4的方法包括在计算节点上建立(400)指定供管理程序中的内核代理使用的服务类型的操作系统服务之一的内核策略(122)。图4的内核策略(122)是将操作系统服务映射到内核代理使用的一种类型的操作系统服务的表格。在图4的例子中,内核策略(122)的每条记录识别在管理程序中内核代理将哪个操作系统服务用于特定服务类型。为了识别在管理程序中将哪个操作系统服务用于特定服务类型,内核策略(122)的每条记录包括操作系统服务标识符(402)和服务类型(404)。可以在内核策略(122)中指定的操作系统服务的示例性类型(404)可以包括例如任务调度器、文件系统、存储器管理、设备驱动器、I/O调度器、中断/信号管理、安全、作业提交、tty管理等。关于可用在根据本发明的实施例在计算系统上的管理程序中提供基于策略的操作系统服务中的内核策略(122)的例子,考虑如下表格:
在表1的示范性内核策略中,将操作系统服务标识符(402)的值“UFS_Service”与服务类型(404)的值“File_System”相关联指定,当内核代理需要访问文件系统服务类型时,内核代理使用实现Unix文件系统的操作系统服务。将操作系统服务标识符(402)的值“Round_Robin_MM_Algorithm”与服务类型(404)的值“Memory_Management”相关联指定,当内核代理需要访问存储器管理服务类型时,内核代理使用实现Round_Robin算法的操作系统服务。将操作系统服务标识符(402)的值“Limited_I/O_Access”与服务类型(404)的值“I/O_Scheduler”相关联指定,当内核代理使用I/O调度器服务类型时,内核代理使用实现有限I/O访问的操作系统服务。读者应该注意到,上面的示范性内核策略(122)用于说明,而不是用于限制。本领域的普通技术人员可以想到的其它内核策略也可以用在根据本发明的实施例在计算系统上的管理程序中提供基于策略的操作系统服务中。
在图4的方法中,在计算节点上建立(400)指定供管理程序中的内核代理使用的服务类型的操作系统服务之一的内核策略(122)可以通过在管理模块中从系统管理人员那里接收操作系统服务与服务类型之间的映射,和由管理模块根据映射在计算节点上创建内核策略(122)来实现。管理模块是系统管理人员可以用来配置包括计算节点的计算系统的软件组件。管理模块在其上创建内核策略(122)的特定计算节点通常由系统管理人员通过管理模块提供的用户界面指定。管理模块可以直接安装在计算节点或与计算节点连接的任何其它计算机网络上。管理模块可以通过利用共享存储空间实现的数据通信连线、CORBA框架、JTAG网络、万维网服务、MPI库、或本领域的普通技术人员可以想到的任何其它数据通信实现方式,在计算节点上创建内核策略(122)。
“JTAG”是用于IEEE 1149.1标准的常用名,IEEE 1149.1标准被称为用于利用边界扫描测试印刷电路板的测试访问端口的“标准测试访问端口和边界扫描体系结构”。JTAG被广泛采用,以致于现在边界扫描几乎与JTAG同义。JTAG不仅用于印刷电路板,而且用于进行集成电路的边界扫描,还用作调试嵌入式系统、提供进入系统的方便“后门”的机制。利用JTAG网络,管理模块可以在用在根据本发明的实施例在计算系统上的管理程序中提供基于策略的操作系统服务中的计算节点中有效地配置处理器寄存器和存储器。
图4的方法包括由内核代理指定(401)供管理程序中的内核代理使用的服务类型(405)。内核代理可以通过在沿着执行流的特定点上将包含服务类型(405)的指令包括在实现内核代理的计算机程序指令中,根据图4的方法指定用在管理程序中的服务类型(405)。例如,在沿着内核代理的执行流的特定点上,实现内核代理的计算机程序指令可以包含代表如下指令的机器码:
Execute_Service(‘File_System’)
在上面的示范性指令中,函数“Execute_Service”是指令内核代理执行在内核策略(122)中为具有“File_System”值的特定类型(450)指定的操作系统服务的函数。将这样的示范性指令包含在实现内核代理的计算机程序指令中指定管理程序使用文件系统服务类型的服务。读者应该注意到,上面的示范性指令用于说明,而不是用于限制。本领域的普通技术人员可以想到的其它指令也可以用在根据本发明的实施例在计算系统上的管理程序中提供基于策略的操作系统服务中。
图4的方法包括由内核代理根据指定的服务类型(405)从内核策略(122)中检索(403)指定操作系统服务(407)。根据图4的方法由内核代理根据指定的服务类型(405)从内核策略(122)中检索指定操作系统服务(407)可以通过在内核策略(122)中查找与具有与指定服务类型(405)相同的值的服务类型(404)相关联的操作系统服务标识符(402)来实现。
图4的方法还包括由内核代理确定(406)内核代理是否能够访问指定的操作系统服务(407)。根据图4的方法由内核代理确定(406)内核代理是否能够访问指定操作系统服务(407)可以通过为指定操作系统服务(407)调用API的函数来实现。如果函数调用向内核代理返回错误,那么内核代理不能访问指定操作系统服务。如果函数调用未向内核代理返回错误,那么内核代理能够访问指定操作系统服务。如上所述,相同服务类型的操作系统服务可以具有相同的应用编程接口。每种服务类型的API可以编码成实现内核代理的计算机程序指令。
图4的方法包括当内核代理不能访问指定操作系统服务(407)时,由计算节点执行(408)实现服务类型(404)的默认操作系统服务的计算机程序指令。根据图4的方法由计算节点执行(408)实现服务类型(404)的默认操作系统服务的计算机程序指令可以通过在默认服务表(412)中查找与服务类型(404)相关联的默认操作系统服务标识符(414)和为默认操作系统服务标识符(414)所代表的默认操作系统服务调用API的函数来实现。默认服务表(412)与内核策略(122)类似。默认服务表(412)的每条记录识别哪个默认操作系统服务在管理程序中用于特定服务类型。默认服务表(412)的每条记录包括默认操作系统服务标识符(414)和服务类型(404)。尽管在默认服务表(412)中指定了图4的默认操作系统服务,但读者应该注意到,这样的实施例用于说明,而不是用于限制。在其它实施例中,内核策略(122)可以包含指定特定服务类型的用在操作系统中的默认操作系统服务的字段,或每种服务类型的默认服务可以编码到内核代理本身中。
图4的方法还包括由内核代理访问(410)指定操作系统服务(407)。根据图4的方法由内核代理访问(410)指定操作系统服务(407)可以通过为指定操作系统服务(407)调用API的函数来实现。但是,为指定操作系统服务(407)调用API的函数只是为了说明,而不是为了限制。在另一个实施例中,管理模块可以根据内核策略(122)修改内核代理代码中的进入和退出钩,以便使处理器控制在执行流中内核代理代码中的适当点从内核代理转移到操作系统服务。在这样的例子中,访问(410)服务类型的指定操作系统服务可以简单地通过执行实现内核代理的计算机程序指令来实现。
如上所述,操作系统服务可以分布在分布式计算系统中的一个或多个操作系统服务节点之中。当操作系统服务分布在一个或多个操作系统服务节点之中时,如下面参照图6所讨论的那样,由内核代理访问(410)指定操作系统服务可以通过从操作系统服务节点中检索实现指定操作系统服务的计算机程序指令,和由计算节点执行实现指定操作系统服务的计算机程序指令来实现。如下面参照图7所讨论的那样,由内核代理访问(410)指定操作系统服务也可以通过由内核代理请求操作系统服务节点执行指定操作系统服务,和由操作系统服务节点执行实现指定操作系统服务的计算机程序指令来实现。
如上所述,内核策略是将特定操作系统服务映射到内核代理使用的一种操作系统服务的表格。但是,内核策略可以不将操作系统服务映射到内核代理使用的每种操作系统服务。这样,内核代理经常识别内核策略是否指定了用于特定服务类型的操作系统服务,以及如果内核策略未指定指定服务类型的操作系统服务,执行实现指定服务类型的默认操作系统服务的计算机程序指令。因此,为了进一步说明,图5给出了例示包括由内核代理识别(500)内核策略是否指定了指定服务类型(405)的操作系统服务、根据本发明的实施例在计算系统上的管理程序中提供基于策略的操作系统服务的进一步示范性方法的流程图。在图5的例子中,计算系统包括至少一个计算节点。计算节点包括操作系统和管理程序。操作系统包括内核。管理程序包括内核代理和一种服务类型的多个操作系统服务。
图5的方法与图4的方法的相似之处在于图5的方法包括在计算节点上建立(400)指定供管理程序中的内核代理使用的服务类型的操作系统服务之一的内核策略(122),由内核代理指定(401)供管理程序中的内核代理使用的服务类型(405),由内核代理根据指定服务类型(405),从内核策略(122)中检索(403)指定操作系统服务(407),和由内核代理访问(410)指定操作系统服务(407)。图5的例子与图4的例子的相似之处还在于内核策略(122)的每条记录包括操作系统服务标识符(402)和服务类型(404)。另外,图5的例子与图4的例子的相似之处还在于图5的例子包括默认服务表(412)并且表格(412)的每条记录包括默认操作系统服务标识符(414)和服务类型(404)。
图5的方法包括由内核代理识别(500)内核策略(122)是否指定了指定服务类型(405)的操作系统服务。根据图5的方法由内核代理识别(500)内核策略(122)是否指定了指定服务类型(405)的操作系统服务可以通过在内核策略(122)中搜索其服务类型(404)的值与指定服务类型(405)的值匹配的记录来实现。如果未找到记录,那么,内核策略(122)未指定指定服务类型(405)的操作系统服务。如果找到记录,那么,内核策略(122)确实指定了指定服务类型(405)的操作系统服务。读者应该注意到,通过在内核策略(122)中搜索其服务类型(404)的值与指定服务类型(405)的值匹配的记录识别(500)内核策略(122)是否指定了指定服务类型(405)的操作系统服务是为了说明,而不是为了限制。在本发明的其它实施例中,内核策略(122)可以包含用在操作系统中的每种服务类型的记录。在这样的实施例中,识别(500)内核策略(122)是否指定了指定服务类型(405)的操作系统服务可以通过识别内核策略(122)中的特定记录的操作系统服务标识符(402)是否包含NULL值来实现。
图5的方法还包括当内核策略(122)未指定指定服务类型(405)的操作系统服务时,由计算节点执行(502)实现指定服务类型(405)的默认操作系统服务的计算机程序指令。根据图5的方法由计算节点执行(502)实现指定服务类型(405)的默认操作系统服务的计算机程序指令可以通过在默认服务表(412)中查找与服务类型(404)相关联的默认操作系统服务标识符(414),和为默认操作系统服务标识符(414)所代表的默认操作系统服务调用API的函数来实现。尽管在默认服务表(412)中指定了图5的默认操作系统服务,但读者应该注意到,这样的实施例用于说明,而不是用于限制。在其它实施例中,内核策略(122)可以包含指定用于特定服务类型的用在操作系统中的默认操作系统服务的字段,或者每种服务类型的默认服务可以编码到内核代理本身中。
如上所述,操作系统服务可以分布在分布式计算系统中的一个或多个操作系统服务节点之中。当操作系统服务分布在一个或多个操作系统服务节点之中时,由内核代理访问指定操作系统服务可以通过访问操作系统服务节点的指定操作系统服务来实现。因此,为了进一步说明,图6给出了例示包括访问(602)操作系统服务节点的指定操作系统服务(407)、根据本发明的实施例在计算系统上的管理程序中提供基于策略的操作系统服务的进一步示范性方法的流程图。在图6的例子中,计算系统包括至少一个计算节点和一个或多个操作系统服务节点。计算节点包括操作系统和管理程序。操作系统包括内核。管理程序包括内核代理和一种服务类型的多个操作系统服务。在图6的例子中,一个或多个操作系统服务分布在操作系统服务节点之中。
图6的方法与图4的方法的相似之处在于图6的方法包括在计算节点上建立(400)指定供管理程序中的内核代理使用的服务类型的操作系统服务之一的内核策略(122),由内核代理指定(401)供管理程序中的内核代理使用的服务类型(405),由内核代理根据指定服务类型(405)从内核策略(122)中检索(403)指定操作系统服务(407),和由内核代理访问(410)指定操作系统服务(407)。图6的例子与图4的例子的相似之处还在于内核策略(122)的每条记录包括操作系统服务标识符(402)和服务类型(404)。但是,在图6的例子中,内核策略(122)通过将操作系统服务节点标识符(600)包括在每条记录中,还指定了要提供指定操作系统服务(407)的操作系统服务节点。在图6的例子中,指定操作系统服务(407)分布在操作系统服务节点之一上。
在图6的方法中,由内核代理访问(410)指定操作系统服务(407)包括访问(602)操作系统服务节点的指定操作系统服务(407)。根据图6的方法访问(602)操作系统服务节点的指定操作系统服务(407)可以通过由内核代理从操作系统服务节点中检索(604)实现指定操作系统服务(407)的计算机程序指令(606)来实现。计算机程序指令(606)代表实现指定操作系统服务(407)的机器码。尽管图6的计算机程序指令(606)代表机器码,但这样的代表是为了说明,而不是为了限制。事实上,图6的计算机程序指令(606)也可以代表用汇编语言或像,例如,Java那样的高级语言实现的计算机程序指令。
根据图6的方法由内核代理从操作系统服务节点中检索(604)实现指定操作系统服务(407)的计算机程序指令(606)可以通过将操作系统服务请求发送到指定操作系统服务(407)在其上分布的操作系统服务节点上的服务程序服务器,和从服务程序服务器接收实现指定操作系统服务的计算机程序指令(606)来实现。操作系统服务请求是操作系统服务节点将操作系统服务提供给管理程序中的内核代理的请求。操作系统服务请求可以包括用于指定操作系统服务(407)的操作系统服务标识符(402)。内核代理可以利用万维网服务、调用CORBA对象的成员方法、利用MPI库、或本领域的普通技术人员可以想到的任何其它数据通信实现方式将操作系统服务请求发送到操作系统服务节点上的服务程序服务器和检索计算机程序指令(606)。
根据图6的方法访问(602)操作系统服务节点的指定操作系统服务(407)也可以通过由计算节点执行(608)实现指定操作系统服务(407)的计算机程序指令(606)来实现。根据图6的方法由计算节点执行(608)实现指定操作系统服务(407)的计算机程序指令(606)可以通过调度实现指定操作系统服务(407)的计算机程序指令(606)以便在计算节点上执行来实现。如上所述,图6的计算机程序指令(606)可以代表用汇编语言或像例如Java那样的高级语言实现的计算机程序指令。在这样的实施例中,执行(608)实现指定操作系统服务(407)的计算机程序指令(606)可以通过将计算机程序指令(606)翻译成机器码和调度机器码以便在计算节点上执行来实现。
在图6的方法中,访问操作系统服务节点的指定操作系统服务是通过在计算节点上执行实现指定操作系统服务的计算机程序指令实现的。但是,访问操作系统服务节点的指定操作系统服务也可以通过在操作系统服务节点上执行实现指定操作系统服务的计算机程序指令来实现。因此,为了进一步说明,图7给出了例示包括由操作系统服务节点执行(708)实现指定操作系统服务(407)的计算机程序指令(706)、根据本发明的实施例在计算系统上的管理程序中提供基于策略的操作系统服务的进一步示范性方法的流程图。在图7的例子中,计算系统包括至少一个计算节点和一个或多个操作系统服务节点。计算节点包括操作系统和管理程序。操作系统包括内核。管理程序包括内核代理和一种服务类型的多个操作系统服务。在图7的例子中,一个或多个操作系统服务分布在操作系统服务节点之中。
图7的方法与图4的方法的相似之处在于图7的方法包括在计算节点上建立(400)指定供管理程序中的内核代理使用的服务类型的操作系统服务之一的内核策略(122),由内核代理指定(401)供管理程序中的内核代理使用的服务类型(405),由内核代理根据指定服务类型(405)从内核策略(122)中检索(403)指定操作系统服务(407),和由内核代理访问(410)指定操作系统服务(407)。图7的例子与图4的例子的相似之处还在于内核策略(122)的每条记录包括操作系统服务标识符(402)和服务类型(404)。但是,在图7的例子中,内核策略(122)通过将操作系统服务节点标识符(600)包括在每条记录中,还指定了要提供指定操作系统服务(407)的操作系统服务节点。在图7的例子中,指定操作系统服务(407)分布在操作系统服务节点之一上。
在图7的方法中,由内核代理访问(410)指定操作系统服务(407)包括访问(602)操作系统服务节点的指定操作系统服务(407)。根据图7的方法访问(602)操作系统服务节点的指定操作系统服务(407)可以通过由内核代理请求(700)操作系统服务节点执行指定操作系统服务,和由操作系统服务节点接收(704)服务执行请求(702)来实现。由内核代理请求(700)操作系统服务节点执行指定操作系统服务可以通过将服务执行请求(702)发送到指定操作系统服务(407)分布在其上的操作系统服务节点上的服务程序服务器来实现。服务执行请求(702)是操作系统服务节点为内核代理执行操作系统服务的请求。服务执行请求(702)可以包括指定操作系统服务(407)的操作系统服务标识符(402)。内核代理可以利用万维网服务、调用CORBA对象的成员方法、利用MPI库、或本领域的普通技术人员可以想到的任何其它数据通信实现方式将服务执行请求发送到操作系统服务节点上的服务程序服务器。
根据图7的方法访问(602)操作系统服务节点的指定操作系统服务(407)也可以通过由操作系统服务节点执行(708)实现指定操作系统服务(407)的计算机程序指令(706)来实现。计算机程序指令(706)代表实现指定操作系统服务的机器码。根据图7的方法由操作系统服务节点执行(708)实现指定操作系统服务(407)的计算机程序指令(706)可以通过调度实现指定操作系统服务(407)的计算机程序指令(706)以便在操作系统服务节点上执行来实现。在执行了计算机程序指令(706)之后,操作系统服务节点上的服务程序服务器可以将指示执行是否成功的消息发送到内核代理。
就上文给出的说明而言,读者应该认识到,根据本发明的实施例在计算系统上的管理程序中提供基于策略的操作系统服务提供了如下好处:
通过根据节点的硬件和软件环境提供操作系统服务,为节点配置支持多个操作系统的管理程序的能力,所述多个操作系统包括由管理程序支持的轻量操作系统;
通过提供各种操作系统服务来支持操作系统,使轻量操作系统适应新环境或满足新要求的管理程序的能力;和
通过在管理程序中实现操作系统的一些功能来减少管理程序的管理开销的能力。
本发明的示范性实施例主要是在在管理程序中提供基于策略的操作系统服务的全功能计算系统的背景下描述的。但是,本领域的普通读者应该认识到,本发明也可以实施在位于与任何适当数据处理系统一起使用的信号承载媒体上的计算机程序产品中。这样的信号承载媒体可以是用于机器可读信息的传输媒体或可记录媒体,包括磁媒体、光媒体、或其它适当媒体。可记录媒体的例子包括硬盘驱动器中的磁盘或软盘、光驱动器的光盘、磁带、和本领域的普通技术人员可以想到的其它媒体。传输媒体的例子包括用于语音通信的电话网络、和像例如EthernetsTM和与因特网和环球网通信的网络那样的数字数据通信网络,以及像例如根据IEEE 802.11系列规范实现的网络那样的无线传输媒体。本领域的普通技术人员应该马上认识到,拥有适当编程手段的任何计算机系统都能够执行实施在程序产品中的本发明的方法的步骤。本领域的普通技术人员应该马上认识到,尽管在本说明书中描述的一些示范性实施例针对安装在计算机硬件上和在计算机硬件上执行的软件,然而,实现成固件或硬件的可替代实施例也在本发明的范围内。
从前面的描述中可以知道,可以对本发明的各种实施例加以修改和改变而不偏离其精神。本说明书中的描述只是用于例示的目的,而不应该从限制的意义上来理解。本发明的范围只由所附权利要求书的语言限定。
Claims (12)
1.一种在计算系统上的管理程序中提供基于策略的操作系统服务的方法,
计算系统包括至少一个计算节点,计算节点包括操作系统和管理程序,操作系统包括内核,管理程序包括内核代理和具有某种服务类型的多个操作系统服务,所述方法包括:
在计算节点上建立指定供管理程序中的内核代理使用的服务类型的操作系统服务之一的内核策略;和
由内核代理访问指定操作系统服务。
2.根据权利要求1所述的方法,其中:
计算系统是进一步包括一个或多个操作系统服务节点的分布式计算系统;
一个或多个操作系统服务分布在操作系统服务节点之中;
内核策略还指定要提供指定操作系统服务的操作系统服务节点;以及
由计算节点的内核代理访问指定操作系统服务进一步包括由计算节点的内核代理访问操作系统服务节点的指定操作系统服务。
3.根据权利要求2所述的方法,其中,由计算节点的内核代理访问操作系统服务节点的指定操作系统服务进一步包括:
由内核代理从操作系统服务节点检索实现指定操作系统服务的计算机程序指令;和
由计算节点执行实现指定操作系统服务的计算机程序指令。
4.根据权利要求2所述的方法,其中,由计算节点的内核代理访问操作系统服务节点的指定操作系统服务进一步包括:
由内核代理请求操作系统服务节点执行指定操作系统服务;和
由操作系统服务节点执行实现指定操作系统服务的计算机程序指令。
5.根据权利要求1所述的方法,进一步包括:
由内核代理确定该内核代理是否能够访问指定操作系统服务;和
如果内核代理不能访问指定操作系统服务,由计算节点执行实现默认操作系统服务的计算机程序指令。
6.根据权利要求1所述的方法,其中,管理程序进一步包括其它服务类型的操作系统服务,该方法进一步包括:
由内核代理识别内核策略是否指定了所述其它服务类型的操作系统服务;和
如果内核策略未指定所述其它服务类型的操作系统服务,由计算节点执行实现所述其它服务类型的默认操作系统服务的计算机程序指令。
7.根据权利要求1所述的方法,其中:
所述服务类型的操作系统服务具有相同的应用编程接口;以及
由计算节点的内核代理访问指定操作系统服务进一步包括通过将相同的应用编程接口用于指定操作系统服务的服务类型来访问指定操作系统服务。
8.根据权利要求1所述的方法,其中,计算系统是并行计算机。
9.一种在管理程序中提供基于策略的操作系统服务的计算系统,该计算系统包括至少一个计算节点,计算节点包括操作系统和管理程序,操作系统进一步包括内核,管理程序进一步包括内核代理和具有某种服务类型的多个操作系统服务,该计算系统进一步包括计算机处理器和可操作地与计算机处理器耦合的计算机存储器,所述计算机处理器被配置成:
在计算节点上建立指定供管理程序中的内核代理使用的服务类型的操作系统服务之一的内核策略;和
由内核代理访问指定操作系统服务。
10.根据权利要求9所述的计算系统,其中:
计算系统是进一步包括一个或多个操作系统服务节点的分布式计算系统;
一个或多个操作系统服务分布在操作系统服务节点中;
内核策略还指定要提供指定操作系统服务的操作系统服务节点;和
由计算节点的内核代理访问指定操作系统服务进一步包括由计算节点的内核代理访问操作系统服务节点的指定操作系统服务。
11.根据权利要求10所述的计算系统,其中,由计算节点的内核代理访问操作系统服务节点的指定操作系统服务进一步包括:
由内核代理从操作系统服务节点中检索实现指定操作系统服务的计算机程序指令;和
由计算节点执行实现指定操作系统服务的计算机程序指令。
12.根据权利要求10所述的计算系统,其中,由计算节点的内核代理访问操作系统服务节点的指定操作系统服务进一步包括:
由内核代理请求操作系统服务节点执行指定操作系统服务;和
由操作系统服务节点执行实现指定操作系统服务的计算机程序指令。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/553,077 US8032899B2 (en) | 2006-10-26 | 2006-10-26 | Providing policy-based operating system services in a hypervisor on a computing system |
US11/553,077 | 2006-10-26 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101169735A CN101169735A (zh) | 2008-04-30 |
CN100570565C true CN100570565C (zh) | 2009-12-16 |
Family
ID=39390372
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB200710153643XA Active CN100570565C (zh) | 2006-10-26 | 2007-09-07 | 在管理程序中提供基于策略的操作系统服务的方法和系统 |
Country Status (3)
Country | Link |
---|---|
US (1) | US8032899B2 (zh) |
JP (1) | JP5106036B2 (zh) |
CN (1) | CN100570565C (zh) |
Families Citing this family (119)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2109819B1 (en) | 2007-02-06 | 2017-08-02 | MBA Sciences, Inc. | A resource tracking method and apparatus |
US20080222659A1 (en) * | 2007-03-09 | 2008-09-11 | Microsoft Corporation | Abstracting operating environment from operating system |
CN102217228B (zh) | 2007-09-26 | 2014-07-16 | Nicira股份有限公司 | 管理和保护网络的网络操作系统 |
CN101981552A (zh) * | 2008-03-27 | 2011-02-23 | 惠普开发有限公司 | 由不知道raid阵列的操作系统访问raid阵列 |
US8402111B2 (en) | 2009-01-28 | 2013-03-19 | Headwater Partners I, Llc | Device assisted services install |
US8725123B2 (en) | 2008-06-05 | 2014-05-13 | Headwater Partners I Llc | Communications device with secure data path processing agents |
US8346225B2 (en) | 2009-01-28 | 2013-01-01 | Headwater Partners I, Llc | Quality of service for device assisted services |
US8898293B2 (en) | 2009-01-28 | 2014-11-25 | Headwater Partners I Llc | Service offer set publishing to device agent with on-device service selection |
US8406748B2 (en) | 2009-01-28 | 2013-03-26 | Headwater Partners I Llc | Adaptive ambient services |
US8275830B2 (en) | 2009-01-28 | 2012-09-25 | Headwater Partners I Llc | Device assisted CDR creation, aggregation, mediation and billing |
US8548428B2 (en) | 2009-01-28 | 2013-10-01 | Headwater Partners I Llc | Device group partitions and settlement platform |
US8626115B2 (en) | 2009-01-28 | 2014-01-07 | Headwater Partners I Llc | Wireless network service interfaces |
US8340634B2 (en) | 2009-01-28 | 2012-12-25 | Headwater Partners I, Llc | Enhanced roaming services and converged carrier networks with device assisted services and a proxy |
US8250207B2 (en) | 2009-01-28 | 2012-08-21 | Headwater Partners I, Llc | Network based ambient services |
US8391834B2 (en) | 2009-01-28 | 2013-03-05 | Headwater Partners I Llc | Security techniques for device assisted services |
US8635335B2 (en) | 2009-01-28 | 2014-01-21 | Headwater Partners I Llc | System and method for wireless network offloading |
US8832777B2 (en) | 2009-03-02 | 2014-09-09 | Headwater Partners I Llc | Adapting network policies based on device service processor configuration |
US8924469B2 (en) | 2008-06-05 | 2014-12-30 | Headwater Partners I Llc | Enterprise access control and accounting allocation for access networks |
US8589541B2 (en) | 2009-01-28 | 2013-11-19 | Headwater Partners I Llc | Device-assisted services for protecting network capacity |
US8924543B2 (en) | 2009-01-28 | 2014-12-30 | Headwater Partners I Llc | Service design center for device assisted services |
US9286080B2 (en) | 2008-07-02 | 2016-03-15 | Hewlett-Packard Development Company, L.P. | Memory management for hypervisor loading |
US8843742B2 (en) | 2008-08-26 | 2014-09-23 | Hewlett-Packard Company | Hypervisor security using SMM |
US8656018B1 (en) | 2008-09-23 | 2014-02-18 | Gogrid, LLC | System and method for automated allocation of hosting resources controlled by different hypervisors |
WO2010058241A1 (en) * | 2008-11-24 | 2010-05-27 | Abb Research Ltd. | A system and a method for providing control and automation services |
JP5333735B2 (ja) * | 2009-01-27 | 2013-11-06 | 日本電気株式会社 | 仮想計算機システム、仮想計算機のマイグレーション方法、及びプログラム |
US10248996B2 (en) | 2009-01-28 | 2019-04-02 | Headwater Research Llc | Method for operating a wireless end-user device mobile payment agent |
US10057775B2 (en) | 2009-01-28 | 2018-08-21 | Headwater Research Llc | Virtualized policy and charging system |
US9755842B2 (en) | 2009-01-28 | 2017-09-05 | Headwater Research Llc | Managing service user discovery and service launch object placement on a device |
US8793758B2 (en) | 2009-01-28 | 2014-07-29 | Headwater Partners I Llc | Security, fraud detection, and fraud mitigation in device-assisted services systems |
US10237757B2 (en) | 2009-01-28 | 2019-03-19 | Headwater Research Llc | System and method for wireless network offloading |
US10492102B2 (en) | 2009-01-28 | 2019-11-26 | Headwater Research Llc | Intermediate networking devices |
US10841839B2 (en) | 2009-01-28 | 2020-11-17 | Headwater Research Llc | Security, fraud detection, and fraud mitigation in device-assisted services systems |
US9253663B2 (en) | 2009-01-28 | 2016-02-02 | Headwater Partners I Llc | Controlling mobile device communications on a roaming network based on device state |
US11973804B2 (en) | 2009-01-28 | 2024-04-30 | Headwater Research Llc | Network service plan design |
US8893009B2 (en) | 2009-01-28 | 2014-11-18 | Headwater Partners I Llc | End user device that secures an association of application to service policy with an application certificate check |
US10264138B2 (en) | 2009-01-28 | 2019-04-16 | Headwater Research Llc | Mobile device and service management |
US10783581B2 (en) | 2009-01-28 | 2020-09-22 | Headwater Research Llc | Wireless end-user device providing ambient or sponsored services |
US9578182B2 (en) | 2009-01-28 | 2017-02-21 | Headwater Partners I Llc | Mobile device and service management |
US9557889B2 (en) | 2009-01-28 | 2017-01-31 | Headwater Partners I Llc | Service plan design, user interfaces, application programming interfaces, and device management |
US8606911B2 (en) | 2009-03-02 | 2013-12-10 | Headwater Partners I Llc | Flow tagging for service policy implementation |
US8745191B2 (en) | 2009-01-28 | 2014-06-03 | Headwater Partners I Llc | System and method for providing user notifications |
US10484858B2 (en) | 2009-01-28 | 2019-11-19 | Headwater Research Llc | Enhanced roaming services and converged carrier networks with device assisted services and a proxy |
US9270559B2 (en) | 2009-01-28 | 2016-02-23 | Headwater Partners I Llc | Service policy implementation for an end-user device having a control application or a proxy agent for routing an application traffic flow |
US9572019B2 (en) | 2009-01-28 | 2017-02-14 | Headwater Partners LLC | Service selection set published to device agent with on-device service selection |
US11985155B2 (en) | 2009-01-28 | 2024-05-14 | Headwater Research Llc | Communications device with secure data path processing agents |
US9706061B2 (en) | 2009-01-28 | 2017-07-11 | Headwater Partners I Llc | Service design center for device assisted services |
US10326800B2 (en) | 2009-01-28 | 2019-06-18 | Headwater Research Llc | Wireless network service interfaces |
US9392462B2 (en) | 2009-01-28 | 2016-07-12 | Headwater Partners I Llc | Mobile end-user device with agent limiting wireless data communication for specified background applications based on a stored policy |
US10064055B2 (en) | 2009-01-28 | 2018-08-28 | Headwater Research Llc | Security, fraud detection, and fraud mitigation in device-assisted services systems |
US11218854B2 (en) | 2009-01-28 | 2022-01-04 | Headwater Research Llc | Service plan design, user interfaces, application programming interfaces, and device management |
US9980146B2 (en) | 2009-01-28 | 2018-05-22 | Headwater Research Llc | Communications device with secure data path processing agents |
US9954975B2 (en) | 2009-01-28 | 2018-04-24 | Headwater Research Llc | Enhanced curfew and protection associated with a device group |
US10715342B2 (en) | 2009-01-28 | 2020-07-14 | Headwater Research Llc | Managing service user discovery and service launch object placement on a device |
US10779177B2 (en) | 2009-01-28 | 2020-09-15 | Headwater Research Llc | Device group partitions and settlement platform |
US12166596B2 (en) | 2009-01-28 | 2024-12-10 | Disney Enterprises, Inc. | Device-assisted services for protecting network capacity |
US9609510B2 (en) | 2009-01-28 | 2017-03-28 | Headwater Research Llc | Automated credential porting for mobile devices |
US10200541B2 (en) | 2009-01-28 | 2019-02-05 | Headwater Research Llc | Wireless end-user device with divided user space/kernel space traffic policy system |
US9571559B2 (en) | 2009-01-28 | 2017-02-14 | Headwater Partners I Llc | Enhanced curfew and protection associated with a device group |
US9647918B2 (en) | 2009-01-28 | 2017-05-09 | Headwater Research Llc | Mobile device and method attributing media services network usage to requesting application |
US9351193B2 (en) | 2009-01-28 | 2016-05-24 | Headwater Partners I Llc | Intermediate networking devices |
US10798252B2 (en) | 2009-01-28 | 2020-10-06 | Headwater Research Llc | System and method for providing user notifications |
US9858559B2 (en) | 2009-01-28 | 2018-01-02 | Headwater Research Llc | Network service plan design |
US9565707B2 (en) | 2009-01-28 | 2017-02-07 | Headwater Partners I Llc | Wireless end-user device with wireless data attribution to multiple personas |
US9955332B2 (en) | 2009-01-28 | 2018-04-24 | Headwater Research Llc | Method for child wireless device activation to subscriber account of a master wireless device |
JP5365840B2 (ja) * | 2009-02-09 | 2013-12-11 | 日本電気株式会社 | マルチプロセッサシステム、及びマルチプロセッサシステムの動作方法 |
WO2010115060A2 (en) | 2009-04-01 | 2010-10-07 | Nicira Networks | Method and apparatus for implementing and managing virtual switches |
US8843927B2 (en) * | 2009-04-23 | 2014-09-23 | Microsoft Corporation | Monitoring and updating tasks arrival and completion statistics without data locking synchronization |
US9069596B2 (en) * | 2009-11-17 | 2015-06-30 | International Business Machines Corporation | Hypervisor file system |
US20110219373A1 (en) * | 2010-03-02 | 2011-09-08 | Electronics And Telecommunications Research Institute | Virtual machine management apparatus and virtualization method for virtualization-supporting terminal platform |
US8495512B1 (en) | 2010-05-20 | 2013-07-23 | Gogrid, LLC | System and method for storing a configuration of virtual servers in a hosting system |
US9680750B2 (en) | 2010-07-06 | 2017-06-13 | Nicira, Inc. | Use of tunnels to hide network addresses |
US8964528B2 (en) | 2010-07-06 | 2015-02-24 | Nicira, Inc. | Method and apparatus for robust packet distribution among hierarchical managed switching elements |
US8959215B2 (en) | 2010-07-06 | 2015-02-17 | Nicira, Inc. | Network virtualization |
US10103939B2 (en) | 2010-07-06 | 2018-10-16 | Nicira, Inc. | Network control apparatus and method for populating logical datapath sets |
US9525647B2 (en) | 2010-07-06 | 2016-12-20 | Nicira, Inc. | Network control apparatus and method for creating and modifying logical switching elements |
US20120124518A1 (en) * | 2010-11-16 | 2012-05-17 | Microsoft Corporation | Managing Operations via a User Interface |
US8621461B1 (en) * | 2010-11-22 | 2013-12-31 | Netapp, Inc. | Virtual machine based operating system simulation using host ram-based emulation of persistent mass storage device |
US11210674B2 (en) | 2010-11-29 | 2021-12-28 | Biocatch Ltd. | Method, device, and system of detecting mule accounts and accounts used for money laundering |
US10069837B2 (en) * | 2015-07-09 | 2018-09-04 | Biocatch Ltd. | Detection of proxy server |
US9288117B1 (en) | 2011-02-08 | 2016-03-15 | Gogrid, LLC | System and method for managing virtual and dedicated servers |
US9154826B2 (en) | 2011-04-06 | 2015-10-06 | Headwater Partners Ii Llc | Distributing content and service launch objects to mobile devices |
US9043452B2 (en) | 2011-05-04 | 2015-05-26 | Nicira, Inc. | Network control apparatus and method for port isolation |
US8880657B1 (en) | 2011-06-28 | 2014-11-04 | Gogrid, LLC | System and method for configuring and managing virtual grids |
US20130212237A1 (en) * | 2012-02-10 | 2013-08-15 | Suhas SHIVANNA | Proxy infrastructure to access firmware-based features |
RU2600538C2 (ru) * | 2014-04-08 | 2016-10-20 | Интел Корпорейшн | Запуск приложения на основе интерфейса передачи сообщения (mpi) в гетерогенной среде |
US9569195B2 (en) | 2014-05-13 | 2017-02-14 | Zscaler, Inc. | Systems and methods for live operating system upgrades of inline cloud servers |
US9628279B2 (en) * | 2014-09-30 | 2017-04-18 | Microsoft Technology Licensing, Llc | Protecting application secrets from operating system attacks |
US9547540B1 (en) * | 2015-12-21 | 2017-01-17 | International Business Machines Corporation | Distributed operating system functions for nodes in a rack |
US10318311B2 (en) | 2016-06-30 | 2019-06-11 | Amazon Technologies, Inc. | Memory allocation techniques at partially-offloaded virtualization managers |
US10318737B2 (en) | 2016-06-30 | 2019-06-11 | Amazon Technologies, Inc. | Secure booting of virtualization managers |
US10127068B2 (en) | 2016-06-30 | 2018-11-13 | Amazon Technologies, Inc. | Performance variability reduction using an opportunistic hypervisor |
US10362110B1 (en) * | 2016-12-08 | 2019-07-23 | Amazon Technologies, Inc. | Deployment of client data compute kernels in cloud |
US9983823B1 (en) | 2016-12-09 | 2018-05-29 | Amazon Technologies, Inc. | Pre-forking replicas for efficient scaling of a distribued data storage system |
CN108984264B (zh) * | 2017-06-02 | 2022-11-15 | 阿里巴巴集团控股有限公司 | 虚拟gpu的实现方法、装置及系统 |
US11218364B2 (en) | 2018-06-25 | 2022-01-04 | Amazon Technologies, Inc. | Network-accessible computing service for micro virtual machines |
CN109032029B (zh) * | 2018-08-14 | 2020-12-08 | 北京东土科技股份有限公司 | 工业服务器对外通信方法、系统、装置及工业服务器 |
US12106132B2 (en) | 2018-11-20 | 2024-10-01 | Amazon Technologies, Inc. | Provider network service extensions |
US10833949B2 (en) | 2018-11-20 | 2020-11-10 | Amazon Technologies, Inc | Extension resource groups of provider network services |
US10848418B1 (en) | 2019-06-24 | 2020-11-24 | Amazon Technologies, Inc. | Packet processing service extensions at remote premises |
US10853263B1 (en) * | 2019-07-23 | 2020-12-01 | Ati Technologies Ulc | Unified kernel virtual address space for heterogeneous computing |
US11182182B2 (en) * | 2019-07-24 | 2021-11-23 | Vmware, Inc. | Calling arbitrary functions in the kernel via a probe script |
US11064017B2 (en) | 2019-09-24 | 2021-07-13 | Amazon Technologies, Inc. | Peripheral device enabling virtualized computing service extensions |
US11853771B1 (en) | 2019-09-24 | 2023-12-26 | Amazon Technologies, Inc. | Offload card based virtualization of a pre-assembled computer system integrated into a server for a virtualization service |
US11113046B1 (en) | 2019-09-24 | 2021-09-07 | Amazon Technologies, Inc. | Integration and remote control of a pre-assembled computer system into a server for a virtualization service |
US11243589B1 (en) | 2019-09-24 | 2022-02-08 | Amazon Technologies, Inc. | Remote power button actuation device for a pre-assembled computer system integrated into a server for a virtualization service |
US11520530B2 (en) | 2019-09-24 | 2022-12-06 | Amazon Technologies, Inc. | Peripheral device for configuring compute instances at client-selected servers |
US11605016B2 (en) | 2019-11-27 | 2023-03-14 | Amazon Technologies, Inc. | Quantum computing service supporting local execution of hybrid algorithms |
US11704715B2 (en) | 2019-11-27 | 2023-07-18 | Amazon Technologies, Inc. | Quantum computing service supporting multiple quantum computing technologies |
US11650869B2 (en) | 2019-11-27 | 2023-05-16 | Amazon Technologies, Inc. | Quantum computing service with local edge devices supporting multiple quantum computing technologies |
US11605033B2 (en) | 2019-11-27 | 2023-03-14 | Amazon Technologies, Inc. | Quantum computing task translation supporting multiple quantum computing technologies |
US11569997B1 (en) | 2020-03-09 | 2023-01-31 | Amazon Technologies, Inc. | Security mechanisms for data plane extensions of provider network services |
US11977957B2 (en) | 2021-08-03 | 2024-05-07 | Amazon Technologies, Inc. | Quantum computing program compilation using cached compiled quantum circuit files |
EP4145318A1 (en) * | 2021-09-06 | 2023-03-08 | AO Kaspersky Lab | System and method for monitoring delivery of messages passed between processes from different operating systems |
US12198005B1 (en) | 2021-09-09 | 2025-01-14 | Amazon Technologies, Inc. | Quantum computing using multiple quantum computers |
US11797276B1 (en) | 2021-09-30 | 2023-10-24 | Amazon Technologies, Inc. | Assisted composition of quantum algorithms |
US12217090B2 (en) | 2021-11-12 | 2025-02-04 | Amazon Technologies, Inc. | On-demand co-processing resources for quantum computing |
US11907092B2 (en) | 2021-11-12 | 2024-02-20 | Amazon Technologies, Inc. | Quantum computing monitoring system |
US12135669B1 (en) | 2022-03-03 | 2024-11-05 | Amazon Technologies, Inc. | Hardware for integration of servers into a management network |
KR102465953B1 (ko) * | 2022-05-30 | 2022-11-11 | 쿤텍 주식회사 | 하이퍼바이저 시스템 및 하이퍼바이저 동작 방법 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6892383B1 (en) * | 2000-06-08 | 2005-05-10 | International Business Machines Corporation | Hypervisor function sets |
US20050160423A1 (en) * | 2002-12-16 | 2005-07-21 | Bantz David F. | Enabling a guest virtual machine in a windows environment for policy-based participation in grid computations |
US20050251806A1 (en) * | 2004-05-10 | 2005-11-10 | Auslander Marc A | Enhancement of real-time operating system functionality using a hypervisor |
Family Cites Families (66)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4860201A (en) | 1986-09-02 | 1989-08-22 | The Trustees Of Columbia University In The City Of New York | Binary tree parallel processor |
US4910669A (en) | 1987-04-03 | 1990-03-20 | At&T Bell Laboratories | Binary tree multiprocessor |
US5095444A (en) | 1989-12-21 | 1992-03-10 | Legent Corporation | System and method for measuring inter-nodal transmission delays in a communications network |
US5063562A (en) | 1990-05-23 | 1991-11-05 | International Business Machines Corporation | Flow control for high speed networks |
US6047122A (en) | 1992-05-07 | 2000-04-04 | Tm Patents, L.P. | System for method for performing a context switch operation in a massively parallel computer system |
US6336143B1 (en) | 1993-09-27 | 2002-01-01 | International Business Machines Corporation | Method and apparatus for multimedia data interchange with pacing capability in a distributed data processing system |
US6101495A (en) | 1994-11-16 | 2000-08-08 | Hitachi, Ltd. | Method of executing partition operations in a parallel database system |
US5491691A (en) | 1994-08-16 | 1996-02-13 | Motorola, Inc. | Method and apparatus for pacing asynchronous transfer mode (ATM) data cell transmission |
US5651099A (en) | 1995-01-26 | 1997-07-22 | Hewlett-Packard Company | Use of a genetic algorithm to optimize memory space |
US5859981A (en) | 1995-07-12 | 1999-01-12 | Super P.C., L.L.C. | Method for deadlock-free message passing in MIMD systems using routers and buffers |
US5956342A (en) | 1995-07-19 | 1999-09-21 | Fujitsu Network Communications, Inc. | Priority arbitration for point-to-point and multipoint transmission |
US6295599B1 (en) | 1995-08-16 | 2001-09-25 | Microunity Systems Engineering | System and method for providing a wide operand architecture |
US7301541B2 (en) | 1995-08-16 | 2007-11-27 | Microunity Systems Engineering, Inc. | Programmable processor and method with wide operations |
JP3163237B2 (ja) | 1995-09-28 | 2001-05-08 | 株式会社日立製作所 | 並列計算機システムの管理装置 |
US5815793A (en) | 1995-10-05 | 1998-09-29 | Microsoft Corporation | Parallel computer |
US5826262A (en) | 1996-03-22 | 1998-10-20 | International Business Machines Corporation | Parallel bottom-up construction of radix trees |
JPH09330304A (ja) | 1996-06-05 | 1997-12-22 | Internatl Business Mach Corp <Ibm> | プロセッサ間の通信スケジュールを決定する方法 |
US5953336A (en) | 1996-08-05 | 1999-09-14 | Virata Limited | Method and apparatus for source rate pacing in an ATM network |
CA2186675A1 (en) | 1996-09-27 | 1998-03-28 | Ka Lun Law | Asynchronous transfer mode switching system |
US5862381A (en) | 1996-11-26 | 1999-01-19 | International Business Machines Corporation | Visualization tool for graphically displaying trace data |
US6057839A (en) | 1996-11-26 | 2000-05-02 | International Business Machines Corporation | Visualization tool for graphically displaying trace data produced by a parallel processing computer |
US5884080A (en) | 1996-11-26 | 1999-03-16 | International Business Machines Corporation | System and method for instruction burst performance profiling for single-processor and multi-processor systems |
US5826265A (en) | 1996-12-06 | 1998-10-20 | International Business Machines Corporation | Data management system having shared libraries |
US5918020A (en) | 1997-02-28 | 1999-06-29 | International Business Machines Corporation | Data processing system and method for pacing information transfers in a communications network |
US5912893A (en) | 1997-03-21 | 1999-06-15 | International Business Machines Corporation | Incidence graph based communications and operations method and apparatus for parallel processing architecture |
AU6816998A (en) | 1997-03-24 | 1998-10-20 | Queen's University At Kingston | Coincidence detection method, products and apparatus |
US6115357A (en) | 1997-07-01 | 2000-09-05 | Packeteer, Inc. | Method for pacing data flow in a packet-based network |
US6118777A (en) | 1997-10-27 | 2000-09-12 | Nortel Networks Corporation | System and method for providing competing local exchange carriers unbundled access to subscriber access lines |
US6563823B1 (en) | 1997-10-30 | 2003-05-13 | Marconi Communications, Inc. | Multi-resolution tree for longest match address lookups |
US7100020B1 (en) | 1998-05-08 | 2006-08-29 | Freescale Semiconductor, Inc. | Digital communications processor |
US6600721B2 (en) | 1998-12-31 | 2003-07-29 | Nortel Networks Limited | End node pacing for QOS and bandwidth management |
US6490566B1 (en) | 1999-05-05 | 2002-12-03 | I2 Technologies Us, Inc. | Graph-based schedule builder for tightly constrained scheduling problems |
US6691146B1 (en) * | 1999-05-19 | 2004-02-10 | International Business Machines Corporation | Logical partition manager and method |
US6438702B1 (en) | 1999-12-21 | 2002-08-20 | Telcordia Technologies, Inc. | Method for providing a precise network time service |
US6839829B1 (en) | 2000-01-18 | 2005-01-04 | Cisco Technology, Inc. | Routing protocol based redundancy design for shared-access networks |
US7054948B2 (en) | 2000-03-07 | 2006-05-30 | Opcoast Llc | Collaborative host masquerading system |
US6633937B2 (en) | 2000-12-21 | 2003-10-14 | National Instruments Corporation | GPIB system and method which performs autopolling using heuristics |
US6836480B2 (en) | 2001-04-20 | 2004-12-28 | International Business Machines Corporation | Data structures for efficient processing of multicast transmissions |
US20030021287A1 (en) | 2001-05-04 | 2003-01-30 | Appian Communications, Inc. | Communicating data between TDM and packet based networks |
US6952692B1 (en) | 2002-05-17 | 2005-10-04 | Ncr Corporation | Execution of requests in a parallel database system |
US6963868B2 (en) | 2002-06-03 | 2005-11-08 | International Business Machines Corporation | Multi-bit Patricia trees |
AU2003268754A1 (en) | 2002-10-03 | 2004-04-23 | In4S Inc. | Bit string check method and device |
US7240059B2 (en) | 2002-11-14 | 2007-07-03 | Seisint, Inc. | System and method for configuring a parallel-processing database system |
US20040111398A1 (en) | 2002-12-09 | 2004-06-10 | International Business Machines Corporation | Performance mechanism for presenting integrated information in a graphical user interface |
GB2399189B (en) | 2003-03-05 | 2006-07-19 | Quazal Technologies Inc | Coherent data sharing |
US7117285B2 (en) * | 2003-08-29 | 2006-10-03 | Sun Microsystems, Inc. | Method and system for efficiently directing interrupts |
US7197577B2 (en) | 2003-12-12 | 2007-03-27 | International Business Machines Corporation | Autonomic input/output scheduler selector |
US20050182834A1 (en) | 2004-01-20 | 2005-08-18 | Black Chuck A. | Network and network device health monitoring |
GB0407144D0 (en) | 2004-03-30 | 2004-05-05 | British Telecomm | Networks |
US9619279B2 (en) * | 2004-08-18 | 2017-04-11 | Red Bend Software Sas | Operating systems sharing supervisor address space with same virtual to physical mapping for supervisor address space using same translation formula with different translation tree |
US7509244B1 (en) | 2004-12-22 | 2009-03-24 | The Mathworks, Inc. | Distributed model compilation |
US20060203739A1 (en) | 2005-03-14 | 2006-09-14 | Microsoft Corporation | Profiling wide-area networks using peer cooperation |
JP4675174B2 (ja) | 2005-07-12 | 2011-04-20 | 株式会社日立製作所 | データベース処理方法、システム及びプログラム |
US9189291B2 (en) * | 2005-12-12 | 2015-11-17 | International Business Machines Corporation | Sharing a kernel of an operating system among logical partitions |
US20070179760A1 (en) | 2006-01-06 | 2007-08-02 | Intel Corporation | Method of determining graph isomorphism in polynomial-time |
US9201703B2 (en) * | 2006-06-07 | 2015-12-01 | International Business Machines Corporation | Sharing kernel services among kernels |
US7779016B2 (en) | 2006-09-14 | 2010-08-17 | International Business Machines Corporation | Parallel execution of operations for a partitioned binary radix tree on a parallel computer |
US8713582B2 (en) | 2006-10-26 | 2014-04-29 | International Business Machines Corporation | Providing policy-based operating system services in an operating system on a computing system |
US7634388B2 (en) | 2006-10-26 | 2009-12-15 | International Business Machines Corporation | Providing policy-based operating system services in an operating system on a computing system |
US20080109569A1 (en) | 2006-11-08 | 2008-05-08 | Sicortex, Inc | Remote DMA systems and methods for supporting synchronization of distributed processes in a multi-processor system using collective operations |
US8296430B2 (en) | 2007-06-18 | 2012-10-23 | International Business Machines Corporation | Administering an epoch initiated for remote memory access |
US7958274B2 (en) | 2007-06-18 | 2011-06-07 | International Business Machines Corporation | Heuristic status polling |
US7738443B2 (en) | 2007-06-26 | 2010-06-15 | International Business Machines Corporation | Asynchronous broadcast for ordered delivery between compute nodes in a parallel computing system where packet header space is limited |
US9065839B2 (en) | 2007-10-02 | 2015-06-23 | International Business Machines Corporation | Minimally buffered data transfers between nodes in a data communications network |
US20090113308A1 (en) | 2007-10-26 | 2009-04-30 | Gheorghe Almasi | Administering Communications Schedules for Data Communications Among Compute Nodes in a Data Communications Network of a Parallel Computer |
US7984450B2 (en) | 2007-11-28 | 2011-07-19 | International Business Machines Corporation | Dispatching packets on a global combining network of a parallel computer |
-
2006
- 2006-10-26 US US11/553,077 patent/US8032899B2/en active Active
-
2007
- 2007-09-07 CN CNB200710153643XA patent/CN100570565C/zh active Active
- 2007-10-23 JP JP2007275113A patent/JP5106036B2/ja active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6892383B1 (en) * | 2000-06-08 | 2005-05-10 | International Business Machines Corporation | Hypervisor function sets |
US20050160423A1 (en) * | 2002-12-16 | 2005-07-21 | Bantz David F. | Enabling a guest virtual machine in a windows environment for policy-based participation in grid computations |
US20050251806A1 (en) * | 2004-05-10 | 2005-11-10 | Auslander Marc A | Enhancement of real-time operating system functionality using a hypervisor |
Also Published As
Publication number | Publication date |
---|---|
US8032899B2 (en) | 2011-10-04 |
JP5106036B2 (ja) | 2012-12-26 |
US20080148300A1 (en) | 2008-06-19 |
JP2008108260A (ja) | 2008-05-08 |
CN101169735A (zh) | 2008-04-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100570565C (zh) | 在管理程序中提供基于策略的操作系统服务的方法和系统 | |
CN101233489B (zh) | 自适应进程分派的方法和系统 | |
CN100559348C (zh) | 用于提供基于策略的操作系统服务的方法和计算系统 | |
US9396013B2 (en) | Method for controlling a virtual machine and a virtual machine system | |
US9756118B2 (en) | Virtual performance monitoring decoupled from hardware performance-monitoring units | |
CN101169733B (zh) | 用于提供基于策略的操作系统服务的方法和系统 | |
US7406699B2 (en) | Enhanced runtime hosting | |
US9189291B2 (en) | Sharing a kernel of an operating system among logical partitions | |
US5305455A (en) | Per thread exception management for multitasking multithreaded operating system | |
EP2132640B1 (en) | Abstracting operating environment from operating system | |
EP2182438A1 (en) | Virtual machine control method and virtual machine system | |
US20140358972A1 (en) | Interconnect partition binding api, allocation and management of application-specific partitions | |
US20080148259A1 (en) | Structured exception handling for application-managed thread units | |
US7454547B1 (en) | Data exchange between a runtime environment and a computer firmware in a multi-processor computing system | |
US20080288942A1 (en) | Monitoring performance of a logically-partitioned computer | |
EP1927049A1 (en) | Real-time threading service for partitioned multiprocessor systems | |
US11126575B1 (en) | Interrupt recovery management | |
CN100465893C (zh) | 一种嵌入式操作系统驱动程序动态升级方法 | |
US20240248744A1 (en) | Systems and methods for offloading guest tasks to a host system | |
US20250045085A1 (en) | Efficient input/output (i/o) for nested virtual machines with memory overcommit | |
Seo et al. | An effective design of master-slave operating system architecture for multiprocessor embedded systems | |
US20240403042A1 (en) | Cloud resource project management | |
Schubert et al. | Modular Operating Systems for Large-Scale, Distributed, and Heterogeneous Environments | |
Katz | Popcorn Linux: Cross Kernel Process and Thread Migration in a Linux-Based Multikernel | |
JPH07306837A (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 | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |