JP2007328782A - Method, device and computer program for sharing kernel service among kernels - Google Patents
Method, device and computer program for sharing kernel service among kernels Download PDFInfo
- Publication number
- JP2007328782A JP2007328782A JP2007147678A JP2007147678A JP2007328782A JP 2007328782 A JP2007328782 A JP 2007328782A JP 2007147678 A JP2007147678 A JP 2007147678A JP 2007147678 A JP2007147678 A JP 2007147678A JP 2007328782 A JP2007328782 A JP 2007328782A
- Authority
- JP
- Japan
- Prior art keywords
- kernel
- system call
- services
- logical
- partition
- 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.)
- Granted
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/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)
Abstract
Description
本発明は、データ処理の分野に関し、詳しく云えば、カーネル・サービスをカーネル間で共用するための方法、装置、およびコンピュータ・プログラムに関するものである。 The present invention relates to the field of data processing, and more particularly to a method, apparatus, and computer program for sharing kernel services between kernels.
スレッドはマルチスレッド・コンピュータにおけるソフトウェア実行の単位である。即ち、スレッドはコンピュータ・システムにおける作業の実行可能な構成要素である。スレッドは、実行可能なコンピュータ・プログラム命令の個別のストリームとして表すことができる。そのようなコンピュータでは、ソフトウェア・プログラムは、コード・セグメントおよびオフセット・レジスタ、データ・セグメントおよびオフセット・レジスタ、スタック・セグメントおよびオフセット・レジスタ、フラッグ・レジスタ、命令ポインタ・レジスタ等の、ソフトウェア・プログラムの実行に必要なすべてのプロセッサ・レジスタを含む「プロセス」と呼ばれる実行単位で実行される。効率性のために、「プロセス」は更にスレッドとして編成される。プロセスの各スレッドは、プロセスの他の全スレッドとの間でメモリを共用することを除けば、実行のために必要なすべての属性を個々に所有し、それによってオペレーティング・システムのスレッド切り替え(コンテキスト・スイッチ)に関するオーバーヘッドを少なくしている。 A thread is a unit of software execution in a multi-thread computer. That is, a thread is an executable component of work in a computer system. A thread can be represented as a separate stream of executable computer program instructions. In such a computer, the software program is a software program such as a code segment and offset register, a data segment and offset register, a stack segment and offset register, a flag register, an instruction pointer register, etc. It is executed in a unit of execution called a “process” that contains all the processor registers necessary for execution. For efficiency, “processes” are further organized as threads. Each thread of the process individually owns all the attributes necessary for execution, except sharing memory with all other threads of the process, thereby allowing operating system thread switching (context・ The overhead related to the switch is reduced.
本明細書では、マルチスレッディングの2つのモード、即ち、同時マルチスレッディング(SMT)および単一スレッド(ST)・マルチスレッディングを考察する。STマルチスレッディングは、時間多重化マルチスレッディング、即ち、タイム・スライスの使用によるマルチスレッディングである。STモードでは、個々のスレッドおよび仮想プロセッサの両方が、時間のセグメントとして配分されたプロセッサのコンピューティング・キャパシティの一部に割り当てられる。時間のセグメントの各々は「タイム・スライス」と呼ばれる。 In this specification, two modes of multithreading are considered: simultaneous multithreading (SMT) and single thread (ST) multithreading. ST multithreading is time-multiplexed multithreading, that is, multithreading through the use of time slices. In ST mode, both individual threads and virtual processors are assigned to a portion of the processor's computing capacity allocated as a segment of time. Each segment of time is called a “time slice”.
或る種のプロセッサは、複数のスレッドからのコンピュータ命令を同時に受け付ける「同時マルチスレッディング」または「SMT」と呼ばれる特徴を有する。SMTの基になる考えは、1つのチップ上のプロセッサ・ハードウェアを、マルチスレッド・ワークロードにおける複数のスレッド間で共用することである。SMTは、単一の物理プロセッサに対する命令を、複数の独立したスレッドに単一の処理サイクルで発生させるという技術である。従来のプロセッサ・アーキテクチャでは、一時に、1つのスレッドだけが1つのプロセッサに命令を発生する。本明細書で開示されるSMTを実装するプロセッサの例は、IBM社のPower5プロセッサである。 Some processors have a feature called “simultaneous multithreading” or “SMT” that accepts computer instructions from multiple threads simultaneously. The idea behind SMT is to share the processor hardware on a single chip among multiple threads in a multithreaded workload. SMT is a technique in which instructions for a single physical processor are generated by a plurality of independent threads in a single processing cycle. In conventional processor architectures, only one thread issues instructions to one processor at a time. An example of a processor that implements the SMT disclosed herein is the IBM Power5 processor.
SMTは、各々が複数の実行のスレッドからの命令を同時に受け付けることができる、物理プロセッサに実装される。更に、SMTモードでは、仮想プロセッサおよび仮想プロセッサ上で実行されるスレッドの両方とも、タイム・スライスを通して割り当てることができる。SMTモードで仮想プロセッサにおいて実行されるスレッドは、論理プロセッサにおいて実行されると見なすこともできる。従って、SMTモードで物理プロセッサにおいて実行される仮想プロセッサは、複数の論理プロセッサを支援するものと見なすこともできる。スレッドがSTモードまたはSMTモードのいずれで実行されても、論理プロセッサにおいて実行されるスレッドは、そのプロセッサの論理的性質または仮想的性質を知らないし、それを従来のプロセッサと見なす。 The SMT is implemented on a physical processor, each capable of accepting instructions from multiple execution threads simultaneously. Further, in SMT mode, both virtual processors and threads executing on virtual processors can be allocated through time slices. A thread that runs on a virtual processor in SMT mode can also be considered to run on a logical processor. Thus, a virtual processor running on a physical processor in SMT mode can also be viewed as supporting multiple logical processors. Whether a thread is executed in ST mode or SMT mode, a thread executing in a logical processor does not know the logical or virtual nature of the processor and regards it as a conventional processor.
多重処理は、STモードまたはSMTモードで複数の論理パーティションをパーティションごとに支援するコンピュータに実装される。各パーティションは、個別のカーネルを含む個別のオペレーティング・システム全体を実装する。カーネルは、カーネル・サービスを提供することによって、論理パーティションにおいて実行されるアプリケーションを支援する。カーネルによって提供されるサービスのタイプは一般には同じであるが、種々のカーネルが種々の方法でサービスを実施することも可能である。このため、カーネルによっては、カーネル・サービスの提供において他のカーネルよりも優れているものがある。しかし、従来技術では、優れたサービスを行うカーネルは、そのようなサービスを他のカーネルと共用することができず、同じタイプの他のカーネルとさえ共用し得ない。例えば、優れたディスクI/Oドライバを有するUNIX(登録商標)(登録商標)カーネルの場合、それは、たとえ他のUNIX(登録商標)(登録商標)カーネルがまったく同じタイプおよびバージョンのものであったとしても、そのような他のUNIX(登録商標)(登録商標)カーネルに抗して作動する実行スレッドにとってそのディスクI/Oドライバを使用可能にすることはできないであろう。 Multiple processing is implemented in a computer that supports a plurality of logical partitions for each partition in ST mode or SMT mode. Each partition implements an individual operating system as a whole, including an individual kernel. The kernel supports applications running in logical partitions by providing kernel services. The types of services provided by the kernel are generally the same, but different kernels can implement services in different ways. For this reason, some kernels are superior to other kernels in providing kernel services. However, in the prior art, a kernel that performs good services cannot share such services with other kernels, and cannot even share with other kernels of the same type. For example, in the case of a UNIX® kernel with a good disk I / O driver, it was of the exact same type and version as other UNIX® kernels Even so, the disk I / O driver may not be made available to execution threads that run against such other UNIX® kernels.
本発明の目的は、カーネル間でカーネル・サービスを共用するための方法、装置、およびコンピュータ・プログラムを提供することである。 It is an object of the present invention to provide a method, apparatus, and computer program for sharing kernel services between kernels.
本発明の方法は、パーティション・マネージャが、第1カーネルと互換性のある形式および内容を有し且つ前記第1カーネルからのカーネル・サービスを求める第1システム・コールを、論理パーティションにおけるアプリケーションから受け取るステップと、前記第1システム・コールに従って、第2カーネルと互換性のある形式および内容を有し且つ前記第2カーネルからのカーネル・サービスを求める第2システム・コールを発生するステップと、前記第2システム・コールを、前記パーティション・マネージャを介して前記第2カーネルに、実行のために送るステップとを含む。 The method of the present invention allows a partition manager to receive a first system call from an application in a logical partition that has a format and content compatible with a first kernel and that seeks kernel services from the first kernel. Generating a second system call having a format and content compatible with a second kernel and seeking a kernel service from the second kernel according to the first system call; Sending two system calls to the second kernel for execution via the partition manager.
本発明の上記および他の目的、特徴、および利点は、添付図面において図解される本発明の実施例に関する以下の更に詳細な説明から明らかであろう。なお、図面において、同じ参照番号は、一般に、本発明の実施例の同じ要素を表す。 The above and other objects, features and advantages of the present invention will be apparent from the following more detailed description of the embodiments of the present invention illustrated in the accompanying drawings. In the drawings, like reference numerals generally refer to the same elements of the embodiments of the present invention.
本発明の実施例による、カーネル間でカーネル・サービスを共用するための例示的な方法、装置、およびコンピュータ・プログラムを、添付図面を参照して説明する。本発明によるカーネル間でのカーネル・サービスの共用は、自動コンピューティング・マシン、即ち、1つまたは複数のコンピュータ上で実施される。図1は、本発明の実施例による、カーネル間でカーネル・サービスを共用する場合に有用な例示的コンピュータ152を含む自動コンピューティング・マシンのブロック図を示す。図1のコンピュータ152は、幾つかの物理プロセッサ156およびランダム・アクセス・メモリ(RAM)168を含む。RAM168は、システム・バス160を介して物理プロセッサ156およびこのコンピュータの他のコンポーネントに接続される。
Exemplary methods, apparatus, and computer programs for sharing kernel services between kernels according to embodiments of the present invention will be described with reference to the accompanying drawings. Sharing kernel services between kernels according to the present invention is implemented on an automated computing machine, ie, one or more computers. FIG. 1 shows a block diagram of an automated computing machine including an
RAM168には、アプリケーション・プログラム108、オペレーティング・システム110、および論理プロセッサ106を含む論理パーティション114、並びに、2つまたはそれ以上のカーネル102、104、仮想プロセッサ122、およびカーネル共用インターフェース124を含むパーティション・マネージャ112が記憶される。論理パーティション(LPAR)114は、単一のコンピュータにおけるコンピュータ資源の分散が、あたかもそのコンピュータが2つまたはそれ以上の独立したコンピュータであるかのようにコンピュータ機能を整えることを可能にするデータ構造およびサービスのセットである。各論理パーティションは、それがプロセッサ時間、メモリ、オペレーティング・システム等を含む独立したコンピュータであるかのように動作するために必要なすべての資源を割り当てられる。論理パーティションおよび論理パーティションを通してアプリケーションにとって使用可能にされる資源は、一括して「仮想マシン」と呼ばれることもある。説明の便宜上、図1のシステムは、1つの論理パーティションしか含まないが、本発明の実施例による、カーネル間でのカーネル・サービスを共用するシステムは任意の数の論理パーティションを支援することができる。
アプリケーション・プログラム108はユーザ・レベルのコンピュータ・プログラム・コードのモジュールである。アプリケーション・プログラムは、オペレーティング・システムのカーネルを介するコールによりコンピュータ資源へのアクセスを得なければならない非特権コードである。 The application program 108 is a module of user level computer program code. Application programs are non-privileged code that must gain access to computer resources by calls through the operating system kernel.
オペレーティング・システム110は、スレッドをスケジュールするシステム・ソフトウェア層であり、メモリ・アクセス、入出力資源へのアクセス等を含む、システム資源をスレッドにとって使用可能にするための機能を提供する。オペレーティング・システムは、コンピュータ資源にアクセスするための割り振りおよび承認も制御する。オペレーティング・システムは、キーボードからの入力を認識すること、出力をディスプレイ・スクリーンに送ること、ディスク・ドライブ上のファイルおよびディレクトリを追跡すること、並びにディスク・ドライブおよびプリンタのような周辺装置を制御することのような低レベルの基本的タスクを実行する。オペレーティング・システムは、セキュリティの責任も負い、未承認のユーザがシステムをアクセスしないことおよびスレッドがアクセスを承認されている資源だけをアクセスすることを保証する。多くのオペレーティング・システムの機能は、カーネルによって、この例では、一次カーネル102または共用カーネル104によって具現化される。本発明の実施例による、カーネル間でカーネル・サービスを共用するために有用なオペレーティング・システムはマルチスレッディング・オペレーティング・システムであり、その例は、UNIX(登録商標)、Linux(商標)、Windows (登録商標)XP、AIX(商標)、IBM社のi5/OS(商標)、および当業者が思いつくようなその他のものを含む。
The
論理プロセッサ106は、論理パーティションにおける実行のためにスレッドをスケジュールするためのオペレーティング・システムの構造体である。即ち、オペレーティング・システム110は、物理プロセッサまたは仮想プロセッサにおける実行のためにスレッドをスケジュールするのではなく、論理プロセッサ106における実行のためにスレッドをスケジュールする。論理プロセッサにおいてスレッドをスケジュールすることは使いやすい構造体および処理を提供し、その場合、スレッドは、スレッドの観点から、論理パーティション全体の資源すべてを自由に有しているように見える。仮想プロセッサは、物理プロセッサの一部分を割り振られる。しかし、論理プロセッサは、マシンにおける他のすべての実行のように、それが細かいタイム・スライスで物理的に稼動しているという事実にもかかわらず、論理的には1つの完全なプロセッサである。従って、LPARにおける論理プロセッサ上で実行中のスレッドは、そのスレッドから見ると、1つの完全に独立したコンピュータのすべての資源を有しているように見える。即ち、論理プロセッサは、1つのパーティションにおいて稼動しているオペレーティング・システムにおけるディスパッチャがスレッドをディスパッチする対象であり、仮想プロセッサはパーティション・マネージャによってディスパッチされるものである。STモードで動作しているLPARでは、論理プロセッサと仮想プロセッサとの間の対応関係は1対1であり、各仮想プロセッサに対して1つの論理プロセッサが対応する。SMTモードで動作しているLPARでは、論理プロセッサと仮想プロセッサとの間の対応関係はN対1であり、ここでNは1つの仮想プロセッサにおいて支援される論理プロセッサの数である。即ち、各仮想プロセッサに対してN個の論理プロセッサが対応する。
Logical processor 106 is an operating system structure for scheduling threads for execution in a logical partition. That is,
仮想プロセッサ122は、データ構造体およびコンピュータ・プログラム命令から成るサブシステムであり、論理パーティションへのプロセッサ・タイムの割当てを実施する。物理プロセッサの共用プールは、論理パーティションへの部分的な物理プロセッサの割当て(タイム・スライスで)を支援する。タイム・スライスにおいて共用されるそのような部分的物理プロセッサが「仮想プロセッサ」と呼ばれる。共用処理プールに保持された物理プロセッサは論理パーティションの間で共用される。本明細書における例では、物理プロセッサは、1.0が1つの物理プロセッサの処理能力を表す処理単位に従って共用される。仮想プロセッサにおいて実行されるべきスレッドの割り当ては、一般に、仮想プロセッサの論理プロセッサにおいて実行されるべきスレッドの割り当てによって行われる。STモードの場合、各仮想プロセッサが1つの論理プロセッサを有する。しかし、SMTモードの場合、これらの例では、各仮想プロセッサは2つの論理プロセッサを有する。 The virtual processor 122 is a subsystem consisting of data structures and computer program instructions, and implements the allocation of processor time to logical partitions. A shared pool of physical processors supports the allocation (in time slices) of partial physical processors to logical partitions. Such partial physical processors that are shared in a time slice are called “virtual processors”. Physical processors held in the shared processing pool are shared among logical partitions. In the example in this specification, physical processors are shared according to a processing unit in which 1.0 represents the processing capability of one physical processor. The assignment of threads to be executed in the virtual processor is generally performed by the assignment of threads to be executed in the logical processor of the virtual processor. In the ST mode, each virtual processor has one logical processor. However, in the case of SMT mode, in these examples, each virtual processor has two logical processors.
図1のパーティション・マネージャ112は、論理パーティションの下で実行されるシステム・ソフトウェア層である。即ち、パーティション・マネージャ112は、論理パーティションと基本的なコンピュータ・ハードウェア、即ち、物理プロセッサ156を含む物理コンピュータ・コンポーネントとの間で稼動する。パーティション・マネージャは、複数の論理パーティションにおける複数のオペレーティング・システムおよびアプリケーションの設定および実行を支援する。とりわけ、パーティション・マネージャは、ユーザまたはシステム管理者によるパーティション、仮想プロセッサ、および論理プロセッサの設定を支援する。複数の論理パーティションを支援するコンピュータにおけるオペレーティング・システムのカーネルが論理プロセッサにおいてスレッドをスケジュールおよびディスパッチするように、パーティション・マネージャは物理プロセッサにおける仮想プロセッサをスケジュールおよびディスパッチする。
The
論理パーティションにおけるオペレーティング・システムは、特定のアプリケーションまたはアプリケーションのセットを実行するためにしばしば使用されるので、パーティション・マネージャは、全体的なハードウェア・コストを減らすために単一のコンピュータにおいて複数のオペレーティング・システムおよびそれらのアプリケーションを実行することを可能にする。製造および試験システムは同じハードウェアにおいて同時に稼動することが可能である。更に、パーティション・マネージャが複数の論理パーティションを支援することによって、Windows (登録商標)およびLinux(商標)のような種々のオペレーティング・システムが同じ基本コンピュータ・ハードウェアを共用することも可能である。パーティション・マネージャは、「ハイパーバイザ」、「仮想化マネージャ」、または「仮想マシン・モニタ」とも呼ばれることがある一種のソフトウェアである。 Because the operating system in a logical partition is often used to run a specific application or set of applications, a partition manager can run multiple operating systems on a single computer to reduce overall hardware costs. -Allows the system and their applications to run. Manufacturing and test systems can run simultaneously on the same hardware. In addition, the partition manager supports multiple logical partitions, allowing various operating systems such as Windows and Linux to share the same basic computer hardware. A partition manager is a type of software that may also be referred to as a “hypervisor”, “virtualization manager”, or “virtual machine monitor”.
図1の例では、パーティション・マネージャ112はカーネル102、104を含む。カーネルはオペレーティング・システムのコアである。カーネルは、「システム・エグゼクティブ」または「システム・モニタ」とも呼ばれる特権モジュールである。カーネルは、アプリケーションおよび他のオペレーティング・システム・コンポーネントにおける実行スレッドのためにコンピュータ・システム・ハードウェアへの安全なアクセス(メモリ、入出力資源等へのアクセスを含む)を行う責任を負ったソフトウェアである。カーネルは、アプリケーション・プログラムおよびオペレーティング・システムのプロセスを形成する実行スレッドもスケジュールする。カーネルは、一般に、メモリ・ロック、信号、およびセマフォのようなプロセス間通信および同期化のためのサービスも提供する。カーネルは、一般に、潜在的な複雑さをアプリケーションからおよびオペレーティング・システムの他のコンポーネントから隠蔽するためにハードウェアの抽象化(或るタイプのすべての装置にとって普遍的な命令のセット)も提供する。ハードウェア抽象化コンポーネントは、ハードウェア装置の製造仕様に特有の機能を提供するためのソフトウェア・ドライバに依存する。要するに、カーネルは、下記のようなカーネル・サービスを提供する。
・ システム・ハードウェアへのアクセスの制御および調停。
・ プロセス、スレッド、ファイル、デバイス等のような基本抽象化の実装および支援。
・ メモリ、プロセッサ、ディスク、ファイル記述、プロセス記述、スレッド記述等のようなシステム資源の割り振り、およびスケジューリング。
・ システム資源のセキュリティおよび保護の強化。
・ システム・コールを介したサービスを求めるユーザ要求およびアプリケーション要求への応答。
In the example of FIG. 1, the
• Control and arbitration of access to system hardware.
Implement and support basic abstractions such as processes, threads, files, devices, etc.
Allocation and scheduling of system resources such as memory, processor, disk, file description, process description, thread description, etc.
• Enhanced security and protection of system resources.
Respond to user and application requests for service via system calls.
従来はオペレーティング・システム内にインストールされていたオペレーティング・システム・カーネル102、104が、この例では、パーティション・マネージャ112にインストールされ、従って、カーネル・サービスを求めるアプリケーション・プログラムからのシステム・コールがパーティション・マネージャを通して方向付けされる。パーティション・マネージャへのカーネルのインストールは、複数の論理パーティションがカーネルの同じインスタンスを使用することを可能にすることによってシステム資源を節約する。パーティション・マネージャへのカーネルのインストールは、「Sharing A Kernel Of An Operating System Among Logical Partitions」と題した出願番号11/301113の米国特許出願に詳しく説明されている。
The operating system kernels 102, 104 that were previously installed in the operating system are installed in this example in the
図1に例示のコンピュータでは、パーティション・マネージャ112はカーネル共用インターフェース124を示している。カーネル共用インターフェース124は、アプリケーション・プログラミング・インターフェース(API)であり、本発明の実施例によればカーネル間でのカーネル・サービスの共用を容易にするように構成された、例えば、コンピュータ・プログラム命令のライブラリとして実装されるコンピュータ・ソフトウェア・モジュールである。カーネル共用インターフェース124は、第1カーネル102からのカーネル・サービスを求める第1システム・コールを論理パーティション114におけるアプリケーション108から受け取ること、第2カーネル104からのカーネル・サービスを求める第2システム・コールを第1システム・コールに応じて発生すること、およびパーティション・マネージャ112を介して第2カーネル104に第2システム・コールを実行のために送ることができるコンピュータ・プログラム命令を含む。この例におけるカーネル共用インターフェース124は、更に、カーネル・サービスを提供するカーネル104からの応答を受け取ることおよび論理パーティション114におけるアプリケーション108に応答を送ることができるコンピュータ・プログラム命令も含む。カーネル共用インターフェース124は、その応答が第1カーネル102と互換性のある形式および内容を有することを保証することができるコンピュータ・プログラム命令を含むことも可能である。
In the computer illustrated in FIG. 1, the
図1の例では、アプリケーション108、論理パーティション114、論理プロセッサ106、オペレーティング・システム110、パーティション・マネージャ112、仮想プロセッサ122、カーネル102、104等のようなコンピュータ・ソフトウェア・コンポーネントがRAM168に配置されて示されている。しかし、そのようなソフトウェアの多くのコンポーネントは不揮発性メモリ166に記憶されてもよいことは明らかであろう。図1のコンピュータ152は、システム・バス160を介してコンピュータ152の物理プロセッサ156および他のコンポーネントに接続された不揮発性コンピュータ・メモリ166を含む。不揮発性コンピュータ・メモリ166は、ハードディスク・ドライブ170、光ディスク・ドライブ172、電気的消去可能リード・オンリ・メモリ・スペース(いわゆる「EEPROM」または「フラッシュ」メモリ)174、RAMドライブ(図示されてない)、または当業者にとって想起し得る他の種類の不揮発性メモリとして具現化することも可能である。
In the example of FIG. 1, computer software components such as application 108,
図1における例示のコンピュータ152は、1つまたは複数の入出力インターフェース・アダプタ178を含む。コンピュータにおける入出力インターフェース・アダプタは、例えば、コンピュータ・ディスプレイ・スクリーンのようなディスプレイ装置180への出力、並びに、キーボードおよびマウスのようなユーザ入力装置181からのユーザ入力、を制御するためのソフトウェア・ドライバおよびコンピュータ・ハードウェアを介したユーザ指向の入出力を実現している。
The
図1における例示のコンピュータ152は、他のコンピュータ182とのデータ通信を行うための通信アダプタ167を含む。そのようなデータ通信は、例えば、IPネットワークのようなデータ通信ネットワークを介しておよび当業者が想起し得る別の方法で実行することも可能である。通信アダプタは、1つのコンピュータが他のコンピュータにデータ通信を直接にまたはネットワークを介して送るハードウェア・レベルのデータ通信を実現する。本発明の実施例に従ってカーネル間でカーネル・サービスを共用するために有用な通信アダプタの例は、有線のダイヤルアップ通信、有線ネットワーク通信のためのイーサネット(登録商標)(IEEE 802.3)アダプタ、および無線ネットワーク通信のための IEEE 802.11b アダプタを含む。
The
更なる説明のために、図2は、本発明の実施例に従ってカーネル間でカーネル・サービスを共用するための例示的システムを図解した機能ブロック図を示す。図2のシステムは、2つの論理パーティション、即ち、STモードの論理パーティション202およびSMTモードの論理パーティション204を含む。図2のシステムは、6個の論理プロセッサ、即ち、論理パーティション202のための2つ論理プロセッサ230、232および論理パーティション204のための4つ論理プロセッサ234、236、238、240を含む。図2のシステムは、更に、4つの仮想プロセッサ、即ち、論理パーティション202に割り当てられた2つ仮想プロセッサ242、244および論理パーティション204に割り当てられた2つ仮想プロセッサ246、248も含む。図2のシステムは、更に、3つの物理プロセッサ250、252、254も含む。この例では、3つの物理プロセッサ250、252、254の処理容量は、次のように論理パーティションに割り当てられる。
・ 物理プロセッサ250のすべての処理容量が仮想プロセッサ242に完全に割り当てられ、従って、論理プロセッサ230は物理プロセッサ250全体を使用し得る。
・ 物理プロセッサ252の処理容量の半分が仮想プロセッサ244に割り当てられ、従って、論理プロセッサ232は物理プロセッサ252の半分をタイム・スライスで使用し得る。
・ 物理プロセッサ252の処理容量の半分が仮想プロセッサ246に割り当てられる。仮想プロセッサ246は、仮想プロセッサ246用の2つの論理プロセッサ234、236を含む、SMTモードで稼動する論理パーティション204に割り当てられる。論理プロセッサ234および236は、それぞれ、物理プロセッサ252の処理容量の1/4をタイム・スライスで使用し得る。
・ 物理プロセッサ254のすべての処理容量が仮想プロセッサ248に割り当てられる。仮想プロセッサ248は、仮想プロセッサ248用の2つの論理プロセッサ238、240を含む、SMTモードで稼動する論理パーティション204に割り当てられる。論理プロセッサ238および240は、それぞれ、物理プロセッサ254の処理容量の半分をタイム・スライスで使用し得る。
For further explanation, FIG. 2 shows a functional block diagram illustrating an exemplary system for sharing kernel services between kernels in accordance with an embodiment of the present invention. The system of FIG. 2 includes two logical partitions: an ST mode logical partition 202 and an SMT mode logical partition 204. The system of FIG. 2 includes six logical processors: two
• All processing capacity of the
-Half of the processing capacity of the
-Half of the processing capacity of the
All processing capacity of the
図2のシステムは、パーティション・マネージャ112を含む。パーティション・マネージャは、論理パーティションの下で稼動するシステム・ソフトウェア層である。即ち、パーティション・マネージャ112は、論理パーティションと、物理プロセッサ250、252、254を含む基本コンピュータ・ハードウェアである物理コンピュータ・コンポーネントとの間で稼動する。パーティション・マネージャは、複数の論理パーティションにおける複数のオペレーティング・システムおよびアプリケーションの設定および実行を支援する。とりわけ、パーティション・マネージャは、ユーザまたはシステム管理者によるパーティション、仮想プロセッサ、および論理プロセッサの設定を支援する。複数の論理パーティションを支援するコンピュータにおけるオペレーティング・システムのカーネルが論理プロセッサにおけるスレッドをスケジュールし、ディスパッチするように、パーティション・マネージャは物理プロセッサにおける仮想プロセッサをスケジュールし、ディスパッチする。論理パーティションにおけるオペレーティング・システムは、多くの場合、特定のアプリケーションまたはアプリケーションのセットを実行するために使用されるので、パーティション・マネージャは、単一のコンピュータにおいて複数のオペレーティング・システムおよびそれらのアプリケーションを実行することを可能にし、ハードウェア・コスト全体を減少させる。製造および試験システムは同じハードウェアにおいて同時に稼動することが可能である。更に、パーティション・マネージャが複数の論理パーティションを支援することによって、Windows (登録商標)およびLinux(商標)のような種々のオペレーティング・システムが同じ基本コンピュータ・ハードウェアを共用できる。
The system of FIG. 2 includes a
図2の例では、パーティション・マネージャ112はカーネル共用インターフェース124を含む。カーネル共用インターフェース124は、アプリケーション・プログラミング・インターフェース、即ち、「API」であり、本発明の実施例に従ってカーネル間でのカーネル・サービスの共用を容易にするように構成されたコンピュータ・プログラム命令のライブラリとして実装されるコンピュータ・ソフトウェア・モジュールである。カーネル共用インターフェース124は、第1カーネル102からのカーネル・サービスを求める第1システム・コールを論理パーティション202、204におけるアプリケーション206、208から受け取ること、第1システムコールに応じて第2カーネルからのカーネル・サービスを求める第2システム・コールを発生すること、および実行のためにパーティション・マネージャ112を介して第2カーネル104に第2システム・コールを送ることができるコンピュータ・プログラム命令を含む。カーネル共用インターフェース124は、更に、カーネル・サービスを提供するカーネル104からの応答を受け取ることおよび第1システム・コールを送った論理パーティション202、204におけるアプリケーション206、208に応答を送ることができるコンピュータ・プログラム命令を含む。カーネル共用インターフェース124は、その応答が第1カーネル102と互換性のある形式および内容を有することを保証することができるコンピュータ・プログラム命令を含むことも可能である。
In the example of FIG. 2, the
図2のシステムは、論理パーティション202、204に、それぞれ、オペレーティング・システム210、220を含む。この例では、アプリケーションまたはユーザに直接アクセスし得るオペレーティング・システム機能が論理パーティションに残っておリ、一方、オペレーティング・システム・カーネル102、104がパーティション・マネージャ112にインストールされる。そのような機能は、グラフィカル・ユーザ・インターフェース(GUI)212、222に対する支援を含む。そのような機能は、例えば、オペレーティング・システム・ユーティリティおよびライブラリ関数に対するコマンド・ライン・インターフェースを提供するシェル214、224に対する支援も含む。アプリケーションまたはユーザに直接アクセスし得るオペレーティング・システムの機能はシステム・ユーティリティ216、226も含む。システム・ユーティリティは、一般には、例えば、ファイルを作成、オープン、または削除するためのプログラム、ファイルのディレクトリを作成およびナビゲートするためのプログラム、環境変数を読取ってセットし、ファイル内のテキストをサーチする等を行うためのプログラム、のようなGUIまたはシェルを通してアクセスし得るシステム管理のためのプログラムを含む。
The system of FIG. 2 includes operating systems 210 and 220 in logical partitions 202 and 204, respectively. In this example, operating system functions that can be accessed directly by the application or user remain in the logical partition, while operating system kernels 102, 104 are installed in the
アプリケーションまたはユーザに直接アクセスし得るオペレーティング・システムの機能は、システム・コールのライブラリ(218、228)を含み得るし、システム・コールのライブラリ(218、228)として実現することも可能である。システム・コール・ライブラリは、カーネル102、104内の特権ソフトウェア・ルーチンへのコールによってハードウェア依存のサービスおよび他の保護されたシステムへのアクセスを得ることを可能にするアプリケーション・プログラム・インターフェース(API)を表す。カーネル・スペースにおける特権コードに対するそのようなコールは、システム・コール・ライブラリの関数内からコールされた割り込みまたはソフトウェア・トラップによってもたらされる。システム・コール・アクセス・ライブラリ内の関数コールに対するアクセスは、一般に、1つまたは複数のシステム・コール・ライブラリをアプリケーションもしくはユーティリティに、または実行時に動的にロードし得る他のライブラリ(動的にリンクされたライブラリ、即ち、「DLL」)にコンパイルすることによってもたらされる。
Operating system functions that can be directly accessed by an application or user may include a system call library (218, 228) or may be implemented as a system call library (218, 228). The system call library is an application program interface (API) that allows access to hardware-dependent services and other protected systems by calls to privileged software routines in the
更なる説明のために、図3は、本発明の実施例に従ってカーネル間でカーネル・サービスを共用するための例示的なスレッド状態を図解した状態図を示す。図3における円形はスレッド状態を表す。円形間の矢印はカーネル機能によってもたらされた状態遷移を表す。図3において表されたスレッド状態は、作成状態302、作動可能状態304、実行状態306、待ち状態308、および停止状態310を含む。スレッドは、最初に他のスレッドの要求で作成されるとき、一時的に作成状態302にあり、そのスレッドのための情報および資源を収集するためにカーネル時間を与える。カーネルがスレッドに実行の準備をさせると直ちに、そのスレッドが「開始(303)」される、即ち、作動可能状態304に移動する。
For further explanation, FIG. 3 shows a state diagram illustrating an exemplary thread state for sharing kernel services between kernels in accordance with an embodiment of the present invention. A circle in FIG. 3 represents a thread state. The arrows between the circles represent the state transitions brought about by the kernel function. The thread states represented in FIG. 3 include a create
作動可能状態304にあるスレッドは作動可能キュー(図示されてない)に入れられ、実行の機会を待つ。どの作動可能スレッドが次に実行されるかを決定するためのプロセスは「スケジューリング」と呼ばれる。FIFO、ラウンド・ロビン、優先順位等の多くのスケジューリング・アルゴリズムが存在する。スレッドを作動可能状態から実行状態に移すためのカーネル機能は「ディスパッチ(312)」と呼ばれる。スレッドはディスパッチされると実行状態になるので、「ディスパッチ」、「実行中」および「実行状態」は一般に同義である。
A thread in
スレッドは、それがディスパッチされたとき、即ち、実行状態306にあるとき、現在、論理プロセッサにおいて実行するように割り当てられている。スレッドが物理的に実行しているかどうかは、論理プロセッサの仮想プロセッサが現在それのパーティション・マネージャを通してディスパッチされているかどうか、即ち、物理プロセッサ上のタイム・スライスにおいて実行中であるかどうかに依存する。論理プロセッサ用の作動可能キューは、論理プロセッサで実行されるのを待つ作動可能状態にある1つ、2つ、またはそれ以上のスレッドを含み得る。通常、一時に1つのスレッドだけが論理プロセッサにおいて実行状態に置かれる。
A thread is currently assigned to execute in a logical processor when it is dispatched, ie, in the
スレッドは、優先使用またはタイム・アウト314によって、論理プロセッサの所有権を失って、実行状態から作動可能状態に移されることがある。より高い優先順位を有するスレッドがその論理プロセッサ用の作動可能キューに入ると、そのスレッドが優先使用される。スレッドは、それが論理プロセッサの所有権を保持する、即ち、そのタイム・スライス全体にわたって実行状態のままである場合、タイム・アウトする。 A thread may lose ownership of the logical processor and be moved from the running state to the ready state due to preemption or time out 314. When a thread with a higher priority enters the ready queue for that logical processor, that thread is preferentially used. A thread times out if it retains ownership of the logical processor, i.e. remains running throughout its time slice.
スレッドは、システム・コール316を発生して、そのシステム・コールの完了を待つために待ち状態308に入ることによって実行状態306から抜けることも可能である。そのようなシステム・コールは、例えば、或る期間の間スリープするかまたは待機するための意図的な要求、データがディスクから読取られることまたはディスクに書込まれることを求める要求、データが入出力資源から読取られることまたは入出力資源に書込まれることを求める要求等を含む、カーネルによって与えられる何らかのサービスを求める要求であってもよい。
A thread can also exit the
更なる説明のために、図4は、本発明の実施例に従ってカーネルを共用するコンピュータ・システムにおいて仮想プロセッサをスケジュールするための例示的な仮想プロセッサの状態を図解する状態図を示す。図4における円形は仮想プロセッサの状態を表す。円形間の矢印は、パーティション・マネージャの機能によってもたらされる状態遷移を表す。図4に示された仮想プロセッサ状態は作成状態322、作動可能状態324、実行状態326、待ち状態328、および停止状態330を含む。仮想プロセッサは、一般にはブート・タイムで最初に作成されるときには一時的に作成状態322にあり、その仮想プロセッサに対する情報および資源を収集するための時間をパーティション・マネージャに与える。パーティション・マネージャが仮想プロセッサに実行の準備をさせるとき、仮想プロセッサは「開始」される(323)、即ち、作動可能状態324に移される。
For further explanation, FIG. 4 shows a state diagram illustrating exemplary virtual processor states for scheduling virtual processors in a computer system sharing a kernel in accordance with an embodiment of the present invention. The circle in FIG. 4 represents the state of the virtual processor. The arrows between the circles represent the state transitions brought about by the partition manager function. The virtual processor states shown in FIG. 4 include a create
作動可能状態324にある仮想プロセッサは、作動可能キュー(図示されてない)に入れられ、実行の機会を待つ。パーティション・マネージャは、ラウンド・ロビン、優先順位等の1つまたはそれ以上のスケジューリング・アルゴリズムに従って、仮想プロセッサの稼動をスケジュールする。パーティション・マネージャは、仮想プロセッサが割り当てられる物理プロセッサの実際の所有権に対して現時点で最も適任とされた作動可能キューからの単一の仮想プロセッサを作動可能状態から実行状態にディスパッチする。通常、一時に1つの仮想プロセッサだけが物理プロセッサにおいて実行状態に置かれる。
A virtual processor in
仮想プロセッサは、優先使用またはタイム・アウト334によって物理プロセッサの所有権を失い、実行状態から作動可能状態に移されることがある。仮想プロセッサは、より高い優先順位を有する仮想プロセッサが物理プロセッサ用の作動可能キューに入ったときに優先使用される。仮想プロセッサは、それがそのタイム・スライス全体を通して物理プロセッサの所有権を保持する場合、即ち、実行状態のままである場合、タイム・アウトする。 The virtual processor may lose ownership of the physical processor due to preemption or time out 334 and may be moved from the running state to the ready state. A virtual processor is preferentially used when a virtual processor with a higher priority enters the ready queue for the physical processor. A virtual processor times out if it retains ownership of the physical processor throughout its time slice, i.e., remains running.
仮想プロセッサは、システム・コール336を発生して、そのシステム・コールの完了を待つために待ち状態328に入ることにより、実行状態326から抜けることも可能である。そのようなシステム・コールは、或る期間の間スリープするかまたは待機するための意図的な要求、データがディスクから読取られることまたはディスクに書込まれることを求める要求、データが入出力資源から読取られることまたは入出力資源に書込まれることを求める要求等を含む。仮想プロセッサにおいて実行中のスレッド、即ち、論理パーティションの論理プロセッサにおいて実行中のスレッドが、例えば、キーボード入力を待つために或いはディスクからファイルを読取るためにシステム・コールを発生するとき、キーストロークが生じるまで或いはディスク読取りが終了するまで何もしないというだけのために、仮想プロセッサが物理プロセッサを占有する必要がないということを仮想プロセッサが決定することも可能である。この状況では、仮想プロセッサは、或る期間の間、例えば、10分の1秒の間スリープし得る。仮想プロセッサを待ち状態から作動可能状態に戻すことは仮想プロセッサの「覚醒」338と呼ばれる。
The virtual processor can also exit the
更なる説明のために、図5は、本発明の実施例に従ってカーネル間でカーネル・サービスを共用するための更なる例示的なシステムを図解する機能ブロック図を示す。図5のシステムは、アプリケーション108を実行する論理パーティション114、カーネル・サービス404、406を共用するカーネル102、104、およびカーネル共用インターフェース402を含み、これらはすべてコンピュータ152において稼動する。
For further explanation, FIG. 5 shows a functional block diagram illustrating a further exemplary system for sharing kernel services between kernels in accordance with an embodiment of the present invention. The system of FIG. 5 includes a
図5のシステムでは、アプリケーション108がカーネル共用インターフェース402を介してパーティション・マネージャ112におけるカーネル102にシステム・コールを送る。カーネル共用インターフェース402は、パーティション・マネージャ112におけるカーネル102、104との間の双方向の通信を実行し、通信の形式および内容を受信側にとって適正なものに変換する、パーティション・マネージャ112のソフトウェア・モジュールである。この例では、アプリケーション・プログラム108は、カーネル102がカーネル104から得るように構成されたカーネル・サービス404を求めるシステム・コール434をカーネル102に発生する。システム・コール434は、割込みベクトルの形でパーティション・マネージャ112を介してカーネル102に送られる。カーネル102は、カーネル102と互換性のある形式および内容(パラメータ値およびパラメータ・シーケンス)を有するシステム・コールを受け取り、そのシステム・コールが要求するカーネル・サービスが第2のカーネル104によって提供されるべきものであるということを決定する。カーネル102は、カーネル104によって提供されるべきカーネル・サービスを求めるシステム・コールをカーネル共用インターフェース402に、そのシステム・コールをカーネル104に送るための命令と共に送る(410)。
In the system of FIG. 5, the application 108 sends a system call to the
システム・コールをカーネル104に送るための命令に応答して、カーネル共用インターフェース402は、カーネル104からのカーネル・サービスを求める第2システム・コールを発生する。カーネル共用インターフェース402は、カーネル104と互換性のある形式および内容(パラメータ値およびパラメータ・シーケンス)を有する、カーネル104へのシステム・コールを発生する。カーネル共用インターフェース402は、実行のために第2システム・コールをカーネル104に送る(416)。
In response to an instruction to send a system call to the
カーネル104は第2システム・コールを受け取ったことに応答してカーネル・サービス406を提供する。カーソル・サービス406が応答を発生する場合、カーネル104はその応答をカーネル共用インターフェース402に送る(418)。カーネル104によって発生された応答はカーネル104と互換性のある形式および内容を有する。
The
カーネル共用インターフェース402は、カーネル104からの応答を受け取ると、第2応答を発生する。カーネル共用インターフェース402によって発生された第2応答はカーネル102と互換性のある形式および内容を有する。カーネル共用インターフェース402はカーネル102に第2応答を送る(412)。カーネル102は、その第2応答を要求元のアプリケーション108に送る(436)。
When the kernel shared interface 402 receives a response from the
更なる説明のために、図6は、本発明の実施例に従って、カーネル間でカーネル・サービスを共用するための更なる例示システムを図解した機能ブロック図を示す。図6のシステムは、アプリケーション108を実行する論理パーティション114、パーティション・マネージャ112、およびカーネル・サービス406を共用するカーネル102、104を含む。これらはすべてコンピュータ152において稼動する。
For further explanation, FIG. 6 shows a functional block diagram illustrating a further exemplary system for sharing kernel services between kernels according to an embodiment of the present invention. The system of FIG. 6 includes a
図6のシステムでは、アプリケーション108がパーティション・マネージャ112におけるカーネル102にシステム・コールを送る(438)。カーネル102は、共用モジュール420およびカーネル共用インターフェース422を含む。共用モジュール420は、システム・コールにおいてコールされたカーネル・サービスが他のカーネルによって提供されるべきものであるかどうかを決定する、カーネル102のソフトウェア・モジュールである。カーネル共用インターフェース422は、カーネル104とのコミュニケーションを指示し且つそのコミュニケーションをそのコミュニケーションの受け取り側にとって適切な形式および内容に変換する、カーネル102のソフトウェア・モジュールである。共用モジュール420は、アプリケーション108から受け取ったシステム・コールが、第2カーネル104によって提供されるべきカーネル・サービスを要求しているかどうかを決定する。アプリケーション108から受け取ったシステム・コールが、第2カーネル104によって提供されるべきカーネル・サービスを求めるコールを含む場合、カーネル共用インターフェース422は、第2カーネル104と互換性のある形式および内容を有する第2システム・コールを発生する。カーネル共用インターフェース422は、その第2システム・コールを第2カーネル104に送る(426)。
In the system of FIG. 6, the application 108 sends a system call to the
図6の例では、カーネル104はカーネル共用インターフェース424を含む。カーネル共用インターフェース424は、カーネル・サービス406をコールし(428)、カーネル・サービス406が応答を発生する場合には、そのカーネル・サービス406からの応答を受け取る。カーネル・サービス406によって発生された応答は、カーネル104と互換性のある形式および内容を有する。カーネル共用インターフェース424は、カーネル102と互換性のある形式および内容を有する第2応答を発生する。カーネル共用インターフェース424は、第2応答をカーネル102に送る(432)。カーネル102は第2応答を受け取り、それを要求元のアプリケーション108に戻す(440)。
In the example of FIG. 6, the
更なる説明のために、図7は、本発明の実施例に従って、カーネル間でカーネル・サービスを共用するための例示的方法を図解したフローチャートを示す。図7の方法は、1つまたは複数の論理パーティション114、1つまたは複数の論理パーティション114において実行される1つまたは複数のアプリケーション108、パーティション・マネージャ112、およびパーティション・マネージャ112における2つまたはそれ以上のカーネル102、104を有するコンピュータ152において実行することが可能である。図7の例では、パーティション・マネージャ112は、論理パーティションがブートされると、その論理パーティションに資源を割り当てる。論理パーティション114のブート時に、パーティション・マネージャ112は、論理パーティション114において実行されるアプリケーション108にカーネル・サービスを提供するために第1カーネル102を論理パーティション114に対する資源として割り当てる。
For further explanation, FIG. 7 shows a flowchart illustrating an exemplary method for sharing kernel services between kernels in accordance with an embodiment of the present invention. The method of FIG. 7 includes two or more applications in one or more
図7の方法は、論理パーティション114におけるアプリケーション108から、第1カーネル102からのカーネル・サービス522を求める第1システム・コール502をパーティション・マネージャ112が受け取るステップ508を含む。図7の例では、システム・コールは、システム・コール・ライブラリの関数を介してアプリケーションによってカーネル・サービスの実行のためにカーネルに発生される命令である。
The method of FIG. 7 includes a step 508 in which the
第1システム・コール502は、第1カーネル102と互換性のある形式504および内容506を有する。図7の例では、システム・コール502の形式504はコール・パラメータのシーケンスであり、システム・コール502の内容506はシステム・コールの識別情報およびコール・パラメータの値である。システム・コールの識別情報はシステム・コールの名称または割込みベクトルの値によって表すことができる。論理パーティション114は、アプリケーション108から見ると、カーネル・サービスを提供するためにカーネル102だけを有する完全なコンピュータであるように見えるので、システム・コール502の形式および内容は第1カーネル102と互換性を有する。アプリケーション108および論理パーティション114はカーネル102以外のいずれのカーネルも知らない。従って、アプリケーション108および論理パーティション114は、カーネル102と互換性のある形式および内容を有するシステム・コールをカーネル102に提供する。
The first system call 502 has a
図7の方法は、第1システム・コール502に基づいて、第2カーネル104からのカーネル・サービス522を求める第2システム・コール512を発生する(ステップ510)。第2システム・コール512は、第2カーネル104と互換性のある形式514および内容516を有する。図7の例では、第2カーネル104からのカーネル・サービス522を求める第2システム・コール512を発生するステップ510はパーティション・マネージャ112によって実行される。パーティション・マネージャ112は、例えば、下記の表1に示されるようなデータ構造を使うことによって第2システム・コールを発生することができる。
表1の各レコードは、論理パーティション識別子、一次カーネル識別子、共用カーネル識別子、および受け取られたシステム・コールと、共用カーネルに送られるべきシステム・コールの形式および内容を指定する発生されたシステム・コールとを関連付ける。表1では、受け取られたコールは、形式、例えば、コールにおいて指定されたパラメータおよびそれらの色と、内容、例えば、関数を呼び出すために使用されたキーワードおよびパラメータの値との両方を有する。表1の第1レコードでは、例えば、受け取られたコールの形式がパラメータ「x、y、z」をその順序で含み、内容がコマンド・キーワード「F」およびx、y、zの値を含む。図7の例では、カーネル102は、論理パーティション114にカーネル・サービスを提供するように割り当てられたカーネルであるので、一次カーネルである。カーネル104は、そのサービスの1つを共用するカーネルであるので、図7の例では共用カーネルである。システム・コール502は図7の例では受け取られたコールであり、第2システム・コール512は発生されたコールである。パーティション・マネージャは、論理パーティションにおけるアプリケーションからシステム・コールを受け取ると、その論理パーティションと関連した一次カーネル識別子を使うことによって、その受け取られたシステム・コールを表1のようなデータ構造において検索し、発生されたシステム・コールにとって必要な形式および内容を識別する。そこで、パーティション・マネージャは、共用カーネルと互換性のある形式および内容を第2システム・コールに与えるための適切なキーワード、パラメータ等を有する命令を形成することにより第2システム・コールを発生する。
Each record in Table 1 includes a logical partition identifier, a primary kernel identifier, a shared kernel identifier, and a received system call and a generated system call that specifies the type and content of the system call to be sent to the shared kernel. Associate with. In Table 1, the received call has both the format, eg, the parameters specified in the call and their colors, and the content, eg, the keyword and parameter values used to invoke the function. In the first record of Table 1, for example, the format of the received call includes the parameters “x, y, z” in that order, and the content includes the command keyword “F” and the values of x, y, z. In the example of FIG. 7,
図7の方法は、第2システム・コール512を第2カーネル104に実行のために送るステップ518を含む。図7の例では、第2システム・コール512を発生したパーティション・マネージャ112がその第2システム・コールを第2カーネル104に送る。パーティション・マネージャは、表1のようなデータ構造を参照して第2カーネル104を識別することが可能である。例えば、表1の第1レコードでは、論理パーティション識別子「114」を持った一次カーネルに対する論理パーティションから受け取られた、形式および内容「F(x,y,z)」を有する一次カーネル識別子「102」を持った一次カーネルへのシステム・コールに対する共用カーネルが、「104」という共用カーネル識別子を有する共用カーネルに対応する。従って、この例におけるパーティション・マネージャは形式および内容「F(x,y,z)」を有するコールを発生し、その発生されたコールを第2カーネル104に実行のために送る。第2システム・コール512を第2カーネル104に実行のために送るステップ518は、図2、図5、および図6における参照番号124、402、422、424に関連して上述したように、カーネル共用インターフェースの使用によって実行されてもよい。
The method of FIG. 7 includes a
図7の方法は、更に、第2カーネル104がカーネル・サービス522を提供するステップ520を含む。図7の例における第2カーネル104は、第2システム・コール512の内容516によって指定されたパラメータを用いて第2システム・コール512を実行することによってカーネル・サービスを提供する。
The method of FIG. 7 further includes a
図7の方法は、更に、カーネル・サービス522を提供するステップ520の一部として、第2システム・コール512に対する応答を提供するステップ550を含む。カーネル104は、例えば、カーネル・サービス522が応答を発生する場合、そのカーネル・サービスを提供するステップの一部として応答を提供することも可能である。本明細書の恩恵を受ける当業者は、すべてのカーネル・サービスがシステム・コールに対する応答を発生するとは限らないということを認識するであろう。それでもなお、応答を行わないカーネル・サービスも本発明の範囲内にある
The method of FIG. 7 further includes a step 550 of providing a response to the second system call 512 as part of the
図7の方法では、カーネル104によって提供された応答552は、カーネル104と互換性のある形式554および内容556を有する。図7の方法では、カーネル104は、あたかも第2システム・コール512が、カーネル・サービスを提供するためにカーネル104を使用するアプリケーションからのシステム・コールであるかのように応答552を提供する。従って、カーネル104は、カーネル・サービスのためのカーネル104を使用するアプリケーションが、カーネル104からの応答、即ち、カーネル104と互換性のある形式および内容を有する応答において期待する形式554および内容556を有する応答552を提供する。
In the method of FIG. 7, the response 552 provided by the
図7の方法は、更に、カーネル104からの第1応答552を受け取るステップ558および第2応答526を発生するステップ560を含む。図7の例では、パーティション・マネージャ112がカーネル104からの応答を受け取り(ステップ558)、第2応答526を発生する(ステップ560)。パーティション・マネージャ112によって発生された第2応答526はカーネル102と互換性のある形式528および内容530を有する。システム・コール502に対する応答がカーネル102から来ること、従って、その応答がカーネル102と互換性のある形式および内容を有すること、をアプリケーション108が期待しているので、第2応答526はカーネル102と互換性のある形式528および内容530を有する。
The method of FIG. 7 further includes a step 558 of receiving a first response 552 from the
図7の方法は、更に、論理パーティション114におけるアプリケーション108に応答を送るステップ524を含む。図7の例では、論理パーティション114におけるアプリケーション108に応答を送るステップ524はパーティション・マネージャ112によって実行される。アプリケーション108から見れば、カーネル102がカーネル・サービス522を提供したように見える。
The method of FIG. 7 further includes a
更なる説明のために、図8は、本発明の実施例に従って、カーネル間でカーネル・サービスを共用するための更なる例示的方法を図解したフローチャートを示す。図8の方法は図7の方法と類似している。即ち、図8の方法は、パーティション・マネージャ112が、第1カーネル102からのカーネル・サービス522を求める第1システム・コール502を、論理パーティション114におけるアプリケーション108から受け取るステップ508を含む。この場合、第1システム・コール502は、第1カーネル102と互換性のある形式504および内容506を有するものである。図7の方法と同様に、図8の方法は、第1システム・コール502に従って、第2カーネル104からのカーネル・サービス522を求める第2システム・コール512を発生するステップ510を含む。この第2システム・コール512は、第2カーネル104と互換性のある形式514および内容516を有する。図7の方法と同様に、図8の方法は、第2システム・コール512を実行のために第2カーネル104に送るステップ518、および応答808を提供するステップ550を含む、カーネル・サービス522を提供するステップ520を含む。これらのステップはすべて、一般に、図7の方法に関連して説明したように動作する。しかし、図8の方法では、図7の方法と違って、第1カーネル102が第2システム・コール512を発生する。
For further explanation, FIG. 8 shows a flowchart illustrating a further exemplary method for sharing kernel services between kernels in accordance with an embodiment of the present invention. The method of FIG. 8 is similar to the method of FIG. That is, the method of FIG. 8 includes a step 508 in which the
図8の方法は、更に、第1カーネル102が第1システム・コール502を受け取るステップ602を含む。図8の例では、パーティション・マネージャ112が、第1システム・コール502を受け取り(ステップ508)、そのシステム・コールを発生したアプリケーションにカーネル102がカーネル・サービスを提供すること決定し、そのシステム・コールをカーネル102に送る。
The method of FIG. 8 further includes a step 602 in which the
図8の方法は、更に、カーネル・サービス522が第2カーネル104によって提供されるべきであるということを第1カーネル102が決定するステップ604を含む。カーネル102は、カーネル・サービス522がカーネル104によって提供されるべきであるということを、例えば、下記の表2に示されるようなデータ構造を使用することによって決定し得る。
表2の各レコードは、受け取られたシステム・コールを、そのシステム・コールにおいて識別されたカーネル・サービスを提供すべき共用カーネルに関連付け、その共用カーネルへのカーネル・サービスを求めるシステム・コールの形式および内容を指定する。受け取られたシステム・コールがそのようなデータ構造における共用カーネルと関連する場合、カーネル102は、システム・コールによってコールされたカーネル・サービスが第2カーネル、即ち、共用カーネルによって提供されるべきであるということを決定することができる。
Each record in Table 2 associates the received system call with the shared kernel that is to provide the kernel service identified in the system call, and the format of the system call for kernel service to the shared kernel And specify the contents. If the received system call is associated with a shared kernel in such a data structure, the
図8の方法は、更に、第1システム・コール502に従って、第1カーネル102が、カーネル・サービス522を求める第2システム・コール512を発生するステップ510を含む。カーネル102は、表2に示されるようなデータ構造を基準にして第2システム・コール512を発生することが可能である。表2では、受け取られたシステム・コールが形式(例えば、そのコールにおいて指定されたパラメータおよびそれらの順序)並びに内容(例えば、関数を呼び出すために使用されるコマンド・キーワードおよびパラメータの値)の両方を有する。例えば、表2の第1レコードでは、受け取られたシステム・コールの形式がパラメータ「x,y,z」をその順序で含み、内容がコマンド・キーワード「F」ならびに x、y、および z の値を含む。図8の例では、カーネル102は、論理パーティション114にカーネル・サービスを提供するように割り当てられるので、一次カーネルである。図8の例では、カーネル104は、そのサービスの1つを共用するカーネルであるので、共用カーネルである。システム・コール502は、図8の例では受け取られたシステム・コールであり、第2システム・コール512は発生されたシステム・コールである。カーネル102は、パーティション・マネージャ112からシステム・コールを受け取ると、その受け取られたシステム・コールの識別子を使用することにより、カーネル・サービスを提供する共用カーネルの身元と、カーネル・サービスを求める共用カーネルへの発生されたシステム・コールにとって必要な形式および内容とを、表2のようなデータ構造において検索することが可能である。そこで、カーネル102は、適切なキーワードおよびパラメータを用いて命令を形成することによって、共用カーネルと互換性のあるように正しい形式で第2システム・コール512を発生することが可能である。
The method of FIG. 8 further includes a
図8の方法は、第2カーネル104がカーネル・サービス522を提供するステップ520を含み、そのステップ520は、カーネル・サービス522によって発生された応答を提供するステップ550を含む。この例では、第2カーネル104が、第2システム・コールに対する応答808を第1カーネル102に提供する。なお、応答808は第1カーネル102と互換性のある形式810および内容812を有する。従って、この例におけるカーネル104は、カーネル102と互換性のある応答を定式化することを可能にするに十分な情報でもって構成される。それとは別に、カーネル104が、カーネル104と互換性のある形式および内容を有する応答を提供してもよく、カーネル102が、カーネル102と互換性のある形式および内容を有するようにその応答を変換するように構成されてもよい。いずれの方法も、要求元のパーティションおよび要求元のアプリケーションに応答が戻されるときまでには、その応答はカーネル102と互換性のある形式および内容を有することになるであろう。というのは、カーネル102と互換性のある戻りデータは、要求元のアプリケーションが期待しているものであるためである。
The method of FIG. 8 includes a
図8の方法は、更に、第1カーネル102において応答808を受け取るステップ814および第1カーネル102からアプリケーション108に応答を送るステップ816を含む。この例における応答808はカーネル102と互換性のある形式810および内容812を既に有するので、第1カーネル102からアプリケーション108に応答を送るステップ816は、修正のない応答をカーネル102を通してアプリケーション108に送ることによって実行されてもよい。
The method of FIG. 8 further includes receiving 814 a
更なる説明のために、図9は、本発明の実施例に従って、カーネル間でカーネル・サービスを共用するための更なる例示的方法を図解したフローチャートを示す。図9の方法は図7の方法と類似している。即ち、図9の方法は、第1カーネル102からのカーネル・サービス521を求める第1システム・コール502を、論理パーティション114におけるアプリケーション108から、パーティション・マネージャ112が受け取るステップ508と、第1システム・コール502に従って、第2カーネル104からのカーネル・サービス522を求める第2システム・コール704を発生するステップ510を含む。なお、第1システム・コール502は、第1カーネル102と互換性のある形式504および内容506を有する。この例では、カーネル・サービス521およびカーネル・サービス522は同等のカーネル・サービス、例えば、ディスク入出力要求、メモリ割振り要求等である。カーネル・サービス521は、カーネル102によって提供されるようなサービスの形式であり、カーネル・サービス522は、カーネル104によって提供されるようなサービスの形式である。カーネル102は、サービス521によって表された、カーネル104からのサービスのタイプを要求により得るように構成される。カーネル104は、本発明の実施例に従ってカーネル・サービス522を共用するように構成される。
For further explanation, FIG. 9 shows a flowchart illustrating a further exemplary method for sharing kernel services between kernels in accordance with an embodiment of the present invention. The method of FIG. 9 is similar to the method of FIG. That is, the method of FIG. 9 includes step 508 in which the
しかし、図9の方法では、図7の方法とは違って、第1カーネル102が第2システム・コール704を発生する。更に、図9の方法では、第2カーネル104からのカーネル・サービス522を求める第2システム・コールを第1システム・コールに従って発生するステップ510は、汎用システム・コール704を発生するステップ702によって実行される。この例における汎用システム・コール704は、汎用形式706および汎用内容708を有するシステム・コールである。汎用形式および汎用内容は、この例では、第2カーネル104を含む複数のカーネルによって、互換性のあるものとして受け入れられる形式および内容である。
However, unlike the method of FIG. 7, the
図9の方法は、更に、第2システム・コール、即ち、汎用システム・コール704を、実行のために第2カーネル104に送るステップ518を含む。図9の例では、パーティション・マネージャ112は、汎用システム・コール704を発生すると、それを第2カーネル104に送る。パーティション・マネージャは、表1のようなデータ構造を参照して第2カーネル104を識別することができる。汎用システム・コール704を実行のために第2カーネル104に送るステップ518は、図2、図5、および図6における参照番号124、402、422、424に関連して上述したように、カーネル共用インターフェースの使用によって実行されてもよい。
The method of FIG. 9 further includes a
図9の方法では、第2カーネル104がカーネル・サービス522を提供するステップ710は、第2カーネル104が汎用システム・コール704に対する汎用応答714を提供するステップ712を含む。この例における汎用応答714は、汎用形式716および汎用内容718を有する応答である。汎用形式および汎用応答は、この例では第1カーネル102を含む複数のカーネルによって互換性のあるものとして受け入れられた形式および内容である。
In the method of FIG. 9, step 710 in which the
カーネル間でカーネル・サービスを共用するための十分に機能的なコンピュータ・システムに関連して、本発明の実施例を広範に説明した。しかし、任意の適当なデータ処理システムによる使用のために信号保持媒体に設けられたコンピュータ・プログラムとして本発明を具現化することも可能であることは当業者には明らかであろう。そのような信号保持媒体は、磁性媒体、光学的媒体、または他の適当な媒体を含む、機械可読情報のための伝送媒体または記録可能媒体であってもよい。記録可能媒体の例は、ハードディスク・ドライブにおける磁気ディスク、光学的ドライブ用のコンパクト・ディスク、磁気テープ、および当業者が想起し得る他の媒体を含む。伝送媒体の例は、音声通信のための電話網と、例えば、Ethernet(登録商標)並びにインターネット・プロトコルおよびワールド・ワイド・ウェブを用いて通信を行うネットワークのようなデジタル・データ通信ネットワークを含む。適当なプログラミング手段を有する任意のコンピュータ・システムが、本発明の方法のステップを、コンピュータ・プログラムとして具体化して実行し得るということは当業者には容易に明らかであろう。本明細書において開示された実施例の幾つかは、コンピュータ・ハードウェアにインストールされて実行されるソフトウェアに向けられているが、それでも、ファームウェアとしてまたはハートウェアとして実装される別の実施例も本発明の範囲内にあるということは当業者には明らかであろう。 Embodiments of the present invention have been described extensively in the context of a fully functional computer system for sharing kernel services between kernels. However, it will be apparent to those skilled in the art that the present invention may be embodied as a computer program provided on a signal bearing medium for use by any suitable data processing system. Such signal bearing media may be transmission media or recordable media for machine-readable information, including magnetic media, optical media, or other suitable media. Examples of recordable media include magnetic disks in hard disk drives, compact disks for optical drives, magnetic tapes, and other media that may occur to those skilled in the art. Examples of transmission media include a telephone network for voice communication and a digital data communication network, such as a network that communicates using, for example, Ethernet and Internet protocols and the World Wide Web. It will be readily apparent to those skilled in the art that any computer system having suitable programming means can implement the method steps of the present invention as a computer program. Although some of the embodiments disclosed herein are directed to software that is installed and executed on computer hardware, still other embodiments implemented as firmware or as heartware are also present. It will be apparent to those skilled in the art that it is within the scope of the invention.
本発明の主旨から逸脱することなく、本発明の種々の実施例において修正および変更を行い得ることは、以上の説明から明らかであろう。本明細書における説明は単に説明を目的とするものであって、限定の意味で解釈されるべきではない。本発明の範囲は「特許請求の範囲」の記載によってのみ限定されるべきである。 It will be apparent from the foregoing description that modifications and changes may be made in the various embodiments of the present invention without departing from the spirit of the invention. The description herein is for illustrative purposes only and should not be construed in a limiting sense. The scope of the present invention should be limited only by the description of the claims.
Claims (8)
パーティション・マネージャが、第1カーネルと互換性のある形式および内容を有し且つ前記第1カーネルからのカーネル・サービスを求める第1システム・コールを、論理パーティションにおけるアプリケーションから受け取るステップと、
前記第1システム・コールに従って、第2カーネルと互換性のある形式および内容を有し且つ前記第2カーネルからのカーネル・サービスを求める第2システム・コールを発生するステップと、
前記第2システム・コールを、前記パーティション・マネージャを介して前記第2カーネルに、実行のために送るステップと
を含む、方法。 A method of sharing kernel services between kernels,
A partition manager receiving a first system call from an application in a logical partition having a format and content compatible with the first kernel and seeking kernel services from the first kernel;
Generating a second system call having a format and content compatible with a second kernel and seeking kernel services from the second kernel according to the first system call;
Sending the second system call to the second kernel for execution via the partition manager.
前記第1カーネルと互換性のある形式および内容を有する応答を、前記論理パーティションにおけるアプリケーションに送るステップと
を更に有する、請求項1に記載の方法。 Said second kernel providing kernel services;
The method of claim 1, further comprising: sending a response having a format and content compatible with the first kernel to an application in the logical partition.
前記カーネル・サービスが前記第2カーネルによって提供されるべきであることを前記第1カーネルが決定するステップと
を更に含み、
前記第2システム・コールを発生するステップは、前記第1カーネルが、前記第1システム・コールに従って前記第2システム・コールを発生する、請求項1に記載の方法。 Receiving the first system call by the first kernel;
The first kernel determining that the kernel service is to be provided by the second kernel; and
The method of claim 1, wherein generating the second system call comprises causing the first kernel to generate the second system call according to the first system call.
パーティション・マネージャが、第1カーネルと互換性のある形式および内容を有し且つ前記第1カーネルからのカーネル・サービスを求める第1システム・コールを、論理パーティションにおけるアプリケーションから受け取るためのコンピュータ・プログラム命令と、
前記第1システム・コールに従って、第2カーネルと互換性のある形式および内容を有し且つ前記第2カーネルからのカーネル・サービスを求める第2システム・コールを発生するためのコンピュータ・プログラム命令と、
前記第2システム・コールを、前記パーティション・マネージャを介して前記第2カーネルに、実行のために送るためのコンピュータ・プログラム命令と
を記憶している、装置。 An apparatus for sharing kernel services between kernels, comprising a computer processor and computer memory connected to the computer processor, the computer memory comprising:
Computer program instructions for a partition manager to receive a first system call from an application in a logical partition that has a format and content compatible with the first kernel and that seeks kernel services from the first kernel When,
Computer program instructions for generating a second system call having a format and content compatible with a second kernel and seeking kernel services from the second kernel according to the first system call;
An apparatus storing computer program instructions for sending the second system call to the second kernel for execution via the partition manager.
パーティション・マネージャが、第1カーネルと互換性のある形式および内容を有し且つ前記第1カーネルからのカーネル・サービスを求める第1システム・コールを、論理パーティションにおけるアプリケーションから受け取るための手順と、
前記第1システム・コールに従って、第2カーネルと互換性のある形式および内容を有し且つ前記第2カーネルからの、カーネル・サービスを求める第2システム・コールを発生するための手順と、
前記第2システム・コールを、前記パーティション・マネージャを介して前記第2カーネルに、実行のために送るための手順と
をコンピュータに実行させるためのコンピュータ・プログラム。 A computer program recorded on a signal holding medium for sharing kernel services between kernels,
A procedure for the partition manager to receive from the application in the logical partition a first system call having a format and content compatible with the first kernel and seeking kernel services from the first kernel;
In accordance with the first system call, a procedure for generating a second system call having a format and content compatible with a second kernel and seeking kernel services from the second kernel;
A computer program for causing a computer to execute a procedure for sending the second system call to the second kernel via the partition manager for execution.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/422,656 US9201703B2 (en) | 2006-06-07 | 2006-06-07 | Sharing kernel services among kernels |
US11/422,656 | 2006-06-07 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2007328782A true JP2007328782A (en) | 2007-12-20 |
JP5015665B2 JP5015665B2 (en) | 2012-08-29 |
Family
ID=38823438
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007147678A Active JP5015665B2 (en) | 2006-06-07 | 2007-06-04 | Method, apparatus, and computer program for sharing kernel services between kernels |
Country Status (3)
Country | Link |
---|---|
US (1) | US9201703B2 (en) |
JP (1) | JP5015665B2 (en) |
CN (1) | CN100501681C (en) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008108260A (en) * | 2006-10-26 | 2008-05-08 | Internatl Business Mach Corp <Ibm> | Method, computer system and computer program for providing operating system service of policy base in hypervisor on computer system |
JP2010118044A (en) * | 2008-09-30 | 2010-05-27 | Intel Corp | Method and system to perform computer task in reduced power consumption state |
JP2010225122A (en) * | 2009-03-25 | 2010-10-07 | Fujitsu Ltd | Method for offloading system call processing, and loosely coupled cpu type information processing apparatus and communication processing apparatus with the same applied |
JP2013506179A (en) * | 2009-09-25 | 2013-02-21 | ブル エスエイエス | Execution management system combining instruction threads and management method |
JP2021530760A (en) * | 2018-06-20 | 2021-11-11 | 東莞市李群自動化技術有限公司 | Distributed multi-node control system and method |
Families Citing this family (48)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8819705B2 (en) * | 2010-10-01 | 2014-08-26 | Z124 | User interaction support across cross-environment applications |
US20130024812A1 (en) | 2011-07-13 | 2013-01-24 | Z124 | Foreground/background assortment of hidden windows |
US8966379B2 (en) | 2010-10-01 | 2015-02-24 | Z124 | Dynamic cross-environment application configuration/orientation in an active user environment |
US8726294B2 (en) | 2010-10-01 | 2014-05-13 | Z124 | Cross-environment communication using application space API |
US8933949B2 (en) | 2010-10-01 | 2015-01-13 | Z124 | User interaction across cross-environment applications through an extended graphics context |
US9047102B2 (en) | 2010-10-01 | 2015-06-02 | Z124 | Instant remote rendering |
US9152582B2 (en) | 2010-10-01 | 2015-10-06 | Z124 | Auto-configuration of a docked system in a multi-OS environment |
US20130024778A1 (en) | 2011-07-13 | 2013-01-24 | Z124 | Dynamic cross-environment application configuration/orientation |
AU2003298560A1 (en) | 2002-08-23 | 2004-05-04 | Exit-Cube, Inc. | Encrypting operating system |
US8219823B2 (en) * | 2005-03-04 | 2012-07-10 | Carter Ernst B | System for and method of managing access to a system using combinations of user information |
US8782047B2 (en) * | 2009-10-30 | 2014-07-15 | Hitachi Data Systems Corporation | Fixed content storage within a partitioned content platform using namespaces |
US10452820B2 (en) * | 2007-06-26 | 2019-10-22 | International Business Machines Corporation | Thread-based software license management |
US20090158299A1 (en) * | 2007-10-31 | 2009-06-18 | Carter Ernst B | System for and method of uniform synchronization between multiple kernels running on single computer systems with multiple CPUs installed |
US8424078B2 (en) | 2007-11-06 | 2013-04-16 | International Business Machines Corporation | Methodology for secure application partitioning enablement |
JP4888742B2 (en) | 2009-02-25 | 2012-02-29 | ソニー株式会社 | Information processing apparatus and method, and program |
US8843927B2 (en) * | 2009-04-23 | 2014-09-23 | Microsoft Corporation | Monitoring and updating tasks arrival and completion statistics without data locking synchronization |
US9367331B2 (en) * | 2009-07-20 | 2016-06-14 | Google Technology Holdings LLC | Multi-environment operating system |
US9348633B2 (en) * | 2009-07-20 | 2016-05-24 | Google Technology Holdings LLC | Multi-environment operating system |
US8868899B2 (en) * | 2009-07-20 | 2014-10-21 | Motorola Mobility Llc | System and method for switching between environments in a multi-environment operating system |
US9372711B2 (en) * | 2009-07-20 | 2016-06-21 | Google Technology Holdings LLC | System and method for initiating a multi-environment operating system |
US9389877B2 (en) * | 2009-07-20 | 2016-07-12 | Google Technology Holdings LLC | Multi-environment operating system |
CN102667714B (en) * | 2009-11-25 | 2015-08-05 | 飞思卡尔半导体公司 | Support the method and system that the function provided by the resource outside operating system environment is provided |
CN103229156B (en) | 2010-10-01 | 2016-08-10 | Flex Electronics ID Co.,Ltd. | Automatically configuring of docking system in multiple operating system environment |
US9052800B2 (en) | 2010-10-01 | 2015-06-09 | Z124 | User interface with stacked application management |
EP2622443B1 (en) | 2010-10-01 | 2022-06-01 | Z124 | Drag move gesture in user interface |
US8761831B2 (en) | 2010-10-15 | 2014-06-24 | Z124 | Mirrored remote peripheral interface |
US8983536B2 (en) | 2010-10-22 | 2015-03-17 | Google Technology Holdings LLC | Resource management in a multi-operating environment |
US9354900B2 (en) | 2011-04-28 | 2016-05-31 | Google Technology Holdings LLC | Method and apparatus for presenting a window in a system having two operating system environments |
CN103608775B (en) * | 2011-06-29 | 2017-02-22 | 华为技术有限公司 | Method and device for processing data by utilizing threads |
CN102955704A (en) * | 2011-08-26 | 2013-03-06 | 联咏科技股份有限公司 | Software executing method and electronic device thereof |
US8842057B2 (en) | 2011-09-27 | 2014-09-23 | Z124 | Detail on triggers: transitional states |
US20130293573A1 (en) | 2012-05-02 | 2013-11-07 | Motorola Mobility, Inc. | Method and Apparatus for Displaying Active Operating System Environment Data with a Plurality of Concurrent Operating System Environments |
US9342325B2 (en) | 2012-05-17 | 2016-05-17 | Google Technology Holdings LLC | Synchronizing launch-configuration information between first and second application environments that are operable on a multi-modal device |
CN103095707B (en) * | 2013-01-17 | 2015-09-09 | 苏州亿倍信息技术有限公司 | A kind of information processing method of terminal security and system |
CN104424034A (en) * | 2013-09-04 | 2015-03-18 | 华为技术有限公司 | Hardware resource access method and hardware resource access device |
WO2015089839A1 (en) * | 2013-12-20 | 2015-06-25 | 华为技术有限公司 | Method and device for processing messages in shared queue and receiving core |
CN104699485A (en) * | 2015-03-19 | 2015-06-10 | 神华集团有限责任公司 | Massive program management method and massive program construction method |
CN106020980A (en) * | 2015-05-21 | 2016-10-12 | 中国科学院计算技术研究所 | Virtual desktop oriented VCPU (Virtual Central Processing Unit) scheduling method |
US10956193B2 (en) * | 2017-03-31 | 2021-03-23 | Microsoft Technology Licensing, Llc | Hypervisor virtual processor execution with extra-hypervisor scheduling |
CN108171862B (en) * | 2018-01-08 | 2021-03-09 | 北京值得买科技股份有限公司 | Number sending method and number sender |
US10824584B1 (en) * | 2018-04-03 | 2020-11-03 | Xilinx, Inc. | Device with data processing engine array that enables partial reconfiguration |
CN111382111B (en) * | 2018-12-29 | 2023-03-28 | 阿里巴巴集团控股有限公司 | Application processor, coprocessor and data processing equipment |
US11442873B2 (en) * | 2019-09-06 | 2022-09-13 | Meta Platforms Technologies, Llc | Microkernel architecture with enhanced reliability and security |
CN110597912B (en) * | 2019-09-17 | 2024-01-16 | 深圳前海微众银行股份有限公司 | Block storage method and device |
CN114981810B (en) * | 2020-01-07 | 2023-06-23 | 维萨国际服务协会 | Universal non-contact kernel system and method |
US11080111B1 (en) * | 2020-02-24 | 2021-08-03 | Nvidia Corporation | Technique for sharing context among multiple threads |
CN116795557B (en) * | 2022-03-15 | 2024-07-23 | 华为技术有限公司 | Communication method, electronic device, and readable storage medium |
CN115048679B (en) * | 2022-08-15 | 2022-12-27 | 南方电网数字电网研究院有限公司 | Multi-service partition isolation chip integrating in-chip safety protection function |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0756746A (en) * | 1993-08-11 | 1995-03-03 | Fujitsu Ltd | System call function processor |
JP2002544620A (en) * | 1999-05-19 | 2002-12-24 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Event-driven communication interface for logically partitioned computers |
JP2004535615A (en) * | 2001-03-08 | 2004-11-25 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Shared I / O in partitioned processing environment |
JP2005513644A (en) * | 2001-12-20 | 2005-05-12 | ノキア コーポレイション | Method and system for performing operating system functions and electronic device |
US20050125486A1 (en) * | 2003-11-20 | 2005-06-09 | Microsoft Corporation | Decentralized operating system |
US20070136721A1 (en) * | 2005-12-12 | 2007-06-14 | Andrew Dunshea | Sharing a kernel of an operating system among logical partitions |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US1082006A (en) | 1913-12-23 | Electric Compositor Co | Justifying mechanism. | |
US1082845A (en) | 1912-07-24 | 1913-12-30 | John E Bucher | Synthetic production of cyanogen compounds and the like. |
US5909545A (en) * | 1996-01-19 | 1999-06-01 | Tridia Corporation | Method and system for on demand downloading of module to enable remote control of an application program over a network |
US5956507A (en) | 1996-05-14 | 1999-09-21 | Shearer, Jr.; Bennie L. | Dynamic alteration of operating system kernel resource tables |
WO1997046956A1 (en) * | 1996-06-07 | 1997-12-11 | At & T Corp. | Internet file system |
US6075939A (en) * | 1997-09-27 | 2000-06-13 | Lynx Real-Trime Systems, Inc. | Tightly coupled, scalable module based micro-kernel operating system architecture |
US6647508B2 (en) | 1997-11-04 | 2003-11-11 | Hewlett-Packard Development Company, L.P. | Multiprocessor computer architecture with multiple operating system instances and software controlled resource allocation |
US6571274B1 (en) * | 1998-11-05 | 2003-05-27 | Beas Systems, Inc. | Clustered enterprise Java™ in a secure distributed processing system |
US6691146B1 (en) * | 1999-05-19 | 2004-02-10 | International Business Machines Corporation | Logical partition manager and method |
US7219354B1 (en) | 2000-12-22 | 2007-05-15 | Ensim Corporation | Virtualizing super-user privileges for multiple virtual processes |
US7461148B1 (en) | 2001-02-16 | 2008-12-02 | Swsoft Holdings, Ltd. | Virtual private server with isolation of system components |
US8549114B2 (en) * | 2002-06-12 | 2013-10-01 | Bladelogic, Inc. | Method and system for model-based heterogeneous server configuration management |
EP1467282B1 (en) | 2003-04-09 | 2008-10-01 | Jaluna SA | Operating systems |
US20040226017A1 (en) | 2003-05-09 | 2004-11-11 | Leonard Ozgur C. | Mechanism for associating resource pools with operating system partitions |
US7120753B2 (en) | 2004-04-20 | 2006-10-10 | International Business Machines Corporation | System and method for dynamically adjusting read ahead values based upon memory usage |
US20060010446A1 (en) * | 2004-07-06 | 2006-01-12 | Desai Rajiv S | Method and system for concurrent execution of multiple kernels |
US8099730B2 (en) * | 2006-03-30 | 2012-01-17 | Intel Corporation | Heterogeneous virtualization of host and guest OS having different register sizes using translation layer to extract device port numbers for host OS system memory addresses |
US12036573B2 (en) | 2018-09-10 | 2024-07-16 | Tokyo Electron Limited | Coating film forming method and coating film forming apparatus |
-
2006
- 2006-06-07 US US11/422,656 patent/US9201703B2/en not_active Expired - Fee Related
-
2007
- 2007-05-17 CN CNB2007101038735A patent/CN100501681C/en active Active
- 2007-06-04 JP JP2007147678A patent/JP5015665B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0756746A (en) * | 1993-08-11 | 1995-03-03 | Fujitsu Ltd | System call function processor |
JP2002544620A (en) * | 1999-05-19 | 2002-12-24 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Event-driven communication interface for logically partitioned computers |
JP2004535615A (en) * | 2001-03-08 | 2004-11-25 | インターナショナル・ビジネス・マシーンズ・コーポレーション | Shared I / O in partitioned processing environment |
JP2005513644A (en) * | 2001-12-20 | 2005-05-12 | ノキア コーポレイション | Method and system for performing operating system functions and electronic device |
US20050125486A1 (en) * | 2003-11-20 | 2005-06-09 | Microsoft Corporation | Decentralized operating system |
US20070136721A1 (en) * | 2005-12-12 | 2007-06-14 | Andrew Dunshea | Sharing a kernel of an operating system among logical partitions |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008108260A (en) * | 2006-10-26 | 2008-05-08 | Internatl Business Mach Corp <Ibm> | Method, computer system and computer program for providing operating system service of policy base in hypervisor on computer system |
JP2010118044A (en) * | 2008-09-30 | 2010-05-27 | Intel Corp | Method and system to perform computer task in reduced power consumption state |
JP2012164337A (en) * | 2008-09-30 | 2012-08-30 | Intel Corp | Method and system for performing computer task in reduced power consumption state |
US8910169B2 (en) | 2008-09-30 | 2014-12-09 | Intel Corporation | Methods and systems to perform a computer task in a reduced power consumption state |
JP2010225122A (en) * | 2009-03-25 | 2010-10-07 | Fujitsu Ltd | Method for offloading system call processing, and loosely coupled cpu type information processing apparatus and communication processing apparatus with the same applied |
JP2013506179A (en) * | 2009-09-25 | 2013-02-21 | ブル エスエイエス | Execution management system combining instruction threads and management method |
JP2021530760A (en) * | 2018-06-20 | 2021-11-11 | 東莞市李群自動化技術有限公司 | Distributed multi-node control system and method |
JP7507098B2 (en) | 2018-06-20 | 2024-06-27 | 東莞市李群自動化技術有限公司 | Distributed multi-node control system and method |
Also Published As
Publication number | Publication date |
---|---|
US20070288941A1 (en) | 2007-12-13 |
JP5015665B2 (en) | 2012-08-29 |
CN100501681C (en) | 2009-06-17 |
CN101086712A (en) | 2007-12-12 |
US9201703B2 (en) | 2015-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5015665B2 (en) | Method, apparatus, and computer program for sharing kernel services between kernels | |
US9189291B2 (en) | Sharing a kernel of an operating system among logical partitions | |
US7406699B2 (en) | Enhanced runtime hosting | |
US10452572B2 (en) | Automatic system service resource management for virtualizing low-latency workloads that are input/output intensive | |
US8032899B2 (en) | Providing policy-based operating system services in a hypervisor on a computing system | |
US9652280B2 (en) | CPU scheduler configured to support latency sensitive virtual machines | |
US9396013B2 (en) | Method for controlling a virtual machine and a virtual machine system | |
RU2530345C2 (en) | Scheduler instances in process | |
US8713582B2 (en) | Providing policy-based operating system services in an operating system on a computing system | |
US8499143B2 (en) | Method for shortening the boot time of a computer system | |
JP2013516021A (en) | Hypervisor separation of processor core | |
US8291426B2 (en) | Memory allocators corresponding to processor resources | |
US9417914B2 (en) | Regaining control of a processing resource that executes an external execution context | |
US20220027183A1 (en) | Fine-grained application-aware latency optimization for virtual machines at runtime | |
US8806180B2 (en) | Task execution and context switching in a scheduler | |
US7426582B1 (en) | Method, system, and apparatus for servicing PS/2 devices within an extensible firmware interface environment | |
US9304831B2 (en) | Scheduling execution contexts with critical regions |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20100323 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20120427 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20120515 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20120607 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20150615 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5015665 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 Free format text: JAPANESE INTERMEDIATE CODE: R150 |