JP5251188B2 - 情報処理装置、情報処理装置の制御方法及びコンピュータプログラム - Google Patents

情報処理装置、情報処理装置の制御方法及びコンピュータプログラム Download PDF

Info

Publication number
JP5251188B2
JP5251188B2 JP2008069917A JP2008069917A JP5251188B2 JP 5251188 B2 JP5251188 B2 JP 5251188B2 JP 2008069917 A JP2008069917 A JP 2008069917A JP 2008069917 A JP2008069917 A JP 2008069917A JP 5251188 B2 JP5251188 B2 JP 5251188B2
Authority
JP
Japan
Prior art keywords
state
instruction
input
control
captured
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
Application number
JP2008069917A
Other languages
English (en)
Other versions
JP2009223793A (ja
Inventor
昇 岩松
直樹 西口
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2008069917A priority Critical patent/JP5251188B2/ja
Publication of JP2009223793A publication Critical patent/JP2009223793A/ja
Application granted granted Critical
Publication of JP5251188B2 publication Critical patent/JP5251188B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、一の情報処理装置を仮想的に複数の情報処理装置として動作させることを可能にする仮想化技術が適用される情報処理装置に関する。特に、仮想化技術によって実行される複数のOSと、ハードウェア資源との間の入出力制御の方式を切り替えることが可能な情報処理装置、情報処理装置の制御方法及びコンピュータプログラムに関する。
1つのコンピュータ装置(ホストマシン)を論理的に分割し、仮想的に複数の独立したコンピュータ装置(仮想マシン)として動作することを実現する仮想化技術が普及している。仮想化技術により、各仮想マシンによって使用されるハードウェア資源及び種々のハードウェア資源の組み合わせについては、ホストマシンを構成する実ハードウェア資源の物理的な構成に拠らない柔軟な分割・統合が実現される。
仮想化技術により、仮想マシンは夫々独立してオペレーションシステム(以下、OSという)、及びOS上で動作するアプリケーションプログラムを実行する。仮想マシンは、OS及びアプリケーションプログラムに基づく動作に応じて、ホストマシン上のハードウェア資源へのアクセス及びハードウェア資源における様々のイベントの制御を行なう。
ハードウェア資源としては、プロセッサ、プロセッサ上に存在するレジスタ、キャッシュ、メモリ、及び、入出力デバイス等がある。そしてハードウェア資源における様々なイベントとしては、割り込み、例外、初期化、システム管理割り込み等がある。
このような仮想化環境を実現するためには、仮想マシン上で動作する各OSと実ハードウェア資源との入出力制御を仲介するVMM(Virtual Machine Monitor)と呼ばれるプログラムが実行されている必要がある。ホストマシン上でVMMが実行されることにより、仮想マシンに対応する複数のOSの実行、並びに夫々のOSからのハードウェア資源へのアクセス及びイベント制御が実現される。
VMMが実行されることにより、各OSからのハードウェア資源へのアクセス命令及びイベント制御命令が監視・捕捉される。また、ハードウェア資源は空間的又は時間的に分割されて各OSに割り当てられ、捕捉された命令に応じて実際の処理が行なわれる。また、実際のハードウェア資源が存在しない場合であっても、OSからのアクセス命令及びイベント制御命令に対し適宜応答するエミュレーションにより、仮想ハードウェア資源として動作することが可能である。
なお、VMMによりハードウェア資源を分割する際、特に、コンピュータ装置にバスを介して接続されるI/Oデバイスへの入出力制御については、VMMによりI/Oデバイスの動作をエミュレーションにより実現するエミュレーション方式と、仮想マシン上で動作するOSへ実際のI/Oデバイスを割り当てて直接的にアクセスさせる直接I/O方式とがある。
特許文献1及び2には、入出力制御命令に対してエミュレーションにより割り込みを通知する技術が開示されている。特許文献3及び5には、システムプログラム毎にエミュレーション方式及び直接I/O方式夫々で動作させ、一つのハードウェア資源で複数のシステムプログラムを動作させる技術が開示されている。また、特許文献5には、システムプログラム動作中であってもエミュレーション方式及び直接I/O方式の切り替えが可能な技術が開示されている。
特開昭60−017539号公報 特開平3−100833号公報 特開平1−185733号公報 特開平2−207362号公報 特開平7−92761号公報
エミュレーション方式では、実I/Oデバイスは不要である。しかしながら、I/Oデバイスの仕様全てをソフトウェア的に再現する必要があるので性能・互換性の問題が起こる可能性が高い。多種多様なI/Oデバイス夫々に対応させ、任意のI/Oデバイスの動作をエミュレーションにより再現することは困難である。
直接I/O方式では、OSから直接的にI/Oデバイスへの入出力が行なえるので、高速で且つ信頼性の高い処理を行なうことができる。しかしながら、各OSによってI/Oデバイスが占有されるので、仮想化技術により1つのホストマシンで複数のOSが実行可能であっても、その数に応じてI/Oデバイスが必要となり非効率的である。
仮想化技術により複数のOSが実行されているホストマシンで、一のOSが直接I/O方式によりI/Oデバイスを占有している場合であっても、実際にはI/Oデバイスに対応する処理が実行されていないなど、I/Oデバイスの動作状態が休止状態であるときがある。この場合、一のOSが当該I/Oデバイスを占有したままでは他のOSは使用できない。他のOSにI/Oデバイスを使用させるためには、夫々のOSを停止させ、再起動により、I/OアドレスをOS夫々に展開し直させてI/Oデバイスを割り当て直す必要がある。しかしながら、処理の開始/終了/休止に応じて当該処理に対応するI/Oデバイスを占有させるためにOSを再起動するのでは利便性が低い。
特許文献5に記載されている技術により、OS動作中に直接I/O方式とエミュレーション方式(入出力シミュレーションモード)とを切り替えることが可能であるが、この場合、方式切り替えの要求がされたときに切り替え可能な条件を満たしているか否かの判定処理が必要となる。
本発明は斯かる事情に鑑みてなされたものであり、直接I/O方式に部分的にエミュレーション方式を組み合わせ、各OSからI/Oデバイスへの入出力制御の方式を、I/Oデバイスの動作状態遷移に応じてOS動作中に切り替え可能な構成とすることにより、I/Oデバイスを効率的に使用させることができる情報処理装置、情報処理装置の制御方法及びコンピュータプログラムを提供することを目的とする。
また、本発明の他の目的は、I/Oデバイスの動作状態が特定の状態へ遷移する場合にのみ入出力制御の方式を切り替える構成とすることにより、エミュレーション方式で再現する動作を特定の状態における動作のみに限定し、仕様全てを再現することなく性能・互換性を高めることが可能な情報処理装置を提供することにある。
第1発明に係る情報処理装置は、複数のOS(Operating System)夫々に対応するハードウェア資源を制御する制御手段を備え、複数のOSを実行させる情報処理装置であって、前記制御手段は、各OSからのハードウェア資源への入出力命令を捕捉する捕捉手段と、該捕捉手段が捕捉した前記入出力命令を前記ハードウェア資源へ直接的に与えて制御する直接制御手段と、前記ハードウェア資源における動作をエミュレートし、前記捕捉手段が捕捉した前記入出力命令へ応答するエミュレータと、前記直接制御手段により制御している場合に、前記捕捉手段が捕捉した入出力命令が、特定のハードウェア資源の停止状態への遷移を指示する状態制御命令であるか否かを判断する第1判断手段と、前記エミュレータにより、制御している場合に、前記捕捉手段が捕捉した入出力命令が、特定のハードウェア資源の稼働状態への遷移を指示する状態制御命令であるか否かを判断する第2判断手段と、前記第1判断手段が前記特定のハードウェア資源の停止状態への遷移を指示する状態制御命令であると判断した場合、前記状態制御命令であると判断した命令より後に捕捉した当該OSから前記特定のハードウェア資源への前記入出力命令を渡す先を前記エミュレータへ切り替え、前記第2判断手段が、稼動状態への遷移を指示する状態制御命令であると判断した場合、前記状態制御命令であると判断した命令および以後に捕捉した当該OSから前記特定のハードウェア資源への前記入出力命令を渡す先を前記直接制御手段へ切り替える切替手段とを備える。
第2発明に係る情報処理装置は、前記OSは、前記制御手段を、各OS上で実行されるアプリケーションプログラムの実行状態を取得する状態取得手段、及び該状態取得手段が取得した実行状態に応じて、前記状態制御命令を発行する手段として機能させるようにしてある。
第3発明に係る情報処理装置は、前記OSは、前記制御手段を、該OSに対応するハードウェア資源の電力供給状態を遷移させる場合、前記入出力命令を出力するよりも前に、前記電力供給状態を遷移させることを示す状態遷移通知を前記判断手段へ通知する手段として機能させるようにしてあり、前記判断手段は、前記状態遷移通知を受けた場合に判断を行なうようにしてある。
第4発明に係る情報処理装置は、前記OSは、前記制御手段を、該OSの処理結果を受け付ける外部装置から該外部装置の稼働状況を示す稼働状況通知を受け付け、受け付けた外部装置の稼働状況通知が示す稼働状況に応じて前記状態制御命令を発行する手段として機能させるようにしてある。
第5発明に係る情報処理装置は、前記制御手段は、各OSに対応する外部装置から、該外部装置の稼働状況を示す稼働状況通知を受け付ける手段を更に備え、前記入出力命令を捕捉するより前に、外部装置から稼働状況通知を受け付けた場合に、前記判断手段による判断を行なうようにしてある。
第6発明に係る情報処理装置の制御方法は、複数のOS夫々に対応するハードウェア資源の制御を行ない、情報処理装置に複数のOSを実行させる情報処理装置の制御方法であって、各OSからのハードウェア資源への入出力命令を捕捉し、捕捉した入出力命令を前記ハードウェア資源へ直接的に与えて制御する直接制御手段により制御している場合に、捕捉した入出力命令が、特定のハードウェア資源の停止状態への遷移を指示する状態制御命令であるか否かを判断し、前記ハードウェア資源における動作をエミュレートし、捕捉した入出力命令へ応答するエミュレータにより制御している場合に、捕捉した入出力命令が、特定のハードウェア資源の稼働状態への遷移を指示する状態制御命令であるか否かを判断し、前記特定のハードウェア資源の停止状態への遷移を指示する状態制御命令であると判断した場合、前記状態制御命令であると判断した命令より後に捕捉した当該OSから前記特定のハードウェア資源への前記入出力命令を渡す先を前記エミュレータへ切り替え、稼動状態への遷移を指示する状態制御命令であると判断した場合、前記状態制御命令であると判断した命令および以後に捕捉した当該OSから前記特定のハードウェア資源への前記入出力命令を渡す先を前記直接制御手段へ切り替える。
第7発明に係るコンピュータプログラムは、コンピュータに、複数のOS夫々に対応するハードウェア資源の割り当て及び制御を行なわせ、複数のOSを実行させるコンピュータプログラムであって、コンピュータを、各OSからのハードウェア資源への入出力命令を捕捉する捕捉手段、該捕捉手段が捕捉した前記入出力命令を前記ハードウェア資源へ直接的に与えて制御する直接制御手段、前記ハードウェア資源における動作をエミュレートし、前記捕捉手段が捕捉した前記入出力命令へ応答するエミュレータ、前記直接制御手段により制御している場合に、前記捕捉手段が捕捉した入出力命令が、特定のハードウェア資源の停止状態への遷移を指示する状態制御命令であるか否かを判断する第1判断手段、前記エミュレータにより、制御している場合に、前記捕捉手段が捕捉した入出力命令が、特定のハードウェア資源の稼働状態への遷移を指示する状態制御命令であるか否かを判断する第2判断手段、前記第1判断手段が前記特定のハードウェア資源の停止状態への遷移を指示する状態制御命令であると判断した場合、前記状態制御命令であると判断した命令より後に捕捉した当該OSから前記特定のハードウェア資源への前記入出力命令を渡す先を前記エミュレータへ切り替え、前記第2判断手段が、稼動状態への遷移を指示する状態制御命令であると判断した場合、前記状態制御命令であると判断した命令および以後に捕捉した当該OSから前記特定のハードウェア資源への前記入出力命令を渡す先を前記直接制御手段へ切り替える切替手段として機能させる。
第1発明、第6発明及び第7発明では、OSからのハードウェア資源への入出力命令は捕捉手段により捕捉される。捕捉された入出力命令が特定のハードウェア資源の電力供給状態を特定の電力供給状態へ遷移させることを伴なう状態制御命令であるか否かが判断手段により判断される。OS実行手段からハードウェア資源への入出力命令の制御については、ハードウェア資源の入出力インタフェースへ直接的に入出力命令を与える直接制御手段による制御と、ハードウェア資源による動作をソフトウェア的にエミュレートして、同様の応答を実現するエミュレータによる応答とのいずれもが実現可能に構成される。そして、判断手段により特定のハードウェア資源を特定の電力供給状態へ遷移させる状態制御命令であると判断された場合、前記特定のハードウェア資源に対して直接制御手段による制御からエミュレータによる応答へ、又は、エミュレータによる応答から直接制御手段による制御へ切り替えが可能となる。
第2発明では、OSによって実行されるアプリケーションプログラムの実行状態が取得され、実行状態に応じてハードウェア資源の電力供給状態を変更する状態制御命令がOSによって発行される。アプリケーションプログラムの動作状態、即ち実ハードウェアにおける処理を必要とするアプリケーションであるか、又は、起動しているアプリケーションプログラムの実ハードウェアとの入出力の要不要等の状態に応じて直接制御手段による制御又はエミュレータによる応答のいずれかに切り替えられる。状態制御に応じて切り替えられるので、アプリケーションプログラムの動作中であってもハードウェア資源の開放/割当が可能となる。
第3発明では、状態制御命令が発行される場合には事前に、OSから通知がされる。したがって、判断手段は捕捉された入出力命令の内容を常に判断する必要がなく、通知がされた場合のみ判断処理を行えばよく、効率的に処理を行なうことができる。
第4発明では、OSは自身に対応する外部装置(端末装置)からの通知を受けることにより、外部装置における稼働状況を取得する。外部装置における稼働状況に応じてOSから状態制御命令が発行される。外部装置の稼働が中断される場合、OSからの動作結果の受け付けを中断する場合等、ハードウェア資源の解放が可能な状態への遷移をOS側で検知が困難が場合でも、外部装置からの通知によって検知が可能であり、有効に実ハードウェアの解放が可能となる。
第5発明では、OSのみならず、制御手段でも外部装置からの通知を受けるようにしてあり、通知を受けた場合のみ判断手段による判断が行なわれる。これにより、判断手段は捕捉された入出力命令の内容を常に判断する必要がなく、効率的に処理を行なうことができる。
なお、本願に開示する情報処理装置の構成要素または構成要素の任意の組合せを、方法、各種装置、各種装置に包含される回路、システム、コンピュータプログラム、記録媒体、データ構造などに適用したものも、他の態様として有効である。
本発明による場合、各OSでは自身がハードウェア資源であるI/Oデバイスに対して発行した入出力命令が、直接制御手段によって直接与えられ、応答がされたか、又は、エミュレータによって応答がされたかを意識することなく、常に対応するハードウェア資源が存在する状態で処理を実行し続けることが可能である。これにより、OSの停止及び再起動を行なうことなしに、ハードウェア資源の開放/割当を行なうことができる。
なお、ハードウェア資源の電力供給状態が休止状態又は停止状態等の特定の電力供給状態への状態遷移を伴なう状態制御命令時に限ってエミュレータによる応答へ切り替えられるようにすることにより、エミュレータはI/Oデバイスにおける動作全てを再現する必要がなくなる。この場合、エミュレータは休止状態又は停止状態にある場合のI/Oデバイスからの限定された応答のみを再現できればよい。したがって、エミュレーションによる性能及び互換性の問題の発生を抑制することができる。
本発明による場合、各OSがアプリケーションプログラムの実行状態に応じて状態制御命令を発行するので、アプリケーションプログラムが実行中であっても、実ハードウェア資源が使用されない状態である場合には、直接I/O方式からエミュレーション方式へ切り替えられ、他のOSへ当該I/Oデバイスを使用させることができる。これにより、少ないハードウェア資源でも、より効率的に多くのOSを実行させることができる。
入出力命令が電力供給状態の遷移を伴なうか否かを監視するだけでなく、アプリケーションの実行状態に応じたOSからの通知、OSの処理結果を受け付ける外部装置(端末装置)からの稼働状況の通知により、状態遷移命令を予め待ち受けることができるので、より確実なタイミングで制御方式の切り替えができ、I/Oデバイスの開放/割当を行なうことができる。
以下本発明をその実施の形態を示す図面に基づき具体的に説明する。
なお、以下に説明する実施の形態1乃至4では、シンクライアントシステムを実現するシンクライアントサーバに、本発明に係る情報処理装置を適用した場合の例を用いて説明する。
(実施の形態1)
図1は、実施の形態1におけるシンクライアントシステムの構成の概要を模式的に示す説明図である。シンクライアントシステムは、本発明に係る情報処理装置を適用したサーバ装置1と、サーバ装置1にネットワークNを介して接続される端末装置2,2,…とを含んで構成される。端末装置2,2,…はシンクライアント(thin client)として使用される装置であり、ハードディスク等の大容量の記憶媒体を備えないパーソナルコンピュータ装置によって構成されている。端末装置2,2,…は、液晶表示装置等の表示装置に接続するセットトップボックス(STB:Set Top Box)でも、PDA(Personal Digital Assistant)、携帯電話機等の携帯型端末装置でもよい。
サーバ装置1には、一の装置で複数の情報処理装置(仮想マシン)として動作する仮想化技術が適用されており、各端末装置2,2,…に対応するOSを起動して実行するようにしてある。図1の説明図に示すように、サーバ装置1はI/Oデバイス15,15,…として複数のグラフィックカード151,151,…を備えており、後述のVMM(Virtual Machine Monitor)プログラム112が実行されることによって、各グラフィックカード151,151,…は端末装置に対応するOS101,101,…夫々に割り当てられる。また、端末装置2からは対応するOS101へキーボード、マウス等の入力インタフェースからの入力信号が入力される。各OS101,101,…では入力信号に応じて処理が実行され、各OS101,101,…は発行するGUI(Graphical User Interface)に関する描画コマンドを割り当てられているグラフィックカード151,151,…へ入力する。各グラフィックカード151,151,…では、入力された描画コマンドに則した画像データが生成され、対応する端末装置2,2,…へ送信される。これにより、映像転送方式によるシンクライアントシステムが実現される。なお、画像データの生成手段は各OS101,101,…に割り当てるグラフィックカード151,151,…に限らず、ソフトウェアプログラムにより描画コマンドに則した画像データを生成して各端末装置2,2,…へ送信する構成、又はOS101から発行される描画コマンドを送信する構成としてもよい。
またサーバ装置1は、MPEG(Moving Picture Experts Group)−2デコーダ152,152,…をI/Oデバイス15,15,…として備えている。ユーザは端末装置2をパーソナルコンピュータ装置として使用し、サーバ装置1で対応して実行されるOS101上でMPEG−2デコーダ152を使用した映像視聴アプリケーションプログラムを実行させることが可能である。ただし、実行されるOS101,101,…夫々に実I/Oデバイス15,15,…のMPEG−2デコーダ152,152,…を割り当てるとすると、サーバ装置1で実現できる仮想マシンの台数分のMPEG−2デコーダ152,152,…が必要となる。シンクライアントを利用する全ユーザが同時に映像視聴アプリケーションプログラムを実行させることは現実的でなく、仮想マシンの台数分のMPEG−2デコーダ152,152,…をサーバ装置1が備えることも現実的でない。
そこで、実施の形態1におけるサーバ装置1は、n台の仮想マシンの動作を実現できるのに対し、仮想マシンの台数よりも少ないm台(n>m)のMPEG−2デコーダ152,152,…を備える構成とする。そしてサーバ装置1は、端末装置に対応するOS101を起動するに際し、OS101に初期的にMPEG−2デコーダ152をエミュレーション方式により割り当てる。各OS101,101,…は、デバイスエミュレータ部129によって実現されるMPEG−2デコーダ152,152,…に対応するデバイスレジスタ(実デバイスへはアクセスしない)をI/O空間に展開してMPEG−2デコーダ152,152,…を認識する。そして実施の形態1におけるサーバ装置1では、OS101で実際に映像視聴アプリケーションプログラム113が実行される場合に、当該OS101からMPEG−2デコーダ152への入出力制御を直接I/O方式に切り替えられるようにする。これにより、n人のユーザが端末装置2,2,…を利用している場合であっても、m台のMPEG−2デコーダ152,152,…で対応可能であり、一部のユーザは端末装置2,2,…を使用しMPEG−2映像を視聴することが可能である。
図2は、実施の形態1におけるシンクライアントシステムを構成するサーバ装置1の内部構成を示すブロック図である。サーバ装置1は、CPUを利用した制御部10と、ハードディスクを利用した記憶部11と、SRAM(Static Radom Access Memory)、DRAM(Dynamic Random Access Memory)等を利用した一時記憶領域12と、ネットワークカードを利用した通信部13と、PCI(Peripheral Component Interconnect)、AGP(Accelerated Graphics Port)等のバスインタフェースを利用した入出力部14と、該入出力部14を介して接続される複数のグラフィックカード151,151,…及び複数のMPEG−2デコーダ152,152,…を含むI/Oデバイス群15,15,…と、DVD(Digital Versatile Disk)、CD−ROM等の記憶媒体17からデータを読み取る補助記憶部16とを備えている。
記憶部11には、OSプログラム111、VMMプログラム112、及び種々のアプリケーションプログラム113,113,…が記憶されている。OSプログラム111、VMMプログラム112は、DVD、CD−ROM等の記憶媒体17に記憶されており、制御部10が補助記憶部16により記憶媒体17から読み出して記憶部11に記憶したものでもよい。
VMMプログラム112は、仮想化環境を提供するソフトウェアプログラムである。制御部10は、記憶部11からVMMプログラム112を読み出して実行することにより、VMM102として動作し、サーバ装置1が論理的に複数の情報処理装置(仮想マシン#1〜#n)として動作する仮想化環境を提供する。VMM102として動作する制御部10は基本的に、各OS101,101,…へのハードウェア資源の割り当て、及び、OSプログラム111を含む各ソフトウェアとハードウェア資源との間での入出力制御、割り込み等を管理する。なお、VMMプログラム112を実行することにより、制御部10も論理的に分割されて複数(n個)の制御部10として動作し、夫々独立したOS101,101,…を実行することが可能となる。
OSプログラム111は、Windows(登録商標)、Linux(登録商標)等のOSソフトウェアプログラムである。制御部10は複数の仮想マシンに対応する制御部10として動作することにより夫々、記憶部11からOSプログラム111を読み出して実行する。制御部10は、VMM102として動作することにより、又は、VMM102としての動作を含む仮想環境を管理するサーバ管理部(ホストOS)が動作することにより、端末装置2,2,…からの起動要求を受け付ける。制御部10は、受け付けた起動要求に対して端末装置2に対応する設定情報を読み出してOS101を起動させる。このときに制御部10はVMM102として動作することにより、起動するOS101にI/Oデバイス群15,15,…を割り当てる処理を行なう。
制御部10は、複数の仮想マシンに対応してOSプログラム111を実行することにより、各々OS101,101,…として動作し、端末装置2,2,…から入力される入力信号に応じてイベント通知、I/Oデバイス群15,15,…を含む各ハードウェア資源への制御命令等を発行する。また、制御部10はOS101として動作することにより入力信号に応じて種々のアプリケーションプログラム113,113,…の起動、終了及び動作を制御する。
一時記憶領域12には、上述のように制御部10によって記憶部11から読み出されるOSプログラム111、VMMプログラム112、及び種々のアプリケーションプログラム113,113,…が展開されるのみならず、OS101が実行する処理によって発生する各種情報が一時的に記憶される。なお、一時記憶領域12も論理的に分割されて各OS101,101,…に割り当てられる。
通信部13は、ネットワークNを介して端末装置2,2,…との通信を実現するハードウェアである。通信部13もポート等により論理的に分割され、起動される各OS101,101,…に対応して割り当てられる。制御部10は、端末装置2に対応するOS101の起動後、キーボード、マウス等の入力インタフェースから入力信号、及び、グラフィックカード151,151,…から出力されるビデオ信号を通信部13により送受信する。
なお、入力インタフェースからの入力信号、及びビデオ信号については、KVM(Keyboard/Video/Mouse)スイッチと呼ばれる切り替え器を用い、ネットワークNとは異なる伝送媒体を介してサーバ装置1と端末装置2,2,…との間で入出力されるように構成されてもよい。又は、グラフィックカード151,151,…を用いて画像を送信する場合、グラフィックカード151,151,…内にネットワークコントローラ機構を備え、ビデオ信号を割り当てられたOS101に対応する端末装置2へ送信するようにしてもよい。更にグラフィックカード151,151,…内に入力信号をもIPパケット化する機構を備え、グラフィックカード151,151,…及びネットワークNを介してOS101と端末装置2との間で入力信号、ビデオ信号が入出力されるように構成されてもよい。
図3は、実施の形態1におけるサーバ装置1の制御部10により実現される機能を概念的に示すブロック図である。
制御部10はVMMプログラム112を記憶部11から読み出して実行することにより、VMM102として動作して仮想化環境を実現する。詳細には、VMMプログラム112は制御部10がI/O命令捕捉部121、I/O監視部122、I/Oバス切替部123、I/O管理部124、割り込み入力切替部125、仮想割り込み生成部126、I/Oアドレス変換部127、割り込みハンドラ128、デバイスエミュレータ部129として機能することが可能なように構成されている。
制御部10はI/O命令捕捉部121として機能することにより、各OS101,101,…からのI/Oデバイス15,15,…への入出力命令を捕捉する。
制御部10はI/Oバス切替部123として機能することにより、I/O命令捕捉部121が捕捉した入出力命令が、直接I/O方式で割り当てられているI/Oデバイス15への命令である場合には、入出力命令をI/Oアドレス変換部127へ渡し、エミュレーション方式で割り当てられているI/Oデバイス15への命令である場合には、入出力命令をデバイスエミュレータ部129へ渡すように切り替える。
制御部10は、割り込み入力切替部125として機能することにより、実I/Oデバイス15からの割り込み及びデバイスエミュレータ部129からの割り込みを切り替えて仮想割り込み生成部126へ渡す。
制御部10はI/O監視部122として機能することにより、I/O命令捕捉部121が捕捉した入出力命令の内、特定のI/Oデバイス15の状態遷移を伴なう入出力命令を判別する。
制御部10は、I/O管理部124として機能することにより、I/O監視部122で判別した入出力命令に基づいてI/Oバス切替部123及び割り込み入力切替部125へ切り替えを指示する。
また、制御部10は仮想割り込み生成部126として機能することにより、割り込み入力切替部125から渡される割り込みを仮想マシン夫々に対する割り込みとして生成し、対応する仮想マシンとして動作する各OSへ通知する。
制御部10は、I/Oアドレス変換部127として機能することにより、入出力命令に含まれるI/Oアドレスを実I/Oデバイス15のI/Oアドレスに変換する。そして制御部10は、割り込みハンドラ128として機能することにより、各I/Oデバイス15,15,…から割り込みコントローラ153を介して出力される割り込み信号を検知して、実I/Oデバイス15のデバイスレジスタへの書き込み/読み出し処理を行ない、OS101へ返す処理を行なう。I/Oアドレス変換部127、割り込みハンドラ128は、直接I/O方式でI/Oデバイス15,15,…が割り当てられている際に機能する。
制御部10は、デバイスエミュレータ部129として機能することにより、入出力命令に対してエミュレーションによりデバイスの動作を再現して応答を返す。なお、デバイスエミュレータ部129は、各I/Oデバイス15,15,…の特定の状態における動作のみを再現するように構成されている。なお、VMMプログラム112に含まれるデバイスエミュレータ部129の機能については、別途デバイスエミュレータ部129としての機能のみを実現するプログラムとして構成され、制御部10が当該プログラムを読み出して実行することにより、デバイスエミュレータ部129として機能する専用の仮想マシン(OS)上で動作するように構成されていてもよい。また制御部10は、デバイスエミュレータ部129として機能するに際し、動作を再現する対象となるI/Oデバイス15,15,…とは別の実ハードウェア資源を利用し、当該実ハードウェア資源へは直接的に入出力命令及び割り込みを入出力する場合もある。
制御部10は、VMM102としての動作によって実現される仮想化環境上で複数のOSプログラム111を読み出して実行することにより、複数のOS101,101,…を動作させる。OSプログラム111は、制御部10がI/Oデバイス15,15,…への入出力命令を発行するデバイスドライバ103、及び割り込みを検知して処理する割り込みハンドラ104としての機能を発揮するように構成される。
制御部10によって動作される各OS101,101,…は、各I/Oデバイス15,15,…の電力供給状態を制御することが可能である。I/Oデバイス15,15,…の電力供給状態の制御はACPIの仕様に従った状態制御命令をOS101が発行することにより実現される。ACPIの仕様におけるデバイスの状態制御命令には、以下の4つの動作状態が定義されている。
D0:電源オン、全機能が動作(稼働状態)、
D1/D2:低消費電力モード(D1/D2の差異はデバイスによる)、
D3:電源オフ(停止状態)
なお、各状態におけるデバイスコンテキスト、電源状態の詳細については、デバイスの種別、及びデバイスのベンダー特有に実装される。
I/Oデバイス15,15,…もこれに応じて、上述のACPIの仕様に従った電力供給状態の制御命令に対応するように構成されている。特に、PCIバスインタフェースを備えるI/Oデバイス15,15,…への制御命令については、PCISIG(PCI Special Interest Group)により、デバイスの状態確認、状態遷移命令、復帰イベント通知命令等が定義されている。
実施の形態1におけるサーバ装置1では、I/Oデバイス15,15,…への入出力命令でデバイスの電力供給状態の状態制御を行なう例として、上述のACPIの仕様に準じた制御命令を利用する。そして、VMMプログラム112は、各I/Oデバイス15,15,…の電力供給状態がACPIにおけるD0となる場合に直接I/O方式で入出力制御を行ない、D3を特定の状態として定義し、電力供給状態がD3となる場合に限りエミュレーション方式で入出力制御を行なうように構成する。つまり、OS101がI/Oデバイス15,15,…を使用した動作を行なう場合には直接I/O方式で使用させ、OS101からI/Oデバイス15,15,…が認識されているのみで使用されない場合にはエミュレーション方式で使用させるように制御する。したがって、I/O管理部124として機能する制御部10は、I/O監視部122で判別した入出力命令がD0への状態遷移を伴なう場合に直接I/O方式による入出力制御へ切り替え、D3への状態遷移を伴なう場合にエミュレーション方式による入出力制御へ切り替えるように、I/Oバス切替部123及び割り込み入力切替部125へ切り替えを指示する。例えば、コンフィグレーションレジスタを読み出して出力するのみの応答で足りるような場合、エミュレーション方式で応答を実現するように切り替える。この場合、エミュレーション方式で実現できる機能は、上述のようなコンフィグレーションレジスタの読み出し等の限られた構成のみで済む。これにより、デバイスエミュレータ部129としての機能は、最小限のPCIコンフィグレーションスペースでの入出力を再現できればよく、最小限の構成でよいので互換性の問題が発生する可能性が低い。
このとき各OS101,101,…では、I/Oデバイス15,15,…へ直接I/O方式で入出力制御を行なっているか、エミュレーション方式で入出力制御を行なっているかを意識する必要がない。I/Oデバイス15,15,…に対応するI/Oアドレスが、OS101,101,…として動作する制御部10によってアクセス可能な領域であり、入出力命令に対する応答が適宜返されるのであれば、いずれの場合でも動作に異常を来すことはない。ただし、実I/Oデバイス15,15,…が入出力命令に応じた処理手順を実行している間は、当該I/Oデバイス15,15,…内での手順の経過をVMM102,102,…から把握することは難しい。したがって、I/Oデバイス15,15,…の割り当てを切り替えるタイミングとして上述のように、I/Oデバイス15,15,…の電力供給状態(ACPI)が休止状態、停止状態(D3)へ遷移、又は、稼働状態(D0)へ遷移するタイミングに限る。この場合、処理手順が停止されるので切り替えても問題とならない。また、必要に応じて停止前のI/Oバス、コンフィグレーションレジスタの内容を保持しておき、復帰する際にI/Oバス、レジスタの内容を復元してから稼働状態(D0)へ遷移することにより、スムーズに処理を実行させることが可能になる。
次に、制御部10がVMM102として動作し、各機能により入出力制御の方式を切り替える手順をフローチャートを参照して説明する。
図4は、実施の形態1におけるサーバ装置1の制御部10による方式の切り替えのための判定処理手順の一例を示すフローチャートである。図4のフローチャートに示す処理手順は、直接I/O方式で入出力制御を行なっている場合の判定処理を示す。
制御部10は、I/O命令捕捉部121として機能することにより、OSからの入出力命令を捕捉したか否かを判断する(ステップS11)。制御部10は入出力命令を捕捉していないと判断した場合(S11:NO)、処理をステップS11へ戻す。
制御部10は、入出力命令を捕捉したと判断した場合(S11:YES)、I/O監視部122として機能することにより、直接I/O方式とエミュレーション方式とで制御を切り替える対象であるI/Oデバイス15への入出力命令であるか否かを判断する(ステップS12)。制御部10は、対象I/Oデバイス15への入出力命令でないと判断した場合(S12:NO)、他のI/Oデバイス15へ入出力命令を渡す等の所定の処理を行ない、判定処理を終了する。
制御部10は、対象I/Oデバイス15への入出力命令であると判断した場合(S12:YES)、捕捉した入出力命令が停止状態(ACPIにおけるD3)への遷移を伴なう状態遷移命令であるか否かを判断する(ステップS13)。
制御部10は、捕捉した入出力命令が停止状態への遷移を伴なう状態遷移命令であると判断した場合(S13:YES)、対象I/Oデバイス15で停止状態(D3)への状態遷移を実行させ(ステップS14)、状態遷移が完了するまで待機する(ステップS15)。制御部10は停止状態への状態遷移が完了した後、I/Oバス切替部123をデバイスエミュレータ部129へ入出力命令を渡すように切り替え、割り込み入力切替部125をデバイスエミュレータ部129からの割り込みを仮想割り込み生成部126へ渡すように切り替える(ステップS16)。これにより以後、対応するOS101からの入出力制御がエミュレーション方式に切り替えられ、制御部10は判定処理を終了する。以後稼働状態への遷移を伴なう命令が捕捉されるまで、当該I/Oデバイス15への入出力命令はデバイスエミュレータ部129により応答される。
制御部10は、捕捉した入出力命令が停止状態への遷移を伴なう状態遷移命令でないと判断した場合(S13:NO)、捕捉した入出力命令をI/Oアドレスを実I/Oデバイス15の実アドレスに変換して命令を実行させ(ステップS17)、判定処理を終了する。
図5は、実施の形態1におけるサーバ装置1の制御部10による方式切り替えのための判定処理手順の一例を示すフローチャートである。図5のフローチャートに示す処理手順は、エミュレーション方式で入出力制御を行なっている場合の判定処理を示す。
制御部10は、I/O命令捕捉部121として機能することにより、OSからの入出力命令を捕捉したか否かを判断する(ステップS21)。制御部10は入出力命令を捕捉していないと判断した場合(S21:NO)、処理をステップS21へ戻す。
制御部10は、入出力命令を捕捉したと判断した場合(S21:YES)、I/O監視部122として機能することにより、対象のI/Oデバイス15への入出力命令であるか否かを判断する(ステップS22)。制御部10は、対象I/Oデバイス15への入出力命令でないと判断した場合(S22:NO)、他のI/Oデバイス15へ入出力命令を渡す等の所定の処理を行ない、判定処理を終了する。
制御部10は、対象I/Oデバイス15への入出力命令であると判断した場合(S22:YES)、捕捉した入出力命令が稼働状態(ACPIにおけるD0)への遷移を伴なう状態遷移命令であるか否かを判断する(ステップS23)。
制御部10は、捕捉した入出力命令が稼働状態への遷移を伴なう状態遷移命令であると判断した場合(S23:YES)、I/Oバス切替部123を実I/Oデバイス15へ入出力命令を渡すように切り替え、割り込み入力切替部125を実I/Oデバイス15からの割り込みを仮想割り込み生成部126へ渡すように切り替える(ステップS24)。これにより以後、対応するOSからのI/Oデバイス15への入出力制御が直接I/O方式に切り替えられる。そして制御部10は、対象I/Oデバイス15で稼働状態(D0)への状態遷移を実行させ(ステップS25)、状態遷移が完了するまで待機し(ステップS26)、判定処理を終了する。以後、停止状態への遷移を伴なう命令が捕捉されるまで、当該I/Oデバイス15への入出力命令は実I/Oデバイス15へ渡される。
制御部10は、捕捉した入出力命令が稼働状態への遷移を伴なう状態遷移命令でないと判断した場合(S23:NO)、捕捉した入出力命令に対してはデバイスエミュレータ部129により命令を実行させ(ステップS27)、判定処理を終了する。
初期状態として仮想マシン#1のOS101にMPEG−2デコーダ152がエミュレーション方式により割り当てられている場合、仮想マシン#1のOS101がMPEG−2デコーダ152へ稼働状態への遷移を伴なう入出力命令を発行したときは、制御部10がVMM102として動作してこれを捕捉し、稼働状態への遷移を伴なう命令であることを判別し、実ハードウェアのMPEG−2デコーダ152を直接I/O方式により割り当てる。これにより、仮想マシン#1では映像視聴アプリケーションによりMPEG−2デコーダ152を使用してMPEG−2映像の視聴が可能である。
そして、仮想マシン#1のOS101が、MPEG−2デコーダ152に対して停止状態への遷移を伴なう入出力命令が発行した場合も、制御部10がVMM102として動作してこれを捕捉し、停止状態への遷移を伴なう命令であることを判別し、MPEG−2デコーダ152を停止させ、仮想マシン#1のOS101へはデバイスエミュレータ部129により応答させるように切り替える。MPEG−2デコーダ152は開放され、他のOS101,101,…へ割り当て可能な状態となる。
これにより、サーバ装置1はn台の仮想マシンに相当する複数のOS101,101,…の動作を実現できるのに対し、nよりも少ないm台のMPEG−2デコーダ152,152,…を備える構成としても、効率的にMPEG−2デコーダ152,152,…を割り当てて使用可能とすることができる。
このように、サーバ装置1の制御部10は、OS101の停止及び再起動を行なって実I/Oデバイス15に対応するI/Oアドレスを展開し直すことなしに、各OS101,101,…からは一貫して実I/Oデバイス15,15,…へ入出力命令を発行して制御しているかのように振舞いながら、各OS101,101,…に対して実I/Oデバイス15,15,…の割り当て及び開放を実現することが可能となる。
また、I/Oデバイス15,15,…を停止状態へ遷移させる状態遷移命令があった場合に限りエミュレーション方式へ入出力制御を切り替えるので、実I/Oデバイス15,15,…の実際の状態が、切り替えることができる状態であるか否かの判断を行なう必要もなく、簡易な処理で高速に切り替えることが可能である。また、デバイスエミュレータ部129として再現すべき処理は、I/Oデバイス15が停止状態にある場合の処理に限ることができる。したがって、各I/Oデバイス15,15,…の性能の再現性の問題、及びベンダー、バージョンの違いに対する互換性の問題が発生する可能性が低い点、優れた効果を奏する。
(実施の形態2)
実施の形態2では、更に、仮想マシンに対応する各OS101,101,…上でアプリケーションプログラム113,113,…の起動/終了を監視するサービスプログラム(以下、状態監視サービスプログラム)が実行され、アプリケーションプログラム113,113,…の動作に応じて各I/Oデバイス15,15,…の状態を遷移させる命令がOSから通知(発行)される構成とする。その他、シンクライアントシステムの構成は実施の形態1と同様であるので、共通する構成には実施の形態1と同一の符号を付して詳細な説明を省略する。
実施の形態2におけるサーバ装置1の記憶部11には、状態監視サービスプログラムが記憶されており、制御部10は状態監視サービスプログラムを読み出して実行する。これにより、制御部10はOS101上で実行される種々のアプリケーションプログラム113,113,…の内、特定のアプリケーションプログラム113の動作状態の変化に応じて、対応するI/Oデバイス15への状態遷移命令を発行する。これにより、既存のOS101から発行される状態遷移命令のみならず、OS101上で動作するサービスプログラムから能動的に状態遷移を制御することができ、更に効率的に実I/Oデバイス群15,15,…を各OS101,101,…へ割り当てることが可能となる。
図6は、実施の形態2におけるサーバ装置1の制御部10が、アプリケーションプログラム113の起動及び終了に応じて状態制御命令を発行する処理手順を示すフローチャートである。
制御部10は、状態監視サービスプログラムを読み出して状態監視サービスとして動作することにより、特定のアプリケーションプログラム113の実行状態が変化したか否かを判断する(ステップS31)。制御部10は、特定のアプリケーションプログラム113の実行状態が変化していないと判断した場合(S31:NO)、処理をステップS31へ戻す。
制御部10は、特定のアプリケーションプログラム113の実行状態が変化したと判断した場合(S31:YES)、実行状態の変化がアプリケーション起動であるか否かを判断する(ステップS32)。制御部10は、実行状態の変化がアプリケーション起動であると判断した場合(S32:YES)、当該特定のアプリケーションプログラム113に対応するI/Oデバイス15をACPIにおける稼働状態(D0)へ復帰させる状態遷移命令を発行し(ステップS33)、処理を終了する。
制御部10は、実行状態の変化がアプリケーション起動でないと判断した場合(S32:NO)、アプリケーション終了であるか否かを判断する(ステップS34)。制御部10は、実行状態の変化がアプリケーション終了であると判断した場合(S34:YES)、当該特定のアプリケーションプログラム113に対応するI/Oデバイス15をACPIにおける停止状態(D3)へ遷移させる状態遷移命令を発行し(ステップS35)、処理を終了する。
また制御部10は、実行状態の変化がアプリケーション終了でないと判断した場合(S34:NO)、そのまま処理を終了する。制御部10は、図6のフローチャートに示した処理を繰り返し、アプリケーションプログラム113の実行状態の監視を継続する。
制御部10が状態監視サービスとして動作することにより、特定のアプリケーションプログラム113として映像視聴アプリケーションプログラム113の実行状態の変化を監視する場合は、以下のように動作する。制御部10は、映像視聴アプリケーションプログラム113が起動されたことを検知した場合、実行状態が変化したと判断し、状態の変化はアプリケーション起動であると判断し、映像視聴アプリケーションプログラム113に対応するI/Oデバイス15であるMPEG−2デコーダ152を稼働状態(D0)へ復帰させる状態遷移命令を発行する。これに対し、制御部10はVMM102として動作することにより、捕捉した入出力命令がMPEG−2デコーダ152への稼働状態への状態遷移命令であることを判別し、実I/Oデバイス15であるMPEG−2デコーダ152を対応するOS101へ直接I/O方式により割り当てる。
逆に、制御部10は、映像視聴アプリケーションプログラム113が終了されたことを検知した場合、対応するMPEG−2デコーダ152を停止状態(D3)へ遷移させる状態遷移命令を発行する。この場合、制御部10はVMM102として動作することにより、捕捉した入出力命令がMPEG−2デコーダ152への停止状態への状態遷移命令であることを判別し、実I/Oデバイス15であるMPEG−2デコーダ152を開放し、以後エミュレーション方式により入出力制御を行なう。
n人のユーザがシンクライアントとして端末装置2,2,…を利用している場合、同時に映像視聴アプリケーションプログラム113,113,…を起動可能であるユーザはm人に限定される(m<n)。既にm人のユーザの操作によってm台の仮想マシンでのOSへ、MPEG−2デコーダ152,152,…が直接I/O方式で割り当てられている場合の処理について説明する。m+1人目のユーザが映像視聴アプリケーションプログラム113の起動を試みる操作をした場合、当該m+1人目のユーザに対応するOS101上で動作している状態監視サービスが、映像視聴アプリケーションプログラム113のアプリケーション起動を検知する。状態監視サービスによりOS101からMPEG−2デコーダ152へ稼働状態(D0)への状態遷移命令が発行される。VMM102はI/O監視部122により、捕捉した入出力命令が映像視聴アプリケーションプログラム113への状態遷移命令であることを判別するが、m+1台目のMPEG−2デコーダ152が存在しない。したがってI/O管理部124としての制御部10は、直接I/O方式への切り替えができない。この場合、制御部10はデバイスエミュレータ部129としての機能により、対応するOS101へエラーを返すようにしてある。OS101は、MPEG−2デコーダ152として認識しているデバイスからエラーが返された場合、映像視聴アプリケーションプログラム113へエラーを通知する。制御部10は、映像視聴アプリケーションプログラム113を起動する際に、エラーが通知されていることを検知した場合には、「現在デバイスが利用できないためしばらくお待ちください」などのエラーメッセージを対応するGUIで表示させる。
なお、制御部10はVMM102として動作するに際し、各OS101,101,…に直接I/O方式により実I/Oデバイス15,15,…を割り当てた期間を計測しておき、計測しておいた期間が長いOS101へは、一定期間が経過するまで直接I/O方式への切り替えを拒否する機能を実現してもよい。これにより、I/Oデバイス15,15,…が不足して直接I/O方式への切り替えができない状況にある場合、平等に映像視聴アプリケーションプログラム113,113,…を実行可能とすることができる。
このように、アプリケーションプログラム113,113,…の実行状態を監視するサービスが、状態遷移命令を発行させることにより、アプリケーションプログラム113,113,…の実行状態に応じて直接I/O方式と、エミュレーション方式とで入出力制御を切り替えることが可能になる。
なお、制御部10が状態監視サービスとして動作することにより、アプリケーションプログラム113,113,…の起動又は停止のみならず、アプリケーションプログラム113,113,…で開かれるデータの種類に応じて対応するI/Oデバイス15,15,…への状態遷移命令を発行するようにしてもよい。例えば、映像視聴アプリケーションプログラム113が起動されたのみならず、視聴対象がMPEG−2データファイル又はストリーミングである場合、状態監視サービスとして動作する制御部10は、MPEG−2デコーダ152,152,…を復帰させるための状態遷移命令を発行するようにしてもよい。
また、制御部10は、状態監視サービスとして動作することにより、状態遷移命令を発行する前に、状態遷移を行なうことを通知する機能を備える構成としてもよい。この場合、制御部10は状態監視サービスとして動作してOS101から状態遷移命令を発行させる前に、状態遷移通知をVMM102へ通知する。制御部10はVMM102として動作することにより、状態遷移通知を受けた場合、I/O監視部122としての機能を開始し、捕捉された入出力命令が特定のI/Oデバイス15,15,…への状態遷移命令であることを判別するまで判別処理を継続する。これにより、制御部10は常にI/O監視部122としての機能を発揮して入出力命令が特定のI/Oデバイス15,15,…への状態遷移命令であるか否かを判別する必要がなくなり、VMM102としての処理が軽量化される。
(実施の形態3)
実施の形態3では、各端末装置2,2,…で表示する画面を表わす画像データの生成をグラフィックカード151,151,…で生成する構成とする。そして、実施の形態3では、サーバ装置1でn台の仮想マシンの動作を実現できるのに対し、サーバ装置1で使用可能なグラフィックカード151,151,…は仮想マシンの台数よりも少ないm台(n>m)である場合に、グラフィックカード151,151,…の開放/割り当てを行なう例を挙げて説明する。
実施の形態3におけるシンクライアントシステムの構成は、実施の形態1と同様であるので共通する部分には同一の符号を付して詳細な説明を省略する。
図7は、実施の形態3におけるシンクライアントシステムのサーバ装置1によるグラフィックカード151,151,…への入出力制御の切り替え処理の概要を示す模式図である。実施の形態3で説明する例では、サーバ装置1の制御部10がVMM102又はサーバ管理部として動作することにより端末装置2,2,…からの起動要求を受け付けた場合、端末装置2に対応するOS101を起動するに際し、初期的にOS101に対してグラフィックカード151をエミュレーション方式で割り当てる。このとき、グラフィックカード151はACPIにおけるD3状態であり、OS101からは画面出力が行なわれない。そして、ユーザが端末装置2の操作を行った場合に、対応するOS101がグラフィックカード151の状態を稼働状態(D0)へ遷移させる状態遷移命令を発する。この場合、制御部10はVMM102として動作することにより当該状態遷移命令を捕捉し、対応するOS101のグラフィックカード151,151,…への入出力制御を直接I/O方式へ切り替える。直接I/O方式へ切り替えられることにより、各OS101,101,…から発行される描画コマンドがグラフィックカード151,151,…に入力され、グラフィックカード151,151,…が生成した画像データが対応する端末装置2,2,…へ送信される。また、端末装置2,2,…から入力信号が入力されない期間が継続した場合、又は、サスペンド状態(スタンバイ/休止)への移行が指示された場合、対応するOS101はサスペンド状態へ遷移するに際し、画面出力を停止してグラフィックカード151へ停止状態への状態遷移命令を発行する。この場合、制御部10はVMM102として動作することにより当該状態遷移命令を捕捉し、対応するOS101のグラフィックカード151への入出力制御をエミュレーション方式へ切り替える。対応するOS101でグラフィックカード151がエミュレーション方式へ切り替えられ、画像データが送信されない間、端末装置2側でスクリーンセーバー用の画像を表示する機能を備える構成としてもよい。
これにより、グラフィックカード151,151,…を用いた画像転送方式のシンクライアントシステムでも、グラフィックカード151,151,…の台数(m)以上の数(n)の仮想マシンの動作を実現することが可能である。したがって、ユーザの操作状態に応じて効率的にグラフィックカード151,151,…を利用することができる。
なお、実施の形態3における端末装置2,2,…は、自身が備える入力インタフェースの内のオン/オフボタン等の特定のキー、ボタンが押下された場合に、端末装置2からサスペンド状態への指示を示す休止命令、又はサスペンド状態からの復帰の指示を示す復帰命令をサーバ装置1へ通知する構成としてもよい。その場合、サーバ装置1で起動される各OS101,101,…上で動作する状態監視サービスプログラムは、端末装置2,2,…から通知される休止命令及び復帰命令を受け付け、ユーザによる端末装置2の利用状態を把握する機能を実現するように構成される。各OSとして動作する制御部10は、状態監視サービスプログラムを実行することにより、休止命令又は復帰命令を受け付けてOS101をサスペンド状態へ移行させると共に、対応するグラフィックカード151の入出力制御の方式を直接I/O方式とエミュレーション方式とで切り替える。なお、制御部10がVMM102又はサーバ管理部として動作することにより、直接的に端末装置2からの休止命令又は復帰命令を受け付け、対応するOS101へ命令を出力してサスペンド状態へ移行させると共に、OS101に対応するグラフィックカード151の入出力制御の方式を直接I/O方式とエミュレーション方式とで切り替える構成としてもよい。
図8は、実施の形態3における端末装置2,2,…による復帰命令及び休止命令を通知する処理手順の一例を示すフローチャートである。
端末装置2は、シンクライアントとしての起動時に、又は対応するOSがサスペンド状態にある間、入力インタフェースからの入力を受け付けたか、又は特定のキー、ボタンが押下されたか否かにより、端末装置2がアクティブ状態へ移行したか否かを判断する(ステップS41)。端末装置2は、入力インタフェースからの入力も受け付けず、特定のキー、ボタンも押下されず、アクティブ状態へ移行していないと判断した場合(S41:NO)、処理をステップS41へ戻す。
端末装置2は、入力インタフェースからの入力を受け付けたか、又は特定のキー、ボタンが押下されて自身がアクティブ状態へ移行したと判断した場合(S41:YES)、復帰命令をサーバ装置1へ通知する(ステップS42)。以降、端末装置1はアクティブ状態での処理を開始する(ステップS43)。
そして、端末装置2はアクティブ状態にある間、入力インタフェースからの入力を一定期間以上受け付けていないか、又は特定のキー、ボタンが再度押下されたか否かにより、自身がサスペンド状態へ移行したか否かを判断する(ステップS44)。端末装置2は、自身がサスペンド状態へ移行していないと判断した場合(S44:NO)、処理をステップS44へ戻す。そして端末装置2は、自身がサスペンド状態へ移行したと判断した場合(S44:YES)、休止命令をサーバ装置1へ通知する(ステップS45)。以降、端末装置2はサスペンド状態での処理を開始し(ステップS46)、処理をステップS41へ戻す。このとき、自身でスクリーンセーバー用の画像を表示させるようにしてもよい。
端末装置2,2,…は、電源がオフとなるまで図8のフローチャートに示した処理を繰り返して実行する。
図9は、実施の形態3におけるサーバ装置1の制御部10による入出力制御方式の切り替えの処理手順の一例を示すフローチャートである。図9のフローチャートに示す処理手順は、図8のフローチャートに示した端末装置2から通知される復帰命令及び休止命令に対応して行なわれる。
制御部10は、OS101上の状態監視サービスプログラムに基づく動作により、対応する端末装置2から復帰命令を受け付けたか否かを判断し(ステップS501)、復帰命令を受け付けていないと判断した場合(S501:NO)、処理をステップS501へ戻す。なお、ステップS501における処理は、上述のように制御部10がVMM102又はサーバ管理部として直接的に受け付ける構成としてもよい。
制御部10は対応する端末装置2から復帰命令を受け付けたと判断した場合(S501:YES)、画面出力を開始し(ステップS502)、この場合、デバイスドライバ103によりグラフィックカード151への出力命令を発行する。制御部10はVMM102として動作し、I/O命令捕捉部121としての機能により、発行された出力命令を捕捉し(ステップS503)、この場合の特定のI/Oデバイス15であるグラフィックカード151への出力命令であることを判別する(ステップS504)。制御部10はVMM102として動作し、エミュレーション方式で割り当てられていたグラフィックカード151を直接I/O方式へ切り替える(ステップS505)。このとき制御部10は、I/O管理部124としての機能により、対応するデバイスエミュレータ部129の動作を停止させる。なお、制御部10は直接I/O方式への切り替えに際し、備えられているグラフィックカード151,151,…の内の空き状態のグラフィックカード151,151,…をラウンドロビン式に割り当てる。また、必要に応じて制御部10は、前回休止状態へ遷移させる前に保存しておいたレジスタ値をグラフィックカード151のレジスタへ戻して復帰させる構成としてもよい。
制御部10は、VMM102又はサーバ管理部としての機能により直接的に端末装置2から復帰命令を受け付ける構成とした場合、端末装置2から復帰命令を受け付けたと判断したとき(S501:YES)、OS101からグラフィックカード151への出力命令が発行される前に、対応するグラフィックカード151を直接I/O方式によって割り当てる処理を開始しておいてもよい。また、制御部10がVMM102又はサーバ管理部としての機能により端末装置1から復帰命令を受け付けたと判断した場合にI/O監視部122としての機能を開始する構成としてもよい。これにより、入出力命令を判別する処理を常に行なう必要がなくなる。
制御部10は、グラフィックカード151への入出力制御の方式が直接I/O方式へ切り替えられへ画面出力を継続している間、OS101上の状態監視サービスプログラムに基づく動作により、対応する端末装置2から休止命令を受け付けたか否かを判断する(ステップS506)。制御部10は、休止命令を受け付けていないと判断した場合(S506:NO)、処理をステップS506へ戻す。
制御部10は端末装置2から休止命令を受け付けたと判断した場合(S506:YES)、グラフィックカード151への画面出力を停止し(ステップS507)、グラフィックカード151へ出力停止命令を発行する(ステップS508)。制御部10はVMM102として動作し、I/O命令捕捉部121としての機能により、発行された命令を捕捉し(ステップS509)、この場合の特定のI/Oデバイス15であるグラフィックカード151への出力停止命令であることを判別する(ステップS510)。制御部10はVMM102として動作し、I/O管理部124としての機能により、直接I/O方式で割り当てられていたグラフィックカード151を停止させて開放し、エミュレーション方式に切り替える(ステップS511)。これにより、グラフィックカード151は開放されるので他のOS101,101,…への割り当てが可能となり、効率的な使用が可能となる。また、この際に制御部10は必要に応じて、停止させるグラフィックカード151のレジスタ値を読み出しておき、保存しておく構成としてもよい。他のOS101,101,…にも割り当て可能として効率的に使用する構成とし、復帰したOS101へ他のグラフィックカード151が割り当てられる場合であっても、休止した時点での状況に戻すことができ、サーバ装置1では、ハードウェア資源が切り替えられていることをユーザによって意識されずに動作が可能である。
なお、この場合も、制御部10がVMM102又はサーバ管理部としての機能により直接的に端末装置2から休止命令を受け付ける構成とした場合、端末装置2から休止命令を受け付けたと判断したとき(S506:YES)、OS101からグラフィックカード151への出力停止命令が発行される前に、対応するデバイスエミュレータ部129としての動作を開始しておいてもよい。また、制御部10がVMM102又はサーバ管理部としての機能により端末装置2から休止命令を受け付けたと判断した場合、I/O監視部122としての機能を開始する構成としてもよい。これにより、入出力命令を判別する処理を常に行なう必要がなくなる。
サーバ装置1の制御部10は、OS101が起動された以後は図9のフローチャートに示した処理手順を繰り返し、端末装置2の利用状態に応じてI/Oデバイス15,15,…の入出力制御の方式を切り替える。制御部10は、VMM102又はサーバ管理部として動作することにより、対応する端末装置2の動作が停止し、OS101を終了させた場合に図9のフローチャートに示した処理を終了させる。
このように、ユーザが端末装置2をシンクライアントとして動作させ、入力信号が入力されている間は、対応するOS101へは直接I/O方式によりグラフィックカード151が割り当てられる。また、ユーザが離席した場合、又はユーザによる操作によって能動的にサスペンド状態へ移行された場合には、対応するOS101へは停止状態のグラフィックカード151としての動作を再現するグラフィックエミュレータ部がエミュレーション方式により割り当てられる。このように、OS101の停止/再起動を行なうことなしに実デバイスであるグラフィックカード151の開放/割り当てが行なわれ、ユーザとしてはOS101及びOS上で動作する各アプリケーションプログラム113,113,…をスムーズに利用することができる。そして、サーバ装置1でグラフィックカード151,151,…の台数(m)以上の数(n台)の仮想マシンの動作を実現可能であり、一のOS101がサスペンド状態にある間などは、他のOS101,101,…で再起動なしにグラフィックカード151を利用することができ、効率的にハードウェア資源を利用させることが可能である。
(実施の形態4)
実施の形態1乃至3におけるシンクライアントシステムでは、サーバ装置1の制御部10がVMM102又はサーバ管理部として機能することにより、端末装置2,2,…からの起動要求を受け付ける構成とした。実施の形態4におけるシンクライアントシステムでは、端末装置2,2,…からの起動要求を受け付け、シンクライアントとしての動作を許可するか否かの認証を実行する認証装置Sを更に含む構成とする。
図10は、実施の形態4におけるシンクライアントシステムの構成を示す説明図である。実施の形態1乃至3におけるシンクライアントシステムと共通する構成については同一の符号を付して詳細な説明を省略する。
実施の形態4におけるシンクライアントシステムは、サーバ装置1と、端末装置2,2,…と、認証装置Sと、ネットワークNとを含んで構成される。認証装置Sは、サーバ装置1と端末装置2,2,…との間の接続を認証する装置であり、端末装置2,2,…からの起動要求を受け付ける。認証装置Sは、起動要求と共に端末装置2,2,…から送信される端末装置2,2,…を識別する情報、及び端末装置2,2,…を使用するユーザ夫々を識別する情報等を含む認証情報を、自身が記憶する情報と照合する。認証装置Sは、認証情報が自身が記憶する情報と合致し、接続可と判断した場合にのみ、起動要求をサーバ装置1へ送信し、起動要求の送受信、入力信号の送受信を実現するための接続を確立する。
サーバ装置1では、制御部10のVMM102又はサーバ管理部(ホストOS)としての動作により認証装置S経由で受信した起動要求を受け付け、認証によって接続可と判断された端末装置2に対応するOS101にのみ、グラフィックカード151,151,…を割り当てるようにしてある。実施の形態4におけるサーバ装置1の制御部10は、VMMと102して動作することにより、OS101を起動する際にはグラフィックカード151をエミュレーション方式により割り当て、認証装置Sにより接続が確立された経路により入力信号が入力された場合、グラフィックカード151への入出力制御を直接I/O方式へ切り替える。これにより、認証されたユーザが使用する端末装置2のみがシンクライアントとしての動作を許可され、より安全性の高いシンクライアントシステムを提供することが可能となる。
また、認証装置Sは、端末装置2,2,…から復帰命令、休止命令が通知される場合、これを受け付ける機能を有する。認証装置Sは、復帰命令に対しては特に、認証されたユーザが使用する端末装置2からの復帰命令である場合のみ制御部10により動作しているVMM102又はサーバ管理部(ホストOS)、若しくは対応するOS101によって実行されている状態監視サービスへ通知する機能を有する。このとき、認証装置Sは、サーバ装置1の制御部10が動作させているVMM102又はサーバ管理部、及び、状態監視サービスのいずれもへ復帰命令を通知する構成としてもよい。
これに対し、サーバ装置1の制御部10はOS101として動作することにより、休止命令を受け付けた場合には対応するI/Oデバイス15,15,…へデバイスが停止状態(D3)へと遷移するために出力停止命令を発行し、復帰命令を受け付けた場合には出力命令を発行してI/Oデバイス15,15,…を稼働状態(D0)へ遷移させる。
OS101が自身の実行状態を監視し、入力信号を一定期間以上受け付けない等の条件によりサスペンド状態へ遷移して、対応するI/Oデバイス15,15,…へ停止状態への遷移を伴なう出力停止命令を発行し、その後入力信号を受け付けたと判断した場合に対応するI/Oデバイス15,15,…へ稼働状態への遷移を伴なう出力命令を発行する構成のみならず、上述のように端末装置2,2,…からの起動要求、復帰命令及び休止命令を外部装置である認証装置Sにより認証した上で間接的に受け付けた場合に各I/Oデバイス15,15,…の切り替えがされる点、安全性が高くなる。
なお、認証装置Sとしての動作は、サーバ装置1の制御部10によって実現される一の仮想マシンのOSの動作によって実行される構成としてもよい。なお、グラフィックカード151,151,…から直接的に画像データを送信する構成とする場合、端末装置2,2,…から認証装置S経由でサーバ装置1へ起動要求、復帰命令及び休止命令を送信及び通知する通信経路と、グラフィックカード151,151,…から各端末装置2,2,…へ画像データを送信する通信経路とを別経路とすることにより、より安全性の高いシンクライアントシステムを構成することが可能となる。
実施の形態1乃至4では、仮想化環境は一個の筺体で構成されるサーバ装置1内で実現されるように説明した。しかしながら、複数の筺体で構成されるサーバ装置群で複数のOSを実行するように構成し、VMMとして動作する制御部10は異なる装置におけるハードウェア資源の割り当て、及び入出力命令の制御を行なう構成としてもよい。
また、実施の形態1乃至4では、本発明に係る情報処理装置をシンクライアントシステムを実現するシンクライアントサーバにおける仮想化環境に適用した例を挙げた。勿論、本発明はこれに限らず、仮想化技術を利用して少ないハードウェア資源を効率的に使用する情報処理装置に利用可能である。例えば、種々のサービスを実現するためのサーバ/クライアントシステムにおけるサーバ装置に適用することにより、サーバ装置に備えられるハードウェア資源を効率的に使用させることができ、サーバ装置のコンパクト化を図ることも可能である。
以上の実施の形態に関し更に、以下の付記を開示する。
(付記1)
複数のオペレーティングシステム(以下、OS)夫々に対応するハードウェア資源を制御する制御手段を備え、複数のOSを実行させる情報処理装置であって、
前記制御手段は、
各OSからのハードウェア資源への入出力命令を捕捉する捕捉手段と、
該捕捉手段が捕捉した前記入出力命令を前記ハードウェア資源へ直接的に与えて制御する直接制御手段と、
前記ハードウェア資源における動作をエミュレートし、前記捕捉手段が捕捉した前記入出力命令へ応答するエミュレータと、
前記捕捉手段が捕捉した入出力命令が、ハードウェア資源の稼働状態の遷移を伴なう状態制御命令であるか否かを判断する判断手段と、
該判断手段が状態制御命令であると判断した場合、前記稼働状態の遷移に応じて前記直接制御手段による制御又は前記エミュレータによる応答のいずれかに切り替える切替手段と
を備える情報処理装置。
(付記2)
前記切替手段は、前記稼働状態の遷移が、特定の状態への遷移を伴なうと判断された場合に、前記エミュレータによる応答へ切り替えるようにしてある付記1に記載の情報処理装置。
(付記3)
前記制御手段は、
各OS上で実行されるアプリケーションプログラムの実行状態を取得する状態取得手段と、
該状態取得手段が取得した実行状態に応じて、前記状態制御命令を発行する手段と
を備える付記1に記載の情報処理装置。
(付記4)
前記制御手段は、
前記直接制御手段による制御が行なわれた期間をOS毎に計測する手段を備え、
計測された期間を合計し、合計期間が少ないOSからの状態制御命令に対し優先的に前記直接制御手段による制御に切り替えるようにしてある付記1乃至3のいずれかに記載の情報処理装置。
(付記5)
各OSは、状態を遷移させることを示す状態遷移通知を前記制御手段へ通知するようにしてあり、
前記判断手段は、前記状態遷移通知を検知した場合に判断を行なうようにしてある付記1乃至3のいずれかに記載の情報処理装置。
(付記6)
各OSは、
該OSの処理結果を受け付ける外部装置から該外部装置の稼働状況を示す稼働状況通知を受け付け、受け付けた外部装置の稼働状況通知が示す稼働状況に応じて前記状態制御命令を発行するようにしてある付記1に記載の情報処理装置。
(付記7)
前記制御手段は、
各OSに対応する外部装置から、該外部装置の稼働状況を示す稼働状況通知を受け付ける手段を更に備え、
外部装置から稼働状況通知を受け付けた場合に、前記判断手段による判断を行なうようにしてある付記6に記載の情報処理装置。
(付記8)
付記6又は7に記載の情報処理装置と、該情報処理装置に接続され、前記OS夫々上で実行される情報処理結果を受け付ける一又は複数の端末装置とを含み、
前記情報処理装置では、前記端末装置夫々に対応するOSが実行されるようにしてあり、
前記端末装置は、自身の稼働状況を示す稼働状況通知を前記情報処理装置へ通知するようにしてある情報処理システム。
(付記9)
複数のOS夫々に対応するハードウェア資源の制御を行ない、情報処理装置に複数のOSを実行させる情報処理装置の制御方法であって、
各OSからのハードウェア資源への入出力命令を捕捉し、
捕捉した入出力命令が、ハードウェア資源の稼働状態の遷移を伴なう状態制御命令であるか否かを判断し、
稼働状態の遷移を伴なう状態制御命令であると判断した場合、前記稼働状態の遷移に応じて、捕捉した前記入出力命令を前記ハードウェア資源へ直接的に与えて制御する直接制御と、前記ハードウェア資源における動作をエミュレートし、捕捉した入出力命令へ応答するエミュレーション制御とを切り替える情報処理装置の制御方法。
(付記10)
コンピュータに、複数のOS夫々に対応するハードウェア資源の割り当て及び制御を行なわせ、複数のOSを実行させるコンピュータプログラムであって、
コンピュータを、
各OSからのハードウェア資源への入出力命令を捕捉する捕捉手段、
該捕捉手段が捕捉した前記入出力命令を前記ハードウェア資源へ直接的に与えて制御する直接制御手段、
前記ハードウェア資源における動作をエミュレートし、前記捕捉手段が捕捉した前記入出力命令へ応答するエミュレータ、
前記捕捉手段が捕捉した入出力命令が、ハードウェア資源の稼働状態の遷移を伴なう状態制御命令であるか否かを判断する判断手段、及び、
該判断手段が状態制御命令であると判断した場合、前記稼働状態の遷移に応じて前記直接制御手段による制御又は前記エミュレータによる応答のいずれかに切り替える切替手段
として機能させるコンピュータプログラム。
(付記11)
付記10に記載のコンピュータプログラムが、コンピュータによって読み取り可能に記憶されている記憶媒体。
実施の形態1におけるシンクライアントシステムの構成の概要を模式的に示す説明図である。 実施の形態1におけるシンクライアントシステムを構成するサーバ装置の内部構成を示すブロック図である。 実施の形態1におけるサーバ装置の制御部により実現される機能を概念的に示すブロック図である。 実施の形態1におけるサーバ装置の制御部による方式の切り替えのための判定処理手順の一例を示すフローチャートである。 実施の形態1におけるサーバ装置の制御部による方式切り替えのための判定処理手順の一例を示すフローチャートである。 実施の形態2におけるサーバ装置の制御部が、アプリケーションプログラムの起動及び終了に応じて状態制御命令を発行する処理手順を示すフローチャートである。 実施の形態3におけるシンクライアントシステムのサーバ装置によるグラフィックカードへの入出力制御の切り替え処理の概要を示す模式図である。 実施の形態3における端末装置による復帰命令及び休止命令を通知する処理手順の一例を示すフローチャートである。 実施の形態3におけるサーバ装置の制御部による入出力制御方式の切り替えの処理手順の一例を示すフローチャートである。 実施の形態4におけるシンクライアントシステムの構成を示す説明図である。
符号の説明
1 サーバ装置
10 制御部
101 OS
102 VMM
113 アプリケーションプログラム
121 I/O命令捕捉部
122 I/O監視部
123 I/Oバス切替部
124 I/O管理部
125 割り込み入力切替部
129 デバイスエミュレータ部
15 I/Oデバイス
2 端末装置

Claims (7)

  1. 複数のオペレーティングシステム(以下、OS)夫々に対応するハードウェア資源を制御する制御手段を備え、複数のOSを実行させる情報処理装置であって、
    前記制御手段は、
    各OSからのハードウェア資源への入出力命令を捕捉する捕捉手段と、
    該捕捉手段が捕捉した前記入出力命令を前記ハードウェア資源へ直接的に与えて制御する直接制御手段と、
    前記ハードウェア資源における動作をエミュレートし、前記捕捉手段が捕捉した前記入出力命令へ応答するエミュレータと、
    前記直接制御手段により制御している場合に、前記捕捉手段が捕捉した入出力命令が、特定のハードウェア資源の停止状態への遷移を指示する状態制御命令であるか否かを判断する第1判断手段と、
    前記エミュレータにより、制御している場合に、前記捕捉手段が捕捉した入出力命令が、特定のハードウェア資源の稼働状態への遷移を指示する状態制御命令であるか否かを判断する第2判断手段と、
    前記第1判断手段が前記特定のハードウェア資源の停止状態への遷移を指示する状態制御命令であると判断した場合、前記状態制御命令であると判断した命令より後に捕捉した当該OSから前記特定のハードウェア資源への前記入出力命令を渡す先を前記エミュレータへ切り替え、前記第2判断手段が、稼動状態への遷移を指示する状態制御命令であると判断した場合、前記状態制御命令であると判断した命令および以後に捕捉した当該OSから前記特定のハードウェア資源への前記入出力命令を渡す先を前記直接制御手段へ切り替える切替手段と
    を備える情報処理装置。
  2. 前記OSは、前記制御手段を、
    各OS上で実行されるアプリケーションプログラムの実行状態を取得する状態取得手段、及び
    該状態取得手段が取得した実行状態に応じて、前記状態制御命令を発行する手段
    として機能させるようにしてある請求項1に記載の情報処理装置。
  3. 前記OSは、前記制御手段を、
    該OSに対応するハードウェア資源の電力供給状態を遷移させる場合、前記入出力命令を出力するよりも前に、前記電力供給状態を遷移させることを示す状態遷移通知を前記判断手段へ通知する手段として機能させるようにしてあり、
    前記判断手段は、前記状態遷移通知を受けた場合に判断を行なうようにしてある請求項1又は2に記載の情報処理装置。
  4. 前記OSは、前記制御手段を、
    該OSの処理結果を受け付ける外部装置から該外部装置の稼働状況を示す稼働状況通知を受け付け、受け付けた外部装置の稼働状況通知が示す稼働状況に応じて前記状態制御命令を発行する手段として機能させるようにしてある請求項1に記載の情報処理装置。
  5. 前記制御手段は、
    各OSに対応する外部装置から、該外部装置の稼働状況を示す稼働状況通知を受け付ける手段を更に備え、
    前記入出力命令を捕捉するより前に、外部装置から稼働状況通知を受け付けた場合に、前記判断手段による判断を行なうようにしてある請求項4に記載の情報処理装置。
  6. 複数のOS夫々に対応するハードウェア資源の制御を行ない、情報処理装置に複数のOSを実行させる情報処理装置の制御方法であって、
    各OSからのハードウェア資源への入出力命令を捕捉し、
    捕捉した入出力命令を前記ハードウェア資源へ直接的に与えて制御する直接制御手段により制御している場合に、捕捉した入出力命令が、特定のハードウェア資源の停止状態への遷移を指示する状態制御命令であるか否かを判断し、
    前記ハードウェア資源における動作をエミュレートし、捕捉した入出力命令へ応答するエミュレータにより制御している場合に、捕捉した入出力命令が、特定のハードウェア資源の稼働状態への遷移を指示する状態制御命令であるか否かを判断し、
    前記特定のハードウェア資源の停止状態への遷移を指示する状態制御命令であると判断した場合、前記状態制御命令であると判断した命令より後に捕捉した当該OSから前記特定のハードウェア資源への前記入出力命令を渡す先を前記エミュレータへ切り替え、稼動状態への遷移を指示する状態制御命令であると判断した場合、前記状態制御命令であると判断した命令および以後に捕捉した当該OSから前記特定のハードウェア資源への前記入出力命令を渡す先を前記直接制御手段へ切り替える情報処理装置の制御方法。
  7. コンピュータに、複数のOS夫々に対応するハードウェア資源の割り当て及び制御を行なわせ、複数のOSを実行させるコンピュータプログラムであって、
    コンピュータを、
    各OSからのハードウェア資源への入出力命令を捕捉する捕捉手段、
    該捕捉手段が捕捉した前記入出力命令を前記ハードウェア資源へ直接的に与えて制御する直接制御手段、
    前記ハードウェア資源における動作をエミュレートし、前記捕捉手段が捕捉した前記入出力命令へ応答するエミュレータ、
    前記直接制御手段により制御している場合に、前記捕捉手段が捕捉した入出力命令が、特定のハードウェア資源の停止状態への遷移を指示する状態制御命令であるか否かを判断する第1判断手段、
    前記エミュレータにより、制御している場合に、前記捕捉手段が捕捉した入出力命令が、特定のハードウェア資源の稼働状態への遷移を指示する状態制御命令であるか否かを判断する第2判断手段、
    前記第1判断手段が前記特定のハードウェア資源の停止状態への遷移を指示する状態制御命令であると判断した場合、前記状態制御命令であると判断した命令より後に捕捉した当該OSから前記特定のハードウェア資源への前記入出力命令を渡す先を前記エミュレータへ切り替え、前記第2判断手段が、稼動状態への遷移を指示する状態制御命令であると判断した場合、前記状態制御命令であると判断した命令および以後に捕捉した当該OSから前記特定のハードウェア資源への前記入出力命令を渡す先を前記直接制御手段へ切り替える切替手段
    として機能させるコンピュータプログラム。
JP2008069917A 2008-03-18 2008-03-18 情報処理装置、情報処理装置の制御方法及びコンピュータプログラム Expired - Fee Related JP5251188B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008069917A JP5251188B2 (ja) 2008-03-18 2008-03-18 情報処理装置、情報処理装置の制御方法及びコンピュータプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008069917A JP5251188B2 (ja) 2008-03-18 2008-03-18 情報処理装置、情報処理装置の制御方法及びコンピュータプログラム

Publications (2)

Publication Number Publication Date
JP2009223793A JP2009223793A (ja) 2009-10-01
JP5251188B2 true JP5251188B2 (ja) 2013-07-31

Family

ID=41240468

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008069917A Expired - Fee Related JP5251188B2 (ja) 2008-03-18 2008-03-18 情報処理装置、情報処理装置の制御方法及びコンピュータプログラム

Country Status (1)

Country Link
JP (1) JP5251188B2 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011118578A (ja) * 2009-12-02 2011-06-16 Renesas Electronics Corp 情報処理装置
JP2011145912A (ja) * 2010-01-15 2011-07-28 Fujitsu Ltd 仮想計算機を使用したクライアントシステム、仮想計算機を使用したクライアント制御方法及びそのプログラム
TWI453603B (zh) * 2010-06-30 2014-09-21 Ibm 平台無關之資訊處理系統,其通訊方法,及其電腦程式產品
KR101405865B1 (ko) 2010-07-23 2014-06-12 에스케이플래닛 주식회사 셋탑박스 화면 가상화 방법 및 시스템
US9069622B2 (en) * 2010-09-30 2015-06-30 Microsoft Technology Licensing, Llc Techniques for load balancing GPU enabled virtual machines
JP5572074B2 (ja) * 2010-11-30 2014-08-13 富士通コンポーネント株式会社 Kvm装置
US9009509B2 (en) 2011-02-04 2015-04-14 Panasonic Intellectual Property Corporation Of America Virtual computer system, device sharing control method, computer-readable recording medium, and integrated circuit
JP5742387B2 (ja) * 2011-03-31 2015-07-01 富士通株式会社 情報処理システム、及びi/oスイッチ装置
US8966477B2 (en) * 2011-04-18 2015-02-24 Intel Corporation Combined virtual graphics device
JP5617761B2 (ja) * 2011-05-20 2014-11-05 三菱電機株式会社 計算機システム、計算機、及び計算機システムの割込み処理方法
KR20140042896A (ko) 2011-07-15 2014-04-07 오티스 엘리베이터 컴파니 엘리베이터 시스템 고정부들 및 고정부들을 제어하는 서버
WO2013175570A1 (ja) 2012-05-22 2013-11-28 富士通株式会社 情報処理装置、制御方法、及び制御プログラム
JP2014135013A (ja) * 2013-01-11 2014-07-24 Fujitsu Ltd 画像転送方法、サーバ機器及びプログラム
JP5917441B2 (ja) * 2013-06-03 2016-05-11 株式会社日立製作所 仮想計算機システム、sr−iov対応デバイスの制御方法
CN108292278B (zh) * 2016-01-22 2021-02-26 株式会社日立制作所 计算机系统和计算机
JP6702021B2 (ja) * 2016-06-24 2020-05-27 コニカミノルタ株式会社 画像処理装置、デバッグ支援方法およびデバッグ支援プログラム
KR101838431B1 (ko) * 2017-02-02 2018-03-14 한국공항공사 지상감시레이더 자료 처리 장치 및 방법
JP6793143B2 (ja) * 2018-03-15 2020-12-02 日本電信電話株式会社 デバイス割り当て制御方法、システムおよびプログラム

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01185733A (ja) * 1988-01-21 1989-07-25 Toshiba Corp 入出力エミュレーション方式
JPH03131936A (ja) * 1989-10-18 1991-06-05 Nec Corp 仮想計算機システムのos間入出力装置共用方式
JP2003202999A (ja) * 2002-01-08 2003-07-18 Hitachi Ltd 仮想計算機システム
JP2006113767A (ja) * 2004-10-14 2006-04-27 Sony Corp 情報処理システム、および、情報処理方法、並びに、プログラム
JP5018252B2 (ja) * 2007-06-06 2012-09-05 株式会社日立製作所 デバイス割り当て変更方法
JP4637140B2 (ja) * 2007-06-18 2011-02-23 株式会社日立製作所 計算機システム

Also Published As

Publication number Publication date
JP2009223793A (ja) 2009-10-01

Similar Documents

Publication Publication Date Title
JP5251188B2 (ja) 情報処理装置、情報処理装置の制御方法及びコンピュータプログラム
US8527679B2 (en) Apparatus and method for adaptation of input/output interface in virtualization environment
CA2771785C (en) A system and method for pervasive computing
US10459769B2 (en) Elastic container management system
US20130174151A1 (en) Information processing apparatus and method of controlling virtual machine
JP4921384B2 (ja) メモリを1台のバーチャル・マシンからもう一方へダイナミックに再割り当てする方法、装置及びシステム
JP5784482B2 (ja) 情報処理装置および通信制御方法
US8458694B2 (en) Hypervisor with cloning-awareness notifications
US8863122B2 (en) Remote control of a plurality of virtual machines using actions facilitated through a graphic user interface
US8799900B1 (en) Sharing webcam between guest and host OS
JP2011100431A (ja) 仮想マシン制御装置及び仮想マシン制御方法
JP2009230549A (ja) 情報処理装置、情報処理方法及びコンピュータプログラム
US8914623B2 (en) Utilization of the screen image information of a primary environment for reproduction and user-interaction in a secondary environment
US20100192214A1 (en) Information processing apparatus, information processing method, and recording medium including computer program
CN101373448B (zh) 具有远程管理的计算机系统
US9286088B2 (en) User interface for interaction with virtual machine
WO2012001787A1 (ja) 情報処理装置、情報処理方法、および情報処理プログラム
KR20120068573A (ko) 심리스 애플리케이션 통합 장치 및 방법
JP2011170613A (ja) 情報処理装置、計算機システム及びプログラム
KR20200105174A (ko) 특정 시점의 환경을 제공할 수 있는 가상 데스크톱 시스템 및 그 데이터 처리 방법
US9959842B2 (en) On-screen display at thin client
JP5533005B2 (ja) 情報処理装置、計算機システム及びプログラム
JP2005234808A (ja) 情報処理装置、システム、遠隔操作方法、プログラム及び記録媒体
CN111475435A (zh) 一种存储介质共享方法、装置及电子设备和存储介质
JP2012173969A (ja) デバイス制御システム及びプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20101018

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120313

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120514

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120626

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120822

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120925

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121225

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130107

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130226

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130228

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: 20130319

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130401

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160426

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees