エミュレーション装置、プログラム及び方法
【課題】 同一装置種別の仮想装置を使用する業務を複数実行しても、エミュレータの負荷が高くならず、優先順位の高い業務のエミュレート処理を早く実行させても、優先順位の低い業務のエミュレート処理が高い優先順位で実行されることのないエミュレーション装置、方法及びプログラムを提供する。
【解決手段】 仮想装置30に対するI/Oをエミュレートするエミュレート手段を装置種別毎でなく、同一の装置種別であっても、I/Oを行う業務毎もしくは業務の優先順位などを考慮して仮想装置をグループ分けし、仮想装置グループ毎にエミュレート手段170を用意することにより、エミュレート処理の負荷を仮想装置グループ毎に分散させる。また、エミュレート手段170の実行優先順位に差をつけ、重要な業務や先に処理したい業務のI/O処理は、他の仮想装置グループよりも優先的に処理する。
【解決手段】 仮想装置30に対するI/Oをエミュレートするエミュレート手段を装置種別毎でなく、同一の装置種別であっても、I/Oを行う業務毎もしくは業務の優先順位などを考慮して仮想装置をグループ分けし、仮想装置グループ毎にエミュレート手段170を用意することにより、エミュレート処理の負荷を仮想装置グループ毎に分散させる。また、エミュレート手段170の実行優先順位に差をつけ、重要な業務や先に処理したい業務のI/O処理は、他の仮想装置グループよりも優先的に処理する。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、エミュレーション装置、プログラム及び方法に関し、特に、オペレーティングシステムにより生成された仮想入出力装置などの仮想装置を制御するためのエミュレーション装置、プログラム及び方法に関する。
【背景技術】
【0002】
エミュレーションは、ハードウェアの機能を、構造の異なる別のハードウェアに模倣させて実行させることであり、エミュレーションを行うハードウェア、ソフトウェア(ミドルウェア)がエミュレータである。
【0003】
例えば、特許文献1に開示された「外部記憶装置への入出力制御方式」では、情報処理装置側の主記憶装置(例えば可変長レコード形式)と外部記憶装置(例えば固定長レコード形式)との間でデータをやり取りするため、情報処理装置側にデータ形式変換機構を設け、可変長レコード形式中のカウント部、キー部、データ部を固定長データとして扱う。両レコード形式の変換テーブルは、外部記憶装置側に設ける。これにより、複数の種類の外部記憶装置をひとつのエミュレータ(データ形式変換機構)により制御することができる。
【0004】
また、特許文献2に開示された「第2のシステム上での第1のシステムのプログラム実行装置及び方法」では、オペレーティングシステムの異なるコンピュータ同士であっても、アプリケーションプログラムが動作するように、CPUやメモリをエミュレートするインタプリタ、各種入出力デバイスをエミュレートする擬似デバイスドライバ(仮想デバイスドライバ)PSDDを備えており、上記インタプリタや擬似デバイスドライバPSDDは、実装置であるCPU(HECPU)、メモリ(HEMEM)、各種入出力ドライバIODを制御するプログラム(カーネル(オペレーションシステム内部においてハードウェアを操作できる権限が与えられたプログラム))の直上位に設けられ、第1システムのCPU、メモリ、入出力装置をエミュレートする。
【0005】
【特許文献1】特開平7−44324号公報(図3、段落0017)
【特許文献2】特開平7−182180号公報(図2、段落0071)
【発明の開示】
【発明が解決しようとする課題】
【0006】
ところで、入出力装置には、プリンタ、外部記憶装置、表示装置等があり、各々様々な種別のハードウェアを備えている。上述した従来技術では、装置種別毎に(特許文献1では外部記憶装置に対して、特許文献2ではCPU、メモリ、入出力装置の種別毎に)、エミュレータを1個用意し、入出力要求時に、装置種別を判断して、該当するエミュレータへエミュレート処理を依頼している。しかし、これでは、装置種別毎にエミュレート手段が1個しかないために、同一装置種別の仮想装置を使用する業務を複数実行すると、エミュレータの負荷が高くなり、仮想装置への入出力処理のスループットが低下するという問題がある。また、優先順位の高い業務のエミュレート処理を早く実行させるために、優先順位の低い業務のエミュレート処理も高い優先順位で実行されるという問題がある。
【0007】
そこで、本発明の課題は、同一装置種別の仮想装置を使用する業務を複数実行しても、エミュレータの負荷が高くならず、仮想装置への入出力処理のスループットが低下することのないエミュレーション装置、方法及びプログラムを提供することである。また、本発明の課題は、優先順位の高い業務のエミュレート処理を早く実行させても、優先順位の低い業務のエミュレート処理が高い優先順位で実行されることのないエミュレーション装置、方法及びプログラムを提供することである。
【課題を解決するための手段】
【0008】
本発明では、仮想装置に対するI/Oをエミュレートするエミュレート手段を装置種別毎にグループ化する。なお、同一の装置種別であっても、I/Oを行う業務を実行する優先順位を考慮してエミュレート手段の実行優先順位に差をつけ、重要な業務や先に処理したい業務のI/O処理を他の仮想装置グループに対するI/O処理よりも優先的に処理することとしてもよい。
【0009】
そこで、上述した課題を解決するための手段としてのエミュレーション装置は、アプリケーションプログラムに接続される仮想装置と、上記仮想装置を駆動するエミュレート手段とを備え、上記仮想装置の各々は、上記アプリケーションプログラムに基づいてグループ分けされており、上記エミュレート手段は、上記優先順位に基づいて上記仮想装置を駆動する。なお、該グループ分けは、上記アプリケーションプログラムを実行する優先順位に基づいて行なわれてもよい。
【0010】
また、上述した課題を解決するための手段としてのエミュレーションプログラムは、アプリケーションプログラムに接続される仮想装置を駆動するためにコンピュータを、上記仮想装置の各々を、上記アプリケーションプログラムに基づいてグループ分けするグループ分け手段、及び上記優先順位に基づいて上記仮想装置を駆動するエミュレート手段として機能させる。なお、該グループ分けは、上記アプリケーションプログラムを実行する優先順位に基づいて行なわれてもよい。
【0011】
また、上述した課題を解決するための手段としてのエミュレーション方法は、アプリケーションプログラムに接続される仮想装置を駆動するエミュレーション方法において、グループ分け手段により、上記仮想装置の各々を上記アプリケーションプログラムに基づいてグループ分けするステップと、上記エミュレート手段により、上記優先順位に基づいて上記仮想装置を駆動するステップとを含む。なお、該グループ分けは、上記アプリケーションプログラムを実行する優先順位に基づいて行なわれてもよい。
【発明の効果】
【0012】
本発明によれば、エミュレート処理を仮想装置グループ毎に負荷分散できる。その理由は、エミュレート手段を仮想装置グループ毎に分けて複数用意するため、他の仮想装置グループのエミュレート処理に影響されることなく別のエミュレート処理が行えるためである。また、仮想装置グループ数だけ、エミュレート処理を並列実行できるためである。
【発明を実施するための最良の形態】
【0013】
以下、図面を参照して、本発明の実施形態について説明する。
[実施形態1]
(実施形態1のエミュレーション装置の構成)
図1は、実施形態1のエミュレーション装置のブロック図である。
【0014】
実施形態1のエミュレーション装置10には、装置管理定義情報入力装置20と、仮想装置30と、実装置40とが接続されている。ここに、実装置40は、仮想装置30ではない装置(多重化等されていない装置であり、エミュレーションを要することなく駆動する事ができる入出力装置)である。
【0015】
エミュレーション装置10は、装置管理テーブル101を作成する装置管理テーブル作成手段110と、I/O要求通知セマフォ(以下「セマフォ」という)103を格納する仮想装置グループ管理テーブル102を作成する仮想装置グループ管理テーブル作成手段120と、エミュレート起動手段130と、I/O要求手段140と、I/O処理手段150と、エミュレート処理依頼手段160と、エミュレート手段170を含む。
【0016】
装置管理定義情報入力装置20は、実装置40又は仮想装置30の装置番号、装置情報、仮想装置フラグ(仮想装置30と実装置40を識別するフラグ)、仮想装置グループ番号(実装置40に対してグループ番号は付与されない)、優先順位(実装置40に対して優先順位は付与されない)を、後述する装置管理テーブル作成手段110に入力する。
【0017】
装置管理テーブル作成手段110は、コンピュータに接続される全ての実装置40および仮想装置30に対して、装置番号と、装置情報と、仮想装置か否かを示す仮想装置フラグと、仮想装置グループ番号と、優先順位とが定義された情報を、装置管理定義情報入力装置20から入力し、装置管理テーブル101を作成する。
【0018】
仮想装置グループ管理テーブル作成手段120は、装置管理テーブル作成手段110が作成した装置管理テーブル101から、仮想装置30の仮想装置グループ番号、優先順位を入力し、仮想装置グループ管理テーブル102を作成する。また仮想装置グループ毎にセマフォ(入出力資源を共有して使用するタスク間の動作の同期を取るためのフラグ又はそれを処理するツール。また、タスクは、オペレーションシステムから見たアプリケーションプログラムの1単位)を割り当て、セマフォのアドレスを仮想装置グループ管理テーブル102に格納する。
【0019】
エミュレート起動手段130は、仮想装置グループ管理テーブル102に従って、エミュレート手段170を起動する。I/O要求手段140は、業務処理(アプリケーションプログラム)を実行するジョブであり、I/O要求を発行する。
【0020】
I/O処理手段150は、I/O要求の装置番号を用いて装置管理テーブル101の中を検索し、装置番号に対応するエントリの仮想装置フラグを用いてI/O要求の装置が実装置40か仮想装置30かを判断する。そして、仮想装置フラグが立っていない実装置40に対するI/Oの場合は、実装置40に対してI/Oを実行する。仮想装置フラグが立っている仮想装置30に対するI/Oであった場合は、エミュレート処理依頼手段160に処理を渡す。
【0021】
エミュレート処理依頼手段160は、仮想装置グループ管理テーブル102を参照し、仮想装置グループ管理テーブル102中のセマフォ103のアドレスを取得し、仮想装置への入出力のエミュレート処理を依頼する。エミュレート手段170は、仮想装置30への入出力のエミュレート処理を実行する。
【0022】
ここで、図2は、装置管理定義情報入力装置20から装置管理テーブル作成手段110に入力される装置管理定義情報の内容を示す図である。装置管理定義情報入力装置20では、装置番号0、1、2、3などの各装置に対して、装置情報、仮想装置フラグのON又はOFF、仮想装置グループ番号(付かない場合もある)、優先順位(ない場合もある)が付与される。又、図3は、装置管理テーブル101の内容を示す図であり、装置管理定義情報入力装置20と同様である。更に、図4は、仮想装置グループ管理テーブル102の内容を示す図である。仮想装置グループ管理テーブル102では、仮想装置グループ0、1、2、3などの各グループに対して、セマフォアドレスと優先順位が付与される。
【0023】
[実施形態1のエミュレーション装置の動作]
図5に、エミュレーション装置立ち上げ時の動作を説明するためのフローチャートを示す。エミュレーション装置立ち上げ時には、S21において装置管理テーブル作成手段110が動作し、次にS22において仮想装置グループ管理テーブル作成手段120が動作し、最後にエミュレート起動手段130が動作する。
【0024】
又、図6には、I/O要求発行時の動作を説明するためのフローチャートを示す。I/O要求発行時には、S31においてI/O要求手段140が動作し、次にS32においてI/O処理手段150が動作し、次にS33においてエミュレート処理依頼手段160が動作し、最後にS34においてエミュレート手段170が動作する。
【0025】
更に、図7には、装置管理テーブル作成手段110の動作を説明するためのフローチャートを示す。まず、S41において装置管理定義情報入力装置20の中から1つの装置の装置番号と装置情報を格納して、装置管理テーブル101を作成する。次に、S42において装置が仮想装置であるか否かが判定される。次に、S42において装置が仮想装置30であると判定されればS43に進み仮想装置フラグを立てて、仮想装置グループ番号と優先順位を装置管理テーブル101のエントリに格納する。一方、S42において装置が仮想装置30ではないと判定されればS44に進む。S44では全装置に対してフラグ設定したか否かが判定され、全装置に対してフラグ設定を完了するまでS41からS43までを繰り返す。
【0026】
そして、図8は、仮想装置グループ管理テーブル作成手段120の動作を説明するためのフローチャートである。まず、S51において装置管理テーブル101から、仮想装置のフラグの立っている仮想装置の装置番号と仮想装置グループ番号と優先順位を入力する。次に、S52において仮想装置グループ管理テーブル102を検索し、当該仮想装置グループ番号のエントリがあるか判定される。S52において当該仮想装置グループ番号のエントリがないと判定されれば、S55に進み当該仮想装置グループのエントリを追加し、S56に進む。一方、S52において当該仮想装置グループ番号のエントリがあると判定されれば、S53からS54の処理を実行する。つまり、S53においてエントリの中の優先順位を取り出す。次に、S54において、S51で取り出した優先順位の方がS53で取り出した優先順位より高いか否かが判定される。S54において、S51で取り出した優先順位の方が高いと判定されれば、S56に進む。
【0027】
一方、S54において、S51で取り出した優先順位の方が低い場合または同じ場合、S57に進む。S56では、S51で取り出した優先順位を仮想装置グループ管理テーブル102の中の、仮想装置グループに対応するエントリ中の優先順位格納領域にセットする。一方、S57では、全仮想装置に対して、優先順位の設定を行ったかが判定される。S57において、全仮想装置に対して、優先順位の設定を行っていないと判定されれば、S51に戻って、優先順位の設定を繰り返す。又、S57において、全仮想装置に対して、優先順位の設定を行ったと判定されれば、S58に進み、全仮想装置グループに対し、I/O要求通知のセマフォを1つずつ割り当て、仮想装置グループ管理テーブル102の中の、全エントリのセマフォアドレス格納領域に各々のセマフォアドレスをセットする。
【0028】
図9は、エミュレート起動手段130の動作を説明するためのフローチャートである。S61において、仮想装置グループ管理テーブル102中の各仮想装置グループの優先順位で、各エミュレート手段170が起動される。このとき引数として仮想装置グループ管理テーブル102中の各仮想装置グループのセマフォアドレスを受け渡す。
【0029】
図10は、各エミュレート手段170の動作を説明するためのフローチャートである。まず、S71において、引数として渡されたセマフォアドレスでI/O要求のイベントを待ち合わせる。最後に、S72において、セマフォから取得したI/O要求の内容に従ってI/Oのエミュレートが行なわれる。コンピュータが立ち上がり、業務が動作すると、装置への入出力要求が発生し、図3に示すようにI/O要求手段140、I/O処理手段150、エミュレート処理依頼手段160、エミュレート手段170の順にI/Oが処理されていく。I/O要求手段140は、業務処理の中で装置への入出力が必要になると、対象装置の装置番号とI/Oの内容を指定して、I/O処理手段150にI/O要求を発行する。I/O処理手段150は、I/O要求の装置番号で装置管理テーブル101の中を検索し装置番号に対応するエントリの仮想装置フラグでI/O要求の装置が実装置か仮想装置かを判断し、仮想装置フラグが立っていない実装置に対するI/Oの場合は、実装置に対してI/Oを実行する。仮想装置フラグが立っている仮想装置に対するI/Oであった場合は、エミュレート処理依頼手段160に処理を渡す。
【0030】
図11は、エミュレート処理依頼手段160の動作を説明するためのフローチャートである。まず、S81において装置管理テーブル101を検索しI/O要求の装置のエントリから仮想装置グループ番号を取得する。次に、S82において仮想装置グループ管理テーブル102を参照して、当該仮想装置グループのセマフォアドレスを取得する。最後に、S83においてセマフォ103に対して、仮想装置30の装置番号とI/Oの内容を通知する。エミュレート手段170は、仮想装置30への入出力要求のイベントをセマフォ103から受け取ると、図10に示したS72の処理で、エミュレート処理を実行し、エミュレート処理が完了したらS71に戻る。
【0031】
図12は、業務が複数同時に実行中で、I/Oを発行するI/O要求手段140が複数存在した場合のエミュレーション装置10のブロック図である。1つのエミュレート手段170がエミュレート処理中であっても、別のI/O要求手段140が発行した後発のI/O要求が別の仮想装置グループであれば、別のエミュレート手段170がエミュレート処理を並行して実行できる。例えば図12のケースで業務ジョブAが装置番号1(仮想装置グループ番号1)に対してI/Oする場合、エミュレート手段170Aでエミュレートし、同時に業務ジョブBが装置番号2(仮想装置グループ番号2)に対してI/Oする場合、エミュレート手段170Bでエミュレートするというように、仮想装置グループを複数設定するとグループの数だけエミュレート手段が動作し、エミュレート手段の数だけI/O要求を同時に実行できる。
【0032】
図12のように、装置番号1の仮想装置グループ番号1の優先順位が1で装置番号2の仮想装置グループ番号2の優先順位が3の場合、業務ジョブAの装置番号1に対するI/Oのエミュレート手段170Aが優先して処理される。
【0033】
(実施形態1のエミュレーションプログラム)
実施形態1のエミュレーションプログラムは、実施形態1のエミュレーション装置の構成及び動作から明らかなとおり、アプリケーションプログラムに接続される仮想装置を駆動するためにコンピュータを、上記仮想装置の各々を、上記アプリケーションプログラムに基づいてグループ分けするグループ分け手段、及び上記優先順位に基づいて上記仮想装置を駆動するエミュレート手段として機能させる。
【0034】
ここに、該グループ分けは、上記アプリケーションプログラムを実行する優先順位に基づいて行なわれる。
【0035】
さらに、上記コンピュータを、上記アプリケーションプログラムの入出力要求を入力するI/O処理手段としてさらに機能させ、上記アプリケーションプログラムに接続される入出力装置が実装置であるときは、上記I/O処理手段が上記実装置を駆動し、上記入出力装置が上記仮想装置であるときは、上記I/O処理手段からの入出力要求に基づいて上記エミュレート手段が上記仮想装置を駆動する。
【0036】
さらに、上記コンピュータを、上記仮想装置の装置番号、それが属するグループ番号、及び上記アプリケーションプログラムの上記優先順位と、上記実装置の装置番号とを格納する装置管理テーブルを作成する装置管理テーブル作成手段としてさらに機能させ、上記I/O処理手段は上記装置管理テーブルに基づいて上記実装置を駆動してもよい。
【0037】
さらに、上記コンピュータを、上記装置管理テーブルに基づいて上記仮想装置が属するグループ番号、上記仮想装置のセマフォ、及び上記アプリケーションプログラムの上記優先順位を格納する仮想装置グループ管理テーブルを作成する仮想装置グループ管理テーブル作成手段としてさらに機能させ、上記I/O処理手段からの入出力要求と上記仮想装置グループ管理テーブルとに基づいて上記エミュレート手段が上記仮想装置を駆動する。
【0038】
(実施形態1のエミュレーション方法)
図13は、実施形態1のエミュレーション方法を説明するためのフローチャートである。
【0039】
まず、S131において、装置管理情報入力装置20から装置管理テーブル作成手段110に入力すべき装置管理定義情報を定義する。次に、S132において、装置管理定義情報入力装置20から入力された装置管理定義情報を、装置管理テーブル作成手段110により装置管理テーブル101の形に作成する。次に、S133において、仮想装置グループ管理テーブル作成手段120により、装置管理テーブル101の中から仮想装置グループを選択し、セマフォアドレスを付与し、優先順位とともに仮想装置グループ管理テーブル102に格納する。次に、S134において、アプリケーションプログラムからのI/O要求を待受ける。
【0040】
次に、S135において、I/O処理手段150により、I/O要求に係る入出力装置が仮想装置30であると判定されたときは、S136に進み、エミュレート処理依頼手段160により、仮想装置グループ管理テーブル102の中からI/O要求のセマフォアドレスを取得し、取得したセマフォをエミュレート手段170に送信する。これにより、S137において、エミュレーションが開始され、S138において仮想装置30が駆動される。すなわち、S138において、実装置40がエミュレートされ、S140において実装置40が駆動され、エミュレーションの全過程が完了する。
【0041】
一方、S135において、I/O処理手段150により、I/O要求に係る入出力装置が実装置40であると判定されたときは、S139に進み、I/O処理手段150により直接I/O処理が行なわれるS140により実装置40が駆動され、アプリケーションプログラムとの間のI/O処理が完了する。
【0042】
(実施形態1の効果)
実施形態1によれば、エミュレート処理を仮想装置グループ毎に負荷分散できる。その理由は、エミュレート手段を仮想装置グループ毎に分けて複数用意するため、他の仮想装置グループのエミュレート処理に影響されることなく別のエミュレート処理が行えるためである。また、仮想装置グループ数だけ、エミュレート処理を並列実行できるためである。
【0043】
[実施形態2]
(実施形態2のエミュレーション装置の構成)
図14は、実施形態2のエミュレーション装置のブロック図である。実施形態2のエミュレーション装置10は、装置管理定義情報入力装置20と、仮想装置30と、実装置40に接続されている。エミュレーション装置10は、装置管理テーブル作成手段110と、仮想装置グループ管理テーブル作成手段120と、エミュレート起動手段130と、I/O要求手段140と、I/O処理手段150と、エミュレート処理依頼手段160と、優先順位取得手段161と、エミュレート手段170を含む。実施形態2のエミュレーション装置は、優先順位取得手段161をさらに備える以外は実施形態1のエミュレーション装置と同じである。
【0044】
装置管理テーブル作成手段110は、コンピュータに接続される全ての装置および仮想装置に対して、装置番号と、装置情報と、仮想装置か否かを示す仮想装置フラグと、仮想装置グループ番号と、優先順位とが定義された情報を、装置管理定義情報入力装置20から入力し、装置管理テーブル101を作成する。仮想装置グループ管理テーブル作成手段120は、装置管理テーブル作成手段110が作成した装置管理テーブル101から、仮想装置の仮想装置グループ番号と、優先順位を入力し、仮想装置グループ管理テーブル102を作成する。また仮想装置グループ毎にセマフォを割り当てて、セマフォのアドレスを仮想装置グループ管理テーブル102に格納する。
【0045】
エミュレート起動手段130は、仮想装置グループ管理テーブル102に従って、エミュレート手段170を起動する。I/O要求手段140は、業務処理を行うジョブであり、I/O要求を発行する。I/O処理手段150は、I/O要求の装置番号で装置管理テーブル101の中を検索し装置番号に対応するエントリの仮想装置フラグでI/O要求の装置が実装置40か仮想装置30かを判断する。そして、仮想装置フラグが立っていない実装置に対するI/Oの場合は、実装置40に対してI/Oを実行する。仮想装置フラグが立っている仮想装置30に対するI/Oであった場合は、エミュレート処理依頼手段160に処理を渡す。
【0046】
エミュレート処理依頼手段160は、優先順位取得手段161を呼び出した後、仮想装置グループ管理テーブル102を参照し、セマフォ103のアドレスを取得し、優先順位取得手段161で取得した優先順位で仮想装置30への入出力のエミュレート処理を依頼する。優先順位取得手段161は、装置管理テーブル101を参照し、優先順位を取得し、エミュレート処理依頼手段160に送付する。エミュレート手段170は、仮想装置30への入出力のエミュレート処理を実行する。
【0047】
(実施形態2のエミュレーション装置の動作)
図5に示したように、コンピュータの立ち上げ時は、装置管理テーブル作成手段110、仮想装置グループ管理テーブル作成手段120、エミュレート起動手段130が動作する。
【0048】
図7に示したように、装置管理テーブル作成手段110は、S41の処理で装置管理定義情報入力装置20(図2)から装置番号と装置情報を入力して、装置管理テーブル101(図2)のエントリを作成する。次にS42からS43の処理で、装置が仮想装置である場合は、仮想装置か否かの仮想装置フラグを立てて、仮想装置グループ番号と優先順位を装置管理テーブル101のエントリに格納する。ステップS44以降は、全装置に対してS41からS43を繰り返す。
【0049】
図8に示したように、仮想装置グループ管理テーブル作成手段120は、S51の処理で装置管理テーブル101から、仮想装置のフラグの立っている仮想装置の装置番号と仮想装置グループ番号と優先順位を入力する。S52の処理では、仮想装置グループ管理テーブル102(図4)を検索し、当該仮想装置グループ番号のエントリがあるか検索し、ない場合はS55を実行しエントリを追加し、S56を実行する。当該仮想装置グループ番号のエントリがある場合はステップS53からS54の処理を実行する。つまりエントリの中の優先順位を取り出し、S51とS53で取り出した優先順位を比較し、S51の優先順位の方が高い場合、S56を実行し、S51の優先順位の方が低い場合または同じ場合、S57を実行し、S56では、S51で取り出した優先順位を仮想装置グループ管理テーブル102の中の、仮想装置グループに対応するエントリ中の優先順位格納領域にセットする。S57では、装置管理テーブル101の中の全仮想装置に対してS51〜S56を繰り返す。S58では、全仮想装置グループに対し、I/O要求通知セマフォを1つずつ割り当て、仮想装置グループ管理テーブル102の中の、全エントリのセマフォアドレス格納領域に各々のセマフォアドレスをセットする。
【0050】
図9に示したように、エミュレート起動手段130は、S61の処理で、仮想装置グループ管理テーブル102中の各仮想装置グループの優先順位で、各エミュレート手段170を起動する。このとき引数として仮想装置グループ管理テーブル102中の各仮想装置グループのセマフォアドレスを受け渡す。
【0051】
図10に示したように、各エミュレート手段のエミュレート手段170は、S71の処理で、引数として渡されたセマフォアドレスでI/O要求のイベントを待ち合わせ、S72でセマフォから取得したI/O要求のないように従ってI/Oのエミュレートを行う。
【0052】
図15に示すように、コンピュータが立ち上がり、業務が動作すると、装置への入出力要求が発生し、S140において/O要求手段140が動作し、続いてS150においてI/O処理手段150が動作し、続いてS160においてエミュレート処理依頼手段160が動作し、続いてS161において優先順位取得手段161が動作し、続いてS170においてエミュレート手段170が動作する。I/O要求手段140は、業務処理の中で装置への入出力が必要になると、対象装置の装置番号とI/Oの内容を指定して、I/O処理手段150にI/O要求を発行する。I/O処理手段150は、I/O要求の装置番号で装置管理テーブル101の中を検索し装置番号に対応するエントリの仮想装置フラグでI/O要求の装置が実装置か仮想装置かを判断し、仮想装置フラグが立っていない実装置に対するI/Oの場合は、実装置に対してI/Oを実行する。仮想装置フラグが立っている仮想装置に対するI/Oであった場合は、エミュレート処理依頼手段160に処理を渡す。
【0053】
エミュレート処理依頼手段160は、図16に示したS181の処理で装置管理テーブル101を検索しI/O要求の装置のエントリから仮想装置グループ番号を取得する。次に、S182の処理で装置管理テーブル101を検索してI/O要求の装置のエントリから優先順位を取得する。次に、S183の処理で仮想装置グループ管理テーブル102を参照して、当該仮想装置グループのセマフォアドレスを取得し、S184の処理でセマフォ103に対して、仮想装置30の装置番号とI/Oの内容を通知する。このとき、エミュレート処理の依頼に加えて、優先順位取得手段161で取得した優先順位も受け渡し、エミュレート処理の依頼イベントが溜まっている場合には、イベントが優先順位順に並ぶようにキューイングする。このとき、既にキューイングされているI/O要求があったとしても、それよりも後発のI/O要求の優先順位が高い場合は、後発のI/O要求は、先発のI/O要求よりも前にキューイングされる。
【0054】
図17に示すように、装置番号1へ優先順位2のI/Oが既にセマフォにキューイングされていて、後発の装置番号2へ優先順位1のI/Oが発行されたときには、先発のI/Oの前に後発のI/O要求が割り込むことになり、優先順位の高い装置へのI/Oが先に処理されることになる。
【0055】
最後に、エミュレート手段170は、セマフォ103から仮想装置30への入出力要求のイベントをキューイングされている先頭の要求を受け取ると、図10に示したS72の処理で、エミュレート処理を実行し、エミュレート処理が完了したらS71へ戻る。
【0056】
(実施形態2のエミュレーションプログラム)
実施形態2のエミュレーションプログラムは、実施形態2のエミュレーション装置の構成及び動作から明らかなとおり、アプリケーションプログラムに接続される仮想装置を駆動するためにコンピュータを、上記仮想装置の各々を、上記アプリケーションプログラムに基づいてグループ分けするグループ分け手段、及び上記優先順位に基づいて上記仮想装置を駆動するエミュレート手段として機能させる。ここに、該グループ分けは、上記アプリケーションプログラムを実行する優先順位に基づいて行なわれる。
【0057】
さらに、上記コンピュータを、上記アプリケーションプログラムの入出力要求を入力するI/O処理手段としてさらに機能させ、上記アプリケーションプログラムに接続される入出力装置が実装置であるときは、上記I/O処理手段が上記実装置を駆動し、上記入出力装置が上記仮想装置であるときは、上記I/O処理手段からの入出力要求に基づいて上記エミュレート手段が上記仮想装置を駆動する。
【0058】
さらに、上記コンピュータを、上記仮想装置の装置番号、それが属するグループ番号、及び上記アプリケーションプログラムの上記優先順位と、上記実装置の装置番号とを格納する装置管理テーブルを作成する装置管理テーブル作成手段としてさらに機能させ、上記I/O処理手段は上記装置管理テーブルに基づいて上記実装置を駆動してもよい。
【0059】
さらに、上記コンピュータを、上記装置管理テーブルに基づいて上記仮想装置が属するグループ番号、上記仮想装置のセマフォ、及び上記アプリケーションプログラムの上記優先順位を格納する仮想装置グループ管理テーブルを作成する仮想装置グループ管理テーブル作成手段としてさらに機能させ、上記I/O処理手段からの入出力要求と上記仮想装置グループ管理テーブルとに基づいて上記エミュレート手段が上記仮想装置を駆動する。ここまでは、実施形態2のエミュレーションプログラムの内容は実施形態1のものと同じである。
【0060】
さらに、実施形態2のエミュレーションプログラムでは、上記コンピュータを、上記装置管理テーブルから上記優先順位を取得する優先順位取得手段、及び上記仮想装置グループ管理テーブルから上記セマフォを入力するエミュレート処理依頼手段としてさらに機能させ、上記エミュレート処理依頼手段は、上記I/O処理手段からのI/O処理依頼があれば、上記I/O処理依頼に係る上記装置管理テーブルの上記優先順位及び上記仮想装置グループ番号の上記セマフォとに基づいて、上記エミュレート手段を駆動する。
【0061】
(実施形態2のエミュレーション方法)
図18は、実施形態2のエミュレーション方法を説明するためのフローチャートである。実施形態2のエミュレーション方法は、図13に示したS136がS171に変更されていることを除けば、実施形態1のもの(図13)と同じである。
【0062】
S171においては、エミュレート処理依頼手段160により、装置管理テーブルから優先順位が取得され、仮想装置グループ管理手段からセマフォが取得される。その理由は、エミュレート処理依頼手段160が優先順位取得手段161を呼び出した後、仮想装置グループ管理テーブル102を参照し、セマフォ103のアドレスを取得し、優先順位取得手段161で取得した優先順位で仮想装置30への入出力のエミュレート処理を依頼するためである。
【0063】
(実施形態2の効果)
実施形態2によれば、優先順位取得手段161で取得した優先順位で仮想装置30への入出力のエミュレート処理を依頼することができるため、最優先のジョブを迅速に処理できる。各エミュレート手段は、仮想装置毎に設定された優先順位に従ってエミュレート処理を実行するように構成されているため、同一仮想装置グループの中でも仮想装置毎にエミュレート処理を優先順位づけできる。つまり、装置に設定した優先順位に従ってI/Oの処理順序が変わり、優先して処理したい業務(I/O)を先に処理できるようになる。
【0064】
[実施形態3]
(実施形態3のエミュレーション装置の構成)
図19は、実施形態3のエミュレーション装置のブロック図である。実施形態3のエミュレーション装置10は、装置管理定義情報入力装置20と、仮想装置30と、実装置40と、操作卓50に接続されている。エミュレーション装置10は、装置管理テーブル作成手段110と、仮想装置グループ管理テーブル作成手段120と、エミュレート起動手段130と、I/O要求手段140と、I/O処理手段150と、エミュレート処理依頼手段160と、エミュレート手段170と、優先順位変更手段181を含む。実施形態3のエミュレーション装置は、優先順位変更手段181をさらに含むことを除き、実施形態2のエミュレーション装置と同じである。
【0065】
装置管理テーブル作成手段110は、エミュレーション装置10に接続される全ての装置および仮想装置に対して、装置番号と、装置情報と、仮想装置か否かを示す仮想装置フラグと、仮想装置グループ番号と、優先順位とが定義された情報を装置管理定義情報入力装置20から入力し、装置管理テーブル101を作成する。
【0066】
仮想装置グループ管理テーブル作成手段120は、装置管理テーブル作成手段110が作成した装置管理テーブル101から、仮想装置の仮想装置グループ番号と、優先順位を入力し、仮想装置グループ管理テーブル102を作成する。また仮想装置グループ毎にセマフォを割り当てて、セマフォのアドレスを仮想装置グループ管理テーブル102に格納する。
【0067】
エミュレート起動手段130は、仮想装置グループ管理テーブル102に従って、エミュレート手段170を起動する。I/O要求手段140は、業務処理を行うジョブであり、I/O要求を発行する。I/O処理手段150は、I/O要求の装置番号で装置管理テーブル101の中を検索し装置番号に対応するエントリの仮想装置フラグでI/O要求の装置が実装置か仮想装置かを判断し、仮想装置フラグが立っていない実装置に対するI/Oの場合は、実装置に対してI/Oを実行する。仮想装置フラグが立っている仮想装置に対するI/Oであった場合は、エミュレート処理依頼手段160に処理を渡す。
【0068】
エミュレート処理依頼手段160は、優先順位取得手段161を呼び出した後、仮想装置グループ管理テーブル102を参照し、セマフォ103のアドレスを取得し、優先順位取得手段161で取得した優先順位で仮想装置への入出力のエミュレート処理を依頼する。優先順位取得手段161は、装置管理テーブル101を参照し、優先順位を取得し、エミュレート処理依頼手段160に送付する。エミュレート手段170は、仮想装置30への入出力のエミュレート処理を実行する。優先順位変更手段181は、指定された仮想装置グループ番号に対応するエミュレート手段170の実行優先順位を変更する。
【0069】
図5に示したように、コンピュータの立ち上げ時は、装置管理テーブル作成手段110、仮想装置グループ管理テーブル作成手段120、エミュレート起動手段130が動作する。
【0070】
図7に示したように、装置管理テーブル作成手段110は、S41の処理で装置管理定義情報入力装置20(図2)から装置番号と装置情報を入力して、装置管理テーブル101(図3)のエントリを作成する。S42からS43の処理で、装置が仮想装置である場合は、仮想装置か否かの仮想装置フラグを立てて、仮想装置グループ番号と優先順位を装置管理テーブル101のエントリに格納する。S44以降は、全装置に対してS41からS43を繰り返す。
【0071】
図8に示したように、仮想装置グループ管理テーブル作成手段120は、S51の処理で装置管理テーブル101から、仮想装置のフラグの立っている仮想装置の装置番号と仮想装置グループ番号と優先順位を入力するS52の処理では、仮想装置グループ管理テーブル102(図12)を検索し、当該仮想装置グループ番号のエントリがあるか検索し、ない場合はS55を実行しエントリを追加し、S56を実行する。当該仮想装置グループ番号のエントリがある場合はS53からS54の処理を実行する。つまりエントリの中の優先順位を取り出し、S51とS53で取り出した優先順位を比較し、S51の優先順位の方が高い場合、S56を実行し、S51の優先順位の方が低い場合または同じ場合、S57を実行し、S56では、S51で取り出した優先順位を仮想装置グループ管理テーブル102の中の、仮想装置グループに対応するエントリ中の優先順位格納領域にセットする。S57では、装置管理テーブル101の中の全仮想装置に対してS51〜S56を繰り返す。S58では、全仮想装置グループに対し、I/O要求通知セマフォを1つずつ割り当て、仮想装置グループ管理テーブル102の中の、全エントリのセマフォアドレス格納領域に各々のセマフォアドレスをセットする。
【0072】
図9に示したように、エミュレート起動手段130は、S61の処理で、仮想装置グループ管理テーブル102中の各仮想装置グループの優先順位で、各エミュレート手段170を起動する。このとき引数として仮想装置グループ管理テーブル102中の各仮想装置グループのセマフォアドレスを受け渡す。
【0073】
図10に示したように、各エミュレート手段のエミュレート手段170は、S71の処理で引数として渡されたセマフォアドレスでI/O要求のイベントを待ち合わせ、S72においてI/Oのエミュレートを行う。
【0074】
図15に示したように、コンピュータが立ち上がり、業務が動作すると、装置への入出力要求が発生し、I/O要求手段140、I/O処理手段150、エミュレート処理依頼手段160、優先順位取得手段161、エミュレート手段170の順にI/Oが処理されていく。
【0075】
I/O要求手段140は、業務処理の中で装置への入出力が必要になると、対象装置の装置番号とI/Oの内容を指定して、I/O処理手段150にI/O要求を発行する。I/O処理手段150は、I/O要求の装置番号で装置管理テーブル101の中を検索し装置番号に対応するエントリからI/O要求の装置が実装置40か仮想装置30かを判断する。そして、実装置に対するI/Oの場合は、実装置40に対してI/Oを実行する。仮想装置30に対するI/Oであった場合は、エミュレート処理依頼手段160に処理を渡す。
【0076】
図16に示したように、エミュレート処理依頼手段160は、S181の処理で装置管理テーブル101を検索しI/O要求の装置のエントリから仮想装置グループ番号を取得する。次に、S182の処理で優先順位取得手段161を呼び出して、装置管理テーブル101を検索してI/O要求の装置のエントリから優先順位を取得する。次にS183の処理で仮想装置グループ管理テーブル102を参照して、当該仮想装置グループのセマフォアドレスを取得し、S184の処理でセマフォ103に対して、仮想装置30の装置番号とI/Oの内容を通知する。このとき、エミュレート処理の依頼に加えて、優先順位取得手段161で取得した優先順位も受け渡し、エミュレート処理の依頼イベントが溜まっている場合には、イベントが優先順位順に並ぶようにキューイングする。エミュレート手段170は、セマフォ103から仮想装置30への入出力要求のイベントをキューイングされている先頭の要求を受け取ると、図10のS72の処理で、エミュレート処理を実行し、エミュレート処理が完了したらS71へ戻る。
【0077】
操作卓50から優先順位変更のコマンドが投入されたときには、優先順位変更手段181がコマンドを受け取って処理する。
【0078】
すなわち、コマンドは装置番号と変更後の優先順位を指定され、対応する仮想装置グループの優先順位と、エミュレート手段170の優先順位を変更するものである。コマンドが投入されると、優先順位変更手段181はコマンドの内容を解析し、装置管理テーブル101を当該装置番号で検索しエントリ中の優先順位を更新し、さらに当該装置の仮想装置グループ番号を取り出し、装置管理テーブル101から同じ仮想装置グループ番号をもつエントリをサーチしてエントリの中で最も高い優先順位を取り出し、仮想装置グループ管理テーブル102中の当該仮想装置グループ番号のエントリの優先順位と比較し、一致しない場合には、仮想装置グループ管理テーブル102の当該エントリを最も高い優先順位に更新する。更新を行った場合は、さらに対応するエミュレート手段170が動作中であるか否かにかかわらず、指定された仮想装置グループ番号に対応するエミュレート手段170の優先順位を変更する。
【0079】
このとき、同じ装置へのI/Oであっても、コマンド投入後は、変更後の優先順位でエミュレート手段170が動作するので、当該装置へのI/O優先順位が変わる。
【0080】
例えば図20に示すように、業務ジョブAから発行された装置番号1へのI/Oは優先順位が3であり、業務ジョブBから発行された装置番号2へのI/Oの優先順位が2で、業務ジョブBから発行された装置番号2へのI/Oが優先されていたが、コマンド投入後は業務ジョブCから発行された装置番号1へのI/Oは優先順位が1であり、業務ジョブBから発行された装置番号2へのI/Oの優先順位は2であるため、装置番号1へのI/Oが優先される。
【0081】
(実施形態3のエミュレーションプログラム)
実施形態3のエミュレーションプログラムは、実施形態3のエミュレーション装置の構成及び動作から明らかなとおり、アプリケーションプログラムに接続される仮想装置を駆動するためにコンピュータを、上記仮想装置の各々を、上記アプリケーションプログラムに基づいてグループ分けするグループ分け手段、及び上記優先順位に基づいて上記仮想装置を駆動するエミュレート手段として機能させる。ここに、該グループ分けは、上記アプリケーションプログラムを実行する優先順位に基づいて行なわれる。
【0082】
さらに、上記コンピュータを、上記アプリケーションプログラムの入出力要求を入力するI/O処理手段としてさらに機能させ、上記アプリケーションプログラムに接続される入出力装置が実装置であるときは、上記I/O処理手段が上記実装置を駆動し、上記入出力装置が上記仮想装置であるときは、上記I/O処理手段からの入出力要求に基づいて上記エミュレート手段が上記仮想装置を駆動する。
【0083】
さらに、上記コンピュータを、上記仮想装置の装置番号、それが属するグループ番号、及び上記アプリケーションプログラムの上記優先順位と、上記実装置の装置番号とを格納する装置管理テーブルを作成する装置管理テーブル作成手段としてさらに機能させ、上記I/O処理手段は上記装置管理テーブルに基づいて上記実装置を駆動してもよい。
【0084】
さらに、上記コンピュータを、上記装置管理テーブルに基づいて上記仮想装置が属するグループ番号、上記仮想装置のセマフォ、及び上記アプリケーションプログラムの上記優先順位を格納する仮想装置グループ管理テーブルを作成する仮想装置グループ管理テーブル作成手段としてさらに機能させ、上記I/O処理手段からの入出力要求と上記仮想装置グループ管理テーブルとに基づいて上記エミュレート手段が上記仮想装置を駆動する。ここまでは、実施形態1のエミュレーションプログラムの内容は実施形態1のものと同じである。
【0085】
さらに、実施形態3のエミュレーションプログラムでは、上記コンピュータを、上記装置管理テーブルから上記優先順位を取得する優先順位取得手段、及び上記仮想装置グループ管理テーブルから上記セマフォを入力するエミュレート処理依頼手段としてさらに機能させ、上記エミュレート処理依頼手段は、上記I/O処理手段からのI/O処理依頼があれば、上記I/O処理依頼に係る上記装置管理テーブルの上記優先順位及び上記仮想装置グループ番号の上記セマフォとに基づいて、上記エミュレート手段を駆動する。
【0086】
(実施形態3のエミュレーション方法)
図21は、実施形態3のエミュレーション方法を説明するためのフローチャートである。実施形態3のエミュレーション方法は、S200が追加されていることを除き、実施形態2のもの(図18)と同じである。
【0087】
S200においては、操作卓50などから優先順位変更手段181に優先順位の変更が入力された時はS132に戻り装置管理テーブルが更新される。すなわち、エミュレート処理依頼手段160を介して直ちに装置管理テーブル101、仮想装置グループ管理テーブル102中の優先順位が更新される。
【0088】
なお、S200は、仮想装置グループ管理テーブル作成(S133)後とI/O要求(S134)前に置かれており、優先順位の変更がないときは、S134に戻る。なお、S200は、仮想装置グループ管理テーブル作成(S133)後とI/O要求(S134)前に置かれているが、これに限らず、S132・S133間、S134・S135間、S135・S136間、S136・S137間、S137・S138間等に置かれてもよい。判定結果による分岐は、上述の例に準ずる。
【0089】
(実施形態3の効果)
実施形態3によれば、優先順位変更手段181は、仮想装置の優先順位を動的に変更する機能を提供するため、いずれかの仮想装置を利用する業務を急遽優先処理したい場合や、仮想装置を利用する業務を急遽後回しするような場合に、一時的な急な変更が可能となり、業務運用の自由度が向上する。また、昼間の時間帯と夜間の時間帯では業務の内容が異なり、業務の優先順位が変わる場合においてもそれに応じた優先順位の変更が可能となり、業務にあわせた優先順位の設定が可能となる。
【産業上の利用可能性】
【0090】
本発明の利用分野は、オペレーティングシステムにより生成された仮想入出力装置などの仮想装置を制御するためのエミュレーションを行うエミュレーション装置、これを利用するコンピュータである。
【図面の簡単な説明】
【0091】
【図1】実施形態1のエミュレーション装置のブロック図
【図2】装置管理定義情報入力装置の一例
【図3】装置管理テーブルの一例
【図4】仮想装置グループ管理テーブルの一例
【図5】エミュレーション装置立ち上げのフローチャート
【図6】I/O要求発行のフローチャート
【図7】仮想装置グループ管理テーブルに優先順位をエントリするフローチャート
【図8】仮想装置グループ管理テーブルに仮想装置を追加するフローチャート
【図9】優先順位に従ってエミュレート手段を起動する実施形態1のフローチャート
【図10】セマフォに従ってエミュレートを行うフローチャート
【図11】エミュレート処理依頼手段の動作の実施形態1のフローチャート
【図12】I/O要求手段が2つある実施形態1のエミュレーション装置のブロック図
【図13】実施形態1のエミュレーション方法のフローチャート
【図14】実施形態2のエミュレーション装置のブロック図
【図15】優先順位に従ってエミュレート手段を起動する実施形態2のフローチャート
【図16】エミュレート処理依頼手段の動作の実施形態2のフローチャート
【図17】優先順位とセマフォキューの関係を示すブロック図
【図18】実施形態2のエミュレーション方法のフローチャート
【図19】実施形態3のエミュレーション装置のブロック図
【図20】図19のエミュレーション装置の具体的動作を説明するためのブロック図
【図21】実施形態3のエミュレーション方法のフローチャート
【符号の説明】
【0092】
10 エミュレーション装置
20 装置管理情報入力装置
30 仮想装置
40 実装置
110 装置管理テーブル作成手段
120 仮想装置グループ管理テーブル作成手段
130 エミュレート起動手段
140、140A、140B I/O要求手段
150 I/O処理手段
160 エミュレート処理依頼手段
170、170A、170B エミュレート手段
181 優先順位変更手段
【技術分野】
【0001】
本発明は、エミュレーション装置、プログラム及び方法に関し、特に、オペレーティングシステムにより生成された仮想入出力装置などの仮想装置を制御するためのエミュレーション装置、プログラム及び方法に関する。
【背景技術】
【0002】
エミュレーションは、ハードウェアの機能を、構造の異なる別のハードウェアに模倣させて実行させることであり、エミュレーションを行うハードウェア、ソフトウェア(ミドルウェア)がエミュレータである。
【0003】
例えば、特許文献1に開示された「外部記憶装置への入出力制御方式」では、情報処理装置側の主記憶装置(例えば可変長レコード形式)と外部記憶装置(例えば固定長レコード形式)との間でデータをやり取りするため、情報処理装置側にデータ形式変換機構を設け、可変長レコード形式中のカウント部、キー部、データ部を固定長データとして扱う。両レコード形式の変換テーブルは、外部記憶装置側に設ける。これにより、複数の種類の外部記憶装置をひとつのエミュレータ(データ形式変換機構)により制御することができる。
【0004】
また、特許文献2に開示された「第2のシステム上での第1のシステムのプログラム実行装置及び方法」では、オペレーティングシステムの異なるコンピュータ同士であっても、アプリケーションプログラムが動作するように、CPUやメモリをエミュレートするインタプリタ、各種入出力デバイスをエミュレートする擬似デバイスドライバ(仮想デバイスドライバ)PSDDを備えており、上記インタプリタや擬似デバイスドライバPSDDは、実装置であるCPU(HECPU)、メモリ(HEMEM)、各種入出力ドライバIODを制御するプログラム(カーネル(オペレーションシステム内部においてハードウェアを操作できる権限が与えられたプログラム))の直上位に設けられ、第1システムのCPU、メモリ、入出力装置をエミュレートする。
【0005】
【特許文献1】特開平7−44324号公報(図3、段落0017)
【特許文献2】特開平7−182180号公報(図2、段落0071)
【発明の開示】
【発明が解決しようとする課題】
【0006】
ところで、入出力装置には、プリンタ、外部記憶装置、表示装置等があり、各々様々な種別のハードウェアを備えている。上述した従来技術では、装置種別毎に(特許文献1では外部記憶装置に対して、特許文献2ではCPU、メモリ、入出力装置の種別毎に)、エミュレータを1個用意し、入出力要求時に、装置種別を判断して、該当するエミュレータへエミュレート処理を依頼している。しかし、これでは、装置種別毎にエミュレート手段が1個しかないために、同一装置種別の仮想装置を使用する業務を複数実行すると、エミュレータの負荷が高くなり、仮想装置への入出力処理のスループットが低下するという問題がある。また、優先順位の高い業務のエミュレート処理を早く実行させるために、優先順位の低い業務のエミュレート処理も高い優先順位で実行されるという問題がある。
【0007】
そこで、本発明の課題は、同一装置種別の仮想装置を使用する業務を複数実行しても、エミュレータの負荷が高くならず、仮想装置への入出力処理のスループットが低下することのないエミュレーション装置、方法及びプログラムを提供することである。また、本発明の課題は、優先順位の高い業務のエミュレート処理を早く実行させても、優先順位の低い業務のエミュレート処理が高い優先順位で実行されることのないエミュレーション装置、方法及びプログラムを提供することである。
【課題を解決するための手段】
【0008】
本発明では、仮想装置に対するI/Oをエミュレートするエミュレート手段を装置種別毎にグループ化する。なお、同一の装置種別であっても、I/Oを行う業務を実行する優先順位を考慮してエミュレート手段の実行優先順位に差をつけ、重要な業務や先に処理したい業務のI/O処理を他の仮想装置グループに対するI/O処理よりも優先的に処理することとしてもよい。
【0009】
そこで、上述した課題を解決するための手段としてのエミュレーション装置は、アプリケーションプログラムに接続される仮想装置と、上記仮想装置を駆動するエミュレート手段とを備え、上記仮想装置の各々は、上記アプリケーションプログラムに基づいてグループ分けされており、上記エミュレート手段は、上記優先順位に基づいて上記仮想装置を駆動する。なお、該グループ分けは、上記アプリケーションプログラムを実行する優先順位に基づいて行なわれてもよい。
【0010】
また、上述した課題を解決するための手段としてのエミュレーションプログラムは、アプリケーションプログラムに接続される仮想装置を駆動するためにコンピュータを、上記仮想装置の各々を、上記アプリケーションプログラムに基づいてグループ分けするグループ分け手段、及び上記優先順位に基づいて上記仮想装置を駆動するエミュレート手段として機能させる。なお、該グループ分けは、上記アプリケーションプログラムを実行する優先順位に基づいて行なわれてもよい。
【0011】
また、上述した課題を解決するための手段としてのエミュレーション方法は、アプリケーションプログラムに接続される仮想装置を駆動するエミュレーション方法において、グループ分け手段により、上記仮想装置の各々を上記アプリケーションプログラムに基づいてグループ分けするステップと、上記エミュレート手段により、上記優先順位に基づいて上記仮想装置を駆動するステップとを含む。なお、該グループ分けは、上記アプリケーションプログラムを実行する優先順位に基づいて行なわれてもよい。
【発明の効果】
【0012】
本発明によれば、エミュレート処理を仮想装置グループ毎に負荷分散できる。その理由は、エミュレート手段を仮想装置グループ毎に分けて複数用意するため、他の仮想装置グループのエミュレート処理に影響されることなく別のエミュレート処理が行えるためである。また、仮想装置グループ数だけ、エミュレート処理を並列実行できるためである。
【発明を実施するための最良の形態】
【0013】
以下、図面を参照して、本発明の実施形態について説明する。
[実施形態1]
(実施形態1のエミュレーション装置の構成)
図1は、実施形態1のエミュレーション装置のブロック図である。
【0014】
実施形態1のエミュレーション装置10には、装置管理定義情報入力装置20と、仮想装置30と、実装置40とが接続されている。ここに、実装置40は、仮想装置30ではない装置(多重化等されていない装置であり、エミュレーションを要することなく駆動する事ができる入出力装置)である。
【0015】
エミュレーション装置10は、装置管理テーブル101を作成する装置管理テーブル作成手段110と、I/O要求通知セマフォ(以下「セマフォ」という)103を格納する仮想装置グループ管理テーブル102を作成する仮想装置グループ管理テーブル作成手段120と、エミュレート起動手段130と、I/O要求手段140と、I/O処理手段150と、エミュレート処理依頼手段160と、エミュレート手段170を含む。
【0016】
装置管理定義情報入力装置20は、実装置40又は仮想装置30の装置番号、装置情報、仮想装置フラグ(仮想装置30と実装置40を識別するフラグ)、仮想装置グループ番号(実装置40に対してグループ番号は付与されない)、優先順位(実装置40に対して優先順位は付与されない)を、後述する装置管理テーブル作成手段110に入力する。
【0017】
装置管理テーブル作成手段110は、コンピュータに接続される全ての実装置40および仮想装置30に対して、装置番号と、装置情報と、仮想装置か否かを示す仮想装置フラグと、仮想装置グループ番号と、優先順位とが定義された情報を、装置管理定義情報入力装置20から入力し、装置管理テーブル101を作成する。
【0018】
仮想装置グループ管理テーブル作成手段120は、装置管理テーブル作成手段110が作成した装置管理テーブル101から、仮想装置30の仮想装置グループ番号、優先順位を入力し、仮想装置グループ管理テーブル102を作成する。また仮想装置グループ毎にセマフォ(入出力資源を共有して使用するタスク間の動作の同期を取るためのフラグ又はそれを処理するツール。また、タスクは、オペレーションシステムから見たアプリケーションプログラムの1単位)を割り当て、セマフォのアドレスを仮想装置グループ管理テーブル102に格納する。
【0019】
エミュレート起動手段130は、仮想装置グループ管理テーブル102に従って、エミュレート手段170を起動する。I/O要求手段140は、業務処理(アプリケーションプログラム)を実行するジョブであり、I/O要求を発行する。
【0020】
I/O処理手段150は、I/O要求の装置番号を用いて装置管理テーブル101の中を検索し、装置番号に対応するエントリの仮想装置フラグを用いてI/O要求の装置が実装置40か仮想装置30かを判断する。そして、仮想装置フラグが立っていない実装置40に対するI/Oの場合は、実装置40に対してI/Oを実行する。仮想装置フラグが立っている仮想装置30に対するI/Oであった場合は、エミュレート処理依頼手段160に処理を渡す。
【0021】
エミュレート処理依頼手段160は、仮想装置グループ管理テーブル102を参照し、仮想装置グループ管理テーブル102中のセマフォ103のアドレスを取得し、仮想装置への入出力のエミュレート処理を依頼する。エミュレート手段170は、仮想装置30への入出力のエミュレート処理を実行する。
【0022】
ここで、図2は、装置管理定義情報入力装置20から装置管理テーブル作成手段110に入力される装置管理定義情報の内容を示す図である。装置管理定義情報入力装置20では、装置番号0、1、2、3などの各装置に対して、装置情報、仮想装置フラグのON又はOFF、仮想装置グループ番号(付かない場合もある)、優先順位(ない場合もある)が付与される。又、図3は、装置管理テーブル101の内容を示す図であり、装置管理定義情報入力装置20と同様である。更に、図4は、仮想装置グループ管理テーブル102の内容を示す図である。仮想装置グループ管理テーブル102では、仮想装置グループ0、1、2、3などの各グループに対して、セマフォアドレスと優先順位が付与される。
【0023】
[実施形態1のエミュレーション装置の動作]
図5に、エミュレーション装置立ち上げ時の動作を説明するためのフローチャートを示す。エミュレーション装置立ち上げ時には、S21において装置管理テーブル作成手段110が動作し、次にS22において仮想装置グループ管理テーブル作成手段120が動作し、最後にエミュレート起動手段130が動作する。
【0024】
又、図6には、I/O要求発行時の動作を説明するためのフローチャートを示す。I/O要求発行時には、S31においてI/O要求手段140が動作し、次にS32においてI/O処理手段150が動作し、次にS33においてエミュレート処理依頼手段160が動作し、最後にS34においてエミュレート手段170が動作する。
【0025】
更に、図7には、装置管理テーブル作成手段110の動作を説明するためのフローチャートを示す。まず、S41において装置管理定義情報入力装置20の中から1つの装置の装置番号と装置情報を格納して、装置管理テーブル101を作成する。次に、S42において装置が仮想装置であるか否かが判定される。次に、S42において装置が仮想装置30であると判定されればS43に進み仮想装置フラグを立てて、仮想装置グループ番号と優先順位を装置管理テーブル101のエントリに格納する。一方、S42において装置が仮想装置30ではないと判定されればS44に進む。S44では全装置に対してフラグ設定したか否かが判定され、全装置に対してフラグ設定を完了するまでS41からS43までを繰り返す。
【0026】
そして、図8は、仮想装置グループ管理テーブル作成手段120の動作を説明するためのフローチャートである。まず、S51において装置管理テーブル101から、仮想装置のフラグの立っている仮想装置の装置番号と仮想装置グループ番号と優先順位を入力する。次に、S52において仮想装置グループ管理テーブル102を検索し、当該仮想装置グループ番号のエントリがあるか判定される。S52において当該仮想装置グループ番号のエントリがないと判定されれば、S55に進み当該仮想装置グループのエントリを追加し、S56に進む。一方、S52において当該仮想装置グループ番号のエントリがあると判定されれば、S53からS54の処理を実行する。つまり、S53においてエントリの中の優先順位を取り出す。次に、S54において、S51で取り出した優先順位の方がS53で取り出した優先順位より高いか否かが判定される。S54において、S51で取り出した優先順位の方が高いと判定されれば、S56に進む。
【0027】
一方、S54において、S51で取り出した優先順位の方が低い場合または同じ場合、S57に進む。S56では、S51で取り出した優先順位を仮想装置グループ管理テーブル102の中の、仮想装置グループに対応するエントリ中の優先順位格納領域にセットする。一方、S57では、全仮想装置に対して、優先順位の設定を行ったかが判定される。S57において、全仮想装置に対して、優先順位の設定を行っていないと判定されれば、S51に戻って、優先順位の設定を繰り返す。又、S57において、全仮想装置に対して、優先順位の設定を行ったと判定されれば、S58に進み、全仮想装置グループに対し、I/O要求通知のセマフォを1つずつ割り当て、仮想装置グループ管理テーブル102の中の、全エントリのセマフォアドレス格納領域に各々のセマフォアドレスをセットする。
【0028】
図9は、エミュレート起動手段130の動作を説明するためのフローチャートである。S61において、仮想装置グループ管理テーブル102中の各仮想装置グループの優先順位で、各エミュレート手段170が起動される。このとき引数として仮想装置グループ管理テーブル102中の各仮想装置グループのセマフォアドレスを受け渡す。
【0029】
図10は、各エミュレート手段170の動作を説明するためのフローチャートである。まず、S71において、引数として渡されたセマフォアドレスでI/O要求のイベントを待ち合わせる。最後に、S72において、セマフォから取得したI/O要求の内容に従ってI/Oのエミュレートが行なわれる。コンピュータが立ち上がり、業務が動作すると、装置への入出力要求が発生し、図3に示すようにI/O要求手段140、I/O処理手段150、エミュレート処理依頼手段160、エミュレート手段170の順にI/Oが処理されていく。I/O要求手段140は、業務処理の中で装置への入出力が必要になると、対象装置の装置番号とI/Oの内容を指定して、I/O処理手段150にI/O要求を発行する。I/O処理手段150は、I/O要求の装置番号で装置管理テーブル101の中を検索し装置番号に対応するエントリの仮想装置フラグでI/O要求の装置が実装置か仮想装置かを判断し、仮想装置フラグが立っていない実装置に対するI/Oの場合は、実装置に対してI/Oを実行する。仮想装置フラグが立っている仮想装置に対するI/Oであった場合は、エミュレート処理依頼手段160に処理を渡す。
【0030】
図11は、エミュレート処理依頼手段160の動作を説明するためのフローチャートである。まず、S81において装置管理テーブル101を検索しI/O要求の装置のエントリから仮想装置グループ番号を取得する。次に、S82において仮想装置グループ管理テーブル102を参照して、当該仮想装置グループのセマフォアドレスを取得する。最後に、S83においてセマフォ103に対して、仮想装置30の装置番号とI/Oの内容を通知する。エミュレート手段170は、仮想装置30への入出力要求のイベントをセマフォ103から受け取ると、図10に示したS72の処理で、エミュレート処理を実行し、エミュレート処理が完了したらS71に戻る。
【0031】
図12は、業務が複数同時に実行中で、I/Oを発行するI/O要求手段140が複数存在した場合のエミュレーション装置10のブロック図である。1つのエミュレート手段170がエミュレート処理中であっても、別のI/O要求手段140が発行した後発のI/O要求が別の仮想装置グループであれば、別のエミュレート手段170がエミュレート処理を並行して実行できる。例えば図12のケースで業務ジョブAが装置番号1(仮想装置グループ番号1)に対してI/Oする場合、エミュレート手段170Aでエミュレートし、同時に業務ジョブBが装置番号2(仮想装置グループ番号2)に対してI/Oする場合、エミュレート手段170Bでエミュレートするというように、仮想装置グループを複数設定するとグループの数だけエミュレート手段が動作し、エミュレート手段の数だけI/O要求を同時に実行できる。
【0032】
図12のように、装置番号1の仮想装置グループ番号1の優先順位が1で装置番号2の仮想装置グループ番号2の優先順位が3の場合、業務ジョブAの装置番号1に対するI/Oのエミュレート手段170Aが優先して処理される。
【0033】
(実施形態1のエミュレーションプログラム)
実施形態1のエミュレーションプログラムは、実施形態1のエミュレーション装置の構成及び動作から明らかなとおり、アプリケーションプログラムに接続される仮想装置を駆動するためにコンピュータを、上記仮想装置の各々を、上記アプリケーションプログラムに基づいてグループ分けするグループ分け手段、及び上記優先順位に基づいて上記仮想装置を駆動するエミュレート手段として機能させる。
【0034】
ここに、該グループ分けは、上記アプリケーションプログラムを実行する優先順位に基づいて行なわれる。
【0035】
さらに、上記コンピュータを、上記アプリケーションプログラムの入出力要求を入力するI/O処理手段としてさらに機能させ、上記アプリケーションプログラムに接続される入出力装置が実装置であるときは、上記I/O処理手段が上記実装置を駆動し、上記入出力装置が上記仮想装置であるときは、上記I/O処理手段からの入出力要求に基づいて上記エミュレート手段が上記仮想装置を駆動する。
【0036】
さらに、上記コンピュータを、上記仮想装置の装置番号、それが属するグループ番号、及び上記アプリケーションプログラムの上記優先順位と、上記実装置の装置番号とを格納する装置管理テーブルを作成する装置管理テーブル作成手段としてさらに機能させ、上記I/O処理手段は上記装置管理テーブルに基づいて上記実装置を駆動してもよい。
【0037】
さらに、上記コンピュータを、上記装置管理テーブルに基づいて上記仮想装置が属するグループ番号、上記仮想装置のセマフォ、及び上記アプリケーションプログラムの上記優先順位を格納する仮想装置グループ管理テーブルを作成する仮想装置グループ管理テーブル作成手段としてさらに機能させ、上記I/O処理手段からの入出力要求と上記仮想装置グループ管理テーブルとに基づいて上記エミュレート手段が上記仮想装置を駆動する。
【0038】
(実施形態1のエミュレーション方法)
図13は、実施形態1のエミュレーション方法を説明するためのフローチャートである。
【0039】
まず、S131において、装置管理情報入力装置20から装置管理テーブル作成手段110に入力すべき装置管理定義情報を定義する。次に、S132において、装置管理定義情報入力装置20から入力された装置管理定義情報を、装置管理テーブル作成手段110により装置管理テーブル101の形に作成する。次に、S133において、仮想装置グループ管理テーブル作成手段120により、装置管理テーブル101の中から仮想装置グループを選択し、セマフォアドレスを付与し、優先順位とともに仮想装置グループ管理テーブル102に格納する。次に、S134において、アプリケーションプログラムからのI/O要求を待受ける。
【0040】
次に、S135において、I/O処理手段150により、I/O要求に係る入出力装置が仮想装置30であると判定されたときは、S136に進み、エミュレート処理依頼手段160により、仮想装置グループ管理テーブル102の中からI/O要求のセマフォアドレスを取得し、取得したセマフォをエミュレート手段170に送信する。これにより、S137において、エミュレーションが開始され、S138において仮想装置30が駆動される。すなわち、S138において、実装置40がエミュレートされ、S140において実装置40が駆動され、エミュレーションの全過程が完了する。
【0041】
一方、S135において、I/O処理手段150により、I/O要求に係る入出力装置が実装置40であると判定されたときは、S139に進み、I/O処理手段150により直接I/O処理が行なわれるS140により実装置40が駆動され、アプリケーションプログラムとの間のI/O処理が完了する。
【0042】
(実施形態1の効果)
実施形態1によれば、エミュレート処理を仮想装置グループ毎に負荷分散できる。その理由は、エミュレート手段を仮想装置グループ毎に分けて複数用意するため、他の仮想装置グループのエミュレート処理に影響されることなく別のエミュレート処理が行えるためである。また、仮想装置グループ数だけ、エミュレート処理を並列実行できるためである。
【0043】
[実施形態2]
(実施形態2のエミュレーション装置の構成)
図14は、実施形態2のエミュレーション装置のブロック図である。実施形態2のエミュレーション装置10は、装置管理定義情報入力装置20と、仮想装置30と、実装置40に接続されている。エミュレーション装置10は、装置管理テーブル作成手段110と、仮想装置グループ管理テーブル作成手段120と、エミュレート起動手段130と、I/O要求手段140と、I/O処理手段150と、エミュレート処理依頼手段160と、優先順位取得手段161と、エミュレート手段170を含む。実施形態2のエミュレーション装置は、優先順位取得手段161をさらに備える以外は実施形態1のエミュレーション装置と同じである。
【0044】
装置管理テーブル作成手段110は、コンピュータに接続される全ての装置および仮想装置に対して、装置番号と、装置情報と、仮想装置か否かを示す仮想装置フラグと、仮想装置グループ番号と、優先順位とが定義された情報を、装置管理定義情報入力装置20から入力し、装置管理テーブル101を作成する。仮想装置グループ管理テーブル作成手段120は、装置管理テーブル作成手段110が作成した装置管理テーブル101から、仮想装置の仮想装置グループ番号と、優先順位を入力し、仮想装置グループ管理テーブル102を作成する。また仮想装置グループ毎にセマフォを割り当てて、セマフォのアドレスを仮想装置グループ管理テーブル102に格納する。
【0045】
エミュレート起動手段130は、仮想装置グループ管理テーブル102に従って、エミュレート手段170を起動する。I/O要求手段140は、業務処理を行うジョブであり、I/O要求を発行する。I/O処理手段150は、I/O要求の装置番号で装置管理テーブル101の中を検索し装置番号に対応するエントリの仮想装置フラグでI/O要求の装置が実装置40か仮想装置30かを判断する。そして、仮想装置フラグが立っていない実装置に対するI/Oの場合は、実装置40に対してI/Oを実行する。仮想装置フラグが立っている仮想装置30に対するI/Oであった場合は、エミュレート処理依頼手段160に処理を渡す。
【0046】
エミュレート処理依頼手段160は、優先順位取得手段161を呼び出した後、仮想装置グループ管理テーブル102を参照し、セマフォ103のアドレスを取得し、優先順位取得手段161で取得した優先順位で仮想装置30への入出力のエミュレート処理を依頼する。優先順位取得手段161は、装置管理テーブル101を参照し、優先順位を取得し、エミュレート処理依頼手段160に送付する。エミュレート手段170は、仮想装置30への入出力のエミュレート処理を実行する。
【0047】
(実施形態2のエミュレーション装置の動作)
図5に示したように、コンピュータの立ち上げ時は、装置管理テーブル作成手段110、仮想装置グループ管理テーブル作成手段120、エミュレート起動手段130が動作する。
【0048】
図7に示したように、装置管理テーブル作成手段110は、S41の処理で装置管理定義情報入力装置20(図2)から装置番号と装置情報を入力して、装置管理テーブル101(図2)のエントリを作成する。次にS42からS43の処理で、装置が仮想装置である場合は、仮想装置か否かの仮想装置フラグを立てて、仮想装置グループ番号と優先順位を装置管理テーブル101のエントリに格納する。ステップS44以降は、全装置に対してS41からS43を繰り返す。
【0049】
図8に示したように、仮想装置グループ管理テーブル作成手段120は、S51の処理で装置管理テーブル101から、仮想装置のフラグの立っている仮想装置の装置番号と仮想装置グループ番号と優先順位を入力する。S52の処理では、仮想装置グループ管理テーブル102(図4)を検索し、当該仮想装置グループ番号のエントリがあるか検索し、ない場合はS55を実行しエントリを追加し、S56を実行する。当該仮想装置グループ番号のエントリがある場合はステップS53からS54の処理を実行する。つまりエントリの中の優先順位を取り出し、S51とS53で取り出した優先順位を比較し、S51の優先順位の方が高い場合、S56を実行し、S51の優先順位の方が低い場合または同じ場合、S57を実行し、S56では、S51で取り出した優先順位を仮想装置グループ管理テーブル102の中の、仮想装置グループに対応するエントリ中の優先順位格納領域にセットする。S57では、装置管理テーブル101の中の全仮想装置に対してS51〜S56を繰り返す。S58では、全仮想装置グループに対し、I/O要求通知セマフォを1つずつ割り当て、仮想装置グループ管理テーブル102の中の、全エントリのセマフォアドレス格納領域に各々のセマフォアドレスをセットする。
【0050】
図9に示したように、エミュレート起動手段130は、S61の処理で、仮想装置グループ管理テーブル102中の各仮想装置グループの優先順位で、各エミュレート手段170を起動する。このとき引数として仮想装置グループ管理テーブル102中の各仮想装置グループのセマフォアドレスを受け渡す。
【0051】
図10に示したように、各エミュレート手段のエミュレート手段170は、S71の処理で、引数として渡されたセマフォアドレスでI/O要求のイベントを待ち合わせ、S72でセマフォから取得したI/O要求のないように従ってI/Oのエミュレートを行う。
【0052】
図15に示すように、コンピュータが立ち上がり、業務が動作すると、装置への入出力要求が発生し、S140において/O要求手段140が動作し、続いてS150においてI/O処理手段150が動作し、続いてS160においてエミュレート処理依頼手段160が動作し、続いてS161において優先順位取得手段161が動作し、続いてS170においてエミュレート手段170が動作する。I/O要求手段140は、業務処理の中で装置への入出力が必要になると、対象装置の装置番号とI/Oの内容を指定して、I/O処理手段150にI/O要求を発行する。I/O処理手段150は、I/O要求の装置番号で装置管理テーブル101の中を検索し装置番号に対応するエントリの仮想装置フラグでI/O要求の装置が実装置か仮想装置かを判断し、仮想装置フラグが立っていない実装置に対するI/Oの場合は、実装置に対してI/Oを実行する。仮想装置フラグが立っている仮想装置に対するI/Oであった場合は、エミュレート処理依頼手段160に処理を渡す。
【0053】
エミュレート処理依頼手段160は、図16に示したS181の処理で装置管理テーブル101を検索しI/O要求の装置のエントリから仮想装置グループ番号を取得する。次に、S182の処理で装置管理テーブル101を検索してI/O要求の装置のエントリから優先順位を取得する。次に、S183の処理で仮想装置グループ管理テーブル102を参照して、当該仮想装置グループのセマフォアドレスを取得し、S184の処理でセマフォ103に対して、仮想装置30の装置番号とI/Oの内容を通知する。このとき、エミュレート処理の依頼に加えて、優先順位取得手段161で取得した優先順位も受け渡し、エミュレート処理の依頼イベントが溜まっている場合には、イベントが優先順位順に並ぶようにキューイングする。このとき、既にキューイングされているI/O要求があったとしても、それよりも後発のI/O要求の優先順位が高い場合は、後発のI/O要求は、先発のI/O要求よりも前にキューイングされる。
【0054】
図17に示すように、装置番号1へ優先順位2のI/Oが既にセマフォにキューイングされていて、後発の装置番号2へ優先順位1のI/Oが発行されたときには、先発のI/Oの前に後発のI/O要求が割り込むことになり、優先順位の高い装置へのI/Oが先に処理されることになる。
【0055】
最後に、エミュレート手段170は、セマフォ103から仮想装置30への入出力要求のイベントをキューイングされている先頭の要求を受け取ると、図10に示したS72の処理で、エミュレート処理を実行し、エミュレート処理が完了したらS71へ戻る。
【0056】
(実施形態2のエミュレーションプログラム)
実施形態2のエミュレーションプログラムは、実施形態2のエミュレーション装置の構成及び動作から明らかなとおり、アプリケーションプログラムに接続される仮想装置を駆動するためにコンピュータを、上記仮想装置の各々を、上記アプリケーションプログラムに基づいてグループ分けするグループ分け手段、及び上記優先順位に基づいて上記仮想装置を駆動するエミュレート手段として機能させる。ここに、該グループ分けは、上記アプリケーションプログラムを実行する優先順位に基づいて行なわれる。
【0057】
さらに、上記コンピュータを、上記アプリケーションプログラムの入出力要求を入力するI/O処理手段としてさらに機能させ、上記アプリケーションプログラムに接続される入出力装置が実装置であるときは、上記I/O処理手段が上記実装置を駆動し、上記入出力装置が上記仮想装置であるときは、上記I/O処理手段からの入出力要求に基づいて上記エミュレート手段が上記仮想装置を駆動する。
【0058】
さらに、上記コンピュータを、上記仮想装置の装置番号、それが属するグループ番号、及び上記アプリケーションプログラムの上記優先順位と、上記実装置の装置番号とを格納する装置管理テーブルを作成する装置管理テーブル作成手段としてさらに機能させ、上記I/O処理手段は上記装置管理テーブルに基づいて上記実装置を駆動してもよい。
【0059】
さらに、上記コンピュータを、上記装置管理テーブルに基づいて上記仮想装置が属するグループ番号、上記仮想装置のセマフォ、及び上記アプリケーションプログラムの上記優先順位を格納する仮想装置グループ管理テーブルを作成する仮想装置グループ管理テーブル作成手段としてさらに機能させ、上記I/O処理手段からの入出力要求と上記仮想装置グループ管理テーブルとに基づいて上記エミュレート手段が上記仮想装置を駆動する。ここまでは、実施形態2のエミュレーションプログラムの内容は実施形態1のものと同じである。
【0060】
さらに、実施形態2のエミュレーションプログラムでは、上記コンピュータを、上記装置管理テーブルから上記優先順位を取得する優先順位取得手段、及び上記仮想装置グループ管理テーブルから上記セマフォを入力するエミュレート処理依頼手段としてさらに機能させ、上記エミュレート処理依頼手段は、上記I/O処理手段からのI/O処理依頼があれば、上記I/O処理依頼に係る上記装置管理テーブルの上記優先順位及び上記仮想装置グループ番号の上記セマフォとに基づいて、上記エミュレート手段を駆動する。
【0061】
(実施形態2のエミュレーション方法)
図18は、実施形態2のエミュレーション方法を説明するためのフローチャートである。実施形態2のエミュレーション方法は、図13に示したS136がS171に変更されていることを除けば、実施形態1のもの(図13)と同じである。
【0062】
S171においては、エミュレート処理依頼手段160により、装置管理テーブルから優先順位が取得され、仮想装置グループ管理手段からセマフォが取得される。その理由は、エミュレート処理依頼手段160が優先順位取得手段161を呼び出した後、仮想装置グループ管理テーブル102を参照し、セマフォ103のアドレスを取得し、優先順位取得手段161で取得した優先順位で仮想装置30への入出力のエミュレート処理を依頼するためである。
【0063】
(実施形態2の効果)
実施形態2によれば、優先順位取得手段161で取得した優先順位で仮想装置30への入出力のエミュレート処理を依頼することができるため、最優先のジョブを迅速に処理できる。各エミュレート手段は、仮想装置毎に設定された優先順位に従ってエミュレート処理を実行するように構成されているため、同一仮想装置グループの中でも仮想装置毎にエミュレート処理を優先順位づけできる。つまり、装置に設定した優先順位に従ってI/Oの処理順序が変わり、優先して処理したい業務(I/O)を先に処理できるようになる。
【0064】
[実施形態3]
(実施形態3のエミュレーション装置の構成)
図19は、実施形態3のエミュレーション装置のブロック図である。実施形態3のエミュレーション装置10は、装置管理定義情報入力装置20と、仮想装置30と、実装置40と、操作卓50に接続されている。エミュレーション装置10は、装置管理テーブル作成手段110と、仮想装置グループ管理テーブル作成手段120と、エミュレート起動手段130と、I/O要求手段140と、I/O処理手段150と、エミュレート処理依頼手段160と、エミュレート手段170と、優先順位変更手段181を含む。実施形態3のエミュレーション装置は、優先順位変更手段181をさらに含むことを除き、実施形態2のエミュレーション装置と同じである。
【0065】
装置管理テーブル作成手段110は、エミュレーション装置10に接続される全ての装置および仮想装置に対して、装置番号と、装置情報と、仮想装置か否かを示す仮想装置フラグと、仮想装置グループ番号と、優先順位とが定義された情報を装置管理定義情報入力装置20から入力し、装置管理テーブル101を作成する。
【0066】
仮想装置グループ管理テーブル作成手段120は、装置管理テーブル作成手段110が作成した装置管理テーブル101から、仮想装置の仮想装置グループ番号と、優先順位を入力し、仮想装置グループ管理テーブル102を作成する。また仮想装置グループ毎にセマフォを割り当てて、セマフォのアドレスを仮想装置グループ管理テーブル102に格納する。
【0067】
エミュレート起動手段130は、仮想装置グループ管理テーブル102に従って、エミュレート手段170を起動する。I/O要求手段140は、業務処理を行うジョブであり、I/O要求を発行する。I/O処理手段150は、I/O要求の装置番号で装置管理テーブル101の中を検索し装置番号に対応するエントリの仮想装置フラグでI/O要求の装置が実装置か仮想装置かを判断し、仮想装置フラグが立っていない実装置に対するI/Oの場合は、実装置に対してI/Oを実行する。仮想装置フラグが立っている仮想装置に対するI/Oであった場合は、エミュレート処理依頼手段160に処理を渡す。
【0068】
エミュレート処理依頼手段160は、優先順位取得手段161を呼び出した後、仮想装置グループ管理テーブル102を参照し、セマフォ103のアドレスを取得し、優先順位取得手段161で取得した優先順位で仮想装置への入出力のエミュレート処理を依頼する。優先順位取得手段161は、装置管理テーブル101を参照し、優先順位を取得し、エミュレート処理依頼手段160に送付する。エミュレート手段170は、仮想装置30への入出力のエミュレート処理を実行する。優先順位変更手段181は、指定された仮想装置グループ番号に対応するエミュレート手段170の実行優先順位を変更する。
【0069】
図5に示したように、コンピュータの立ち上げ時は、装置管理テーブル作成手段110、仮想装置グループ管理テーブル作成手段120、エミュレート起動手段130が動作する。
【0070】
図7に示したように、装置管理テーブル作成手段110は、S41の処理で装置管理定義情報入力装置20(図2)から装置番号と装置情報を入力して、装置管理テーブル101(図3)のエントリを作成する。S42からS43の処理で、装置が仮想装置である場合は、仮想装置か否かの仮想装置フラグを立てて、仮想装置グループ番号と優先順位を装置管理テーブル101のエントリに格納する。S44以降は、全装置に対してS41からS43を繰り返す。
【0071】
図8に示したように、仮想装置グループ管理テーブル作成手段120は、S51の処理で装置管理テーブル101から、仮想装置のフラグの立っている仮想装置の装置番号と仮想装置グループ番号と優先順位を入力するS52の処理では、仮想装置グループ管理テーブル102(図12)を検索し、当該仮想装置グループ番号のエントリがあるか検索し、ない場合はS55を実行しエントリを追加し、S56を実行する。当該仮想装置グループ番号のエントリがある場合はS53からS54の処理を実行する。つまりエントリの中の優先順位を取り出し、S51とS53で取り出した優先順位を比較し、S51の優先順位の方が高い場合、S56を実行し、S51の優先順位の方が低い場合または同じ場合、S57を実行し、S56では、S51で取り出した優先順位を仮想装置グループ管理テーブル102の中の、仮想装置グループに対応するエントリ中の優先順位格納領域にセットする。S57では、装置管理テーブル101の中の全仮想装置に対してS51〜S56を繰り返す。S58では、全仮想装置グループに対し、I/O要求通知セマフォを1つずつ割り当て、仮想装置グループ管理テーブル102の中の、全エントリのセマフォアドレス格納領域に各々のセマフォアドレスをセットする。
【0072】
図9に示したように、エミュレート起動手段130は、S61の処理で、仮想装置グループ管理テーブル102中の各仮想装置グループの優先順位で、各エミュレート手段170を起動する。このとき引数として仮想装置グループ管理テーブル102中の各仮想装置グループのセマフォアドレスを受け渡す。
【0073】
図10に示したように、各エミュレート手段のエミュレート手段170は、S71の処理で引数として渡されたセマフォアドレスでI/O要求のイベントを待ち合わせ、S72においてI/Oのエミュレートを行う。
【0074】
図15に示したように、コンピュータが立ち上がり、業務が動作すると、装置への入出力要求が発生し、I/O要求手段140、I/O処理手段150、エミュレート処理依頼手段160、優先順位取得手段161、エミュレート手段170の順にI/Oが処理されていく。
【0075】
I/O要求手段140は、業務処理の中で装置への入出力が必要になると、対象装置の装置番号とI/Oの内容を指定して、I/O処理手段150にI/O要求を発行する。I/O処理手段150は、I/O要求の装置番号で装置管理テーブル101の中を検索し装置番号に対応するエントリからI/O要求の装置が実装置40か仮想装置30かを判断する。そして、実装置に対するI/Oの場合は、実装置40に対してI/Oを実行する。仮想装置30に対するI/Oであった場合は、エミュレート処理依頼手段160に処理を渡す。
【0076】
図16に示したように、エミュレート処理依頼手段160は、S181の処理で装置管理テーブル101を検索しI/O要求の装置のエントリから仮想装置グループ番号を取得する。次に、S182の処理で優先順位取得手段161を呼び出して、装置管理テーブル101を検索してI/O要求の装置のエントリから優先順位を取得する。次にS183の処理で仮想装置グループ管理テーブル102を参照して、当該仮想装置グループのセマフォアドレスを取得し、S184の処理でセマフォ103に対して、仮想装置30の装置番号とI/Oの内容を通知する。このとき、エミュレート処理の依頼に加えて、優先順位取得手段161で取得した優先順位も受け渡し、エミュレート処理の依頼イベントが溜まっている場合には、イベントが優先順位順に並ぶようにキューイングする。エミュレート手段170は、セマフォ103から仮想装置30への入出力要求のイベントをキューイングされている先頭の要求を受け取ると、図10のS72の処理で、エミュレート処理を実行し、エミュレート処理が完了したらS71へ戻る。
【0077】
操作卓50から優先順位変更のコマンドが投入されたときには、優先順位変更手段181がコマンドを受け取って処理する。
【0078】
すなわち、コマンドは装置番号と変更後の優先順位を指定され、対応する仮想装置グループの優先順位と、エミュレート手段170の優先順位を変更するものである。コマンドが投入されると、優先順位変更手段181はコマンドの内容を解析し、装置管理テーブル101を当該装置番号で検索しエントリ中の優先順位を更新し、さらに当該装置の仮想装置グループ番号を取り出し、装置管理テーブル101から同じ仮想装置グループ番号をもつエントリをサーチしてエントリの中で最も高い優先順位を取り出し、仮想装置グループ管理テーブル102中の当該仮想装置グループ番号のエントリの優先順位と比較し、一致しない場合には、仮想装置グループ管理テーブル102の当該エントリを最も高い優先順位に更新する。更新を行った場合は、さらに対応するエミュレート手段170が動作中であるか否かにかかわらず、指定された仮想装置グループ番号に対応するエミュレート手段170の優先順位を変更する。
【0079】
このとき、同じ装置へのI/Oであっても、コマンド投入後は、変更後の優先順位でエミュレート手段170が動作するので、当該装置へのI/O優先順位が変わる。
【0080】
例えば図20に示すように、業務ジョブAから発行された装置番号1へのI/Oは優先順位が3であり、業務ジョブBから発行された装置番号2へのI/Oの優先順位が2で、業務ジョブBから発行された装置番号2へのI/Oが優先されていたが、コマンド投入後は業務ジョブCから発行された装置番号1へのI/Oは優先順位が1であり、業務ジョブBから発行された装置番号2へのI/Oの優先順位は2であるため、装置番号1へのI/Oが優先される。
【0081】
(実施形態3のエミュレーションプログラム)
実施形態3のエミュレーションプログラムは、実施形態3のエミュレーション装置の構成及び動作から明らかなとおり、アプリケーションプログラムに接続される仮想装置を駆動するためにコンピュータを、上記仮想装置の各々を、上記アプリケーションプログラムに基づいてグループ分けするグループ分け手段、及び上記優先順位に基づいて上記仮想装置を駆動するエミュレート手段として機能させる。ここに、該グループ分けは、上記アプリケーションプログラムを実行する優先順位に基づいて行なわれる。
【0082】
さらに、上記コンピュータを、上記アプリケーションプログラムの入出力要求を入力するI/O処理手段としてさらに機能させ、上記アプリケーションプログラムに接続される入出力装置が実装置であるときは、上記I/O処理手段が上記実装置を駆動し、上記入出力装置が上記仮想装置であるときは、上記I/O処理手段からの入出力要求に基づいて上記エミュレート手段が上記仮想装置を駆動する。
【0083】
さらに、上記コンピュータを、上記仮想装置の装置番号、それが属するグループ番号、及び上記アプリケーションプログラムの上記優先順位と、上記実装置の装置番号とを格納する装置管理テーブルを作成する装置管理テーブル作成手段としてさらに機能させ、上記I/O処理手段は上記装置管理テーブルに基づいて上記実装置を駆動してもよい。
【0084】
さらに、上記コンピュータを、上記装置管理テーブルに基づいて上記仮想装置が属するグループ番号、上記仮想装置のセマフォ、及び上記アプリケーションプログラムの上記優先順位を格納する仮想装置グループ管理テーブルを作成する仮想装置グループ管理テーブル作成手段としてさらに機能させ、上記I/O処理手段からの入出力要求と上記仮想装置グループ管理テーブルとに基づいて上記エミュレート手段が上記仮想装置を駆動する。ここまでは、実施形態1のエミュレーションプログラムの内容は実施形態1のものと同じである。
【0085】
さらに、実施形態3のエミュレーションプログラムでは、上記コンピュータを、上記装置管理テーブルから上記優先順位を取得する優先順位取得手段、及び上記仮想装置グループ管理テーブルから上記セマフォを入力するエミュレート処理依頼手段としてさらに機能させ、上記エミュレート処理依頼手段は、上記I/O処理手段からのI/O処理依頼があれば、上記I/O処理依頼に係る上記装置管理テーブルの上記優先順位及び上記仮想装置グループ番号の上記セマフォとに基づいて、上記エミュレート手段を駆動する。
【0086】
(実施形態3のエミュレーション方法)
図21は、実施形態3のエミュレーション方法を説明するためのフローチャートである。実施形態3のエミュレーション方法は、S200が追加されていることを除き、実施形態2のもの(図18)と同じである。
【0087】
S200においては、操作卓50などから優先順位変更手段181に優先順位の変更が入力された時はS132に戻り装置管理テーブルが更新される。すなわち、エミュレート処理依頼手段160を介して直ちに装置管理テーブル101、仮想装置グループ管理テーブル102中の優先順位が更新される。
【0088】
なお、S200は、仮想装置グループ管理テーブル作成(S133)後とI/O要求(S134)前に置かれており、優先順位の変更がないときは、S134に戻る。なお、S200は、仮想装置グループ管理テーブル作成(S133)後とI/O要求(S134)前に置かれているが、これに限らず、S132・S133間、S134・S135間、S135・S136間、S136・S137間、S137・S138間等に置かれてもよい。判定結果による分岐は、上述の例に準ずる。
【0089】
(実施形態3の効果)
実施形態3によれば、優先順位変更手段181は、仮想装置の優先順位を動的に変更する機能を提供するため、いずれかの仮想装置を利用する業務を急遽優先処理したい場合や、仮想装置を利用する業務を急遽後回しするような場合に、一時的な急な変更が可能となり、業務運用の自由度が向上する。また、昼間の時間帯と夜間の時間帯では業務の内容が異なり、業務の優先順位が変わる場合においてもそれに応じた優先順位の変更が可能となり、業務にあわせた優先順位の設定が可能となる。
【産業上の利用可能性】
【0090】
本発明の利用分野は、オペレーティングシステムにより生成された仮想入出力装置などの仮想装置を制御するためのエミュレーションを行うエミュレーション装置、これを利用するコンピュータである。
【図面の簡単な説明】
【0091】
【図1】実施形態1のエミュレーション装置のブロック図
【図2】装置管理定義情報入力装置の一例
【図3】装置管理テーブルの一例
【図4】仮想装置グループ管理テーブルの一例
【図5】エミュレーション装置立ち上げのフローチャート
【図6】I/O要求発行のフローチャート
【図7】仮想装置グループ管理テーブルに優先順位をエントリするフローチャート
【図8】仮想装置グループ管理テーブルに仮想装置を追加するフローチャート
【図9】優先順位に従ってエミュレート手段を起動する実施形態1のフローチャート
【図10】セマフォに従ってエミュレートを行うフローチャート
【図11】エミュレート処理依頼手段の動作の実施形態1のフローチャート
【図12】I/O要求手段が2つある実施形態1のエミュレーション装置のブロック図
【図13】実施形態1のエミュレーション方法のフローチャート
【図14】実施形態2のエミュレーション装置のブロック図
【図15】優先順位に従ってエミュレート手段を起動する実施形態2のフローチャート
【図16】エミュレート処理依頼手段の動作の実施形態2のフローチャート
【図17】優先順位とセマフォキューの関係を示すブロック図
【図18】実施形態2のエミュレーション方法のフローチャート
【図19】実施形態3のエミュレーション装置のブロック図
【図20】図19のエミュレーション装置の具体的動作を説明するためのブロック図
【図21】実施形態3のエミュレーション方法のフローチャート
【符号の説明】
【0092】
10 エミュレーション装置
20 装置管理情報入力装置
30 仮想装置
40 実装置
110 装置管理テーブル作成手段
120 仮想装置グループ管理テーブル作成手段
130 エミュレート起動手段
140、140A、140B I/O要求手段
150 I/O処理手段
160 エミュレート処理依頼手段
170、170A、170B エミュレート手段
181 優先順位変更手段
【特許請求の範囲】
【請求項1】
アプリケーションプログラムに接続される仮想装置を駆動するエミュレート手段を備え、
前記仮想装置の各々は、前記アプリケーションプログラムに基づいてグループ分けされており、
前記エミュレート手段は、優先順位に基づいて前記仮想装置を駆動することを特徴とするエミュレーション装置。
【請求項2】
前記仮想装置のグループ分けは、前記アプリケーションプログラムを実行する優先順位に基づいて行なわれることを特徴とする請求項1記載のエミュレーション装置。
【請求項3】
前記アプリケーションプログラムの入出力要求を入力するI/O処理手段をさらに備え、
前記アプリケーションプログラムに接続される入出力装置が実装置であるときは、前記I/O処理手段が前記実装置を駆動すると共に、
前記入出力装置が前記仮想装置であるときは、前記I/O処理手段からの入出力要求に基づいて前記エミュレート手段が前記仮想装置を駆動するようにしたことを特徴とする請求項1記載のエミュレーション装置。
【請求項4】
前記仮想装置の装置番号,それが属するグループ番号,及び前記アプリケーションプログラムの前記優先順位と,前記実装置の装置番号とを格納する装置管理テーブルを設けると共に、この装置管理テーブルを作成する装置管理テーブル作成手段をさらに備え、
前記I/O処理手段が、前記装置管理テーブルに基づいて前記実装置を駆動する機能を備えていることを特徴とする請求項3記載のエミュレーション装置。
【請求項5】
前記装置管理テーブルに基づいて前記仮想装置が属するグループ番号,前記仮想装置のI/O要求通知セマフォ,及び前記アプリケーションプログラムの前記優先順位とを格納する仮想装置グループ管理テーブルを設けると共に、この仮想装置グループ管理テーブルを作成する仮想装置グループ管理テーブル作成手段をさらに備え、
前記I/O処理手段からの入出力要求と前記仮想装置グループ管理テーブルとに基づいて前記エミュレート手段が前記仮想装置を駆動することを特徴とする請求項4記載のエミュレーション装置。
【請求項6】
前記装置管理テーブルから前記優先順位を取得する優先順位取得手段と、
前記仮想装置グループ管理テーブルから前記I/O要求通知セマフォを入力するエミュレート処理依頼手段とをさらに備え、
前記エミュレート処理依頼手段は、前記I/O処理手段からのI/O処理依頼があれば、前記I/O処理依頼に係る前記装置管理テーブルの前記優先順位及び前記仮想装置グループ番号の前記I/O要求通知セマフォとに基づいて、前記エミュレート手段を駆動する機能を備えていることを特徴とする請求項5記載のエミュレーション装置。
【請求項7】
前記優先順位を変更する優先順位変更手段をさらに備え、
前記装置管理テーブルと前記仮想装置グループ管理テーブルを変更後の優先順位に更新し、
前記エミュレート手段がエミュレートプロセスを動作させていると否とに係らず、該変更後の優先順位を有効とすることを特徴とする請求項5記載のエミュレーション装置。
【請求項8】
アプリケーションプログラムに接続される仮想装置を駆動するためにコンピュータを、
前記仮想装置の各々を、前記アプリケーションプログラムに基づいてグループ分けするグループ分け手段、及び
優先順位に基づいて前記仮想装置を駆動するエミュレート手段として機能させることを特徴とするエミュレーションプログラム。
【請求項9】
該グループ分けは、前記アプリケーションプログラムを実行する優先順位に基づいて行なわれることを特徴とする請求項8記載のエミュレーションプログラム。
【請求項10】
前記コンピュータを、
前記アプリケーションプログラムの入出力要求を入力するI/O処理手段としてさらに機能させ、
前記アプリケーションプログラムに接続される入出力装置が実装置であるときは、前記I/O処理手段が前記実装置を駆動し、
前記入出力装置が前記仮想装置であるときは、前記I/O処理手段からの入出力要求に基づいて前記エミュレート手段が前記仮想装置を駆動することを特徴とする請求項8記載のエミュレーションプログラム。
【請求項11】
前記コンピュータを、
前記仮想装置の装置番号、それが属するグループ番号、及び前記アプリケーションプログラムの前記優先順位と、前記実装置の装置番号とを格納する装置管理テーブルを作成する装置管理テーブル作成手段としてさらに機能させ、
前記I/O処理手段は前記装置管理テーブルに基づいて前記実装置を駆動することを特徴とする請求項10記載のエミュレーションプログラム。
【請求項12】
前記コンピュータを、
前記装置管理テーブルに基づいて前記仮想装置が属するグループ番号、前記仮想装置のI/O要求通知セマフォ、及び前記アプリケーションプログラムの前記優先順位とを格納する仮想装置グループ管理テーブルを作成する仮想装置グループ管理テーブル作成手段としてさらに機能させ、
前記I/O処理手段からの入出力要求と前記仮想装置グループ管理テーブルとに基づいて前記エミュレート手段が前記仮想装置を駆動することを特徴とする請求項11記載のエミュレーションプログラム。
【請求項13】
前記コンピュータを、
前記装置管理テーブルから前記優先順位を取得する優先順位取得手段、及び
前記仮想装置グループ管理テーブルから前記I/O要求通知セマフォを入力するエミュレート処理依頼手段としてさらに機能させ、
前記エミュレート処理依頼手段は、前記I/O処理手段からのI/O処理依頼があれば、前記I/O処理依頼に係る前記装置管理テーブルの前記優先順位及び前記仮想装置グループ番号の前記I/O要求通知セマフォとに基づいて、前記エミュレート手段を駆動することを特徴とする請求項12記載のエミュレーションプログラム。
【請求項14】
前記コンピュータを、
前記優先順位を変更する優先順位変更手段としてさらに機能させ、
前記装置管理テーブルと前記仮想装置グループ管理テーブルを変更後の優先順位に更新し、前記エミュレート手段がエミュレートプロセスを動作させていると否とに係らず、該変更後の優先順位を有効とすることを特徴とする請求項12記載のエミュレーションプログラム。
【請求項15】
アプリケーションプログラムに接続される仮想装置を駆動するエミュレーション方法において、
グループ分け手段により、前記仮想装置の各々を前記アプリケーションプログラムに基づいてグループ分けするステップと、
前記エミュレート手段により、前記装置管理テーブルの前記優先順位に基づいて前記仮想装置を駆動するステップとを含むことを特徴とするエミュレーション方法。
【請求項16】
該グループ分けは、前記アプリケーションプログラムを実行する優先順位に基づいて行なわれることを特徴とする請求項15記載のエミュレーション方法。
【請求項17】
前記アプリケーションプログラムの入出力要求を入力するI/O処理手段により、前記アプリケーションプログラムに接続される入出力装置が実装置であるときは、前記I/O処理手段が前記実装置を駆動するステップと、
前記入出力装置が前記仮想装置であるときは、前記I/O処理手段からの入出力要求に基づいて前記エミュレート手段により前記仮想装置を駆動するステップとを含むことを特徴とする請求項15記載のエミュレーション方法。
【請求項18】
前記仮想装置の装置番号、それが属するグループ番号、及び前記アプリケーションプログラムの前記優先順位と、前記実装置の装置番号とを格納する装置管理テーブルを作成する装置管理テーブル作成手段により、
前記I/O処理手段は前記装置管理テーブルに基づいて前記実装置を駆動するステップとを含むことを特徴とする請求項17記載のエミュレーション方法。
【請求項19】
前記装置管理テーブルに基づいて前記仮想装置が属するグループ番号、前記仮想装置のI/O要求通知セマフォ、及び前記アプリケーションプログラムの前記優先順位とを格納する仮想装置グループ管理テーブルを作成する仮想装置グループ管理テーブル作成手段により、
前記I/O処理手段からの入出力要求と前記仮想装置グループ管理テーブルとに基づいて前記エミュレート手段が前記仮想装置を駆動するステップとを含むことを特徴とする請求項18記載のエミュレーション方法。
【請求項20】
前記装置管理テーブルから前記優先順位を取得する優先順位取得手段と、
前記仮想装置グループ管理テーブルから前記I/O要求通知セマフォを入力するエミュレート処理依頼手段とにより、
前記エミュレート処理依頼手段が、前記I/O処理手段からのI/O処理依頼があれば、前記I/O処理依頼に係る前記装置管理テーブルの前記優先順位及び前記仮想装置グループ番号の前記I/O要求通知セマフォとに基づいて、前記エミュレート手段を駆動するステップとを含むことを特徴とする請求項19記載のエミュレーション方法。
【請求項21】
前記優先順位を変更する優先順位変更手段により、
前記装置管理テーブルと前記仮想装置グループ管理テーブルを変更後の優先順位に更新し、
前記エミュレート手段がエミュレートプロセスを動作させていると否とに係らず、該変更後の優先順位を有効とするステップとを含むことを特徴とする請求項19記載のエミュレーション方法。
【請求項1】
アプリケーションプログラムに接続される仮想装置を駆動するエミュレート手段を備え、
前記仮想装置の各々は、前記アプリケーションプログラムに基づいてグループ分けされており、
前記エミュレート手段は、優先順位に基づいて前記仮想装置を駆動することを特徴とするエミュレーション装置。
【請求項2】
前記仮想装置のグループ分けは、前記アプリケーションプログラムを実行する優先順位に基づいて行なわれることを特徴とする請求項1記載のエミュレーション装置。
【請求項3】
前記アプリケーションプログラムの入出力要求を入力するI/O処理手段をさらに備え、
前記アプリケーションプログラムに接続される入出力装置が実装置であるときは、前記I/O処理手段が前記実装置を駆動すると共に、
前記入出力装置が前記仮想装置であるときは、前記I/O処理手段からの入出力要求に基づいて前記エミュレート手段が前記仮想装置を駆動するようにしたことを特徴とする請求項1記載のエミュレーション装置。
【請求項4】
前記仮想装置の装置番号,それが属するグループ番号,及び前記アプリケーションプログラムの前記優先順位と,前記実装置の装置番号とを格納する装置管理テーブルを設けると共に、この装置管理テーブルを作成する装置管理テーブル作成手段をさらに備え、
前記I/O処理手段が、前記装置管理テーブルに基づいて前記実装置を駆動する機能を備えていることを特徴とする請求項3記載のエミュレーション装置。
【請求項5】
前記装置管理テーブルに基づいて前記仮想装置が属するグループ番号,前記仮想装置のI/O要求通知セマフォ,及び前記アプリケーションプログラムの前記優先順位とを格納する仮想装置グループ管理テーブルを設けると共に、この仮想装置グループ管理テーブルを作成する仮想装置グループ管理テーブル作成手段をさらに備え、
前記I/O処理手段からの入出力要求と前記仮想装置グループ管理テーブルとに基づいて前記エミュレート手段が前記仮想装置を駆動することを特徴とする請求項4記載のエミュレーション装置。
【請求項6】
前記装置管理テーブルから前記優先順位を取得する優先順位取得手段と、
前記仮想装置グループ管理テーブルから前記I/O要求通知セマフォを入力するエミュレート処理依頼手段とをさらに備え、
前記エミュレート処理依頼手段は、前記I/O処理手段からのI/O処理依頼があれば、前記I/O処理依頼に係る前記装置管理テーブルの前記優先順位及び前記仮想装置グループ番号の前記I/O要求通知セマフォとに基づいて、前記エミュレート手段を駆動する機能を備えていることを特徴とする請求項5記載のエミュレーション装置。
【請求項7】
前記優先順位を変更する優先順位変更手段をさらに備え、
前記装置管理テーブルと前記仮想装置グループ管理テーブルを変更後の優先順位に更新し、
前記エミュレート手段がエミュレートプロセスを動作させていると否とに係らず、該変更後の優先順位を有効とすることを特徴とする請求項5記載のエミュレーション装置。
【請求項8】
アプリケーションプログラムに接続される仮想装置を駆動するためにコンピュータを、
前記仮想装置の各々を、前記アプリケーションプログラムに基づいてグループ分けするグループ分け手段、及び
優先順位に基づいて前記仮想装置を駆動するエミュレート手段として機能させることを特徴とするエミュレーションプログラム。
【請求項9】
該グループ分けは、前記アプリケーションプログラムを実行する優先順位に基づいて行なわれることを特徴とする請求項8記載のエミュレーションプログラム。
【請求項10】
前記コンピュータを、
前記アプリケーションプログラムの入出力要求を入力するI/O処理手段としてさらに機能させ、
前記アプリケーションプログラムに接続される入出力装置が実装置であるときは、前記I/O処理手段が前記実装置を駆動し、
前記入出力装置が前記仮想装置であるときは、前記I/O処理手段からの入出力要求に基づいて前記エミュレート手段が前記仮想装置を駆動することを特徴とする請求項8記載のエミュレーションプログラム。
【請求項11】
前記コンピュータを、
前記仮想装置の装置番号、それが属するグループ番号、及び前記アプリケーションプログラムの前記優先順位と、前記実装置の装置番号とを格納する装置管理テーブルを作成する装置管理テーブル作成手段としてさらに機能させ、
前記I/O処理手段は前記装置管理テーブルに基づいて前記実装置を駆動することを特徴とする請求項10記載のエミュレーションプログラム。
【請求項12】
前記コンピュータを、
前記装置管理テーブルに基づいて前記仮想装置が属するグループ番号、前記仮想装置のI/O要求通知セマフォ、及び前記アプリケーションプログラムの前記優先順位とを格納する仮想装置グループ管理テーブルを作成する仮想装置グループ管理テーブル作成手段としてさらに機能させ、
前記I/O処理手段からの入出力要求と前記仮想装置グループ管理テーブルとに基づいて前記エミュレート手段が前記仮想装置を駆動することを特徴とする請求項11記載のエミュレーションプログラム。
【請求項13】
前記コンピュータを、
前記装置管理テーブルから前記優先順位を取得する優先順位取得手段、及び
前記仮想装置グループ管理テーブルから前記I/O要求通知セマフォを入力するエミュレート処理依頼手段としてさらに機能させ、
前記エミュレート処理依頼手段は、前記I/O処理手段からのI/O処理依頼があれば、前記I/O処理依頼に係る前記装置管理テーブルの前記優先順位及び前記仮想装置グループ番号の前記I/O要求通知セマフォとに基づいて、前記エミュレート手段を駆動することを特徴とする請求項12記載のエミュレーションプログラム。
【請求項14】
前記コンピュータを、
前記優先順位を変更する優先順位変更手段としてさらに機能させ、
前記装置管理テーブルと前記仮想装置グループ管理テーブルを変更後の優先順位に更新し、前記エミュレート手段がエミュレートプロセスを動作させていると否とに係らず、該変更後の優先順位を有効とすることを特徴とする請求項12記載のエミュレーションプログラム。
【請求項15】
アプリケーションプログラムに接続される仮想装置を駆動するエミュレーション方法において、
グループ分け手段により、前記仮想装置の各々を前記アプリケーションプログラムに基づいてグループ分けするステップと、
前記エミュレート手段により、前記装置管理テーブルの前記優先順位に基づいて前記仮想装置を駆動するステップとを含むことを特徴とするエミュレーション方法。
【請求項16】
該グループ分けは、前記アプリケーションプログラムを実行する優先順位に基づいて行なわれることを特徴とする請求項15記載のエミュレーション方法。
【請求項17】
前記アプリケーションプログラムの入出力要求を入力するI/O処理手段により、前記アプリケーションプログラムに接続される入出力装置が実装置であるときは、前記I/O処理手段が前記実装置を駆動するステップと、
前記入出力装置が前記仮想装置であるときは、前記I/O処理手段からの入出力要求に基づいて前記エミュレート手段により前記仮想装置を駆動するステップとを含むことを特徴とする請求項15記載のエミュレーション方法。
【請求項18】
前記仮想装置の装置番号、それが属するグループ番号、及び前記アプリケーションプログラムの前記優先順位と、前記実装置の装置番号とを格納する装置管理テーブルを作成する装置管理テーブル作成手段により、
前記I/O処理手段は前記装置管理テーブルに基づいて前記実装置を駆動するステップとを含むことを特徴とする請求項17記載のエミュレーション方法。
【請求項19】
前記装置管理テーブルに基づいて前記仮想装置が属するグループ番号、前記仮想装置のI/O要求通知セマフォ、及び前記アプリケーションプログラムの前記優先順位とを格納する仮想装置グループ管理テーブルを作成する仮想装置グループ管理テーブル作成手段により、
前記I/O処理手段からの入出力要求と前記仮想装置グループ管理テーブルとに基づいて前記エミュレート手段が前記仮想装置を駆動するステップとを含むことを特徴とする請求項18記載のエミュレーション方法。
【請求項20】
前記装置管理テーブルから前記優先順位を取得する優先順位取得手段と、
前記仮想装置グループ管理テーブルから前記I/O要求通知セマフォを入力するエミュレート処理依頼手段とにより、
前記エミュレート処理依頼手段が、前記I/O処理手段からのI/O処理依頼があれば、前記I/O処理依頼に係る前記装置管理テーブルの前記優先順位及び前記仮想装置グループ番号の前記I/O要求通知セマフォとに基づいて、前記エミュレート手段を駆動するステップとを含むことを特徴とする請求項19記載のエミュレーション方法。
【請求項21】
前記優先順位を変更する優先順位変更手段により、
前記装置管理テーブルと前記仮想装置グループ管理テーブルを変更後の優先順位に更新し、
前記エミュレート手段がエミュレートプロセスを動作させていると否とに係らず、該変更後の優先順位を有効とするステップとを含むことを特徴とする請求項19記載のエミュレーション方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【公開番号】特開2006−285596(P2006−285596A)
【公開日】平成18年10月19日(2006.10.19)
【国際特許分類】
【出願番号】特願2005−104167(P2005−104167)
【出願日】平成17年3月31日(2005.3.31)
【出願人】(000004237)日本電気株式会社 (19,353)
【出願人】(000213301)中部日本電気ソフトウェア株式会社 (56)
【公開日】平成18年10月19日(2006.10.19)
【国際特許分類】
【出願日】平成17年3月31日(2005.3.31)
【出願人】(000004237)日本電気株式会社 (19,353)
【出願人】(000213301)中部日本電気ソフトウェア株式会社 (56)
[ Back to top ]