(57)【特許請求の範囲】
【請求項１】
システムに投入されたジョブのジョブプライオリティと所属クラスとを記憶するジョブ管理テーブルと、
ワークロードクラス毎に、クラス名とＣＰＵリソース利用割合と重要度と所属クラス選択ルールとＣＰＵリソース使用量とＣＰＵリソース未使用量とを記憶するクラス管理テーブルと、
所属するクラスを任意とする指示を行って投入されたジョブの情報を記憶する任意所属クラスジョブ管理テーブルと、
前記ワークロードクラス毎に設定された前記ＣＰＵリソース利用割合を満たすように前記ワークロードクラスにＣＰＵリソースの配分を行い、同一ワークロードクラスに属するジョブに対しては前記ワークロードクラスに配分されたＣＰＵリソースの範囲内から前記ジョブプライオリティに従ってＣＰＵリソースの配分を行うＣＰＵ割当手段と、
あるジョブに関して起動されると、前記任意所属クラスジョブ管理テーブルに前記ジョブ情報を登録する任意所属クラスジョブ登録手段と、
あるジョブに関して起動されると、前記クラス管理テーブルに記憶された前記ＣＰＵリソース未使用量がより多いワークロードクラスを前記ジョブの所属クラスとして優先的に選択する任意所属クラス選択手段と、
あるジョブに関して起動されると、前記ジョブが前記任意所属クラスジョブ管理テーブルに登録されていなければ、前記クラス管理テーブルの前記所属クラス選択ルールに従って前記ジョブの所属クラスを選択して前記ジョブ管理テーブルに登録し、前記ジョブが前記任意所属クラスジョブ管理テーブルに登録されていれば、前記ジョブに関して前記任意所属クラス選択手段を起動し、前記任意所属クラス選択手段により選択された前記ジョブの所属クラスを前記ジョブ管理テーブルに登録する所属クラス選択手段と、
システムへの前記ジョブの投入時、前記ジョブのジョブ情報を前記ジョブ管理テーブルに登録し、前記ジョブから任意所属クラスの指定の有無の情報を取得し、任意所属クラスの指定がある場合は、前記ジョブに関して前記任意所属クラスジョブ登録手段、前記所属クラス選択手段を順に起動し、任意所属クラスの指定がない場合は、前記ジョブに関して前記所属クラス選択手段を起動するジョブ開始受付手段と、
一定時間間隔で、前記任意所属クラスジョブ管理テーブルに登録されているジョブに関して前記任意所属クラス選択手段を起動し、前記任意所属クラス選択手段により選択された前記ジョブの所属クラスを前記ジョブ管理テーブルに登録する任意所属クラス管理手段と
を有するＣＰＵリソース管理システム。
【請求項２】
システムに投入されたジョブのジョブプライオリティと所属クラスとを記憶するジョブ管理テーブルと、
ワークロードクラス毎に、クラス名とＣＰＵリソース利用割合と重要度と所属クラス選択ルールとＣＰＵリソース使用量とＣＰＵリソース未使用量とを記憶するクラス管理テーブルと、
所属するクラスを任意とする指示を行って投入されたジョブの情報を記憶する任意所属クラスジョブ管理テーブルと、
前記ワークロードクラス毎に設定された前記ＣＰＵリソース利用割合を満たすように前記ワークロードクラスにＣＰＵリソースの配分を行い、同一ワークロードクラスに属するジョブに対しては前記ワークロードクラスに配分されたＣＰＵリソースの範囲内から前記ジョブプライオリティに従ってＣＰＵリソースの配分を行うＣＰＵ割当手段と、
あるジョブに関して起動されると、前記任意所属クラスジョブ管理テーブルに前記ジョブ情報を登録する任意所属クラスジョブ登録手段と、
あるジョブに関して起動されると、前記クラス管理テーブルに記憶された前記重要度と前記ＣＰＵリソース未使用量とに基づいて、前記ジョブを前記ワークロードクラスに割り当てるかどうかを判断するための指標値を前記ワークロードクラス毎に計算し、該計算では、前記重要度がより低いほど、および前記ＣＰＵリソース未使用量がより多いほど、より大きな指標値を算出し、前記指標値の最も大きなワークロードクラスを前記ジョブの所属クラスとして優先的に選択する任意所属クラス選択手段と、
あるジョブに関して起動されると、前記ジョブが前記任意所属クラスジョブ管理テーブルに登録されていなければ、前記クラス管理テーブルの前記所属クラス選択ルールに従って前記ジョブの所属クラスを選択して前記ジョブ管理テーブルに登録し、前記ジョブが前記任意所属クラスジョブ管理テーブルに登録されていれば、前記ジョブに関して前記任意所属クラス選択手段を起動し、前記任意所属クラス選択手段により選択された前記ジョブの所属クラスを前記ジョブ管理テーブルに登録する所属クラス選択手段と、
システムへの前記ジョブの投入時、前記ジョブのジョブ情報を前記ジョブ管理テーブルに登録し、前記ジョブから任意所属クラスの指定の有無の情報を取得し、任意所属クラスの指定がある場合は、前記ジョブに関して前記任意所属クラスジョブ登録手段、前記所属クラス選択手段を順に起動し、任意所属クラスの指定がない場合は、前記ジョブに関して前記所属クラス選択手段を起動するジョブ開始受付手段と、
一定時間間隔で、前記任意所属クラスジョブ管理テーブルに登録されているジョブに関して前記任意所属クラス選択手段を起動し、前記任意所属クラス選択手段により選択された前記ジョブの所属クラスを前記ジョブ管理テーブルに登録する任意所属クラス管理手段と
を有するＣＰＵリソース管理システム。
【請求項３】
システムに投入されたジョブのジョブプライオリティと所属クラスとを記憶するジョブ管理テーブルと、ワークロードクラス毎に、クラス名とＣＰＵリソース利用割合と重要度と所属クラス選択ルールとＣＰＵリソース使用量とＣＰＵリソース未使用量とを記憶するクラス管理テーブルと、所属するクラスを任意とする指示を行って投入されたジョブの情報を記憶する任意所属クラスジョブ管理テーブルと、ＣＰＵ割当手段と、任意所属クラスジョブ登録手段と、任意所属クラス選択手段と、所属クラス選択手段と、ジョブ開始受付手段と、任意所属クラス管理手段とを有するコンピュータが実行するＣＰＵリソース管理方法であって、
前記ジョブ開始受付手段が、システムへの前記ジョブの投入時、前記ジョブのジョブ情報を前記ジョブ管理テーブルに登録し、前記ジョブから任意所属クラスの指定の有無の情報を取得し、任意所属クラスの指定がある場合は、前記ジョブに関して前記任意所属クラスジョブ登録手段、前記所属クラス選択手段とを順に起動し、任意所属クラスの指定がない場合は、前記ジョブに関して前記所属クラス選択手段を起動し、
前記ジョブに関して起動されると、前記任意所属クラスジョブ登録手段が、前記任意所属クラスジョブ管理テーブルに前記ジョブ情報を登録し、
前記ジョブに関して起動されると、前記所属クラス選択手段が、前記ジョブが前記任意所属クラスジョブ管理テーブルに登録されていなければ、前記クラス管理テーブルの前記所属クラス選択ルールに従って前記ジョブの所属クラスを選択して前記ジョブ管理テーブルに登録し、前記ジョブが前記任意所属クラスジョブ管理テーブルに登録されていれば、前記任意所属クラス選択手段を起動し、前記任意所属クラス選択手段により選択された前記ジョブの所属クラスを前記ジョブ管理テーブルに登録し、
前記任意所属クラス管理手段が、一定時間間隔で、前記任意所属クラスジョブ管理テーブルに登録されているジョブに関して前記任意所属クラス選択手段を起動し、前記任意所属クラス選択手段により選択された前記ジョブの所属クラスを前記ジョブ管理テーブルに登録し、
あるジョブに関して起動されると、前記任意所属クラス選択手段が、前記クラス管理テーブルに記憶された前記ＣＰＵリソース未使用量がより多いワークロードクラスを前記ジョブの所属クラスとして優先的に選択し、
前記ＣＰＵ割当手段が、前記ワークロードクラス毎に設定された前記ＣＰＵリソース利用割合を満たすように前記ワークロードクラスにＣＰＵリソースの配分を行い、同一ワークロードクラスに属するジョブに対しては前記ワークロードクラスに配分されたＣＰＵリソースの範囲内から前記ジョブプライオリティに従ってＣＰＵリソースの配分を行う
ＣＰＵリソース管理方法。
【請求項４】
システムに投入されたジョブのジョブプライオリティと所属クラスとを記憶するジョブ管理テーブルと、ワークロードクラス毎に、クラス名とＣＰＵリソース利用割合と重要度と所属クラス選択ルールとＣＰＵリソース使用量とＣＰＵリソース未使用量とを記憶するクラス管理テーブルと、所属するクラスを任意とする指示を行って投入されたジョブの情報を記憶する任意所属クラスジョブ管理テーブルと、ＣＰＵ割当手段と、任意所属クラスジョブ登録手段と、任意所属クラス選択手段と、所属クラス選択手段と、ジョブ開始受付手段と、任意所属クラス管理手段とを有するコンピュータが実行するＣＰＵリソース管理方法であって、
前記ジョブ開始受付手段が、システムへの前記ジョブの投入時、前記ジョブのジョブ情報を前記ジョブ管理テーブルに登録し、前記ジョブから任意所属クラスの指定の有無の情報を取得し、任意所属クラスの指定がある場合は、前記ジョブに関して前記任意所属クラスジョブ登録手段、前記所属クラス選択手段とを順に起動し、任意所属クラスの指定がない場合は、前記ジョブに関して前記所属クラス選択手段を起動し、
前記ジョブに関して起動されると、前記任意所属クラスジョブ登録手段が、前記任意所属クラスジョブ管理テーブルに前記ジョブ情報を登録し、
前記ジョブに関して起動されると、前記所属クラス選択手段が、前記ジョブが前記任意所属クラスジョブ管理テーブルに登録されていなければ、前記クラス管理テーブルの前記所属クラス選択ルールに従って前記ジョブの所属クラスを選択して前記ジョブ管理テーブルに登録し、前記ジョブが前記任意所属クラスジョブ管理テーブルに登録されていれば、前記任意所属クラス選択手段を起動し、前記任意所属クラス選択手段により選択された前記ジョブの所属クラスを前記ジョブ管理テーブルに登録し、
前記任意所属クラス管理手段が、一定時間間隔で、前記任意所属クラスジョブ管理テーブルに登録されているジョブに関して前記任意所属クラス選択手段を起動し、前記任意所属クラス選択手段により選択された前記ジョブの所属クラスを前記ジョブ管理テーブルに登録し、
あるジョブに関して起動されると、前記任意所属クラス選択手段が、前記クラス管理テーブルに記憶された前記重要度と前記ＣＰＵリソース未使用量とに基づいて、前記ジョブを前記ワークロードクラスに割り当てるかどうかを判断するための指標値を前記ワークロードクラス毎に計算し、該計算では、前記重要度がより低いほど、および前記ＣＰＵリソース未使用量がより多いほど、より大きな指標値を算出し、前記指標値の最も大きなワークロードクラスを前記ジョブの所属クラスとして優先的に選択し、
前記ＣＰＵ割当手段が、前記ワークロードクラス毎に設定された前記ＣＰＵリソース利用割合を満たすように前記ワークロードクラスにＣＰＵリソースの配分を行い、同一ワークロードクラスに属するジョブに対しては前記ワークロードクラスに配分されたＣＰＵリソースの範囲内から前記ジョブプライオリティに従ってＣＰＵリソースの配分を行う
ＣＰＵリソース管理方法。
【請求項５】
システムに投入されたジョブのジョブプライオリティと所属クラスとを記憶するジョブ管理テーブルと、ワークロードクラス毎に、クラス名とＣＰＵリソース利用割合と重要度と所属クラス選択ルールとＣＰＵリソース使用量とＣＰＵリソース未使用量とを記憶するクラス管理テーブルと、所属するクラスを任意とする指示を行って投入されたジョブの情報を記憶する任意所属クラスジョブ管理テーブルとを有するコンピュータを、
前記ワークロードクラス毎に設定された前記ＣＰＵリソース利用割合を満たすように前記ワークロードクラスにＣＰＵリソースの配分を行い、同一ワークロードクラスに属するジョブに対しては前記ワークロードクラスに配分されたＣＰＵリソースの範囲内から前記ジョブプライオリティに従ってＣＰＵリソースの配分を行うＣＰＵ割当手段と、
あるジョブに関して起動されると、前記任意所属クラスジョブ管理テーブルに前記ジョブ情報を登録する任意所属クラスジョブ登録手段と、
あるジョブに関して起動されると、前記クラス管理テーブルに記憶された前記ＣＰＵリソース未使用量がより多いワークロードクラスを前記ジョブの所属クラスとして優先的に選択する任意所属クラス選択手段と、
あるジョブに関して起動されると、前記ジョブが前記任意所属クラスジョブ管理テーブルに登録されていなければ、前記クラス管理テーブルの前記所属クラス選択ルールに従って前記ジョブの所属クラスを選択して前記ジョブ管理テーブルに登録し、前記ジョブが前記任意所属クラスジョブ管理テーブルに登録されていれば、前記ジョブに関して前記任意所属クラス選択手段を起動し、前記任意所属クラス選択手段により選択された前記ジョブの所属クラスを前記ジョブ管理テーブルに登録する所属クラス選択手段と、
システムへの前記ジョブの投入時、前記ジョブのジョブ情報を前記ジョブ管理テーブルに登録し、前記ジョブから任意所属クラスの指定の有無の情報を取得し、任意所属クラスの指定がある場合は、前記ジョブに関して前記任意所属クラスジョブ登録手段、前記所属クラス選択手段を順に起動し、任意所属クラスの指定がない場合は、前記ジョブに関して前記所属クラス選択手段を起動するジョブ開始受付手段と、
一定時間間隔で、前記任意所属クラスジョブ管理テーブルに登録されているジョブに関して前記任意所属クラス選択手段を起動し、前記任意所属クラス選択手段により選択された前記ジョブの所属クラスを前記ジョブ管理テーブルに登録する任意所属クラス管理手段と
して機能させるためのプログラム。
【請求項６】
システムに投入されたジョブのジョブプライオリティと所属クラスとを記憶するジョブ管理テーブルと、ワークロードクラス毎に、クラス名とＣＰＵリソース利用割合と重要度と所属クラス選択ルールとＣＰＵリソース使用量とＣＰＵリソース未使用量とを記憶するクラス管理テーブルと、所属するクラスを任意とする指示を行って投入されたジョブの情報を記憶する任意所属クラスジョブ管理テーブルとを有するコンピュータを、
前記ワークロードクラス毎に設定された前記ＣＰＵリソース利用割合を満たすように前記ワークロードクラスにＣＰＵリソースの配分を行い、同一ワークロードクラスに属するジョブに対しては前記ワークロードクラスに配分されたＣＰＵリソースの範囲内から前記ジョブプライオリティに従ってＣＰＵリソースの配分を行うＣＰＵ割当手段と、
あるジョブに関して起動されると、前記任意所属クラスジョブ管理テーブルに前記ジョブ情報を登録する任意所属クラスジョブ登録手段と、
あるジョブに関して起動されると、前記クラス管理テーブルに記憶された前記重要度と前記ＣＰＵリソース未使用量とに基づいて、前記ジョブを前記ワークロードクラスに割り当てるかどうかを判断するための指標値を前記ワークロードクラス毎に計算し、該計算では、前記重要度がより低いほど、および前記ＣＰＵリソース未使用量がより多いほど、より大きな指標値を算出し、前記指標値の最も大きなワークロードクラスを前記ジョブの所属クラスとして優先的に選択する任意所属クラス選択手段と、
あるジョブに関して起動されると、前記ジョブが前記任意所属クラスジョブ管理テーブルに登録されていなければ、前記クラス管理テーブルの前記所属クラス選択ルールに従って前記ジョブの所属クラスを選択して前記ジョブ管理テーブルに登録し、前記ジョブが前記任意所属クラスジョブ管理テーブルに登録されていれば、前記ジョブに関して前記任意所属クラス選択手段を起動し、前記任意所属クラス選択手段により選択された前記ジョブの所属クラスを前記ジョブ管理テーブルに登録する所属クラス選択手段と、
システムへの前記ジョブの投入時、前記ジョブのジョブ情報を前記ジョブ管理テーブルに登録し、前記ジョブから任意所属クラスの指定の有無の情報を取得し、任意所属クラスの指定がある場合は、前記ジョブに関して前記任意所属クラスジョブ登録手段、前記所属クラス選択手段を順に起動し、任意所属クラスの指定がない場合は、前記ジョブに関して前記所属クラス選択手段を起動するジョブ開始受付手段と、
一定時間間隔で、前記任意所属クラスジョブ管理テーブルに登録されているジョブに関して前記任意所属クラス選択手段を起動し、前記任意所属クラス選択手段により選択された前記ジョブの所属クラスを前記ジョブ管理テーブルに登録する任意所属クラス管理手段と
して機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＣＰＵリソース管理システムに関する。
【背景技術】
【０００２】
コンピュータのＣＰＵリソースを管理する一方式として、ワークロードクラス（以下、単にクラスと言う）ごとに設定されたＣＰＵリソース利用割合を満たすように各クラスにＣＰＵリソースの配分を行い、同一クラスに属するジョブに対してはジョブごとに設定されたジョブプライオリティ（以下、単にプライオリティと言う）に従ってＣＰＵリソースの配分を行うＣＰＵリソース管理方式が提案ないし実用化されている（例えば特許文献１参照）。以下、このようなＣＰＵリソースの管理方式を、クラス別ＣＰＵリソース管理方式と呼ぶ。
【０００３】
クラス別ＣＰＵリソース管理方式によれば、バッチ型処理や会話型処理などの複数の処理型毎にワークロードクラスを設定しておくことにより、特定の処理型に多数のジョブが集中しても、その特定の処理型によってＣＰＵ時間が占有されて、それ以外の処理型のジョブの実行が妨げられてしまうという事態を防止することができる。従って、バッチ型処理のジョブが集中したために、会話型処理のジョブのレスポンスが損なわれるなどの問題を回避することができる。
【０００４】
また、クラス別ＣＰＵリソース管理方式では、同じクラスに属するジョブに対しては、ジョブごとに設定されたプライオリティに従ってＣＰＵリソースが配分されるので、同じ処理型の複数のジョブのうち、よりプライオリティの高いジョブを優先的に実行することができる。従って、緊急性を要するジョブについては、一番高いプライオリティを付与して投入することにより、速やかに実行を完了することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平４−３４０１３５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
クラス別ＣＰＵリソース管理方式を採用するコンピュータにおいて、予定外の処理を緊急で実行しなければならない場合、プライオリティを高くして緊急ジョブを投入する。このとき、緊急ジョブは迅速に実行されるが、緊急ジョブが投入されたクラスの他のプライオリティの低いジョブによる業務は大幅に遅延する。その理由は、プライオリティの高い緊急ジョブが自らＣＰＵを解放しない限り、緊急ジョブが投入されたクラスの他のプライオリティの低いジョブにはＣＰＵが割り当てられないからである。緊急ジョブのプライオリティを下げれば、他のジョブの実行遅延は改善されるが、緊急ジョブ自体の実行が遅延することになる。
【０００７】
本発明の目的は、緊急ジョブの迅速な実行と緊急ジョブが投入されたクラスの他のジョブの実行遅延の改善とは両立し難い、という課題を解決するＣＰＵリソース管理システムを提供することにある。
【課題を解決するための手段】
【０００８】
本発明の一形態にかかるＣＰＵリソース管理システムは、ワークロードクラスごとに設定されたＣＰＵリソース利用割合を満たすように各ワークロードクラスにＣＰＵリソースの配分を行い、同一ワークロードクラスに属するジョブに対してはジョブごとに設定されたジョブプライオリティに従ってＣＰＵリソースの配分を行うＣＰＵ割当手段と、緊急で実行しなければならない緊急ジョブについては、他のジョブよりも高いジョブプライオリティを付与し、一定時間間隔ごとに、属するワークロードクラスの見直しを行う所属クラス選択手段とを備える。
【発明の効果】
【０００９】
本発明は上述のように構成されているため、緊急ジョブを迅速に実行することができると共に、緊急ジョブが投入されたクラスに属する他のジョブの実行遅延を改善することができる。
【図面の簡単な説明】
【００１０】
【図１】本発明の第２の実施形態のブロック図である。
【図２】本発明の第２の実施形態におけるクラス管理テーブル、ジョブ管理テーブル、任意所属クラスジョブ管理テーブルの構成例を示す図である。
【図３】本発明の第２の実施形態におけるシステム環境設定時の処理例を示すフローチャートである。
【図４】本発明の第２の実施形態におけるＣＰＵリソース監視時の処理例を示すフローチャートである。
【図５】本発明の第２の実施形態におけるジョブ開始時の処理例を示すフローチャートである。
【図６】本発明の第２の実施形態における所属クラス見直し時の処理例を示すフローチャートである。
【図７】本発明の第２の実施形態におけるジョブ終了時の処理例を示すフローチャートである。
【図８】本発明の第２の実施形態における所属クラス変更指示時の処理例を示すフローチャートである。
【図９】本発明の第２の実施形態における具体例の説明図である。
【図１０】本発明の第１の実施形態のブロック図である。
【発明を実施するための形態】
【００１１】
次に本発明の実施の形態について図面を参照して詳細に説明する。
[第１の実施形態]
図１０を参照すると、本発明の第１の実施形態にかかるコンピュータ１０は、主な機能部として、演算処理部１１、記憶部１２、通信インターフェース部（以下、通信Ｉ／Ｆ部という）１３、操作入力部１４、および画面表示部１５を備えている。
【００１２】
通信Ｉ／Ｆ部１３は、専用のデータ通信回路からなり、通信回線を介して接続された各種装置との間でデータ通信を行う機能を有している。操作入力部１４は、キーボードやマウスなどの操作入力装置からなり、オペレータの操作を検出して演算処理部１１へ出力する機能を有している。画面表示部１５は、ＬＣＤやＰＤＰなどの画面表示装置からなり、演算処理部１１からの指示に応じて、各種情報を画面表示する機能を有している。
【００１３】
記憶部１２は、ハードディスクやメモリなどの記憶装置からなり、演算処理部１１での各種処理に必要な処理情報やプログラム１２Ｐを記憶する機能を有している。プログラム１２Ｐは、演算処理部１１に読み込まれて実行されることにより各種処理部を実現するプログラムであり、通信Ｉ／Ｆ部１３などのデータ入出力機能を介して外部装置や記録媒体から予め読み込まれて記憶部１２に保存される。記憶部１２で記憶される主な処理情報として、クラス管理情報１２Ａ、およびジョブ管理情報１２Ｂがある。
【００１４】
クラス管理情報１２Ａは、クラスごとに設定されたＣＰＵリソース利用割合を満たすように各クラスにＣＰＵリソースの配分を行うための情報である。このクラス管理情報１２Ａには、各クラスごとに、クラス名、ＣＰＵリソース利用割合、ＣＰＵリソース使用量などが記憶される。
【００１５】
ジョブ管理情報１２Ｂは、投入されたジョブに関する情報である。このジョブ管理情報１２Ｂには、各ジョブの具体的な内容（ジョブで使用するプログラム名や入出力ファイルの種類、所属クラス、ジョブプライオリティなど）が記述されている。
【００１６】
演算処理部１１は、１以上のＣＰＵとその周辺回路を有し、記憶部１２からプログラム１２Ｐを読み込んで実行することにより、上記ハードウェアとプログラム１２Ｐとを協働させて各種処理部を実現する機能を有している。演算処理部１１で実現される主な処理部として、ワークロードマネージャ１１Ａがある。
【００１７】
ワークロードマネージャ１１Ａは、クラスの単位でＣＰＵリソースの配分を管理する機能を有している。具体的には、ワークロードマネージャ１１Ａは、クラス管理情報１２Ａにクラスごとに設定されたＣＰＵリソース利用割合を満たすように各クラスにＣＰＵリソースの配分を行う機能と、同一クラスに属するジョブに対しては、ジョブ管理情報１２Ｂにジョブごとに設定されたジョブプライオリティに従って、ＣＰＵリソースの配分を行う機能とを有している。
【００１８】
さらに、ワークロードマネージャ１１Ａは、緊急で実行しなければならない緊急ジョブについて、一定時間間隔ごとに、属するクラスの見直しを行う機能を有している。緊急ジョブか否かは、そのジョブの投入時に例えばジョブ制御言語（ＪＣＬ）で指定される。緊急ジョブを最初に投入するクラスの選択、および一定時間間隔ごとに見直すクラスの選択は、予め設定された選択基準に従う。一例として、ＣＰＵリソース未使用量がより多いクラスを優先的に選択するという選択基準を用いることができる。また、他の例として、各クラスに予め重要度を設定しておき、重要度がより低いクラスを優先的に選択するという選択基準を用いることができる。また、これら二つの選択基準を統合した選択基準を使用することも可能である。
【００１９】
このように本実施形態によれば、緊急ジョブについて一定時間間隔ごとに属するクラスの見直しが行われる。このため、プライオリティの高い緊急ジョブが一つのクラスに留まり続けることによる弊害、すなわち緊急ジョブが投入されたクラスの他のプライオリティの低いジョブにＣＰＵが割り当てられないという弊害を防止できる。また、プライオリティの高い緊急ジョブは、他のクラスに変更されても、そのクラスに属するプライオリティの低い他のジョブより優先的にＣＰＵリソースが配分されるため、迅速に実行されることになる。
【００２０】
[第２の実施形態]
図１を参照すると、本発明の第２の実施形態にかかるコンピュータ１００は、ワークロードマネージャの一構成要素としてのＣＰＵ割当手段１０１を有している。このＣＰＵ割当手段１０１は、ジョブI１２１の属するクラスａ１１０、ジョブII１２１の属するクラスｂ１１１、ジョブIII１２２の属するクラスｃ１１２といったクラスごとに設定されたＣＰＵリソース利用割合を満たすように各クラスにＣＰＵリソースの配分を行い、同一クラスに属するジョブに対しては、ジョブごとに設定されたプライオリティに従って、ＣＰＵリソースの配分を行う機能を有している。なお、緊急ジョブIVは、その所属するクラスが一定時間ごとに見直される。
【００２１】
また、コンピュータ１００は、ワークロードマネージャの他の構成要素として、クラス登録手段１３０と、ＣＰＵリソース利用割合登録手段１３１と、所属ジョブルール登録手段１３２と、クラス重要度登録手段１３３と、ＣＰＵリソース監視手段１４０と、ＣＰＵリソース未使用量算出手段１４１と、ジョブ開始受付手段１５０と、任意所属クラスジョブ登録手段１５１と、所属クラス選択手段１５２と、任意所属クラス選択手段１５３と、任意所属クラス管理手段１６０と、ジョブ終了受付手段１７０と、任意所属クラスジョブ削除手段１７１と、所属クラス変更手段１８０と、クラス管理テーブル１９０と、ジョブ管理テーブル１９１と、任意所属クラスジョブ管理テーブル１９２とを備えている。これらの手段はそれぞれ概略つぎのように動作する。
【００２２】
クラス管理テーブル１９０は、システム環境設定時に、システム管理者によって決められた各クラスに関する情報を保持する。図２にクラス管理テーブル１９０の構成例を示す。このクラス管理テーブル１９０は、クラスごとに、クラス名２００と、ＣＰＵリソース利用割合２０１と、重要度２０２と、所属クラス選択ルール２０３と、ＣＰＵリソース使用量２０４と、ＣＰＵリソース未使用量２０５との組からなるエントリが登録されている。
【００２３】
ジョブ管理テーブル１９１は、システムに投入されたジョブに関する情報を保持する。図２にジョブ管理テーブル１９１の構成例を示す。このジョブ管理テーブル１９１は、ジョブごとに、ジョブ情報３００と、所属クラス３０１との組からなるエントリが登録されている。
【００２４】
任意所属クラスジョブ管理テーブル１９２は、所属するクラスを任意とする指示を行って投入されたジョブに関する情報を保持する。図２に、この任意所属クラスジョブ管理テーブル１９２の構成例を示す。この任意所属クラスジョブ管理テーブル１９２は、任意所属クラスの指定が有る個々のジョブごとに、そのジョブ情報２２０を格納する。
【００２５】
クラス登録手段１３０は、システム環境設定時において、クラス管理テーブル１９０に、システム管理者によって決められたクラスのクラス名２００を設定して、ＣＰＵリソース利用割合登録手段１３１、所属ジョブルール登録手段１３２、クラス重要度登録手段１３３を起動する。図２の例では、クラス登録手段１３０は、クラス管理テーブル１９０に、クラス名ａ、ｂ、ｃを設定している。
【００２６】
ＣＰＵリソース利用割合登録手段１３１は、クラス管理テーブル１９０に、システム管理者によって決められたクラス毎のＣＰＵリソース利用割合２０１を設定する。図２の例では、ＣＰＵリソース利用割合登録手段１３１は、クラス管理テーブル１９０に、クラスａ、ｂ、ｃのＣＰＵリソース利用割合として、５０、３０、２０を設定している。
【００２７】
所属ジョブルール登録手段１３２は、クラス管理テーブル１９０に、システム管理者によって決められた所属クラス選択ルール２０３を設定する。図２の例では、所属ジョブルール登録手段１３２は、クラス管理テーブル１９０に、クラス名ａ、ｂ、ｃの所属クラス選択ルールとして、業務Ａ、業務Ｂ、業務Ｃを設定している。これは、業務Ａに関連するジョブはクラスａに、業務Ｂに関連するジョブはクラスｂに、業務Ｃに関連するジョブはクラスｃに所属させるというルールを意味している。
【００２８】
クラス重要度登録手段１３３は、クラス管理テーブル１９０に、システム管理者によって決められたクラス毎の重要度２０２を設定する。図２の例では、クラス重要度登録手段１３３は、クラスａ、ｂ、ｃの重要度として、０、１、２を設定している。重要度は０が一番高く、次に１が高く、２が一番低くなる。
【００２９】
ＣＰＵリソース監視手段１４０は、一定時間間隔で、各クラスで利用されたＣＰＵリソース使用量を監視し、クラス管理テーブル１９０に、クラス毎のＣＰＵリソース使用量２０４を登録して、ＣＰＵリソース未使用量算出手段１４１を起動する。図２の例では、ＣＰＵリソース監視手段１４０は、クラス管理テーブル１９０に、クラスａ、ｂ、ｃのＣＰＵリソース使用量として、１０、１０、１５を登録している。
【００３０】
ＣＰＵリソース未使用量算出手段１４１は、クラス管理テーブル１９０のＣＰＵリソース利用割合とＣＰＵリソース使用量からＣＰＵリソース未使用量を算出し、クラス管理テーブル１９０に、クラス毎のＣＰＵリソース未使用量２０５を登録する。図２の例では、ＣＰＵリソース未使用量算出手段１４１は、クラスａ、ｂ、ｃのＣＰＵリソース未使用量として、４０、２０、５を算出し登録している。
【００３１】
ジョブ開始受付手段１５０は、ジョブが投入されると、ジョブ管理テーブル１９１に、当該ジョブの情報を登録して、当該ジョブから任意所属クラスの指定有無の情報を取得する。任意所属クラスの指定が有る場合は、任意所属クラスジョブ登録手段１５１、所属クラス選択処理１５２を起動する。任意所属クラスの指定が無い場合は、所属クラス選択処理１５２を起動する。図２の例では、ジョブ開始受付手段１５０は、ジョブ管理テーブル１９１に、ジョブI,II,III,IVの情報を登録している。
【００３２】
任意所属クラスジョブ登録手段１５１は、任意所属クラスジョブ管理テーブル１９２に、投入された任意所属クラス指定のジョブの情報を登録する。図２の例では、任意所属クラスジョブ登録手段１５１は、任意所属クラスジョブ管理テーブル１９２に、ジョブIVの情報を登録している。
【００３３】
所属クラス選択手段１５２は、投入されたジョブが任意所属クラスジョブか否かを任意所属クラスジョブ管理テーブル１９２を検索して判断する。所属クラス選択手段１５２は、投入されたジョブが任意所属クラスジョブであれば、そのジョブに関して任意所属クラス選択手段１５３を起動する。所属クラス選択手段１５２は、投入されたジョブが任意所属クラスジョブでなければ、クラス管理テーブル１９０の所属クラス選択ルール２０３に従って、そのジョブの所属クラスを選択し、ジョブ管理テーブル１９１に所属クラスを登録する。
【００３４】
任意所属クラス管理手段１６０は、一定時間間隔で、任意所属クラスジョブ管理テーブル１９２に登録されているジョブに関して、任意所属クラス選択手段１５３を起動する。
【００３５】
任意所属クラス選択手段１５３は、所属クラス選択手段１５２および任意所属クラス管理手段１６０から起動されると、クラス管理テーブル１９０のＣＰＵリソース未使用量２０５と重要度２０２とから各クラスごとのクラス選択指標値を算出し、この算出したクラス選択指標値に基づいて、処理の対象となる任意所属クラスジョブの所属クラスを選択して、ジョブ管理テーブル１９１に所属クラスを登録する。
【００３６】
ジョブ終了受付手段１７０は、ジョブが終了すると、ジョブ管理テーブル１９１から当該ジョブの情報を削除し、また任意所属クラスジョブ管理テーブル１９２に当該ジョブの情報が有れば、そのジョブに関して任意所属クラスジョブ削除手段１７１を起動する。
【００３７】
任意所属クラスジョブ削除手段１７１は、任意所属クラスジョブ管理テーブル１９２から終了したジョブの情報を削除する。
【００３８】
所属クラス変更手段１８０は、或るジョブに関して所属クラスの変更を指示されると、ジョブ管理テーブル１９１に登録されている当該ジョブの所属クラスを指示された通りに変更する。このとき所属クラス変更手段１８０は、任意所属クラスジョブ管理テーブル１９２に当該ジョブの情報が有れば、任意所属クラスジョブ削除手段１７１を用いて、任意所属クラスジョブ管理テーブル１９２から該当ジョブの情報を削除しておく。
【００３９】
[動作の説明]
次に、図３、図４、図５、図６、図７、図８のフローチャートを参照して本実施形態の動作について詳細に説明する。
【００４０】
(1)システム環境設定時の動作
図３を参照すると、システム環境を設定する際、クラス登録手段１３０は、クラス管理テーブル１９０に、システム管理者によって決められたクラスのクラス名２００を設定して（Ｓ３００）、ＣＰＵリソース利用割合登録手段１３１、所属ジョブルール登録手段１３２、クラス重要度登録手段１３３を起動する。ＣＰＵリソース利用割合登録手段１３１は、クラス管理テーブル１９０に、システム管理者によって決められたクラス毎のＣＰＵリソース利用割合２０１を設定する（Ｓ３０１）。所属ジョブルール登録手段１３２は、クラス管理テーブル１９０に、システム管理者によって決められた所属クラス選択ルール２０３を設定する（Ｓ３０２）。クラス重要度登録手段１３３は、クラス管理テーブル１９０に、システム管理者によって決められたクラス毎の重要度２０２を設定する（Ｓ３０３）。
【００４１】
(2)ＣＰＵリソース監視時の動作
図４を参照すると、一定時間間隔でＣＰＵリソースを監視する際、ＣＰＵリソース監視手段１４０は、各クラスで利用されたＣＰＵリソース使用量を取得し（Ｓ４００）、クラス管理テーブル１９０に、クラス毎のＣＰＵリソース使用量２０４を登録して（Ｓ４０１）、ＣＰＵリソース未使用量算出手段１４１を起動する。ＣＰＵリソース未使用量算出手段１４１は、クラス管理テーブル１９０のＣＰＵリソース利用割合とＣＰＵリソース使用量とから、ＣＰＵリソース未使用量を算出し（Ｓ４０２）、クラス管理テーブル１９０に、クラス毎のＣＰＵリソース未使用量２０５を登録する（Ｓ４０３）。
【００４２】
(3)ジョブ投入時の動作
図５を参照すると、ジョブが投入された際、ジョブ開始受付手段１５０は、ジョブ管理テーブル１９１に、当該ジョブの情報を登録して（Ｓ５００）、当該ジョブについて任意所属クラスの指定有無をチェックする（Ｓ５０１）。任意所属クラスの指定が有る場合は、任意所属クラスジョブ登録手段１５１、所属クラス選択処理１５２を起動する。任意所属クラスの指定が無い場合は、所属クラス選択処理１５２を起動する。
【００４３】
任意所属クラスジョブ登録手段１５１は、任意所属クラスジョブ管理テーブル１９２に、当該ジョブの情報を登録する（Ｓ５０２）。所属クラス選択処理１５２は、任意所属クラスジョブ管理テーブル１９２に、当該ジョブが登録されているかチェックする（Ｓ５０３）。当該ジョブが有る場合は、任意所属クラス選択手段１５３を起動し、ジョブ管理テーブル１９１に、選択された所属クラスを登録する（Ｓ５０６）。当該ジョブが無い場合は、クラス管理テーブル１９０の所属クラス選択ルール２０３に従って、所属クラスを選択し（Ｓ５０７）、ジョブ管理テーブル１９１に、選択された所属クラスを登録する（Ｓ５０６）。任意所属クラス選択手段１５３は、クラス管理テーブル１９０のＣＰＵリソース未使用量２０５と重要度２０２とから、クラス選択指標値を算出し（Ｓ５０４）、クラス選択指標値に従って、所属クラスを選択する（Ｓ５０５）。
【００４４】
(4)任意所属クラスジョブの所属クラス見直しの動作
図６を参照すると、一定時間間隔で任意所属クラスジョブの所属クラスを見直す際、任意所属クラス管理手段１６０は、任意所属クラスジョブ管理テーブル１９２に、ジョブ情報が登録されているかチェックする（Ｓ６００）。ジョブ情報が有れば、任意所属クラス選択手段１５３を起動し、選択された所属クラスに、ジョブ管理テーブル１９１の所属クラスを変更する（Ｓ６０３）。任意所属クラス選択手段１５３は、クラス管理テーブル１９０のＣＰＵリソース未使用量２０５と重要度２０２とから、クラス選択指標値を算出し（Ｓ６０１）、クラス選択指標値に従って、所属クラスを選択する（Ｓ６０２）。
【００４５】
(5)ジョブ終了時の動作
図７を参照すると、ジョブが終了された際、ジョブ終了受付手段１７０は、ジョブ管理テーブル１９１から、当該ジョブの情報を削除して（Ｓ７００）、任意所属クラスジョブ管理テーブル１９２に、当該ジョブの情報が登録されているかチェックする（Ｓ７０１）。当該ジョブの情報が有れば、任意所属クラスジョブ削除手段１７１を起動する。任意所属クラスジョブ削除手段１７１は、任意所属クラスジョブ管理テーブル１９２から、当該ジョブの情報を削除する（Ｓ７０２）。
【００４６】
(6)所属クラス変更指示時の動作
図８を参照すると、操作入力部１４を通じてオペレータ等から所属クラスの変更を指示された際、所属クラス変更手段１８０は、任意所属クラスジョブ管理テーブル１９２に、当該ジョブの情報が登録されているかチェックする（Ｓ８００）。当該ジョブの情報が有れば、任意所属クラスジョブ削除手段１７１を起動して、ジョブ管理テーブル１９１の所属クラスを変更する（ステップ８０２）。当該ジョブ情報が無ければ、ジョブ管理テーブル１９１の所属クラスを変更する（Ｓ８０２）。任意所属クラスジョブ削除手段１７１は、任意所属クラスジョブ管理テーブル１９２から、当該ジョブの情報を削除する。（Ｓ８０１）
【００４７】
次に、具体例を図９を参照して説明する。
【００４８】
図９の具体例では、コンピュータ１００で実行される処理は、業務A、業務B、業務Cで、それぞれクラスをａ、ｂ、ｃとし、各クラスのＣＰＵリソースの利用割合を５０％、３０％、２０％、各クラスの重要度を０、１、２（０＞１＞２）と設定されている。
【００４９】
この場合、各クラスでジョブが実行されている時に、Ｔｘの時点で、予定外の処理を緊急で実行しなければならないプライオリティの高いジョブ（以降、緊急ジョブと呼ぶ）を投入すると、Ｔ１〜Ｔ２の区間の各クラスのＣＰＵリソース未使用量が４０、２０、５により、例えば、「クラス選択指標値＝（ＣＰＵリソース未使用量＋１）×重要度」とし、クラス選択指標値が最も大きいクラスを選択する場合、クラス選択指標値は０、２１、１２となり、クラスｂが最も大きいため、緊急ジョブが所属するクラスはクラスｂとなる。
【００５０】
クラスｂでは、緊急ジョブのプライオリティ０がクラスｂのジョブプライオリティ２より高いため、クラスｂのジョブにＣＰＵが割り当てられなくなる。次に、Ｔ３のクラス選択時点では、Ｔ２〜Ｔ３の区間の各クラスのＣＰＵリソース未使用量が４０、０、５により、クラス選択指標値は０、１、１２となり、クラスｃが最も大きいため、緊急ジョブが所属するクラスはクラスｃに変更されて、クラスｂのジョブにＣＰＵが割り当てられるようになる。クラスｃでは、緊急ジョブのプライオリティ０がクラスｃのジョブプライオリティ３より高いため、クラスｃのジョブにＣＰＵが割り当てられなくなる。
【００５１】
そして、Ｔ４のクラス選択時点では、Ｔ３〜Ｔ４の区間の各クラスのＣＰＵリソース未使用量が４０、２０、０により、クラス選択指標値は０、２１、２となり、クラスｂが最も大きいため、緊急ジョブが所属するクラスはクラスｂに変更されて、クラスｃのジョブにＣＰＵが割り当てられるようになる。クラスｂでは、緊急ジョブのプライオリティ０がクラスｂのジョブプライオリティ３より高いため、クラスｂのジョブにＣＰＵが割り当てられなくなる。Ｔ５時点以降、緊急ジョブが終了するまで、一定時間間隔毎にこの動作が繰り返される。
【００５２】
[効果の説明]
本実施形態の効果は、予定外の処理を緊急で実行しなければならない場合、プライオリティを高くしてジョブを投入しても、特定のクラスのみで、当該ジョブがＣＰＵリソースを使い切ってしまい、他のジョブにＣＰＵが割り当てられないということを人手介入なく防ぐことができることである。
【００５３】
その理由は、クラス毎の重要度とＣＰＵリソース未使用量とに従って、一定時間間隔毎に当該ジョブが所属するクラスを自動的に決定することにより、一定時間間隔毎に当該ジョブの所属するクラスを変更するためである。
【産業上の利用可能性】
【００５４】
システム管理者が処理毎にクラスを設定し、予めクラス毎に決められたＣＰＵリソースの利用割合に従って、ＣＰＵリソースの配分を行うＣＰＵリソース管理といった用途に適用できる。
【符号の説明】
【００５５】
１０    コンピュータ
１１    演算処理部
１１Ａ  ワークロードマネージャ
１２    記憶部
１２Ａ  クラス管理情報
１２Ｂ  ジョブ管理情報
１２Ｐ  プログラム
１３    Ｆ部
１４    操作入力部
１５    画面表示部
１００  コンピュータ
１０１  ＣＰＵ割当手段
１１０  クラスａ
１１１  クラスｂ
１１２  クラスｃ
１２１  ジョブII
１２１  ジョブI
１２２  ジョブIII
１３０  クラス登録手段
１３１  ＣＰＵリソース利用割合登録手段
１３２  所属ジョブルール登録手段
１３３  クラス重要度登録手段
１４０  ＣＰＵリソース監視手段
１４１  ＣＰＵリソース未使用量算出手段
１５０  ジョブ開始受付手段
１５１  任意所属クラスジョブ登録手段
１５２  所属クラス選択処理
１５２  所属クラス選択手段
１５３  任意所属クラス選択手段
１６０  任意所属クラス管理手段
１７０  ジョブ終了受付手段
１７１  任意所属クラスジョブ削除手段
１８０  所属クラス変更手段
１９０  クラス管理テーブル
１９１  ジョブ管理テーブル
１９２  任意所属クラスジョブ管理テーブル
２００  クラス名
２０１  ＣＰＵリソース利用割合
２０２  重要度
２０３  所属クラス選択ルール
２０４  ＣＰＵリソース使用量
２０５  ＣＰＵリソース未使用量
２２０  ジョブ情報
【図１】
0005573180.tif 000002
【図２】
0005573180.tif 000003
【図３】
0005573180.tif 000004
【図４】
0005573180.tif 000005
【図５】
0005573180.tif 000006
【図６】
0005573180.tif 000007
【図７】
0005573180.tif 000008
【図８】
0005573180.tif 000009
【図９】
0005573180.tif 000010
【図１０】
0005573180.tif 000011