JP4620097B2 - Virtual computer system and schedule adjustment method in the same system - Google Patents
Virtual computer system and schedule adjustment method in the same system Download PDFInfo
- Publication number
- JP4620097B2 JP4620097B2 JP2007242929A JP2007242929A JP4620097B2 JP 4620097 B2 JP4620097 B2 JP 4620097B2 JP 2007242929 A JP2007242929 A JP 2007242929A JP 2007242929 A JP2007242929 A JP 2007242929A JP 4620097 B2 JP4620097 B2 JP 4620097B2
- Authority
- JP
- Japan
- Prior art keywords
- guest
- time
- cpu
- reception
- communication
- 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.)
- Expired - Fee Related
Links
Images
Description
本発明は、CPUを含む物理計算機上で動作する仮想計算機マネージャによって提供される仮想計算機実行環境で複数のゲストOSが時分割で実行される仮想計算機システムに係り、特に複数のゲストOSを時分割で実行させるためのスケジュール(つまりゲストOSをディスパッチするためのスケジュール)を調整するのに好適な仮想計算機システム及び同システムにおけるスケジュール調整方法に関する。 The present invention relates to a virtual machine system in which a plurality of guest OSs are executed in a time-sharing manner in a virtual machine execution environment provided by a virtual machine manager operating on a physical machine including a CPU, and in particular, a plurality of guest OSs are time-shared. The present invention relates to a virtual machine system suitable for adjusting a schedule for execution in the system (that is, a schedule for dispatching a guest OS) and a schedule adjustment method in the system.
近年、パーソナルコンピュータのような計算機システムにおいて、仮想計算機(Virtual Machine:VM)の技術を応用した研究や開発が行われているまた、仮想計算機システムを実現するための商用のアプリケーションプログラムが実際に広く利用されている。また、メインフレームにおいて古くからハードウェア(HW)で構成された仮想計算機支援機構を用いた仮想計算機システムも存在する。 In recent years, in computer systems such as personal computers, research and development using virtual machine (VM) technology has been carried out, and commercial application programs for realizing virtual computer systems are actually widely used. It's being used. There is also a virtual machine system that uses a virtual machine support mechanism configured with hardware (HW) for a long time in the mainframe.
一般に、パーソナルコンピュータのような計算機システム(物理計算機)は、CPU(実CPU)、各種の入出力(I/O)装置(実I/O装置)及びメモリ(実メモリ)を含むHW(実HW)で構成されている。この実HWで構成される物理計算機(物理環境)上でハイパバイザOS(オペレーティングシステム)である仮想計算機マネージャ(Virtual Machine Manager:VMM)が動作し、このVMMの提供する仮想計算機実行環境のもとで複数のゲストOSが動作をする。 In general, a computer system (physical computer) such as a personal computer includes a CPU (real CPU), various input / output (I / O) devices (real I / O devices), and a memory (real memory) HW (real HW). ). A virtual machine manager (VMM), which is a hypervisor OS (operating system), operates on a physical computer (physical environment) configured with this real HW, and is under the virtual computer execution environment provided by this VMM. Multiple guest OSes operate.
VMMは、実CPU、実I/O装置及び実メモリのような物理資源の管理を行い、それらを仮想化して仮想計算機(VM)を構築する。つまりVMMは、実CPU、実I/O装置及び実メモリのような物理資源(HW資源)を時間的、空間(領域)的に、仮想計算機のそれぞれ仮想CPU、仮想I/O装置及び仮想メモリとして割り当てることによって、当該仮想計算機を構築(生成)する。各ゲストOSは仮想計算機にロードされて、当該仮想計算機内の仮想CPUによって実行される。このようにVMMは、実CPU、実I/O装置及び実メモリのような物理資源を各ゲストOSに割り当てることによって、当該各ゲストOSが同時に動作できる環境を提供し、仮想計算機システムの管理を行う。 The VMM manages physical resources such as a real CPU, real I / O device, and real memory, and virtualizes them to construct a virtual machine (VM). In other words, the VMM has a physical resource (HW resource) such as a real CPU, a real I / O device, and a real memory in terms of time and space (area) in a virtual machine, a virtual CPU, a virtual I / O device, and a virtual memory. The virtual machine is constructed (generated) by assigning as Each guest OS is loaded into a virtual machine and executed by a virtual CPU in the virtual machine. As described above, the VMM allocates physical resources such as a real CPU, a real I / O device, and a real memory to each guest OS, thereby providing an environment in which each guest OS can operate simultaneously, and managing the virtual machine system. Do.
VMMは一般に、ゲストOSに対して、仮想ネットワークや独自仕様のメッセージプロトコルのようなゲストOS同士が通信する手段(方法)を1種類以上提供する。通常、ゲストOS間通信では、受信の際に特定の処理を必要とする。例えば、受信パケットがあれば解析処理を行うとか、送信側に対してアクナレッジ(Acknowledge)を返す等の処理である。 The VMM generally provides one or more means (methods) for the guest OS to communicate with each other, such as a virtual network or a proprietary message protocol. Usually, in the communication between guest OSes, specific processing is required at the time of reception. For example, if there is a received packet, an analysis process is performed, or an acknowledge is returned to the transmission side.
受信の通知は割り込みによって行われることが多い。一般の仮想計算機システムでは、あるゲストOSが割り込み状態にあるときに、そのゲストOSにCPU実行時間が割り当てられる。但し、一般に割り込み処理時間が長時間にわたることは好ましくないため、実際には割り込み処理においては上記の処理のうち必要最小限のみを行って、残りの大部分は割り込み解除後に行われることが多い。 Notification of reception is often performed by interruption. In a general virtual machine system, when a certain guest OS is in an interrupt state, a CPU execution time is assigned to the guest OS. However, since it is generally not preferable that the interrupt processing time is long, in practice, in the interrupt processing, only the necessary minimum of the above processing is performed, and most of the rest is often performed after the interrupt is released.
このように、受信後の処理は割り込み解除後に行われるのが一般的であるが、受信割り込み直後に実行されることが期待されている。但し、複数のゲストOSの存在する仮想計算機実行環境では、割り込み解除したために受信者以外のゲストOSにディスパッチされる可能性がある。 As described above, the processing after reception is generally performed after canceling the interrupt, but it is expected to be executed immediately after the reception interrupt. However, in a virtual machine execution environment in which a plurality of guest OSs exist, there is a possibility that dispatching to a guest OS other than the recipient is made because the interrupt is canceled.
これらのディスパッチを伴う、複数のゲストOSを時分割で実行させるためのスケジュール(ゲストOSスケジュール)の調整に用いられる方法は、例えば非特許文献1乃至3に記載されている。非特許文献1には仮想計算機のCPUのディスパッチに関する説明が記載されている。ここには、CPU割り当て単位としての「タイム・スライス量子(Time Slice Quantum)」が記載されている。非特許文献2及び3には、パーソナルコンピュータでのオープンソースで開発されている仮想化ソフトウェア「Xen」のディスパッチャ及びスケジューリングに関する内容が記載されている。ここには、「sefdスケジューラ」と呼ばれているデッドラインベースのスケジューラポリシに関して記載されている。
上記したような仮想計算機システムでは、ゲストOSのディスパッチ方針が通信の効率に影響を与える。ここで、ゲストOS間の通信として、例えば以下に挙げるような2つの特徴的なモデルが考えられる。 In the virtual machine system as described above, the dispatch policy of the guest OS affects the communication efficiency. Here, as the communication between guest OSes, for example, the following two characteristic models can be considered.
(1)第1は、1対のゲストOSの間で定常的に一連の関連ある処理として交互に行われる通信(1対1の通信)である。このような通信(以下、第1のタイプの通信と称する)は、1対のゲストOSが協調して作業を行うような場合に発生する。 (1) The first is communication (one-to-one communication) that is alternately performed as a series of related processes regularly between a pair of guest OSs. Such communication (hereinafter referred to as first type communication) occurs when a pair of guest OSs work in cooperation.
(2)第2は、1つのゲストOSと他の複数のゲストOSとの間で頻繁に行われる通信(つまり複数のゲストOSの間で頻々に行われる通信)であり、個々の通信の間には関連性はない。このような通信(以下、第2のタイプの通信と称する)は、サーバ・クライアントモデルの通信を行うような場合に発生する。 (2) Second is communication frequently performed between one guest OS and a plurality of other guest OSs (that is, communication frequently performed between a plurality of guest OSs). There is no relationship between them. Such communication (hereinafter referred to as second type communication) occurs when server-client model communication is performed.
さて、仮想計算機システムにおいて、ゲストOSはVMMによってCPU時間を与えられた間のみディパッチして動作することができる。したがって、ゲストOS間の通信の性能(スループットまたはレスポンス)は、VMMによるゲストOSのディスパッチの方針に大きく依存する。 Now, in the virtual machine system, the guest OS can only operate while being dispatched the CPU time by the VMM. Therefore, the communication performance (throughput or response) between the guest OSs greatly depends on the dispatching policy of the guest OS by the VMM.
例えば、上記第1の通信では、一方のゲストOSに行うべき処理がある場合に他方のゲストOSにCPU時間が割り当てられると、結果として処理が進まずにスループットが低下する。一方、上記第2の通信では、個々の通信に対してゲストOSのディスパッチを実施すると、ディスパッチのコストが原因でシステムの効率を悪化させる可能性がある。 For example, in the first communication, if there is a process to be performed on one guest OS and the CPU time is allocated to the other guest OS, the throughput does not proceed as a result, and the throughput decreases. On the other hand, in the second communication, if the guest OS is dispatched for each communication, the efficiency of the system may be deteriorated due to the dispatch cost.
このように、ゲストOS間の通信とゲストOSのディスパッチは効率面において大きな関連がある。しかしながら、非特許文献1乃至3には、この点を考慮してゲストOSをディスパッチするためのスケジュール調整について記載されていない。
As described above, communication between guest OSs and dispatch of guest OSs have a great relationship in terms of efficiency. However,
本発明は上記事情を考慮してなされたものでその目的は、ゲストOSをディスパッチするためのスケジュールを、受信側ゲストOSでの受信割り込みの解除後の受信処理が迅速に行えるように調整することができ、これによりゲストOS間通信が効率よく行える仮想計算機システム及び同システムにおけるスケジュール調整方法を提供することにある。 The present invention has been made in view of the above circumstances, and its purpose is to adjust the schedule for dispatching the guest OS so that the reception processing after the reception interrupt is canceled in the reception-side guest OS can be performed quickly. Accordingly, it is an object of the present invention to provide a virtual machine system capable of efficiently performing communication between guest OSes and a schedule adjustment method in the system.
本発明の1つの観点によれば、CPUを含む物理計算機上で動作する仮想計算機マネージャによって提供される仮想計算機実行環境で複数のゲストOSが時分割で実行される仮想計算機システムが提供される。この仮想計算機システムにおいて、前記仮想計算機マネージャは、前記複数のゲストOSのうちの任意のゲストOSへの割り込みを管理する割り込み管理手段であって、送信側ゲストOSから前記仮想計算機マネージャに与えられる受信側ゲストOSへのゲストOS間通信の要求を受けて、前記送信側ゲストOSからの送信データの前記受信側ゲストOSでの受信を受信割り込みにより通知する割り込み管理手段と、前記複数のゲストOSを時分割で実行させるためのスケジュールを管理するスケジューラであって、前記複数のゲストOSのうちの任意のゲストOSへの割り込みの要因が発生し、且つ当該要因が前記受信割り込みである場合に、当該任意のゲストOSを前記受信側ゲストOSとして、前記受信割り込みの解除後の受信処理に必要なCPU時間が当該受信側ゲストOSに追加で割り当てられるように前記スケジュールを調整するスケジューラと、前記スケジューラによって調整された前記スケジュールに従って前記複数のゲストOSをディスパッチするディスパッチャとを具備することを特徴とする。 According to one aspect of the present invention, a virtual machine system is provided in which a plurality of guest OSs are executed in a time-sharing manner in a virtual machine execution environment provided by a virtual machine manager operating on a physical machine including a CPU. In this virtual machine system, the virtual machine manager is an interrupt management means for managing an interrupt to an arbitrary guest OS among the plurality of guest OSs, and is a reception given to the virtual machine manager from a sending guest OS. An interrupt management unit that receives a request for communication between guest OSs from the sending guest OS to the receiving guest OS and notifies the receiving guest OS of reception of transmission data from the sending guest OS, and a plurality of guest OSs. A scheduler for managing a schedule for execution in a time-sharing manner, when an interrupt factor to an arbitrary guest OS among the plurality of guest OSs occurs and the factor is the reception interrupt, Arbitrary guest OS is used as the receiving guest OS for reception processing after the reception interrupt is canceled. A scheduler that adjusts the schedule so that a necessary CPU time is additionally allocated to the receiving guest OS, and a dispatcher that dispatches the plurality of guest OSs according to the schedule adjusted by the scheduler. And
本発明によれば、あるゲストOSへの割り込みの要因が受信割り込みによる通知を必要とするゲストOS間通信の受信である場合に、当該ゲストOS(つまり受信側ゲストOS)での受信割り込みの解除後の受信処理に必要なCPU時間が当該ゲストOSに追加で割り当てられるようにスケジュールが調整される。これにより受信側ゲストOSでは、追加で割り当てられるCPU時間を使用して受信処理を迅速に行うことができ、その結果としてゲストOS間の通信の効率が向上し、仮想計算機システム全体の処理効率を向上させることができる。 According to the present invention, when the cause of an interrupt to a guest OS is reception of inter-guest OS communication that requires notification by a reception interrupt, the reception interrupt is canceled in the guest OS (that is, the receiving guest OS). The schedule is adjusted so that the CPU time required for the subsequent reception process is additionally allocated to the guest OS. As a result, the receiving guest OS can perform the receiving process quickly using the CPU time allocated additionally, and as a result, the communication efficiency between the guest OSs is improved, and the processing efficiency of the entire virtual machine system is improved. Can be improved.
以下、本発明の実施の形態につき図面を参照して説明する。
図1は本発明の一実施形態に係る仮想計算機システム(VMシステム)の構成を示すブロック図である。図1に示す仮想計算機システムは、物理計算機1を用いて実現される。物理計算機(実計算機)1は、仮想計算機の実行環境を提供するハードウェア(HW)10を備えている。HW10は、CPU(実CPU)11、I/O(入出力)装置(実I/O装置)12及びメモリ(実メモリ)13を含む。
Embodiments of the present invention will be described below with reference to the drawings.
FIG. 1 is a block diagram showing a configuration of a virtual machine system (VM system) according to an embodiment of the present invention. The virtual machine system shown in FIG. 1 is realized using a
物理計算機1のHW10上では、仮想計算機マネージャ(Virtual Machine Manager:VMM)20が動作する。VMM20は、仮想計算機システムの管理を行い、仮想計算機が動作する環境(仮想計算機実行環境)を構築する。更に具体的に述べるならば、VMM20は、物理計算機1のHW10を構成するCPU11、I/O12及びメモリ13のような物理資源(ハードウェアリソース)を制御すると共に当該物理資源の時間的、領域的な配分を管理することにより、複数の仮想計算機、例えば3台の仮想計算機(VM)30-1,30-2,30-3が動作する仮想計算機実行環境を提供する。VM30-1,30-2,30-3は何れも、VMM20が、物理計算機1のCPU11、I/O12及びメモリ13を、時間的、領域的に図示せぬ仮想CPU、仮想I/O及び(VM30-1,30-2,30-3の)メモリとして割り当てることにより構築される。
On the
VM30-1,30-2,30-3上では、それぞれゲストOS31-1(OS#1),31-2(OS#2),31-3(OS#3)が動作する。更に具体的に述べるならば、ゲストOS31-1〜31-3は、それぞれVM30-1〜30-3にロードされて、当該VM30-1〜30-3内の仮想CPUによって実行される。ゲストOS31-1〜31-3には、それぞれゲストOS番号1〜3が割り当てられている。
On the VMs 30-1, 30-2, and 30-3, guest OSs 31-1 (OS # 1), 31-2 (OS # 2), and 31-3 (OS # 3) operate. More specifically, the guest OSs 31-1 to 31-3 are loaded into the VMs 30-1 to 30-3, respectively, and are executed by the virtual CPUs in the VMs 30-1 to 30-3.
VMM20は、ゲストOS間通信管理部21、ゲストOS実行管理部22、割り込み管理部23及びゲストOSコンテキスト管理部24を含む。
ゲストOS間通信管理部21は、ゲストOS31-1〜31-3間の通信を管理すると共にその通信のための機能(送信手続き及び受信手続き等の通信手段)を提供するモジュールである。本実施形態においてゲストOS間の通信手段は、送信元(送信側)のゲストOSからのデータパケットを送信先(受信側)のゲストOSの受信バッファにコピーすることによって情報の受け渡しを行うものであるとするが、これに限らない。例えば通信手段が、送信ゲストOSと受信側ゲストOSとで共有されるメモリ空間を介して情報の受け渡しを行うものであっても構わない。また、ゲストOS間の通信手段が複数存在する場合、ゲストOS間通信管理部21が通信手段の種類に応じて複数存在しても構わない。
The
The guest OS
ゲストOS間通信管理部21は、ゲストOSに対してゲストOS間の通信手段として、ゲストOS間通信インタフェース(ゲストOS間通信IF)を提供する。図1の例では、ゲストOS31-1,31-2に対し、ゲストOS間通信管理部21(VMM20内のゲストOS間通信管理部21)によってそれぞれゲストOS間通信IF210が提供されている状態が示されている。ゲストOS31-1,31-2は、それぞれゲストOS間通信IF210を使用して、他のゲストOSへのデータ送信、或いは他のゲストOSから受信したデータの取得を、VMM20に対して要求する。ここで、ゲストOS31-3に対してゲストOS間通信IF210が提供されるならば、当該ゲストOS31-3もゲストOS31-1,31-2と同様にデータ送信或いはデータ取得をVMM20に対して要求することができる。
The guest OS
ゲストOS間通信管理部21は、ゲストOS間通信監視部211を含む。ゲストOS間通信監視部211は、ゲストOS間通信管理部21によって送信側のゲストOS31-i(i=1,2,3)及び受信側のゲストOS31-j(j=1,2,3、但しj≠i)にそれぞれ提供されるゲストOS間通信IF210を用いてのゲストOS間通信の状況を監視する。ゲストOS間通信監視部211は、この監視の結果に基づき、受信側のゲストOS31-jにおける後述する受信処理に必要なCPU追加割当時間として用いられるCPU時間(CPU実行時間)を決定する。
The guest OS
ゲストOS実行管理部22はゲストOS31-1〜31-3の実行を管理する。ゲストOS実行管理部22は、ゲストOSスケジューラ221、CPU時間割当テーブル222及びディスパッチャ223を含む。
The guest OS
ゲストOSスケジューラ221は、各ゲストOS31-1〜31-3に対して、いつ、どれだけの期間CPU11を仮想CPUとして割り当てるか、つまり、どれだけのCPU時間(CPU実行時間)を割り当てるかを管理するモジュールである。
The
CPU時間割当テーブル222は、各ゲストOS31-1〜31-3をディスパッチするためのスケジュール(の情報)を保持するデータテーブルである。更に具体的に述べるならば、CPU時間割当テーブル222は、CPU時間を各ゲストOS31-1〜31-3にいつの時点でどれだけ割り当てるかの予定(スケジュール)を表すデータテーブルである。CPU時間割当テーブル222によって表される(保持される)スケジュール(の情報)は動的に変更可能である。図1では、CPU時間割当テーブル222はVMM20のゲストOS実行管理部22に含まれているが、物理的には例えばメモリ13に格納して用いられる。
The CPU time allocation table 222 is a data table that holds a schedule (information) for dispatching the guest OSs 31-1 to 31-3. More specifically, the CPU time allocation table 222 is a data table that represents a schedule (schedule) of how much CPU time is allocated to each guest OS 31-1 to 31-3 at what time. The schedule (information) represented (held) by the CPU time allocation table 222 can be changed dynamically. In FIG. 1, the CPU time allocation table 222 is included in the guest OS
図2はCPU時間割当テーブル222の示すスケジュール例を示す。図2に示すスケジュールでは、現在から24ms先の時点までのCPU時間割り当て予定が設定されている。ここでは、24msが2ms毎に12分割されて、CPU時間が3個のゲストOS31-1〜31-3に2ms(のフレーム)単位でラウンドロビンで割り当てられる予定であることが示されている。12分割された各枠内の数字はゲストOS番号を表している。CPU時間割当テーブル222は、ゲストOSスケジューラ221によって更新される。ここではCPU時間割当テーブル222は、実際にゲストOSのコンテキストスイッチ(他のゲストOSへのディスパッチ)が発生したタイミングで更新される。
FIG. 2 shows a schedule example indicated by the CPU time allocation table 222. In the schedule shown in FIG. 2, the CPU time allocation schedule from the present to the time point of 24 ms ahead is set. Here, it is shown that 24 ms is divided into 12 every 2 ms, and the CPU time is scheduled to be allocated to the three guest OSs 31-1 to 31-3 in units of 2 ms (frames) in round robin. The numbers in each frame divided into 12 represent guest OS numbers. The CPU time allocation table 222 is updated by the
ディスパッチャ223は、現在CPU11を使って実行しているゲストOSをCPU時間割当テーブル221に基づいて他のゲストOSに切り替えるためのモジュールである。即ちディスパッチャ223は、CPU時間割当テーブル222の示すCPU時間割り当ての順番(図2の例では左端から右端に向かう順番)に従ってゲストOSのディスパッチを行う。なお、図2に示されるCPU時間割当テーブル222のようなフレーム単位のスケジュール表に基づくスケジューリングに代えて、プライオリティキューを使ったスケジューリングを適用することも可能である。
The
割り込み管理部23は、ゲストOSへの割り込みを管理する。ゲストOSへの割り込みの1つに、受信割り込みがある。受信割り込みは、送信側ゲストOS31-iから受信側ゲストOS31-jへの通信(ゲストOS間通信)に伴う送信データの受信を当該ゲストOS31-jに通知するための割り込みである。
The interrupt
ゲストOSコンテキスト管理部24は、ゲストOS31-1〜31-3を実行する際に必要な情報の集合であるゲストOSコンテキスト241-1〜241-3を生成する。図1では、ゲストOSコンテキスト241-1〜241-3はVMM20のゲストOSコンテキスト管理部24に含まれているが、物理的には例えばメモリ13によって提供されるメモリ領域に格納して用いられる。
The guest OS
図3はゲストOSコンテキスト241-i(i=1,2,3)のデータ構造例を示す。ゲストOSコンテキスト241-iは、ゲストOS固有データ242、割り込み要因レジスタ243及びCPU追加割当時間情報244を含む。
FIG. 3 shows an example of the data structure of the guest OS context 241-i (i = 1, 2, 3). The guest OS context 241-i includes guest OS
ゲストOS固有データ242は、ゲストOS切り替え時のCPUレジスタ状態を含む情報である。
割り込み要因レジスタ243は、ゲストOS31-iに割り込みが発生した場合に、その割り込みの要因を識別するためのビットの群から構成される割り込み要因保持管理手段である。割り込み要因レジスタ243はゲストOS通信受信ビットを含む。ゲストOS通信受信ビットは、ゲストOS31-iへの割り込みが、ゲストOS間通信による送信データの受信を当該ゲストOS31-iに通知するための割り込み、つまり受信割り込みであることを示す特定ビットである。このゲストOS通信受信ビットは、ゲストOS間通信による送信データがゲストOS31-iで受信された際(本実施形態では、ゲストOS31-iの受信バッファにコピーされた際)にONされる。割り込み要因レジスタ243は、例えば、物理計算機1のHW10に含まれている物理レジスタをゲストOS31-iが動作するVM30-iの実行環境(仮想計算機実行環境)にマップすることによって実現されるものとする。しかし、割り込み要因レジスタ243が、VMM20によって作成される仮想レジスタであっても構わない。
The guest OS
The interrupt factor register 243 is an interrupt factor holding management unit configured by a group of bits for identifying the interrupt factor when an interrupt occurs in the guest OS 31-i. The interrupt factor register 243 includes a guest OS communication reception bit. The guest OS communication reception bit is a specific bit indicating that an interrupt to the guest OS 31-i is an interrupt for notifying the guest OS 31-i that transmission data is received by communication between guest OSs, that is, a reception interrupt. . This guest OS communication reception bit is turned ON when transmission data by communication between guest OSs is received by the guest OS 31-i (in this embodiment, copied to the reception buffer of the guest OS 31-i). The interrupt factor register 243 is realized, for example, by mapping a physical register included in the
CPU追加割当時間情報244は、ゲストOS31-iが他のゲストOSからの通信を受信した場合に、当該ゲストOS31-iに追加で割り当てられるCPU時間(CPU追加割当時間)の値を表す変数である。CPU追加割当時間情報244には、ゲストOS間通信の受信側でのデータ受信に伴う処理(受信処理)に必要なCPU時間(CPU実行時間)を示す値が用いられる。本実施形態ではCPU追加割当時間情報244として、4msの値が設定されているものとする。但し、CPU追加割当時間情報244は、後述するCPU追加割当時間設定部240によって動的に変更される。CPU追加割当時間情報244はゲストOS31-iから参照される必要のない変数である。なお、ゲストOS間通信の手段が複数存在する場合、それぞれの手段に対応した変数(CPU追加割当時間情報244)が設定される構成であっても良い。
The CPU additional
再び図1を参照すると、ゲストOSコンテキスト管理部24はCPU追加割当時間設定部240を含む。CPU追加割当時間設定部240は、ゲストOS間通信管理部21内のゲストOS間通信監視部211によるゲストOS間通信の状況の監視結果に基づき、受信側のゲストOS31-j(j=1,2,3)における受信処理に必要なCPU時間(CPU実行時間)をCPU追加割当時間として決定する。CPU追加割当時間設定部240は、ゲストOSコンテキスト241-jに含まれているCPU追加割当時間情報244を、決定されたCPU追加割当時間の値に設定変更する。
Referring back to FIG. 1, the guest OS
このように、ゲストOS間通信の状況に応じて、受信側のゲストOS31-jにおける受信処理に必要なCPU時間がCPU追加割当時間として動的に設定される構成とすることにより、システム全体の処理が効率よく進められるようになる。 As described above, the CPU time required for the reception process in the guest OS 31-j on the receiving side is dynamically set as the CPU additional allocation time according to the state of the communication between the guest OSs. Processing can proceed efficiently.
なお、各ゲストOSコンテキスト241-jに含まれるCPU追加割当時間情報244を、ゲストOS31-j毎のCPU追加割当時間の設定値が保存された設定ファイルを用いて、例えばシステム起動時にCPU追加割当時間設定部240が設定する構成とすることも可能である。ここで、HW10に含まれているI/O12がハードディスクドライブのようなディスクドライブであるとする。この場合、上述の設定ファイルをユーザの操作により予め作成してディスクドライブ(I/O12)に格納しておき、システム起動時に、CPU追加割当時間設定部240が当該設定ファイルを当該ディスクドライブから読み込んで、当該設定ファイルに基づいて各ゲストOSコンテキスト241-jに含まれるCPU追加割当時間情報244を設定すれば良い。
Note that the CPU additional
このように、ユーザの操作により予め作成された設定ファイルに基づき、各ゲストOSコンテキスト241-jに含まれるCPU追加割当時間情報244を設定する手法を適用しても、当該ユーザが各ゲストOS31-jの処理内容を熟知している場合は、各ゲストOS31-jに対して適切なCPU追加割当時間を設定することが可能となるため、システム全体の処理が効率よく進められる。
As described above, even if the method of setting the CPU additional
また、CPU追加割当時間情報244として有効なCPU追加割当時間の値が与えられているか否かによって、ゲストOS31-jに対する受信割り込み発生に伴う割り込み処理の直後に当該ゲストOS31-jに対して追加のCPU時間(CPU追加割当時間)を付与するか否かを決定することも可能である。
Further, depending on whether or not a valid CPU additional allocation time value is given as the CPU additional
次に、図1の仮想計算機システムにおける動作の概要について説明する。
まず、あるゲストOS31-jが他のゲストOS(送信側ゲストOS)31-iからのゲストOS間通信の送信データをVMM20を介して受け取ったものとする。このような場合、VMM20内の割り込み管理部23は、送信側ゲストOS31-iからの送信データの受信をゲストOS31-j(つまり受信側ゲストOS31-j)に通知するために当該受信側ゲストOS31-jへの割り込み(受信割り込み)を発生する。
Next, an outline of the operation in the virtual machine system of FIG. 1 will be described.
First, it is assumed that a certain guest OS 31-j has received transmission data for communication between guest OSes from another guest OS (transmission-side guest OS) 31-i via the
多くの通信形態では、受信側ゲストOS31-jは、データ受信後に受信データ(例えばパケットデータ)の解析やアクナレッジ(ACK)の返信のような受信に伴う処理(受信処理)を行う必要がある。一般にゲストOSは仮想計算機実行環境でない通常の計算機環境で動作するものをベースにしている場合が多い。このようなゲストOSは、割り込み処理と受信処理とを別々に実装していることが多い。そのため従来技術では、受信側ゲストOS31-jによる受信処理の大部分は、データを受信した直後ではなくて、割り込み解除後に行われるのが一般的である。 In many communication forms, the reception-side guest OS 31-j needs to perform processing (reception processing) associated with reception such as analysis of received data (for example, packet data) and return of an acknowledgment (ACK) after data reception. . In general, guest OSs are often based on those operating in a normal computer environment that is not a virtual computer execution environment. Such a guest OS often implements interrupt processing and reception processing separately. Therefore, in the prior art, most of the reception processing by the reception-side guest OS 31-j is generally performed not after the reception of data but after the cancellation of the interrupt.
図4は、CPU時間割当テーブル222によって表されるゲストOS31-1〜32-3を対象とするスケジュール(CPU時間割り当てスケジュール)の問題を説明するための図である。図4において、時点t0は現在時点であり、時点t0から24ms先の時点tnまでの時間24msは、2ms毎に12分割されて管理される。図4の例では、時点t0から、CPU時間が3個のゲストOS31-1〜31-3に2ms単位でゲストOS31-2→ゲストOS31-3→ゲストOS31-1→ゲストOS31-2…のようにラウンドロビンで割り当てられることが予定されている。
FIG. 4 is a diagram for explaining the problem of the schedule (CPU time allocation schedule) for the guest OSs 31-1 to 32-3 represented by the CPU time allocation table 222. In FIG. 4, the time point t0 is the current time point, and the
さて、時点t0でゲストOS31-2にCPU11が割り当てられた結果、当該ゲストOS31-2の実行が開始されたものとする。そして、時点t0から例えば1msが経過した時点t1で、ゲストOS(送信側ゲストOS)31-2がゲストOS(受信側ゲストOS)31-1に対してVMM20を経由して通信を行ったものとする。
Assume that the execution of the guest OS 31-2 is started as a result of the
この場合VMM20の割り込み管理部23は、受信側ゲストOS31-1に固有のゲストOSコンテキスト241-1に含まれている割り込み要因レジスタ243のゲストOS間通信受信ビットをONにする。
In this case, the interrupt
またVMM20のゲストOS実行管理部22に含まれているディスパッチャ223は、従来技術であれば、受信側ゲストOS31-1が割り込み状態であることを確認して当該ゲストOS31-1の割り込みハンドラ(図示せず)に一時的にディスパッチする。ゲストOS31-1の割り込みハンドラは、当該ゲストOS31-1に固有のゲストOSコンテキスト241-1に含まれている割り込み要因レジスタ243のゲストOS間通信受信ビットのON状態に基づき割り込み要因を確認し、当該受信ビットをOFFする割り込み処理を行う。そしてゲストOS31-1の割り込みハンドラは割り込み処理後、早い段階(実際の受信処理を行う前に)で割り込み解除をVMM20に通知する。
In the prior art, the
従来技術では、VMM20のディスパッチャ223はゲストOS31-1から割り込み解除の通知を受けた場合、当該ゲストOS31-1に一時的に割り当てていたCPU11をCPU時間割当テーブル222の示すスケジュールの通りにゲストOS31-2に返却する。これによりゲストOS31-2が再びディスパッチされる。ここで、ゲストOS31-1がゲストOS31-2からの送信データの受信処理に例えば4msの時間が必要であるものとする。この場合、従来技術でば、ゲストOS31-1が受信処理を終了するのは、当該ゲストOS31-1に2msのCPU時間が2回割り当てられて、その2回目のCPU時間が経過した時点t2である。この時点t2は、図4からも明らかなように、時点t0(つまりCPU時間割当テーブル222の示すスケジュールの開始時点)から10ms経過した時点である。
In the prior art, when the
さて、送信側ゲストOS31-2が、受信側ゲストOS31-1に送信したデータに対する当該ゲストOS31-1の受信処理の後に当該ゲストOS31-1から返されるACKを待って、自身の処理を再開することがある。ところが従来技術では、受信側ゲストOS31-1の受信処理が終了するのは時点t0から10msが経過した時点t2である。時点t0から時点t2までの間に、送信側ゲストOS31-2にはCPU11が2ms単位で(つまり2msのCPU時間が)2度割り当てられる。
The sending guest OS 31-2 waits for an ACK returned from the guest OS 31-1 after the receiving process of the guest OS 31-1 for the data sent to the receiving guest OS 31-1, and resumes its own processing. Sometimes. However, in the prior art, the receiving process of the receiving guest OS 31-1 ends at time t2 when 10 ms elapses from time t0. Between the time point t0 and the time point t2, the
従来技術では、送信側ゲストOS31-2に2度割り当てられるCPU時間内に、受信側ゲストOS31-1からACKが返されない。このため送信側ゲストOS31-2は、2度割り当てられるCPU時間において処理を再開できず、CPU時間の無駄が生じる。このことから本発明者は、ゲストOS間通信が行われる場合に、受信側ゲストOSでの受信処理は迅速に行われた方が有利であることを認識するに至った。 In the prior art, ACK is not returned from the receiving guest OS 31-1 within the CPU time allocated twice to the sending guest OS 31-2. For this reason, the transmission side guest OS 31-2 cannot resume the processing in the CPU time allocated twice, and the CPU time is wasted. From this, the present inventor has come to recognize that it is advantageous that the reception process in the guest OS on the receiving side is quickly performed when the communication between guest OSs is performed.
そこで本実施形態では、受信側ゲストOS31-1へのゲストOS間通信の割り込みが発生する場合、当該割り込みに対応する割り込み処理の終了に伴う割り込み解除後も当該ゲストOS31-1に追加でCPU時間が割り当てられるように、VMM20のゲストOSスケジューラ221によってCPU時間割当テーブル222が変更される。
Therefore, in this embodiment, when an interrupt of communication between guest OSs to the receiving guest OS 31-1 occurs, the CPU time is additionally added to the guest OS 31-1 even after the interrupt is released due to the end of the interrupt processing corresponding to the interrupt. Is allocated to the CPU time allocation table 222 by the
図5は、変更後のCPU時間割当テーブル222によって表されるスケジュールの例を示す。図5の例では、時点t1で受信側ゲストOS31-1への受信割り込みが発生し、その時点t1から受信処理に必要な4msが経過する時点t3までの期間、当該ゲストOS31-1にCPU時間(CPU追加割当時間)が割り当てられる。この結果、CPU時間割当テーブル222の示すスケジュールの開始時点t0から5ms経過した時点t3までの間に、受信側ゲストOS31-1は受信処理を完了させることができる。 FIG. 5 shows an example of the schedule represented by the CPU time allocation table 222 after the change. In the example of FIG. 5, a reception interrupt to the receiving guest OS 31-1 occurs at time t1, and the CPU time is given to the guest OS 31-1 for a period from time t1 to time t3 when 4 ms necessary for reception processing elapses. (CPU additional allocation time) is allocated. As a result, the reception-side guest OS 31-1 can complete the reception process between the start time t0 of the schedule indicated by the CPU time allocation table 222 and the time t3 when 5 ms elapses.
このように本実施形態においては、受信側ゲストOS31-1に固有のゲストOSコンテキスト241-1に含まれているCPU追加割当時間情報244に基づいてCPU時間割当テーブル222を変更することにより、図5に示されるようにCPU時間割り当てのスケジュールを変更するようにしている。これにより、CPU時間割当テーブル222を変更せずに、図4で示されるような、元のCPU時間割当テーブル222の示すスケジュールの通りに受信側ゲストOS31-1をディスパッチする場合に比べて、当該ゲストOS31-1の受信処理を早く完了させることができる。この結果、送信側ゲストOS31-2の処理も、早く進めさせることができる。
As described above, in this embodiment, the CPU time allocation table 222 is changed based on the CPU additional
次に、上述のような、受信側のゲストOSの受信処理を早く完了させるためのスケジュール調整処理の手順について、図6のフローチャートを参照して説明する。
まず、送信側ゲストOS31-2が、受信側ゲストOS31-1との間のゲストOS間通信のために、VMM20に対してゲストOS間通信IF210の呼び出しを行ったものとする。本実施形態において、このゲストOS間通信IF210の呼び出しは、送信側ゲストOS31-2からVMM20に対してゲストOS間通信IFコール命令を発行することにより実現される。
Next, the procedure of schedule adjustment processing for completing the reception processing of the guest OS on the receiving side as described above will be described with reference to the flowchart of FIG.
First, it is assumed that the sending guest OS 31-2 calls the guest OS communication IF 210 to the
VMM20のゲストOS間通信管理部21は送信側ゲストOS31-2からのゲストOS間通信IFの呼び出しを受けて、当該ゲストOS31-2及び受信側となるゲストOS31-1の各々に対して、それぞれゲストOS間通信IF210を提供する(ステップS1)。これにより送信側ゲストOS31-2は、ゲストOS間通信IF210を用いて、VMM20を介して受信側ゲストOS31-1(の受信バッファ)にデータを送信することができる。
The guest OS
するとVMM20の割り込み管理部23は、受信側ゲストOS31-1に固有のゲストOSコンテキスト241-1に含まれている割り込み要因レジスタ243のゲストOS間通信受信ビットをONにする(ステップS2)。
Then, the interrupt
さて、VMM20のゲストOSスケジューラ221は、受信側ゲストOS31-1への何らかの割り込みの要因が発生すると、ディスパッチャ223が受信側ゲストOS31-1への割り込み発生に伴う当該ゲストOS31-1のディスパッチを発生させる直前に、ステップS11を実行する。このステップS11においてゲストOSスケジューラ221は、受信側ゲストOS31-1に固有のゲストOSコンテキスト241-1に含まれている割り込み要因レジスタ243のゲストOS通信受信ビットがON状態にあるかを判定する。つまりステップS11においてゲストOSスケジューラ221は、受信側ゲストOS31-1への割り込みの要因が、受信割り込みによる通知が必要な、当該受信側ゲストOS31-1でのゲストOS間通信の受信であるかを判定する。なお、受信側ゲストOS31-1への割り込み(受信割り込み)がいつ発生するかはシステムの実装に依存し、上記ステップS2の直後である必要はない。
The
もし、受信割り込みビットがON状態にあり、したがって受信側ゲストOS31-1への割り込みの要因がゲストOS間通信の受信であるならば(ステップS11)、ゲストOSスケジューラ221はステップS12を実行する。このステップS12においてゲストOSスケジューラ221は、受信側ゲストOS31-1に固有のゲストOSコンテキスト241-1に含まれているCPU追加割当時間情報244が有効なCPU追加割当時間の値を示しているかを判定する。
If the reception interrupt bit is in the ON state, and the cause of the interruption to the reception-side guest OS 31-1 is reception of communication between guest OSs (step S11), the
もし、CPU追加割当時間情報244が有効なCPU追加割当時間の値を示しているならば(ステップS12)、ゲストOSスケジューラ221は、そのCPU追加割当時間の値に基づいて、上述のようなCPU時間割当テーブル222の変更を行う(ステップS13)。ここでは、受信側ゲストOS31-1への割り込み(受信割り込み)発生に伴う割り込み処理の直後に、CPU追加割当時間情報244の示すCPU時間(CPU追加割当時間)が当該ゲストOS31-1に割り当てられるように、CPU時間割当テーブル222が変更(更新)される。なお、CPU時間割当テーブル222の示すスケジュールの範囲内で受信側ゲストOS31-1に割り当てられるCPU追加割当時間がまかなえない場合は、更に先のスケジュールを作成することで解決できる。
If the CPU additional
ゲストOSスケジューラ221によってCPU時間割当テーブル222が変更されると(ステップS13)、割り込み管理部23は受信側ゲストOS31-1への割り込み(受信割り込み)を発生する(ステップS14)。
When the CPU time allocation table 222 is changed by the guest OS scheduler 221 (step S13), the interrupt
一方、受信割り込みビットがON状態になく、したがって受信側ゲストOS31-1への割り込みの要因がゲストOS間通信の受信でないならば(ステップS11)、ステップS12及びS13をスキップして、当該要因に対応する受信側ゲストOS31-1への割り込み(受信割り込みとは異なる割り込み)が発生される(ステップS14)。また、ステップS12において、CPU追加割当時間情報244が有効なCPU追加割当時間の値を示していないと判定されたならば、ステップS13をスキップして、受信側ゲストOS31-1への割り込み(受信割り込み)が発生される(ステップS14)。
On the other hand, if the reception interrupt bit is not in the ON state, and the cause of the interrupt to the reception-side guest OS 31-1 is not reception of communication between guest OSs (step S11), steps S12 and S13 are skipped and An interrupt to the corresponding receiving guest OS 31-1 (an interrupt different from the reception interrupt) is generated (step S14). If it is determined in step S12 that the CPU additional
次に上記実施形態で適用される、ゲストOS31-jに固有のCPU追加割当時間情報244、即ちゲストOS31-jにおける受信処理に必要なCPU時間(CPU追加割当時間)の値を、常に最適な値に動的に変更することによってシステムの通信を最適化するための処理手順について説明する。
Next, the CPU additional
システムの通信は、ゲストOS31-i及びゲストOS31-jが定常的に1対1で交互に通信を行う第1のタイプの通信と、複数のゲストOS31-1〜31-3が頻繁に通信を行う第2のタイプの通信に大別される。そこで、第1のタイプの通信が行われる状況でのシステムの最適化と、第2のタイプの通信が行われる状況でのシステムの最適化とについて、順次説明する。 The system communication includes the first type of communication in which the guest OS 31-i and the guest OS 31-j constantly and alternately communicate with each other and the plurality of guest OSs 31-1 to 31-3 frequently communicate with each other. The second type of communication is roughly classified. Therefore, system optimization in a situation where the first type communication is performed and system optimization in a situation where the second type communication is performed will be sequentially described.
<第1のタイプの通信が行われる状況でのシステムの最適化>
まず、第1のタイプの通信が行われる状況でシステムを最適化するための処理手順について、図7のフローチャートを参照して説明する。
<Optimization of the system in the situation where the first type of communication is performed>
First, a processing procedure for optimizing the system in a situation where the first type of communication is performed will be described with reference to a flowchart of FIG.
VM30-1〜30-3上で動作するゲストOS31-1〜31-3が第1のタイプの通信(定常的な1対1交互の通信)を行っている状況では、当該ゲストOS31-1〜31-3への受信割り込みが定常的に発生する。ゲストOS31-j(j=1,2,3)は、当該ゲストOS31-jへの受信割り込みが発生すると、割り込み処理の直後に前述の受信処理を実行する。ゲストOSコンテキスト管理部24内のCPU追加割当時間設定部240は、ゲストOS31-jに追加で割り当てられるCPU時間(CPU追加割当時間)が最適値となるように、当該CPU追加割当時間の設定値(CPU追加割当時間情報244)を図7のフローチャートに従う手順で調整する。この調整は、ゲストOS間通信管理部21内のゲストOS間通信監視部211と連携することによって次のように行われる。
In a situation where the guest OSs 31-1 to 31-3 operating on the VMs 30-1 to 30-3 are performing the first type of communication (steady one-to-one alternate communication), the guest OSs 31-1 to 31-3 A reception interrupt to 31-3 occurs regularly. When a reception interrupt to the guest OS 31-j occurs, the guest OS 31-j (j = 1, 2, 3) executes the above-described reception process immediately after the interrupt process. The CPU additional allocation
まず、ゲストOS間通信監視部211は、ゲストOS間の通信を監視することにより、定常的に1対1で通信(第1のタイプの通信)を行っているゲストOSを検知する(ステップS21)。このように、定常的に1対1で通信を行っているゲストOSを検知するには、例えばゲストOS間通信監視部211がゲストOS31-1〜31-3からのゲストOS間通信IF210の呼び出しのログを採取すれば良い。ここでは、ゲストOS間通信IF210の呼び出しのログから、例えばゲストOS31-iとゲストOS31-jとが交互にゲストOS間通信IF210を呼び出している回数が予め定められた閾値を超えていると判定できるならば、ゲストOS間通信監視部211は当該ゲストOS31-iとゲストOS31-jとを定常的に1対1で通信(第1のタイプの通信)を行っているゲストOSであると検知できる。
First, the inter-guest OS
CPU追加割当時間設定部240は、ゲストOS31-iとゲストOS31-jとが定常的に1対1で通信(第1のタイプの通信)を行っているゲストOSであるとゲストOS間通信監視部211によって検知されると(ステップS21)、例えばゲストOS31-i及び31-jの双方にそれぞれ固有のCPU追加割当時間情報244を変更して、CPU追加割当時間を現在の例えば2倍に設定する(ステップS22)。
The CPU additional allocation
この状態でゲストOS間通信監視部211は、ゲストOS31-i及び31-jの間の通信の状況、例えば通信スループットを観測する(ステップS23)。そしてゲストOS間通信監視部211は、通信スループットが改善したか否かを判定する(ステップS24)。本実施形態では通信スループットとして、一定時間当たりの通信回数が用いられる。
In this state, the inter-guest OS
もし、スループットが改善したとゲストOS間通信監視部211によって判定されたならば(ステップS24)、CPU追加割当時間設定部240は、ゲストOS31-i及び31-j各々のCPU追加割当時間を更に2倍に設定する(ステップS25a)。逆に、スループットが劣化したとゲストOS間通信監視部211によって判定されたならば(ステップS24)、CPU追加割当時間設定部240は、ゲストOS31-i及び31-j各々のCPU追加割当時間を現在の値の半分に設定し直す(ステップS25b)。
If it is determined by the guest OS
いずれの場合においても、ゲストOS間通信監視部211は、先のステップS23,S24と同様に、通信状況(スループット)の観測及び判定(ステップS26a,S27aまたはステップS26b,S27b)を行う。
In either case, the guest OS
もし、ステップS27aでスループットが改善したと判定された場合、CPU追加割当時間設定部240は再びステップS25aを実行して、CPU追加割当時間を更に2倍に設定する。するとゲストOS間通信監視部211は通信状況(スループット)の観測及び判定(ステップS26a,S27a)を再び実行する。これに対し、ステップS27aでスループットが劣化したと判定された場合、CPU追加割当時間設定部240はCPU追加割当時間を現在の値の半分に設定し直す(ステップS28a)。CPU追加割当時間設定部240は、ステップS28aで設定された最新のCPU追加割当時間値が最適値であるとして、処理を終了する。
If it is determined in step S27a that the throughput has improved, the CPU additional allocation
一方、ステップS27bでスループットが改善したと判定された場合、CPU追加割当時間設定部240は再びステップS25bを実行して、CPU追加割当時間を現在の値の半分に設定し直す。するとゲストOS間通信監視部211は通信状況(スループット)の観測及び判定(ステップS26b,S27b)を再び実行する。これに対し、ステップS27bでスループットが劣化したと判定された場合、CPU追加割当時間設定部240はCPU追加割当時間を現在の2倍に設定する(ステップS28b)。CPU追加割当時間設定部240は、ステップS28bで設定された最新のCPU追加割当時間値が最適値であるとして、処理を終了する。
On the other hand, if it is determined in step S27b that the throughput has improved, the CPU additional allocation
なお、CPU追加割当時間の調整範囲に制約を設け、CPU追加割当時間が制御可能な範囲を当該調整範囲として設定し、この範囲を超えないようにCPU追加割当時間を調整することも可能である。 Note that it is also possible to provide a restriction on the adjustment range of the CPU additional allocation time, set a range in which the CPU additional allocation time can be controlled as the adjustment range, and adjust the CPU additional allocation time so as not to exceed this range. .
上記実施形態では、第1のタイプの通信を行っているゲストOS31-i及び31-jの双方のCPU追加割当時間が最適値に変更される。しかし、ゲストOS31-i及び31-jの一方、例えば主として応答を返す側(受信側)のゲストOSのCPU追加割当時間のみが最適値に変更される構成であっても構わない。この構成では、ゲストOS間通信監視部211は、上記通信状況の観測結果に基づき、ゲストOS31-i及び31-jの一方が応答を返す側となる割合が予め定められた閾値を超えているかを調べることによって、当該一方が主として受信側ゲストOSであるかを判定すれば良い。
In the above embodiment, the CPU additional allocation time of both the guest OSs 31-i and 31-j performing the first type of communication is changed to the optimum value. However, one of the guest OSs 31-i and 31-j, for example, may be configured such that only the CPU additional allocation time of the guest OS on the response return side (reception side) is changed to the optimum value. In this configuration, the inter-guest OS
<第2のタイプの通信が行われる状況でのシステムの最適化>
ゲストOS31-1〜31-3が第2のタイプの通信を行っている状況(頻繁に通信を行っている状況)では、頻繁に受信割り込みによるディスパッチが発生する。このような状況では、ディスパッチそれ自体にかかるオーバヘッドの影響によってシステム性能の低下を引き起こす可能性がある。例えば、サーバクライアントモデルの通信は第2のタイプの通信に相当し、このような通信がゲストOS上のアプリケーションで行われているような場合、個々の通信は独立である。
<Optimization of the system in a situation where the second type of communication is performed>
In a situation where the guest OSs 31-1 to 31-3 are performing the second type of communication (a situation where frequent communication is performed), dispatch due to a reception interrupt frequently occurs. In such a situation, there is a possibility of causing a decrease in system performance due to the overhead effect on the dispatch itself. For example, the communication of the server client model corresponds to the second type of communication. When such communication is performed by an application on the guest OS, each communication is independent.
したがって受信側ゲストOSへの受信割り込みに伴う割り込み処理の直後に受信処理を行わなくてもシステム全体の動作に矛盾は生じないことが多い。この場合、受信量がある程度溜まってから受信側ゲストOSに受信処理をまとめて実行させたほうが、ディスパッチの回数が減ってスループットが改善する可能性がある。 Accordingly, in many cases, no contradiction occurs in the operation of the entire system even if the reception process is not performed immediately after the interrupt process associated with the reception interrupt to the reception-side guest OS. In this case, when the reception amount is accumulated to some extent and the reception side guest OS executes the reception processing collectively, the number of dispatches may be reduced and the throughput may be improved.
以下、第2のタイプの通信が行われる状況でシステムを最適化するための処理手順について、図8のフローチャートを参照して説明する。 Hereinafter, a processing procedure for optimizing the system in a situation where the second type of communication is performed will be described with reference to a flowchart of FIG.
ゲストOS間通信監視部211は、ゲストOS間の通信を監視することにより、通信量が多いために受信割り込みの回数が多くなったこと、つまりゲストOS間で頻繁に通信(第2のタイプの通信)が行われていることを検知する(ステップS31)。このような通信を検知するには、例えばゲストOS間通信監視部211がゲストOS31-1〜31-3からのゲストOS間通信IF210の呼び出しのログを採取すれば良い。ここでは、ゲストOS間通信IF210の呼び出しのログから、一定時間当たりの受信割り込みの回数が予め定められた閾値を超えていると判定できるならば、ゲストOS間通信監視部211はゲストOS31-1〜31-3の間で頻繁に通信(第2のタイプの通信)が行われていると検知できる。ここでは、ゲストOS31-1がサーバとして動作し、ゲストOS31-2及び31-3がクライアントとして動作しているものとする。つまり、ゲストOS31-2及び31-3が送信側、ゲストOS31-1が受信側として、それぞれ動作している
CPU追加割当時間設定部240は、ゲストOS31-1〜31-3の間の頻繁な通信(第2のタイプの通信)がゲストOS間通信監視部211によって検知されると(ステップS31)、ステップS32を実行する。このステップS32においてCPU追加割当時間設定部240は、受信側ゲストOS31-1への受信割り込みを発生させるために必要な受信量の閾値(受信量閾値)を例えば現在の値の2倍に設定すると共に、当該ゲストOS31-1に固有のCPU追加割当時間情報244を変更して、CPU追加割当時間を現在の例えば2倍に設定する。つまりCPU追加割当時間設定部240は、ゲストOS31-1の受信量閾値及びCPU追加割当時間を、いずれも現在の値の2倍に設定する。
The guest OS
この状態でゲストOS間通信監視部211は、ゲストOS31-1とゲストOS31-2及び31-3の間の通信の状況、例えば通信スループットを観測する(ステップS33)。そしてゲストOS間通信監視部211は、通信スループットが改善したか否かを判定する(ステップS34)。本実施形態では通信スループットとして、前述したように一定時間当たりの通信回数が用いられる。
In this state, the inter-guest OS
もし、スループットが改善したとゲストOS間通信監視部211によって判定されたならば(ステップS34)、CPU追加割当時間設定部240は、ゲストOS31-1の受信量閾値及びCPU追加割当時間を、いずれも現在の値の2倍に設定する(ステップS35a)。逆に、スループットが劣化したとゲストOS間通信監視部211によって判定されたならば(ステップS34)、CPU追加割当時間設定部240は、ゲストOS31-1の受信量閾値及びCPU追加割当時間を、いずれも現在の値の半分に設定し直す(ステップS35b)。
If it is determined by the guest OS
いずれの場合においても、ゲストOS間通信監視部211は、先のステップS32,S33と同様に、通信状況(スループット)の観測及び判定(ステップS36a,S37aまたはステップS36b,S37b)を行う。
In any case, the guest OS
もし、ステップS37aでスループットが改善したと判定された場合、CPU追加割当時間設定部240は再びステップS35aを実行して、ゲストOS31-1の受信量閾値及びCPU追加割当時間を更に2倍に設定する。するとゲストOS間通信監視部211は通信状況(スループット)の観測及び判定(ステップS36a,S37a)を再び実行する。これに対し、ステップS37aでスループットが劣化したと判定された場合、CPU追加割当時間設定部240はゲストOS31-1の受信量閾値及びCPU追加割当時間を現在の値の半分に設定し直す(ステップS38a)。CPU追加割当時間設定部240は、ステップS38aで設定された最新の受信量閾値及びCPU追加割当時間値が最適値であるとして、処理を終了する。
If it is determined in step S37a that the throughput has improved, the CPU additional allocation
一方、ステップS37bでスループットが改善したと判定された場合、CPU追加割当時間設定部240は再びステップS35bを実行して、ゲストOS31-1の受信量閾値及びCPU追加割当時間を現在の値の半分に設定し直す。するとゲストOS間通信監視部211は通信状況(スループット)の観測及び判定(ステップS36b,S37b)を再び実行する。これに対し、ステップS37bでスループットが劣化したと判定された場合、CPU追加割当時間設定部240はゲストOS31-1の受信量閾値及びCPU追加割当時間を現在の2倍に設定する(ステップS38b)。CPU追加割当時間設定部240は、ステップS38bで設定された最新の受信量閾値及びCPU追加割当時間値が最適値であるとして、処理を終了する。
On the other hand, if it is determined in step S37b that the throughput has improved, the CPU additional allocation
なお、CPU追加割当時間に関しては、調整範囲に制約を設け、CPU追加割当時間が制御可能な範囲を当該調整範囲として設定し、この範囲を超えないようにCPU追加割当時間を調整することも可能である。 Regarding the CPU additional allocation time, it is also possible to set a range in which the CPU additional allocation time is controllable as the adjustment range by adjusting the adjustment range, and to adjust the CPU additional allocation time so as not to exceed this range. It is.
[第1の変形例]
次に、上記実施形態の第1の変形例について説明する。
上記実施形態では、ゲストOS間通信の受信側ゲストOS31-jに追加で割り当てられるCPU時間(つまりCPU追加割当時間)がVMM20側で動的に調整される。しかし、ゲストOS間通信の送信側ゲストOS31-iが、受信側ゲストOS31-jでのデータ受信に伴う受信処理に必要な時間(CPU時間)を予測して当該受信側ゲストOS31-jのCPU追加割当時間を調整することも可能である。このような調整手法は、受信側ゲストOS31-jの受信処理に必要なCPU時間量が送信側ゲストOS31-iからの通信の内容に依存する場合に最適であり、より精度の高い時間指定が期待できる。
[First Modification]
Next, a first modification of the above embodiment will be described.
In the above embodiment, the CPU time additionally allocated to the reception-side guest OS 31-j for the communication between guest OSs (that is, the CPU additional allocation time) is dynamically adjusted on the
第1の変形例の特徴は、受信側ゲストOS31-jの臨時のCPU追加割当時間を送信側ゲストOS31-iが指定することにある。以下、送信側ゲストOS31-iによる受信側ゲストOS31-jの臨時のCPU追加割当時間指定及び当該指定に基づくスケジュール調整の手順について、図9のフローチャートを参照して説明する。 A feature of the first modification is that the sending guest OS 31-i designates a temporary CPU additional allocation time of the receiving guest OS 31-j. Hereinafter, the temporary CPU additional allocation time designation of the receiving guest OS 31-j by the sending guest OS 31-i and the schedule adjustment procedure based on the designation will be described with reference to the flowchart of FIG.
ゲストOS間通信の送信側のゲストOS31-iは、受信側ゲストOS31-jとのゲストOS間通信のためにVMM20に対してゲストOS間通信IF210を呼ぶ際には、当該受信側ゲストOS31-jに対して行おうとしている通信の内容から当該受信側ゲストOS31-jでの受信処理に要する時間を予測する。送信側のゲストOS31-iは、予測された時間を受信側ゲストOS31-jに割り当てられるべきCPU時間(CPU追加割当時間)として、例えばゲストOS間通信IFコール命令の引数により指定し、当該コール命令をVMM20に対して発行することで、ゲストOS間通信IF210を呼ぶ。
When the guest OS 31-i on the sending side of the inter-guest OS communication calls the inter-guest OS communication IF 210 to the
するとVMM20のゲストOS間通信管理部21は、送信側のゲストOS31-2及び受信側ゲストOS31-1の各々に対して、それぞれゲストOS間通信IF210を提供する(ステップS41)。割り込み管理部23は、受信側ゲストOS31-1に固有のゲストOSコンテキスト241-1に含まれている割り込み要因レジスタ243のゲストOS間通信受信ビットをONにする(ステップS42)。このステップS42において、CPU追加割当時間設定部240は、送信側のゲストOS31-2から指定されたCPU時間の値を受信側ゲストOS31-1の臨時のCPU追加割当時間の値として設定する。ここでは、指定された臨時のCPU追加割当時間の値が、受信側ゲストOS31-1に固有のゲストOSコンテキスト241-1の一部として設定される。しかし、臨時のCPU追加割当時間の値が、ゲストOSコンテキスト241-1とは別に受信側ゲストOS31-1に対応付けて用意されるロケーション(物理的にはメモリ13内の特定の領域)に設定される構成であっても構わない。
Then, the guest OS
その後、VMM20のゲストOSスケジューラ221は、ディスパッチャ224が受信側ゲストOS31-1への割り込み発生に伴う当該ゲストOS31-1のディスパッチを発生させる直前に、当該ゲストOS31-1に固有のゲストOSコンテキスト241-1に含まれている割り込み要因レジスタ243のゲストOS通信受信ビットがON状態にあるかを判定する(ステップS51)。
Thereafter, the
もし、受信割り込みビットがON状態にある場合、つまり受信側ゲストOS31-1への割り込みの要因がゲストOS間通信の受信である場合(ステップS51)、ゲストOSスケジューラ221はステップS52を実行する。このステップS52においてゲストOSスケジューラ221は、受信側ゲストOS31-1に固有のゲストOSコンテキスト241-1に設定されている臨時のCPU追加割当時間の値が有効な値であるかを判定する。
If the reception interrupt bit is in the ON state, that is, if the cause of the interrupt to the reception-side guest OS 31-1 is reception of communication between guest OSs (step S51), the
もし、臨時のCPU追加割当時間の値が有効な値であるならば(ステップS52)、ゲストOSスケジューラ221は、当該臨時のCPU追加割当時間の値に基づき、上記実施形態のステップS13と同様に、CPU時間割当テーブル222の変更を行う(ステップS54)。ここでは、受信側ゲストOS31-1への受信割り込み発生に伴う割り込み処理の直後に、上記ステップS13と異なって(CPU追加割当時間情報244の示すCPU時間ではなくて)、臨時のCPU追加割当時間が当該ゲストOS31-1に割り当てられるように、CPU時間割当テーブル222が変更される。
If the value of the temporary CPU additional allocation time is a valid value (step S52), the
これに対し、臨時のCPU追加割当時間の値が有効な値でないならば(ステップS52)、ゲストOSスケジューラ221は、上記実施形態のステップS12と同様に、受信側ゲストOS31-1に固有のゲストOSコンテキスト241-1に含まれているCPU追加割当時間情報244が有効なCPU追加割当時間の値を示しているかを判定する(ステップS53)。
On the other hand, if the value of the temporary CPU additional allocation time is not a valid value (step S52), the
もし、CPU追加割当時間情報244が有効なCPU追加割当時間の値を示しているならば(ステップS53)、ゲストOSスケジューラ221は、そのCPU追加割当時間の値に基づいて、上記実施形態のステップS13と同様にCPU時間割当テーブル222の変更を行う(ステップS54)。
If the CPU additional
ゲストOSスケジューラ221はCPU時間割当テーブル222を変更すると、CPU追加割当時間設定部240によりゲストOSコンテキスト241-1からCPU追加割当時間の設定値を削除させる(ステップS55)。CPU追加割当時間設定部240は、ゲストOSコンテキスト241-1にCPU追加割当時間の値が設定されているならば、その設定値を削除する。すると割り込み管理部23は、受信側ゲストOS31-1への割り込み(受信割り込み)を発生する(ステップS56)。
When the
一方、受信割り込みビットがON状態にないならば(ステップS51)、CPU時間割当テーブル222が変更されることなくステップS56が実行されて、受信側ゲストOS31-1への割り込み(受信割り込みとは異なる割り込み)が発生される。また、ステップS53において、CPU追加割当時間情報244が有効なCPU追加割当時間の値を示していないと判定された場合にも、CPU時間割当テーブル222が変更されることなくステップS56が実行されて、受信側ゲストOS31-1への割り込み(受信割り込み)が発生される。
On the other hand, if the reception interrupt bit is not in the ON state (step S51), step S56 is executed without changing the CPU time allocation table 222, and an interrupt to the reception-side guest OS 31-1 (different from the reception interrupt). Interrupt). Even when it is determined in step S53 that the CPU additional
[第2の変形例]
次に、上記実施形態の第2の変形例について説明する。
上記実施形態では、受信側ゲストOSの受信割り込み処理の後に行われる受信処理のために、当該受信側ゲストOSに追加でCPU時間(CPU追加割当時間)が割り当てられる。このため、不当にCPU時間を奪われる他のゲストOSが存在する可能性がある。
[Second Modification]
Next, a second modification of the above embodiment will be described.
In the above embodiment, additional CPU time (CPU additional allocation time) is allocated to the receiving guest OS for the receiving process performed after the receiving interrupt process of the receiving guest OS. For this reason, there is a possibility that there is another guest OS whose CPU time is unreasonably taken.
図5の例では、時点t0から1msが経過した時点t1で、ゲストOS31-1に追加でCPU時間(CPU追加割当時間)が割り当てられた結果、ゲストOS31-2及びゲストOS31-3に割り当てられるべきCPU時間が当該ゲストOS31-2及びゲストOS31-3から奪われている。このような場合、CPU時間を奪われたゲストOS31-2及びゲストOS31-3のうちのゲストOS31-3は、ゲストOS31-1(追加でCPU時間が割り当てられたゲストOS31-1)とゲストOS31-2との間で行われるゲストOS間通信とは無関係であるのに、当該ゲストOS31-3の性能が低下する可能性がある。このような性能低下は、特にゲストOS31-3がリアルタイム性を要求される処理を行っている場合に問題となる。 In the example of FIG. 5, as a result of the additional CPU time (CPU additional allocation time) being allocated to the guest OS 31-1, at the time t1 when 1 ms has elapsed from the time t0, the allocation is performed to the guest OS 31-2 and the guest OS 31-3. CPU time to be taken is taken away from the guest OS 31-2 and guest OS 31-3. In such a case, the guest OS 31-3 among the guest OS 31-2 and guest OS 31-3 whose CPU time has been deprived is the guest OS 31-1 (guest OS 31-1 to which additional CPU time is allocated) and the guest OS 31. Although it is not related to the communication between guest OSes performed with -2, the performance of the guest OS 31-3 may be deteriorated. Such a performance degradation becomes a problem particularly when the guest OS 31-3 is performing a process that requires real-time performance.
第2の変形例の特徴は、追加でCPU時間が割り当てられるゲストOSを第1のゲストOS、CPU時間を奪われるゲストOSを第2のゲストOSと呼ぶものとすると、第2のゲストOSから奪われるCPU時間を、第1のゲストOSに割り当てられる予定のCPU時間で埋め合わせることにある。この埋め合わせは、第2のゲストOSから奪われるCPU時間を、当該奪われるCPU時間の割り当てが予定されていた時間帯(割り当て予定時間帯)に最も近い時間帯に第1のゲストOSに割り当てられる予定のCPU時間と交換することにより実現される。 The feature of the second modified example is that a guest OS to which CPU time is additionally allocated is called a first guest OS, and a guest OS that is deprived of CPU time is called a second guest OS. The CPU time taken away is to make up for the CPU time scheduled to be allocated to the first guest OS. In this compensation, the CPU time taken away from the second guest OS is assigned to the first guest OS in the time zone closest to the time zone (assignment scheduled time zone) where the assigned CPU time is scheduled. This is realized by exchanging with the scheduled CPU time.
以下、第2のゲストOSから奪われるCPU時間を第1のゲストOSに割り当てられる予定のCPU時間と交換することによって実現されるスケジュール調整の手順について、図10のフローチャートを参照して説明する。 Hereinafter, a procedure of schedule adjustment realized by exchanging the CPU time taken away from the second guest OS with the CPU time scheduled to be assigned to the first guest OS will be described with reference to the flowchart of FIG.
今、送信側ゲストOS31-2からの通信に伴う送信データが受信側ゲストOS31-1で受信され、当該受信側ゲストOS31-1に受信割り込みが発生したものとする。この場合、スケジュールの変更の必要が発生する。 Assume that transmission data associated with communication from the transmission side guest OS 31-2 is received by the reception side guest OS 31-1, and a reception interrupt occurs in the reception side guest OS 31-1. In this case, the schedule needs to be changed.
するとゲストOSスケジューラ221は、受信側ゲストOS31-1での割り込み処理後に行われる受信処理に必要なCPU割当時間が現在受信側ゲストOS31-1用に設定されているCPU追加割当時間では不足しているかを判定する(ステップS61)。ここで、受信側ゲストOS31-1での割り込み処理後の受信処理に必要なCPU割当時間の値は、ゲストOSコンテキスト241-1に含まれているCPU追加割当時間情報244によって示される。また、ステップS61が最初に実行される段階では、受信側ゲストOS31-1用に設定されているCPU追加割当時間の時間帯は存在しない。
Then, the
もし、受信側ゲストOS31-1での割り込み処理後の受信処理に必要なCPU割当時間が不足しているならば、ゲストOSスケジューラ221はステップS62の処理を実行する。このステップS62においてゲストOSスケジューラ221は、CPU時間割当テーブル222を参照することにより、受信側ゲストOS31-1用のCPU追加割当時間の時間帯外で、最も近い将来に受信側ゲストOS31-1に割り当てられる予定の時間帯となるCPU時間(ディスパッチ予定時間)を探す。
If the CPU allocation time necessary for the receiving process after the interrupt process in the receiving guest OS 31-1 is insufficient, the
次にゲストOSスケジューラ221は、現在受信側ゲストOS31-1用に設定されているCPU追加割当時間の時間帯の直後に他のゲストOSに割り当てられるように予定されているCPU時間を、ステップS62で探し求められた、受信側ゲストOS31-1に割り当てられる予定のCPU時間とを入れ替える(ステップS63)。つまり、ゲストOSスケジューラ221は、CPU追加割当時間の時間帯の直後に他のゲストOSに割り当てられるように予定されているCPU時間を受信側ゲストOS31-1用のCPU追加割当時間に追加し、ステップS62で探し求められた、受信側ゲストOS31-1に割り当てられる予定のCPU時間を当該他のゲストOS用に変更する操作を、CPU時間割当テーブル222上で行う。ステップS63が最初に実行される段階では、受信側ゲストOS31-1用に設定されているCPU追加割当時間の時間帯は存在しない。この場合、CPU追加割当時間の時間帯の直後に他のゲストOSに割り当てられるように予定されているCPU時間の時間帯は、送信側ゲストOS31-2が受信側ゲストOS31-1に対して通信を行った時点が属するCPU時間の時間帯であり、送信側ゲストOS31-2用のCPU時間の時間帯である。
Next, the
ゲストOSスケジューラ221は、上述のステップS62及びS63を、受信側ゲストOS31-1に追加で割り当てられるCPU時間(CPU追加割当時間)が不足しなくなるまで(ステップS61)、繰り返す。
The
図11は、図10のフローチャートの示す手順に従ってゲストOS31-1〜32-3を対象とするスケジュールが調整された際の調整前後のスケジュールの例を示す。図11の例では、時点t10においてゲストOS31-2に2msのCPU時間が割り当てられる。このCPU時間割り当ての直後にゲストOS31-2がゲストOS31-1への通信を行ったものとする。 FIG. 11 shows an example of the schedule before and after adjustment when the schedule for the guest OSs 31-1 to 32-3 is adjusted according to the procedure shown in the flowchart of FIG. In the example of FIG. 11, 2 ms of CPU time is allocated to the guest OS 31-2 at time t10. Assume that the guest OS 31-2 communicates with the guest OS 31-1 immediately after this CPU time allocation.
割り込み管理部23は、この時点(t10の時点)で受信側ゲストOS31-1へのゲストOS間通信の受信割り込みを発生する。するとゲストOSスケジューラ221によって、CPU時間割当テーブル222の示すスケジュールの調整が行われる。この調整では、図11(a)において矢印111で示されるように、時点t10に送信側ゲストOS31-2に割り当てられる予定の(割り当てられた)時点t10から時点t11(=t10+2ms)までの時間帯の2msのCPU時間と、時点t12に受信側ゲストOS31-1に割り当てられる予定の時点t12(=t10+4ms)から時点t13(=t10+6ms)までの時間帯の2msのCPU時間との入れ替えが行われる。同様に、図11(a)において矢印112で示されるように、時点t11(=t10+2ms)にゲストOS31-3に割り当てられる予定の時点t11(=t10+2ms)から時点t12(=t10+4ms)までの時間帯の2msのCPU時間と、時点t14(=t10+10ms)に受信側ゲストOS31-1に割り当てられる予定の時点t14(=t10+10ms)から時点t15(=t10+12ms)までの時間帯の2msのCPU時間との入れ替えが行われる。
The interrupt
これにより、図11(b)に示されるように、時点t10での受信割り込み直後に、時点t10から時点t12までの、本来ゲストOS31-2及び31-3に順に割り当てられる予定の4msのCPU時間が、受信側ゲストOS31-1に割り当てられる。これとは逆に、本来受信側ゲストOS31-1に割り当てられる予定の、時点t12から時点t13までの2msのCPU時間及び時点t14から時点t15までの2msのCPU時間が、図11(b)に示されるように、それぞれゲストOS31-2及び31-3に割り当てられる。 As a result, as shown in FIG. 11B, immediately after the reception interruption at time t10, the CPU time of 4 ms that is originally scheduled to be sequentially assigned to the guest OSs 31-2 and 31-3 from time t10 to time t12. Are assigned to the receiving guest OS 31-1. On the contrary, the 2 ms CPU time from the time t12 to the time t13 and the 2 ms CPU time from the time t14 to the time t15, which are originally scheduled to be assigned to the receiving guest OS 31-1, are shown in FIG. As shown, guest OSs 31-2 and 31-3 are assigned respectively.
このように、図11の例では、時点t11での受信割り込み直後に、受信側ゲストOS31-1に、当該ゲストOS31-1での受信処理に必要な(ゲストOSコンテキスト241-1に含まれているCPU追加割当時間情報244の示す)値のCPU時間が割り当てられるように、CPU時間割当テーブル222の示すスケジュールが変更される。また、スケジュールされた範囲内において、ゲストOS31-1〜31-3の各々に割り当てられるCPU時間量は均等に保たれる。
As described above, in the example of FIG. 11, immediately after the reception interrupt at time t11, the reception-side guest OS 31-1 requires the reception processing in the guest OS 31-1 (included in the guest OS context 241-1). The schedule indicated by the CPU time allocation table 222 is changed so that the CPU time of the value indicated by the CPU additional
上記第2の変形例では、説明の簡略化のために、ゲストOS31-1〜31-3に本来割り当てられる予定のCPU時間単位で交換が行われることを前提としている。しかし、受信割り込みは、実行中のゲストOSに割り当てられているCPU時間の途中で発生することが一般的である。また、各ゲストOSに割り当てられるCPU時間も、ゲストOS毎に異なることも考えられる。このような場合、ゲストOSスケジューラ221は、各ゲストOSに割り当てられる予定のCPU時間を必要な時間量(例えばゲストOSスケジューラ221が管理する最小時間単位)に分割してスケジュールの調整をすれば良い。なお、スケジュールの範囲内で受信側ゲストOSに割り当てられるCPU時間がまかなえない場合は、更に先のスケジュールを作成することで解決できる。
In the second modified example, for simplification of explanation, it is assumed that the exchange is performed in units of CPU time originally scheduled to be assigned to the guest OSs 31-1 to 31-3. However, the reception interrupt generally occurs in the middle of the CPU time allocated to the guest OS being executed. In addition, the CPU time allocated to each guest OS may be different for each guest OS. In such a case, the
[第3の変形例]
次に、上記実施形態の第3の変形例について説明する。第3の変形例の特徴は、受信側ゲストOSへの受信割り込み時に当該ゲストOSに追加で割り当てられるCPU時間を、送信側ゲストOSに割り当てられる予定のCPU時間でまかなうことにある。このように第3の変形例では、受信側ゲストOSの受信割り込み処理の後に行われる受信処理用に、送信側ゲストOSに割り当てられる予定のCPU時間を譲渡する手法が適用される。この手法は、例えば、送信側ゲストOSの処理の進行に受信側ゲストOSの応答が必要な場合の通信モデルに適用できる。また、この手法は、受信側ゲストOS(CPU時間が追加で割り当てられる受信側ゲストOS)が関係するゲストOS間通信とは無関係のゲストOSに対するCPU時間の割り当てに影響を与えない。
[Third Modification]
Next, a third modification of the above embodiment will be described. The feature of the third modification is that the CPU time additionally allocated to the guest OS at the time of reception interruption to the receiving guest OS is covered by the scheduled CPU time allocated to the transmitting guest OS. As described above, in the third modification, a method of transferring the CPU time scheduled to be assigned to the transmission side guest OS is applied for the reception process performed after the reception interrupt process of the reception side guest OS. This technique can be applied, for example, to a communication model in a case where a response of the receiving guest OS is required for the progress of processing of the transmitting guest OS. In addition, this method does not affect the allocation of CPU time to the guest OS that is unrelated to the communication between guest OSs related to the reception-side guest OS (reception-side guest OS to which CPU time is additionally allocated).
以下、送信側ゲストOSに割り当てられる予定のCPU時間を受信側ゲストOSの受信処理用に譲渡することによって実現されるスケジュール調整の手順について、図12のフローチャートを参照して説明する。 Hereinafter, the procedure of schedule adjustment realized by transferring the CPU time scheduled to be allocated to the transmission side guest OS for reception processing of the reception side guest OS will be described with reference to the flowchart of FIG.
今、ゲストOS31-1がゲストOS(送信側ゲストOS)31-2からの通信の送信データを受信し、そのゲストOS(受信側ゲストOS)31-1に受信割り込みが発生したものとする。この場合、第2の変形例と同様にスケジュールの変更の必要が発生する。 Now, it is assumed that the guest OS 31-1 has received communication transmission data from the guest OS (transmission-side guest OS) 31-2 and a reception interrupt has occurred in the guest OS (reception-side guest OS) 31-1. In this case, the schedule needs to be changed as in the second modification.
するとゲストOSスケジューラ221は、CPU時間割当テーブル222を参照して、受信割り込み時点における当該CPU時間割当テーブル222の示すスケジュール上の位置(つまり現在のスケジュール位置)を確認する(ステップS71)。次にゲストOSスケジューラ221は、受信割り込み時点から最も最近に確認されたスケジュール位置までに受信側ゲストOS31-1に割り当てられる予定のCPU時間(CPU割当予定時間)の合計量が、当該ゲストOS31-1に固有のCPU追加割当時間情報244の示す値(つまりゲストOS31-1の受信処理に必要な時間)以上であるかを判定する(ステップS72)。
Then, the
もし、上述のCPU割当予定時間の合計量が、ゲストOS31-1の受信処理に必要な時間に満たないならば(ステップS72)、ゲストOSスケジューラ221は、最も最近に確認されたスケジュール位置が送信側ゲストOS31-2にCPU時間が割り当てられるディスパッチ予定位置であるかを判定する(ステップS73)。もし、このステップS73での判定がYESであるならば、ゲストOSスケジューラ221は、CPU時間割当テーブル222の示す該当する送信側ゲストOS31-2用のスケジュール位置(ここでは現在のスケジュール位置)を受信側ゲストOS31-1(へのディスパッチ予定)用に変更する(ステップS74)。つまりCPU時間割当テーブル222は、本来送信側ゲストOS31-2に割り当てられるべき2msのCPU時間を、受信側ゲストOS31-1に譲渡させる。この変更(譲渡)により、受信割り込み時点から最も最近に確認されたスケジュール位置までにおける受信側ゲストOS31-1へのCPU割当予定時間の合計量が2msだけ増加する。
If the total amount of the CPU allocation scheduled time described above is less than the time required for the reception process of the guest OS 31-1, (step S72), the
ゲストOSスケジューラ221は、ステップS74を実行するとステップS75に進む。これに対し、ステップS73での判定がNOであるならば、ゲストOSスケジューラ221は、ステップS74をスキップしてステップS75に進む。なお、ステップS73での判定がNOであっても、最も最近に確認されたスケジュール位置が受信側ゲストOS31-1にCPU時間が割り当てられるディスパッチ予定位置であるならば、受信割り込み時点から最も最近に確認されたスケジュール位置までにおける受信側ゲストOS31-1へのCPU割当予定時間の合計量は2msだけ増加する。
After executing step S74, the
ステップS75においてゲストOSスケジューラ221は、CPU時間割当テーブル222の次のスケジュール位置を確認する。するとゲストOSスケジューラ221は、ステップS71で現在のスケジュール位置が確認された場合と同様に、ステップS72以降の処理を行う。
In step S75, the
即ちゲストOSスケジューラ221は、上述のような受信側ゲストOS31-1へのCPU割当予定時間の合計量が、当該ゲストOS31-1の受信処理に必要な時間に対して依然として不足しているかを判定する(ステップS72)。
That is, the
もし、上述のような受信側ゲストOS31-1へのCPU割当予定時間の合計量が不足しているならば(ステップS72)、ゲストOSスケジューラ221は、最も最近に確認されたスケジュール位置、つまりステップS75で確認された次のスケジュール位置が、送信側ゲストOS31-2にCPU時間が割り当てられるスケジュール位置であるかを判定する(ステップS73)。もし、ステップS73の判定がYESであるならば、ゲストOSスケジューラ221は、ステップS75で確認された次のスケジュール位置を受信側ゲストOS31-1用に変更する(ステップS74)。そして、再びステップS75及びS72が行われる。これに対してステップS73の判定がNOであるならば、ステップS74をスキップして、再びステップS75及びS72が行われる。
If the total amount of scheduled CPU allocation time for the receiving guest OS 31-1 as described above is insufficient (step S72), the
やがて、上述のような受信側ゲストOS31-1へのCPU割当予定時間の合計量が、当該ゲストOS31-1の受信処理に必要な時間以上となったならば(ステップS72)、ゲストOSスケジューラ221は図12のフローチャートに従うスケジュール調整処理を終了する。
Eventually, if the total amount of the CPU allocation scheduled time for the receiving guest OS 31-1 as described above becomes equal to or longer than the time required for the receiving process of the guest OS 31-1 (step S72), the
このように本実施形態においては、CPU時間割当テーブル222に基づき、受信割り込み発生時点以降にCPU時間が割り当てられる予定(ディスパッチ予定)のゲストOSを順に調べ、送信側ゲストOS31-2用に割り当てられる予定のCPU時間を受信側ゲストOS31-1用に変更する処理を、受信割り込み発生時点以降に当該ゲストOS31-1に割り当てられることになるCPU時間(CPU割当予定時間)の合計が4msを超えるまで繰り返す。 As described above, in the present embodiment, based on the CPU time allocation table 222, guest OSes scheduled to be allocated (scheduled to be dispatched) after the occurrence of the reception interrupt are sequentially checked and allocated to the sending guest OS 31-2. Processing for changing the scheduled CPU time for the receiving guest OS 31-1 until the total CPU time (scheduled CPU allocation time) to be allocated to the guest OS 31-1 after the occurrence of the reception interrupt exceeds 4 ms. repeat.
図13は、図12のフローチャートの示す手順に従ってゲストOS31-1〜32-3のうちのゲストOS31-1及び31-2を対象とするスケジュールが調整された際の調整前後のスケジュールの例を示す。 FIG. 13 shows an example of the schedule before and after adjustment when the schedule for the guest OSs 31-1 and 31-2 of the guest OSs 31-1 to 32-3 is adjusted according to the procedure shown in the flowchart of FIG. .
今、図13(a)における時点t20、即ちゲストOS31-2へのCPU時間の割り当て時点t20の直後に、当該ゲストOS31-2からゲストOS31-1への通信を行ったものとする。VMM20の割り込み管理部23は時点t20で受信側ゲストOS31-1へのゲストOS間通信の受信割り込みを発生する。するとゲストOSスケジューラ221によって、CPU時間割当テーブル222の示すスケジュールの調整が次のように行われる。
Assume that communication from the guest OS 31-2 to the guest OS 31-1 is performed immediately after time t20 in FIG. 13A, that is, immediately after the time t20 at which the CPU time is allocated to the guest OS 31-2. The interrupt
まず、割り込み時点(現時点)t20直後、時点t21までの2msのCPU時間(つまり現在のスケジュール位置のCPU時間)が割り当てられるゲストOS31-2は、送信側ゲストOSである。この場合、時点t20から時点t21までの2msのCPU時間は、矢印130で示されるように、送信側ゲストOS31-2用から受信側ゲストOS31-1用に変更される。
First, the guest OS 31-2 to which the 2 ms CPU time (that is, the CPU time at the current schedule position) up to the time t21 immediately after the interruption time (current time) t20 is assigned is the sending guest OS. In this case, the CPU time of 2 ms from the time point t20 to the time point t21 is changed from the transmission side guest OS 31-2 to the reception side guest OS 31-1, as indicated by the
次の時点t21から時点t22までの2msのCPU時間はゲストOS31-3用に予定されている。このゲストOS31-3は、ゲストOS31-2とゲストOS31-1との間のゲストOS間通信とは無関係である。このため、ゲストOS31-3用に予定されているCPU時間に関してはスケジュール調整は行われない。 The next 2 ms CPU time from time t21 to time t22 is scheduled for the guest OS 31-3. The guest OS 31-3 has nothing to do with the inter-guest OS communication between the guest OS 31-2 and the guest OS 31-1. For this reason, schedule adjustment is not performed regarding the CPU time scheduled for the guest OS 31-3.
次の時点t22から時点t23までの2msのCPU時間は、もともと受信側ゲストOS31-1用に予定されている。したがって、時点t22から時点t23までの対応するスケジュール位置における2msのCPU時間を含めて、割り込み時点(現時点)t20から6msが経過する当該時点t23までに受信側ゲストOS31-1に割り当てられる予定のCPU時間の合計は、当該受信側ゲストOS31-1での割り込み処理直後の受信処理に必要な4msを充足する。この場合、スケジュールの調整は終了する。 The CPU time of 2 ms from the next time point t22 to the time point t23 is originally scheduled for the reception-side guest OS 31-1. Therefore, including the CPU time of 2 ms at the corresponding schedule position from time t22 to time t23, the CPU scheduled to be assigned to the receiving guest OS 31-1 by time t23 when 6 ms elapses from the interrupt time (current time) t20. The total time satisfies 4 ms required for the reception process immediately after the interrupt process in the receiving guest OS 31-1. In this case, the schedule adjustment ends.
第3の変形例によるスケジュール調整では、受信側ゲストOS31-1に追加で割り当てられるCPU時間は連続にはならない。しかし、受信側ゲストOS31-1との間でゲストOS間通信を行う送信側ゲストOS31-2よりも先に、当該受信側ゲストOS31-1にCPU時間が割り当てられるので一般には問題にならない。 In the schedule adjustment according to the third modified example, the CPU time additionally allocated to the receiving guest OS 31-1 is not continuous. However, since CPU time is allocated to the receiving guest OS 31-1 prior to the transmitting guest OS 31-2 that performs inter-guest OS communication with the receiving guest OS 31-1, there is generally no problem.
上記第3の変形例では、第2の変形例と同様に、説明の簡略化のために、ゲストOS31-1〜31-3に本来割り当てられる予定のCPU時間単位で譲渡(割り当て予定先のゲストOSの変更)が行われることを前提としている。しかし、受信割り込みは、実行中のゲストOSに割り当てられているCPU時間の途中で発生することが一般的である。また、各ゲストOSに割り当てられるCPU時間も、ゲストOS毎に異なることも考えられる。このような場合、ゲストOSスケジューラ221は、各ゲストOSに割り当てられる予定のCPU時間を必要な時間量(例えばゲストOSスケジューラ221が管理する最小時間単位)に分割してスケジュールの調整をすれば良い。
In the third modified example, as in the second modified example, for simplification of description, transfer is performed in the CPU time unit that is originally allocated to the guest OSs 31-1 to 31-3 (guests to be allocated). (OS change) is assumed to be performed. However, the reception interrupt generally occurs in the middle of the CPU time allocated to the guest OS being executed. In addition, the CPU time allocated to each guest OS may be different for each guest OS. In such a case, the
なお、本発明は、上記実施形態またはその変形例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態またはその変形例に開示されている複数の構成要素の適宜な組み合わせにより種々の発明を形成できる。例えば、実施形態またはその変形例に示される全構成要素から幾つかの構成要素を削除してもよい。 In addition, this invention is not limited to the said embodiment or its modification example as it is, A component can be deform | transformed and embodied in the range which does not deviate from the summary in an implementation stage. In addition, various inventions can be formed by appropriately combining a plurality of constituent elements disclosed in the embodiment or its modification. For example, you may delete a some component from all the components shown by embodiment or its modification.
1…物理計算機、10…ハードウェア(HW)、11…CPU(実CPU)、20…仮想計算機マネージャ(VMM)、21…ゲストOS間通信管理部、22…ゲストOS実行管理部、23…割り込み管理部、24…ゲストOSコンテキスト管理部、210…ゲストOS間通信IF、211…ゲストOS間通信監視部、221…ゲストOSスケジューラ、222…CPU時間割当テーブル、223…ディスパッチャ、240…CPU追加割当時間設定部、241-1〜241-3…ゲストOSコンテキスト、242…ゲストOS固有データ、243…割り込み要因レジスタ、244…CPU追加割当時間情報。
DESCRIPTION OF
Claims (12)
前記仮想計算機マネージャは、
前記複数のゲストOSのうちの任意のゲストOSへの割り込みを管理する割り込み管理手段であって、送信側ゲストOSから前記仮想計算機マネージャに与えられる受信側ゲストOSへのゲストOS間通信の要求を受けて、前記受信側ゲストOSでの前記ゲストOS間通信の受信を受信割り込みにより当該受信側ゲストOSに通知する割り込み管理手段と、
前記複数のゲストOSを時分割で実行させるためのスケジュールを管理するスケジューラであって、前記複数のゲストOSのうちの任意のゲストOSへの割り込みの要因が発生し、且つ当該要因が前記ゲストOS間通信の受信である場合に、当該任意のゲストOSを前記受信側ゲストOSとして、当該受信側ゲストOSが所定の割り込み処理を行って、当該割り込み処理後に前記受信割り込みの解除を前記仮想計算機マネージャに通知した後に、当該受信側ゲストOS自身によって行われる受信処理に必要なCPU時間が当該受信側ゲストOSに追加で割り当てられるように前記スケジュールを調整するスケジューラと、
前記スケジューラによって調整された前記スケジュールに従って前記複数のゲストOSをディスパッチするディスパッチャと
を具備することを特徴とする仮想計算機システム。 In a virtual machine system in which a plurality of guest OSs are executed in a time-sharing manner in a virtual machine execution environment provided by a virtual machine manager that operates on a physical machine including a CPU,
The virtual machine manager is
Interrupt management means for managing an interrupt to an arbitrary guest OS among the plurality of guest OSs, wherein a request for inter-guest OS communication from the sending guest OS to the receiving guest OS is given to the virtual machine manager. An interrupt management means for notifying the reception guest OS by reception interrupt of reception of the communication between the guest OSs in the reception guest OS ;
A scheduler for managing a schedule for executing the plurality of guest OSs in a time-sharing manner, wherein an interrupt factor to an arbitrary guest OS among the plurality of guest OSs occurs, and the factor is the guest OS In the case of reception of inter-communication, the virtual machine manager cancels the reception interrupt after the interrupt processing, with the arbitrary guest OS as the reception guest OS, and the reception guest OS performs a predetermined interrupt processing. A scheduler that adjusts the schedule so that the CPU time required for the reception process performed by the receiving guest OS itself is additionally allocated to the receiving guest OS,
A virtual machine system comprising: a dispatcher that dispatches the plurality of guest OSs according to the schedule adjusted by the scheduler.
前記受信側ゲストOSによって行われる前記割り込み処理は、当該受信側ゲストOSが前記ゲストOS間通信受信ビットの前記第1の状態に基づき割り込み要因を確認して、当該ゲストOS間通信受信ビットを前記第1の状態とは異なる第2の状態に設定する処理を含む
ことを特徴とする請求項1記載の仮想計算機システム。 The interrupt management means, before notifying the reception side guest OS of the reception of the communication between the guest OSs by a reception interrupt, the guest in the interrupt factor register included in the guest OS context specific to the reception side guest OS Set the inter-OS communication receive bit to the first state,
The interrupt processing performed by the receiving guest OS confirms the interrupt factor based on the first state of the inter-guest OS communication receiving bit, and the receiving guest OS transmits the inter-guest OS communication receiving bit. The virtual computer system according to claim 1 , further comprising a process of setting to a second state different from the first state .
前記複数のゲストOSの各々のゲストOSコンテキストであって、前記ゲストOS間通信受信ビットに加えて、前記受信割り込みの解除後の受信処理に必要なCPU時間の値をCPU追加割当時間設定値として含むゲストOSコンテキストを管理するゲストOSコンテキスト管理手段と、
ゲストOS間通信を監視することによって通信スループットを観測するゲストOS間通信監視手段と、
前記ゲストOS間通信監視手段による通信スループットの観測結果に基づき、対応するゲストOSに固有の前記ゲストOSコンテキストに含まれている前記CPU追加割当時間設定値を変更するCPU追加割当時間設定手段とを更に具備し、
前記スケジューラは、前記受信側ゲストOSに固有の前記ゲストOSコンテキストに含まれている受信割り込み解除後の受信処理に必要なCPU追加割当時間設定値に基づき前記スケジュールを調整する
ことを特徴とする請求項2記載の仮想計算機システム。 The virtual machine manager is
In each guest OS context of the plurality of guest OSes, in addition to the inter-guest OS communication reception bit, a CPU time value necessary for reception processing after the reception interrupt is canceled is set as a CPU additional allocation time setting value. A guest OS context management means for managing a guest OS context including:
A guest OS communication monitoring means for observing communication throughput by monitoring communication between guest OSes;
Based on the guest OS communication monitoring means according to the communication throughput observations, corresponding to the guest OS and a CPU additional allocation time setting means for changing the CPU additional allocation time setting value included in the specific of the guest OS context In addition,
The scheduler adjusts the schedule based on a CPU additional allocation time setting value required for reception processing after reception interrupt cancellation included in the guest OS context specific to the receiving guest OS.
Virtual computer system according to claim 2, wherein the this.
送信側ゲストOSから前記仮想計算機マネージャに与えられる受信側ゲストOSへのゲストOS間通信の要求を受けて、前記仮想計算機マネージャが、前記受信側ゲストOSでの前記ゲストOS間通信の受信を受信割り込みにより当該受信側ゲストOSに通知するステップと、
前記複数のゲストOSのうちの任意のゲストOSへの割り込みの要因が発生した場合に、当該要因が送信側ゲストOSからのゲストOS間通信に伴う前記任意のゲストOSでの前記ゲストOS間通信の受信であるかを前記仮想計算機マネージャが判定するステップと、
前記任意のゲストOSへの割り込みの要因がゲストOS間通信の受信である場合に、前記仮想計算機マネージャが、前記任意のゲストOSを前記受信側ゲストOSとして前記スケジュールを調整するステップであって、当該受信側ゲストOSが所定の割り込み処理を行って、当該割り込み処理後に前記受信割り込みの解除を前記仮想計算機マネージャに通知した後に、当該受信側ゲストOS自身によって行われる受信処理に必要なCPU時間が当該受信側ゲストOSに追加で割り当てられるように、前記仮想計算機マネージャが前記スケジュールを調整するステップと
を具備することを特徴とするスケジュール調整方法。 In a virtual machine system in which a plurality of guest OSs are executed in a time division in a virtual machine execution environment provided by a virtual machine manager that operates on a physical computer including a CPU, the plurality of guest OSs are executed in a time division manner A schedule adjustment method for adjusting a schedule,
Upon receiving a request for inter-guest OS communication from the sending guest OS to the receiving guest OS given to the virtual machine manager, the virtual machine manager receives the reception of the inter-guest OS communication in the receiving guest OS. A step of notifying the receiving guest OS by interruption;
When an interrupt factor to an arbitrary guest OS among the guest OSs occurs, the inter-guest OS communication in the arbitrary guest OS is caused by the inter-guest OS communication from the sending guest OS. The virtual machine manager determining whether it is received,
The virtual machine manager adjusting the schedule with the arbitrary guest OS as the receiving guest OS when the interrupt factor to the arbitrary guest OS is reception of communication between guest OSes , After the receiving guest OS performs predetermined interrupt processing and notifies the virtual machine manager of the cancellation of the receiving interrupt after the interrupt processing, the CPU time required for the receiving processing performed by the receiving guest OS itself The virtual machine manager adjusts the schedule so as to be additionally assigned to the receiving guest OS. A schedule adjustment method comprising:
前記受信側ゲストOSによって行われる前記割り込み処理は、当該受信側ゲストOSが前記ゲストOS間通信受信ビットの前記第1の状態に基づき割り込み要因を確認して、当該ゲストOS間通信受信ビットを前記第1の状態とは異なる第2の状態に設定する処理を含む
ことを特徴とする請求項7記載のスケジュール調整方法。 In the notifying step, the virtual machine manager is managed by a guest OS context management unit included in the virtual machine manager before notifying the reception guest OS of reception of the communication between guest OSs by a reception interrupt. Set the guest OS communication reception bit in the interrupt factor register included in the guest OS context unique to the receiving guest OS among the guest OS contexts of the plurality of guest OSs to the first state,
The interrupt processing performed by the receiving guest OS confirms the interrupt factor based on the first state of the inter-guest OS communication receiving bit, and the receiving guest OS transmits the inter-guest OS communication receiving bit. The schedule adjustment method according to claim 7 , further comprising a process of setting a second state different from the first state .
前記スケジュール調整方法は、
前記仮想計算機マネージャが、ゲストOS間通信を監視することによって通信スループットを観測するステップと、
前記通信スループットの観測結果に基づき、対応するゲストOSに固有の前記ゲストOSコンテキストに含まれている前記CPU追加割当時間設定値を前記仮想計算機マネージャが変更するステップとを更に具備し、
前記調整するステップにおいて前記前記仮想計算機マネージャは、前記受信側ゲストOSに固有の前記ゲストOSコンテキストに含まれている前記受信割り込みの解除後の受信処理に必要な前記CPU追加割当時間設定値に基づき、前記スケジュールを調整する
ことを特徴とする請求項8記載のスケジュール調整方法。 The guest OS context includes, in addition to the guest OS communication reception bit, a CPU time value necessary for reception processing after the reception interrupt is canceled as a CPU additional allocation time setting value,
The schedule adjustment method is:
The virtual machine manager observing communication throughput by monitoring communication between guest OSes;
Based on said communication throughput observations, further comprising the step of corresponds to the guest OS to specific the guest OS context included the CPU additional allocation time values that are the virtual machine manager to change,
In the adjusting step, the virtual machine manager is based on the CPU additional allocation time setting value necessary for reception processing after the reception interrupt is released, which is included in the guest OS context specific to the receiving guest OS. , Adjust the schedule
Scheduling method of claim 8, wherein the this.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007242929A JP4620097B2 (en) | 2007-09-19 | 2007-09-19 | Virtual computer system and schedule adjustment method in the same system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2007242929A JP4620097B2 (en) | 2007-09-19 | 2007-09-19 | Virtual computer system and schedule adjustment method in the same system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2009075766A JP2009075766A (en) | 2009-04-09 |
JP4620097B2 true JP4620097B2 (en) | 2011-01-26 |
Family
ID=40610682
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2007242929A Expired - Fee Related JP4620097B2 (en) | 2007-09-19 | 2007-09-19 | Virtual computer system and schedule adjustment method in the same system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4620097B2 (en) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9110878B2 (en) * | 2012-01-18 | 2015-08-18 | International Business Machines Corporation | Use of a warning track interruption facility by a program |
WO2014118870A1 (en) * | 2013-01-29 | 2014-08-07 | 株式会社日立製作所 | Computer and control method for computer |
US10235211B2 (en) * | 2016-04-22 | 2019-03-19 | Cavium, Llc | Method and apparatus for dynamic virtual system on chip |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000322277A (en) * | 1999-05-12 | 2000-11-24 | Matsushita Electric Ind Co Ltd | Task management device |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS6162939A (en) * | 1984-09-04 | 1986-03-31 | Fujitsu Ltd | Dispatching system |
-
2007
- 2007-09-19 JP JP2007242929A patent/JP4620097B2/en not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000322277A (en) * | 1999-05-12 | 2000-11-24 | Matsushita Electric Ind Co Ltd | Task management device |
Also Published As
Publication number | Publication date |
---|---|
JP2009075766A (en) | 2009-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101781063B1 (en) | Two-level resource management method and appratus for dynamic resource management | |
US9158565B2 (en) | Predictable computing in virtualizated distributed computer systems based on partitioning of computation and communication resources | |
US8146081B2 (en) | Method of selecting one of execution schedules of guest OSes and virtual machine monitor employing the method | |
US8863138B2 (en) | Application service performance in cloud computing | |
CN101242392B (en) | Method, device and system for processing series service message | |
Snir et al. | The communication software and parallel environment of the IBM SP2 | |
Hategan et al. | Coasters: uniform resource provisioning and access for clouds and grids | |
KR101474872B1 (en) | Method for elastic virtual cluster management for efficient construction of virtual clusters on cloud, apparatus for elastic virtual cluster management and cloud system using the same | |
KR20160087706A (en) | Apparatus and method for resource allocation of a distributed data processing system considering virtualization platform | |
JP2008226181A (en) | Parallel execution program, recording medium storing it, parallel execution device, and parallel execution method | |
JP2004535615A (en) | Shared I / O in partitioned processing environment | |
JPWO2008117470A1 (en) | Virtual computer control program, virtual computer control system, and virtual computer migration method | |
CN104102548A (en) | Task resource scheduling processing method and task resource scheduling processing system | |
JP4620097B2 (en) | Virtual computer system and schedule adjustment method in the same system | |
Netto et al. | Rescheduling co-allocation requests based on flexible advance reservations and processor remapping | |
TWI296387B (en) | Scheduling method for remote object procedure call and system thereof | |
JP7451438B2 (en) | Communication devices, communication systems, notification methods and programs | |
Wang et al. | Galleon: Reshaping the square peg of nfv | |
JP4265559B2 (en) | Data processing apparatus, data processing server, data processing system, and data processing program | |
JP2017033234A (en) | Request reception system, request reception method and program | |
JP2015064746A (en) | Information processing system, control method and control program for information processing system | |
CN115811549B (en) | Cloud edge resource management scheduling method and system supporting hybrid heterogeneous operation | |
WO2022033037A1 (en) | Message management method, device, and serverless system | |
KR20160144688A (en) | Event router for symmetric multiprocessor system virtual machine using queue and method using the same | |
KR101286159B1 (en) | System and Method for Creation and Termination of MPI Parallel Processes and Recordable Medium Storing the Method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20100226 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20100413 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20100614 |
|
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: 20100928 |
|
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: 20101027 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131105 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S531 | Written request for registration of change of domicile |
Free format text: JAPANESE INTERMEDIATE CODE: R313531 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
LAPS | Cancellation because of no payment of annual fees |