(57)【特許請求の範囲】
【請求項１】
時計を持ち、ＯＳが動作する計算機からなる情報処理システムにおいて、
前記ＯＳは、時刻に関する情報を格納して管理する時刻管理テーブルと、自ＯＳの制御下で動作するＯＳ以外の他のプログラムにＯＳ時刻を通知する時刻通知部と、ＯＳ時刻を変更する時刻変更部とを備えて構成され、
前記時刻管理テーブルは、グリニッジ標準時刻と現地時刻との偏差であるタイムゾーンと、現地時刻とＯＳ時刻との偏差である補正値と、時刻変更要求の量である時刻変更量と、時刻変更要求の方向を示す時刻変更方向と、他のプログラムから時刻取得要求があった時点の時計の値である前回時刻を取得した時刻と、時刻を変更する速度に関する係数である時刻変更速度と、時刻変更要求があった場合に、時刻変更が完了する時刻を示す時刻変更完了時刻との各情報を格納しており、
前記ＯＳが、他のプログラムからＯＳ時刻の変更要求を受け付けたとき、前記時刻変更部は、要求された変更する時刻量を前記時刻変更量に登録すると共に、時刻を変更する方向を、時刻変更方向に登録し、時刻変更要求を受け付けたときの時計の値を取得して、その値を初期値として、前記前回時刻を取得した時刻に登録し、次に、時刻変更完了時刻を計算し、時刻変更完了時刻に時刻変更完了時刻を登録し、
前記ＯＳが、他のプログラムからＯＳ時刻の取得要求を受け付けたとき、前記時刻通知部は、前記時刻変更量が０より大きいか否かを調べ、時刻変更量の値が０より大きかった場合、現在の時計の時刻の値を取得し、前記時刻変更速度及び時刻変更方向を用いて補正値を計算して更新し、前記求めた現在の時計の時刻の値を前回時刻取得した時刻に格納し、その後、時計の時刻、タイムゾーンの値、補正値の値の和をＯＳ時刻として、ＯＳ時刻の取得要求を行った他のプログラムに応答することを特徴とする情報処理システム。
【請求項２】
請求項１記載の情報処理システムにおいて、
前記ＯＳは、他のプログラムのジョブを管理するジョブ管理部をさらに有し、
前記ＯＳが、他のプログラムから時刻指定のジョブ起動の登録要求を受け付けたとき、前記ジョブ管理部は、ジョブ起動の登録要求の中で指定された時刻が時刻変更中か否かを、指定された時刻からタイムゾーンの値と補正値とを減算して、指定された時刻の、時計での値を求め、時刻変更量が０より大きく、求めた時刻が時刻変更完了時刻より前の時刻であった場合、指定された時刻が時刻変更中であるとし、指定された時刻までに時刻変更が完了するように時刻変更の速度を変更し、変更した時刻変更速度を時刻変更速度に登録することを特徴とする情報処理システム。
【請求項３】
時計を持ち、それぞれの中でＯＳが動作する複数の論理計算機と、それらの複数の論理計算機を制御する論理計算機制御機構からなる情報処理システムにおいて、
前記論理計算機制御機構は、各論理計算機のＯＳからの時計の時刻問い合わせを受け付けて応答する時刻通知部と、各論理計算機のＯＳからのＯＳ時刻の変更速度の変更通知を受け付ける時刻変更速度変更受付部と、論理計算機制御機構が各論理計算機でのＯＳ時刻変更速度の変更を管理する時刻変更速度管理テーブルとを備え、
複数の論理計算機が持つそれぞれのＯＳは、時刻に関する情報を格納して管理する時刻管理テーブルと、自ＯＳの制御下で動作するＯＳ以外の他のプログラムにＯＳ時刻を通知する時刻通知部と、ＯＳ時刻を変更する時刻変更部と、時計の時刻を論理計算機制御機構に問い合わせる時計時刻問い合わせ部と、時刻指定のジョブを登録したことによる時刻変更速度の変更を論理計算機制御機構に通知する時刻変更速度変更通知部と、他の論理計算機で時刻変更速度の変更があったか否かを論理計算機制御機構に問い合わせる時刻変更速度変更問い合わせ部とを備え、
前記時刻管理テーブルは、グリニッジ標準時刻と現地時刻との偏差であるタイムゾーンと、現地時刻とＯＳ時刻との偏差である補正値と、時刻変更要求の量である時刻変更量と、時刻変更要求の方向を示す時刻変更方向と、他のプログラムから時刻取得要求があった時点の時計の値である前回時刻を取得した時刻と、時刻を変更する速度に関する係数である時刻変更速度と、時刻変更要求があった場合に、時刻変更が完了する時刻を示す時刻変更完了時刻との各情報を格納しており、
前記ＯＳが、他のプログラムからＯＳ時刻の変更要求を受け付けたとき、前記時刻変更部は、要求された変更する時刻量を前記時刻変更量に登録すると共に、時刻を変更する方向を、時刻変更方向に登録し、時刻変更要求を受け付けたときの時計の値を取得して、その値を初期値として、前記前回時刻を取得した時刻に登録し、次に、時刻変更完了時刻を計算し、時刻変更完了時刻に時刻変更完了時刻を登録し、
前記ＯＳが、他のプログラムからＯＳ時刻の取得要求を受け付けたとき、前記時刻通知部は、前記時刻変更量が０より大きいか否かを調べ、時刻変更量の値が０より大きかった場合、現在の時計の時刻の値を取得し、前記時刻変更速度及び時刻変更方向を用いて補正値を計算して更新し、前記求めた現在の時計の時刻の値を前回時刻取得した時刻に格納し、その後、時計の時刻、タイムゾーンの値、補正値の値の和をＯＳ時刻として、ＯＳ時刻の取得要求を行った他のプログラムに応答し、
前記複数の論理計算機の１つの論理計算機のＯＳが時刻指定のジョブを登録することにより時刻変更速度を変更すると、前記時刻変更速度変更通知部は、論理計算機制御機構に対し、時刻変更速度が変更されたことを通知し、この通知を時刻変更速度変更受付部により受け付けた論理計算機制御機構は、時刻変更速度が変更されたことを、自機構内の前記時刻変更速度管理テーブルの時刻変更通知に表示し、時刻指定のジョブを登録したＯＳから受け取った時刻変更完了時刻を、自機構内の時刻変更速度管理テーブルの中の時刻変更完了時刻に格納し、
時刻指定のジョブを登録して、時刻変更速度の変更を行った論理計算機以外の論理計算機のＯＳは、そのＯＳの時刻変更速度変更問い合わせ部が、論理計算機制御機構に対し時刻変更速度が変更されたか否かを問い合わせ、
論理計算機制御機構の時刻変更速度変更受け付け部が、時刻変更管理テーブルの情報から時刻変更速度が変更されていることと、時刻変更完了時刻とを応答し、
問い合わせを行った論理計算機のＯＳは、論理計算機制御機構からの応答により、時刻変更速度が変更されていることと、時刻変更完了時刻とを受け取り、時刻変更速度を再計算し、時計時刻問い合わせ部が、論理計算機制御機構の時刻通知部に時計の値を問い合わせ、論理計算機制御機構からの応答により、時計の値を受けとることを特徴とする情報処理システム。
【請求項４】
時計を持ち、ＯＳが動作する計算機からなる情報処理システムにおける時刻管理方法において、
前記ＯＳは、時刻に関する情報を格納して管理する時刻管理テーブルと、自ＯＳの制御下で動作するＯＳ以外の他のプログラムにＯＳ時刻を通知する時刻通知部と、ＯＳ時刻を変更する時刻変更部とを備えて構成され、
前記時刻管理テーブルは、グリニッジ標準時刻と現地時刻との偏差であるタイムゾーンと、現地時刻とＯＳ時刻との偏差である補正値と、時刻変更要求の量である時刻変更量と、時刻変更要求の方向を示す時刻変更方向と、他のプログラムから時刻取得要求があった時点の時計の値である前回時刻を取得した時刻と、時刻を変更する速度に関する係数である時刻変更速度と、時刻変更要求があった場合に、時刻変更が完了する時刻を示す時刻変更完了時刻との各情報を格納しており、
前記ＯＳが、他のプログラムからＯＳ時刻の変更要求を受け付けたとき、前記時刻変更部は、要求された変更する時刻量を前記時刻変更量に登録すると共に、時刻を変更する方向を、時刻変更方向に登録し、時刻変更要求を受け付けたときの時計の値を取得して、その値を初期値として、前記前回時刻を取得した時刻に登録し、次に、時刻変更完了時刻を計算し、時刻変更完了時刻に時刻変更完了時刻を登録し、
前記ＯＳが、他のプログラムからＯＳ時刻の取得要求を受け付けたとき、前記時刻通知部は、前記時刻変更量が０より大きいか否かを調べ、時刻変更量の値が０より大きかった場合、現在の時計の時刻の値を取得し、前記時刻変更速度及び時刻変更方向を用いて補正値を計算して更新し、前記求めた現在の時計の時刻の値を前回時刻取得した時刻に格納し、その後、時計の時刻、タイムゾーンの値、補正値の値の和をＯＳ時刻として、ＯＳ時刻の取得要求を行った他のプログラムに応答することを特徴とする時刻管理方法。
【請求項５】
請求項４記載の時刻管理方法において、
前記ＯＳは、他のプログラムのジョブを管理するジョブ管理部をさらに有し、
前記ＯＳが、他のプログラムから時刻指定のジョブ起動の登録要求を受け付けたとき、前記ジョブ管理部は、ジョブ起動の登録要求の中で指定された時刻が時刻変更中か否かを、指定された時刻からタイムゾーンの値と補正値とを減算して、指定された時刻の、時計での値を求め、時刻変更量が０より大きく、求めた時刻が時刻変更完了時刻より前の時刻であった場合、指定された時刻が時刻変更中であるとし、指定された時刻までに時刻変更が完了するように時刻変更の速度を変更し、変更した時刻変更速度を時刻変更速度に登録することを特徴とする時刻管理方法。
【請求項６】
時計を持ち、それぞれの中でＯＳが動作する複数の論理計算機と、それらの複数の論理計算機を制御する論理計算機制御機構からなる情報処理システムにおける時刻管理方法において、
前記論理計算機制御機構は、各論理計算機のＯＳからの時計の時刻問い合わせを受け付けて応答する時刻通知部と、各論理計算機のＯＳからのＯＳ時刻の変更速度の変更通知を受け付ける時刻変更速度変更受付部と、論理計算機制御機構が各論理計算機でのＯＳ時刻変更速度の変更を管理する時刻変更速度管理テーブルとを備え、
複数の論理計算機が持つそれぞれのＯＳは、時刻に関する情報を格納して管理する時刻管理テーブルと、自ＯＳの制御下で動作するＯＳ以外の他のプログラムにＯＳ時刻を通知する時刻通知部と、ＯＳ時刻を変更する時刻変更部と、時計の時刻を論理計算機制御機構に問い合わせる時計時刻問い合わせ部と、時刻指定のジョブを登録したことによる時刻変更速度の変更を論理計算機制御機構に通知する時刻変更速度変更通知部と、他の論理計算機で時刻変更速度の変更があったか否かを論理計算機制御機構に問い合わせる時刻変更速度変更問い合わせ部とを備え、
前記時刻管理テーブルは、グリニッジ標準時刻と現地時刻との偏差であるタイムゾーンと、現地時刻とＯＳ時刻との偏差である補正値と、時刻変更要求の量である時刻変更量と、時刻変更要求の方向を示す時刻変更方向と、他のプログラムから時刻取得要求があった時点の時計の値である前回時刻を取得した時刻と、時刻を変更する速度に関する係数である時刻変更速度と、時刻変更要求があった場合に、時刻変更が完了する時刻を示す時刻変更完了時刻との各情報を格納しており、
前記ＯＳが、他のプログラムからＯＳ時刻の変更要求を受け付けたとき、前記時刻変更部は、要求された変更する時刻量を前記時刻変更量に登録すると共に、時刻を変更する方向を、時刻変更方向に登録し、時刻変更要求を受け付けたときの時計の値を取得して、その値を初期値として、前記前回時刻を取得した時刻に登録し、次に、時刻変更完了時刻を計算し、時刻変更完了時刻に時刻変更完了時刻を登録し、
前記ＯＳが、他のプログラムからＯＳ時刻の取得要求を受け付けたとき、前記時刻通知部は、前記時刻変更量が０より大きいか否かを調べ、時刻変更量の値が０より大きかった場合、現在の時計の時刻の値を取得し、前記時刻変更速度及び時刻変更方向を用いて補正値を計算して更新し、前記求めた現在の時計の時刻の値を前回時刻取得した時刻に格納し、その後、時計の時刻、タイムゾーンの値、補正値の値の和をＯＳ時刻として、ＯＳ時刻の取得要求を行った他のプログラムに応答し、
前記複数の論理計算機の１つの論理計算機のＯＳが時刻指定のジョブを登録することにより時刻変更速度を変更すると、前記時刻変更速度変更通知部は、論理計算機制御機構に対し、時刻変更速度が変更されたことを通知し、この通知を時刻変更速度変更受付部により受け付けた論理計算機制御機構は、時刻変更速度が変更されたことを、自機構内の前記時刻変更速度管理テーブルの時刻変更通知に表示し、時刻指定のジョブを登録したＯＳから受け取った時刻変更完了時刻を、自機構内の時刻変更速度管理テーブルの中の時刻変更完了時刻に格納し、
時刻指定のジョブを登録して、時刻変更速度の変更を行った論理計算機以外の論理計算機のＯＳは、そのＯＳの時刻変更速度変更問い合わせ部が、論理計算機制御機構に対し時刻変更速度が変更されたか否かを問い合わせ、
論理計算機制御機構の時刻変更速度変更受け付け部が、時刻変更管理テーブルの情報から時刻変更速度が変更されていることと、時刻変更完了時刻とを応答し、
問い合わせを行った論理計算機のＯＳは、論理計算機制御機構からの応答により、時刻変更速度が変更されていることと、時刻変更完了時刻とを受け取り、時刻変更速度を再計算し、時計時刻問い合わせ部が、論理計算機制御機構の時刻通知部に時計の値を問い合わせ、論理計算機制御機構からの応答により、時計の値を受けとることを特徴とする時刻管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理システム及び時刻管理方法に係り、特に、計算機システムにおけるＯＳ（オペレーティングシステム）時刻の変更がＯＳの制御下で動作するＯＳ以外の他のプログラムに影響しないようにした情報処理システム及び時刻管理方法に関する。
【背景技術】
【０００２】
一般に、情報処理システムは、そのＯＳ時刻を変更すると時刻の重複や抜けが発生し、重複した時刻に起動すべき事象が二重に起動されてしまったり、抜けてしまった時刻に起動すべき事象が起動されなかったりする現象を発生させる。
【０００３】
前述のような現象の発生を回避することを可能にした従来技術として、例えば、特許文献１等に記載された技術が知られている。この従来技術は、時刻の変更が事象の起動回数に影響しないよう、時刻変更があった時点で事象の登録状況を確認し、抜けの時間帯の事象を直ちに起動し、時刻が重複する時間帯に起動するよう登録されている事象に関しては事象の実行履歴から二重に起動しないように制御するというものである。
【０００４】
前述したような従来技術は、時刻により起動される事象の漏れや二重起動をなくすことができるが、時刻の抜けや重複の発生を避けることができないものである。
【０００５】
また、定期的に時刻を記録するトレースやジャーナル等を扱うプログラムは、データが定期的な時刻順に並んでいることが前提とされているため、情報処理システムのＯＳ時刻の変更により、時刻に抜けや重複が発生するとデータの整合性が取れなくなり、処理動作の保証ができなくなってしまうという問題が生じる。
【０００６】
前述したような問題を解決することができる従来技術として、例えば、特許文献２等に記載された技術が知られている。この従来技術は、計算機システム内部の時計の進み方を速い速度または遅い速度とすることにより、外部の時計の時刻変更を時刻の抜けや重複がなく取り入れることができるようにしたものである。
【特許文献１】特開平１１−１８４５５７号公報
【特許文献２】特開平８−３３４５７７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、前述した従来技術を用いて構成される計算機システムは、何れの場合も、計算機システムの時計が変更されることになるため、時刻が抜けたり重複したりする時間帯の経過時間（時刻の差分）が不正になってしまい、この結果、経過時間を基にした事象を正しい時刻に発生させることができなくなるという問題点を生じさせてしまう。
【０００８】
また、経過時間が不正になると、システムログや時刻指定のジョブ起動イベント等の定期的なタイマで動作する処理の処理間隔が不正になり、計算機システム全体やジョブ管理の動作が保証できなくなるという問題点も生じる。
【０００９】
例えば、計算機システムの運用をサマータイムに対応させる場合に、時刻が１時間戻る日に時刻が重複しないようにするには、１度計算機システムを停止させ、１時間以上経過した後、再び起動する必要がある。しかし、連続運転が必須である計算機システムの場合に対応できない。
【００１０】
本発明の目的は、ＯＳ時刻の変更がＯＳの制御下で動作するユーザアプリケーションプログラム等のＯＳ以外の他のプログラムに影響しないように時刻の抜けや重複を発生させず、時刻の連続性を保証し、かつ、時刻変更が経過時間に影響を及ぼさない（経過時間の進み方の速度が一定）ようにした計算機システム及び時刻管理方法を提供することにある。
【課題を解決するための手段】
【００１１】
本発明によれば前記目的は、時計を持ち、ＯＳが動作する計算機からなる情報処理システムにおいて、前記ＯＳは、時刻に関する情報を格納して管理する時刻管理テーブルと、自ＯＳの制御下で動作するＯＳ以外の他のプログラムにＯＳ時刻を通知する時刻通知部と、ＯＳ時刻を変更する時刻変更部とを備えて構成され、前記時刻管理テーブルは、グリニッジ標準時刻と現地時刻との偏差であるタイムゾーンと、現地時刻とＯＳ時刻との偏差である補正値と、時刻変更要求の量である時刻変更量と、時刻変更要求の方向を示す時刻変更方向と、他のプログラムから時刻取得要求があった時点の時計の値である前回時刻を取得した時刻と、時刻を変更する速度に関する係数である時刻変更速度と、時刻変更要求があった場合に、時刻変更が完了する時刻を示す時刻変更完了時刻との各情報を格納しており、前記ＯＳが、他のプログラムからＯＳ時刻の変更要求を受け付けたとき、前記時刻変更部は、要求された変更する時刻量を前記時刻変更量に登録すると共に、時刻を変更する方向を、時刻変更方向に登録し、時刻変更要求を受け付けたときの時計の値を取得して、その値を初期値として、前記前回時刻を取得した時刻に登録し、次に、時刻変更完了時刻を計算し、時刻変更完了時刻に時刻変更完了時刻を登録し、前記ＯＳが、他のプログラムからＯＳ時刻の取得要求を受け付けたとき、前記時刻通知部は、前記時刻変更量が０より大きいか否かを調べ、時刻変更量の値が０より大きかった場合、現在の時計の時刻の値を取得し、前記時刻変更速度及び時刻変更方向を用いて補正値を計算して更新し、前記求めた現在の時計の時刻の値を前回時刻取得した時刻に格納し、その後、時計の時刻、タイムゾーンの値、補正値の値の和をＯＳ時刻として、ＯＳ時刻の取得要求を行った他のプログラムに応答することにより達成される。
【００１２】
また、前記目的は、時計を持ち、それぞれの中でＯＳが動作する複数の論理計算機と、それらの複数の論理計算機を制御する論理計算機制御機構からなる情報処理システムにおいて、前記論理計算機制御機構は、各論理計算機のＯＳからの時計の時刻問い合わせを受け付けて応答する時刻通知部と、各論理計算機のＯＳからのＯＳ時刻の変更速度の変更通知を受け付ける時刻変更速度変更受付部と、論理計算機制御機構が各論理計算機でのＯＳ時刻変更速度の変更を管理する時刻変更速度管理テーブルとを備え、複数の論理計算機が持つそれぞれのＯＳは、時刻に関する情報を格納して管理する時刻管理テーブルと、自ＯＳの制御下で動作するＯＳ以外の他のプログラムにＯＳ時刻を通知する時刻通知部と、ＯＳ時刻を変更する時刻変更部と、時計の時刻を論理計算機制御機構に問い合わせる時計時刻問い合わせ部と、時刻指定のジョブを登録したことによる時刻変更速度の変更を論理計算機制御機構に通知する時刻変更速度変更通知部と、他の論理計算機で時刻変更速度の変更があったか否かを論理計算機制御機構に問い合わせる時刻変更速度変更問い合わせ部とを備え、前記時刻管理テーブルは、グリニッジ標準時刻と現地時刻との偏差であるタイムゾーンと、現地時刻とＯＳ時刻との偏差である補正値と、時刻変更要求の量である時刻変更量と、時刻変更要求の方向を示す時刻変更方向と、他のプログラムから時刻取得要求があった時点の時計の値である前回時刻を取得した時刻と、時刻を変更する速度に関する係数である時刻変更速度と、時刻変更要求があった場合に、時刻変更が完了する時刻を示す時刻変更完了時刻との各情報を格納しており、前記ＯＳが、他のプログラムからＯＳ時刻の変更要求を受け付けたとき、前記時刻変更部は、要求された変更する時刻量を前記時刻変更量に登録すると共に、時刻を変更する方向を、時刻変更方向に登録し、時刻変更要求を受け付けたときの時計の値を取得して、その値を初期値として、前記前回時刻を取得した時刻に登録し、次に、時刻変更完了時刻を計算し、時刻変更完了時刻に時刻変更完了時刻を登録し、前記ＯＳが、他のプログラムからＯＳ時刻の取得要求を受け付けたとき、前記時刻通知部は、前記時刻変更量が０より大きいか否かを調べ、時刻変更量の値が０より大きかった場合、現在の時計の時刻の値を取得し、前記時刻変更速度及び時刻変更方向を用いて補正値を計算して更新し、前記求めた現在の時計の時刻の値を前回時刻取得した時刻に格納し、その後、時計の時刻、タイムゾーンの値、補正値の値の和をＯＳ時刻として、ＯＳ時刻の取得要求を行った他のプログラムに応答し、前記複数の論理計算機の１つの論理計算機のＯＳが時刻指定のジョブを登録することにより時刻変更速度を変更すると、前記時刻変更速度変更通知部は、論理計算機制御機構に対し、時刻変更速度が変更されたことを通知し、この通知を時刻変更速度変更受付部により受け付けた論理計算機制御機構は、時刻変更速度が変更されたことを、自機構内の前記時刻変更速度管理テーブルの時刻変更通知に表示し、時刻指定のジョブを登録したＯＳから受け取った時刻変更完了時刻を、自機構内の時刻変更速度管理テーブルの中の時刻変更完了時刻に格納し、時刻指定のジョブを登録して、時刻変更速度の変更を行った論理計算機以外の論理計算機のＯＳは、そのＯＳの時刻変更速度変更問い合わせ部が、論理計算機制御機構に対し時刻変更速度が変更されたか否かを問い合わせ、論理計算機制御機構の時刻変更速度変更受け付け部が、時刻変更管理テーブルの情報から時刻変更速度が変更されていることと、時刻変更完了時刻とを応答し、問い合わせを行った論理計算機のＯＳは、論理計算機制御機構からの応答により、時刻変更速度が変更されていることと、時刻変更完了時刻とを受け取り、時刻変更速度を再計算し、時計時刻問い合わせ部が、論理計算機制御機構の時刻通知部に時計の値を問い合わせ、論理計算機制御機構からの応答により、時計の値を受けとることにより達成される。
【発明の効果】
【００１３】
本発明によれば、時計機構を有する計算機システムにおいて、時刻と時間とを独立して管理することが可能となり、計算機システムをサマータイムに対応させる等のためのＯＳ時刻の変更の際、時計を変更せずに、ＯＳが現地時間との差分を管理する補正値のみを変更することとしているため、ＯＳの時刻が変更されても経過時間に影響せず、時間指定の事象を常に正しい時間で起動することができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明による情報処理システム及び時刻管理方法の実施形態を図面により詳細に説明する。
【００１５】
図１は本発明の第１の実施形態による情報処理システムのハードウェア構成を示すブロック図である。本発明の第１の実施形態による情報処理システムは、物理的な計算機１と、時計３と、プロセッサ１１と、メモリ１２とを備えて構成される。そして、情報処理システムは、ハードウェアインタフェース１３により磁気ディスク１５に接続され、ハードウェアインタフェース１４によりネットワーク１６に接続されている。
【００１６】
メモリ１２には、磁気ディスク１５に格納されていてメモリ１２にロードされたＯＳ２が格納され、ＯＳ２は、時刻管理テーブル２１等の後述するテーブル群、時刻通知部２４等の後述する処理プログラム群を有して構成されている。
【００１７】
時刻通知部２４等の処理プログラムは、プロセッサ１１により実行され、時刻通知等の処理を行う。また、同様に、処理プログラムが時計３の値を取得する場合、時計３の値の取得は、プロセッサ１１が、処理プログラムの処理の中で、時計の値を取得する命令を実行することにより行われる。
【００１８】
なお、以下の本発明の第１の実施形態の説明は、説明を簡略化するため、プロセッサ１１が各処理プログラムを実行することを、処理プログラムを主体に記載し、また、時計３の値の取得も処理プログラムを主体に記載することとする。
【００１９】
図２は図１に示した本発明の第１の実施形態におけるハードウェア構成の例を機能構成として示したブロック図である。物理的な計算機１は、計算機１上でＯＳ２が動作しており、また、時計３を備えている。
【００２０】
ＯＳ２は、自ＯＳ２の制御下で動作するユーザアプリケーションプログラム等のＯＳ以外の他のプログラム（以下、単に、他のプログラムという）にＯＳ時刻を通知する時刻通知部２４と、他のプログラムに時計３の値を通知する時計通知部２５と、時間指定のイベント（例えば、５秒後にメッセージを出力等）の登録を行うイベント登録部２６と、ＯＳ時刻を変更する時刻変更部２７と、他のプログラムのジョブを管理するジョブ管理部２８との各機能部を処理プログラムとして有し、メモリ１２上に格納されている。
【００２１】
また、ＯＳ２は、前述の各機能部が使用する、時刻に関する情報を管理するＯＳ内テーブルとして時刻管理テーブル２１、時間指定のイベントのタイマを登録するタイマ登録キュー２２、ジョブを登録するジョブキュー２３を有している。
【００２２】
前述において、時刻通知部２４、時計通知部２５、イベント登録部２６、時刻変更部２７、ジョブ管理部２８等の各プログラムは、これらのプログラムをプロセッサ１１が実行することにより、後述する各処理を行う。また、時刻通知部２４、時計通知部２５、イベント登録部２６、時刻変更部２７、ジョブ管理部２８等は、各処理を行う処理部として集積回路化する等によりハードウェアにより実現することもできる。
【００２３】
図３は時刻管理テーブル２１の詳細な構成を示す図である。時刻管理テーブル２１は、タイムゾーン２１１、補正値２１２、時刻変更量２１３、時刻変更方向２１４、前回時刻を取得した時刻２１５、時刻変更速度２１６、時刻変更完了時刻２１７の各情報を有して構成されている。
【００２４】
前述において、タイムゾーン２１１は、グリニッジ標準時刻と現地時刻（ローカルタイム）との偏差である。補正値２１２は、現地時刻とＯＳ時刻との偏差である。ＯＳ時刻は、時計３とタイムゾーン２１１及び補正値２１２との和で表わされる。
【００２５】
時刻変更量２１３は、時刻変更要求の量である。時刻変更時には、この値を徐々に減らし、減らした分をＯＳ時刻に反映させる。この値が０でない間は、ＯＳの時刻が変更中であることを示す。
【００２６】
時刻変更方向２１４は、時刻変更要求の方向を示しており、方向には「進む」と「戻る」とがある。
【００２７】
前回時刻を取得した時刻２１５は、他のプログラムから時刻取得要求があった時点の時計３の値である。
【００２８】
時刻変更速度２１６は、時刻を変更する速度に関する係数であり、時刻変更の際の時刻計算に使用する。時刻変更方向が「進む」の方向であれば、時刻変更中、係数倍だけ時刻が早く進み、時刻変更方向が「戻る」の方向の場合、時刻変更中、係数分の１だけ時刻が遅れて進むことになる。
【００２９】
例えば、時刻変更速度２１６の値が「２」であり、時刻変更方向２１５が「戻る」の方向であれば、実時間の進み（時計３の進み）１分に対して、ＯＳ時刻の進みは、３０秒になる。
【００３０】
なお、本発明の実施形態は、時刻変更が、計算機システムの運用をサマータイムに対応させるものとしており、時刻変更量として、１時間の進み、遅れが指定されるものとし、また、時刻変更速度としての係数を「２」に設定するものとするが、この値は、「２」に限る必要はない。
【００３１】
時刻変更完了時刻２１７は、時刻変更要求があった場合に、時刻変更が完了する時刻を示す。この値は、時刻変更要求時に時刻変更部２７が、時刻変更速度２１６と、時刻変更量２１３とから式（２）により算出することができる。
【数２】
0004861935.tif 000002
【００３２】
図４はＯＳ２が他のプログラムから時刻取得要求を受け付けたときに、時刻通知部２４がＯＳの時刻を取得する処理動作を説明するフローチャートであり、次に、これについて説明する。
【００３３】
（１）処理が開始されると、時刻通知部２４は、まず、時刻管理テーブルの時刻変更量２１３が０より大きいか否かを調べ、時刻変更量２４の値が０であった場合、時刻変更中でない場合であるため、時計３から時刻を取得する。そして、取得した時計３の値、タイムゾーン２１１の値、補正値２１２の値の和をＯＳ時刻として他のプログラムに応答して、ここでの処理を終了する（ステップＳ４００、Ｓ４０１、Ｓ４０７、Ｓ４０６）。
【００３４】
（２）ステップＳ４０１での調べで、時刻変更量２１３の値が０より大きかった場合、時刻変更処理を行うため、次に、現在の時計３の時刻の値を取得し、補正値２１２を更新する。補正値２１２は、式（１）として示す式により再計算して求めることができる（ステップＳ４０２、Ｓ４０３）。
【数１】
0004861935.tif 000003
【００３５】
（３）次に、ステップＳ４０３の処理で、式（１）により補正値を増加させた、あるいは、減少させた分だけ、時刻管理テーブル２１の補正値２１２から減算し、時刻管理テーブル２１の補正値２１２を更新する（Ｓ４０４）。
【００３６】
（４）ステップＳ４０２で求めた現在の時計３の時刻の値を時刻管理テーブル２１の前回時刻取得した時刻２１５に格納する。その後、時計３の時刻、タイムゾーン２１１の値、補正値２１２の値の和をＯＳ時刻として他のプログラムに応答して、ここでの処理を終了する（ステップＳ４０５、Ｓ４０６）。
【００３７】
図５はＯＳ２が他のプログラムから時間指定のイベント登録の要求を受け付けたときのイベント登録部２６での処理動作を説明するフローチャートであり、次に、これについて説明する。なお、時間指定のイベントとは、登録要求を受けてから要求される所定時間後に起動すべきイベントである。
【００３８】
（１）処理が開始されると、イベント登録部２６は、時計３から現在の時刻の値を取得し、取得した現在の時刻と要求された時間との和を求め、タイマが満了する時刻を計算する（ステップＳ５００〜Ｓ５０２）。
【００３９】
（２）次に、タイマ満了時刻を記録したタイマを、タイマ登録キュー２２に満了時刻の昇順に登録する（ステップＳ５０３）。
【００４０】
（３）その後、タイマ登録キュー２２から先頭のタイマ（次に満了するタイマ）を取り出し、そのタイマの値を時計３に登録して、ここでの処理を終了する（ステップＳ５０４、Ｓ５０５）。
【００４１】
図６はＯＳ２が他のプログラムからＯＳ時刻の変更要求を受け付けたときの時刻変更部２７での処理動作を説明するフローチャートであり、次に、これについて説明する。
【００４２】
（１）処理が開始されると、時刻変更部は、要求された変更する時刻量を時刻管理テーブル２１の時刻変更量２１３に登録し、次に、時刻を変更する方向（「戻る」または「進む」）を、時刻変更方向２１４に登録する（ステップＳ６００〜６０２）。
【００４３】
（２）その後、時刻管理テーブル２１の前回時刻を取得した時刻２１５に初期値を登録する。すなわち、時刻変更要求を受け付けたときの時計３の値を取得して、その値を初期値として、時刻管理テーブル２１の前回時刻を取得した時刻２１５に登録する（ステップ６０３）。
【００４４】
（３）次に、時刻変更完了時刻を計算し、時刻管理テーブル２１の時刻変更完了時刻２１７に時刻変更完了時刻を登録する。時刻変更完了時刻は、式（２）を用いて計算する。例えば、時刻変更速度が２で、時計３が０：００のときに１時間戻す要求を受け付けた場合、０：００＋１：００×（２／（２−１））＝２：００であり、２：００に時刻変更が完了すると計算できるので、時刻管理テーブル２１の時刻変更完了時刻２１７に２：００を登録する（ステップ６０４）。
【００４５】
実際のＯＳの時刻変更は、前述の処理の後に、他のプログラムからＯＳ時刻取得要求があったときに実行される図４に示して説明した時刻取得の処理の中で行われる。すなわち、時刻変更部２７がＯＳ時刻の変更の処理を終了した後、他のプログラムがＯＳ時刻の取得を要求する度に、時刻通知部２４が図４で示した処理により時刻を変更する。１回の時刻取得要求では時刻変更量のうち一部のみをＯＳ時刻の変更として反映するため、ＯＳは時刻取得要求を受け付ける度に、徐々にＯＳ時刻を変更する。
【００４６】
図７は図４に示した処理で他のプログラムからの時刻取得により、時刻が戻る流れの一例を説明する図である。図７において、タイムゾーンは９時間、時刻変更前の補正値は１時間である。すなわち、時刻変更前にＯＳ時刻は、タイムゾーン９時間の現地時間より１時間進んでいる。また、時刻変更速度は初期値２が登録されている。
【００４７】
図７に示す例は、前述のような条件で、ＯＳ時刻１０：００（時計時刻０：００）に、ＯＳが、ＯＳ時刻を１時間戻す要求を受け付けたとしている。
【００４８】
その後、時計時刻０：３０に他のプログラムから１回目の時刻取得要求１を受け付けたとしている。このとき、図４に示して説明した時刻取得処理で、補正値を再計算する。補正値は、式（１）と時刻変更方向「戻る」、前回取得時刻２１５と時刻変更速度２１６から、１：００−（０：３０−０：００）／２＝０：４５となる。
【００４９】
前述の新たな補正値と、タイムゾーン９時間から、ＯＳが応答する時刻は、１０：１５となる。実時間（時計３の進み）は３０分経過しているが、ＯＳ時刻は、１５分しか進んでいないことになり、相対的に時刻が１５分戻ったことになる。ＯＳが受け付けた時刻変更要求は１時間であるが、１回目のＯＳ時刻取得要求の処理で、図示例では１５分時刻が戻されたことになる。
【００５０】
その後、２回目、３回目の時刻取得２、３で同様に補正値の計算を実施し、徐々にＯＳ時刻が変更される。結果的にＯＳ時刻が１時間戻るまで補正値が徐々に小さくなっていくことになる。
【００５１】
図８はＯＳ２が他のプログラムから時刻指定のジョブ起動の登録要求を受け付けたときのジョブ管理部２８での処理動作を説明するフローチャートであり、次に、これについて説明する。
【００５２】
（１）処理が開始されると、ジョブ管理部２８は、ジョブ起動の登録要求の中で指定された時刻が時刻変更中か否かを調べる。このため、まず、指定された時刻から時刻管理テーブル２１のタイムゾーン２１１と補正値２１２とを減算し、指定された時刻を時計３での値に変換する。このとき、時刻管理テーブル２１の時刻変更量２１３が０より大きく、時刻変更完了時刻２１７より前述で求めた時計３における時刻が前の時刻であれば、指定された時刻は時刻変更中であると判断する。そして、指定された時刻が時刻変更中でなければ、指定された時刻をジョブ登録キュー２４に登録して処理を終了する（ステップ８００、８０１、８０４）。
【００５３】
（２）ステップ８０１の調べで、指定された時刻が時刻変更中であった場合、時刻変更の速度を変更し、指定された時刻までに時刻変更が完了するようにする。このため、時刻変更速度を計算して、計算した速度を時刻管理テーブル２１の時刻変更速度２１６に登録する。時刻変更速度は、式（２）を用いて計算することができる（ステップ８０２）。
【００５４】
（３）次に、Ｓ８０１の処理で求めた指定された時刻の時計３での値を、時刻管理テーブル２１の時刻変更完了時刻２１７に登録し、その後、その時刻をジョブ登録キュー２４に登録して処理を終了する（ステップ８０３、８０４）。
【００５５】
図９は本発明を論理計算機システムに適用した本発明の第２の実施形態による情報処理システムの機能構成を示すブロック図である。本発明の第２の実施形態は、図１に示したと同様な物理的な計算機上に、それぞれでＯＳが動作する論理的な計算機である複数の論理計算機と、各論理計算機を制御する論理計算機制御機構とからなる論理計算機システムである。そして、複数の論理計算機のそれぞれは、前述で説明した本発明の第１の実施形態による情報処理システムと同一に構成されている。
【００５６】
図９に示すように、本発明の第２の実施形態である論理計算機システムは、物理的な計算機９上に複数の論理的な計算機１７を実現し、それらを制御する論理計算機制御機構１０が動作するように構成され、また、時計３を備えている。
【００５７】
論理計算機制御機構１０は、複数の論理計算機１７を実現しており、各論理計算機上でＯＳ１８が動作する。ＯＳ１８は、論理計算機毎に１つずつ動作する。
【００５８】
論理計算機制御機構１０には、各論理計算機１７上のＯＳ１８からの時計３の時刻問い合わせを受け付けて応答する時刻通知部１０２と、各論理計算機１７上のＯＳ１８からのＯＳ時刻の変更速度の変更通知を受け付ける時刻変更速度変更受付部１０３と、論理計算機制御機構１０が各論理計算機でのＯＳ時刻変更速度の変更を管理する時刻変更速度管理テーブル１０１とが備えられている。
【００５９】
複数の論理計算機１７が持つそれぞれのＯＳ１８には、時計３の時刻を論理計算機制御機構１０に問い合わせる時計時刻問い合わせ部１２１と、第１の実施形態で説明した前述の時刻指定のジョブを登録したことによる時刻変更速度の変更を論理計算機制御機構１０に通知する時刻変更速度変更通知部１２２と、他の論理計算機で時刻変更速度の変更があったか否かを論理計算機制御機構１０に問い合わせる時刻変更速度変更問い合わせ部１２３とが備えられている。
【００６０】
図１０は時刻変更速度管理テーブル１０１の詳細な構成を示す図である。時刻変更速度管理テーブル１０１は、メモリ１２上に格納されている。
【００６１】
時刻変更速度管理テーブル１０１は、時刻変更完了時刻１０１１と、複数の論理計算機のそれぞれのＯＳ１８でＯＳ時刻変更速度が変更されたことを示す時刻変更通知フラグ１０１２、１０１３、……とを有して構成されている。
【００６２】
時刻変更完了時刻１０１１は、ＯＳ１８の時刻変更が完了する時刻であり、この時刻は、時計３の値が格納される。ＯＳ１８でのタイムゾーンや補正値は含まない。
【００６３】
時刻変更通知フラグ１０１２、１０１３、……は、ＯＳ毎に存在し、図１０では、ＯＳ１用、ＯＳ２用、……、ＯＳｎ用として示しており、論理計算機制御機構１０が生成する論理計算機１７の数分だけ存在する。
【００６４】
図１１は本発明の第２の実施形態において、ある論理計算機上のＯＳ１８での時刻変更速度の変更を、論理計算機制御機構１０を通じて他の論理計算機１７上のＯＳに伝えて、各ＯＳの時刻変更終了時刻を一致させる動作を説明するフローチャートであり、次に、これについて説明する。図１１において、処理Ｓ１１１は、ある論理計算機１７上のあるＯＳ１がＯＳ時刻変更中に時刻指定のジョブを登録するときの処理フローであり、処理Ｓ１１２は、論理計算機制御機構１０が、ＯＳ１により時刻変更速度の変更が通知されてから他のＯＳ２に時刻変更速度の変更を伝えるときの処理フローであり、また、処理Ｓ１１３は、他の論理計算機１７が、時刻変更速度を変更された時刻変更速度に合わせ、時刻変更完了時刻を他のＯＳと一致させるときの処理フローである。
【００６５】
（１）まず、処理フローＳ１１１において、ある論理計算機のＯＳ１が時刻指定のジョブを登録する。このジョブの登録は、図８に示して説明した処理フローに従って実行され、時刻変更速度が変更される（ステップＳ１１１１）。
【００６６】
（２）次に、時刻指定のジョブを登録したある論理計算機は、時刻変更速度変更通知部１２１が論理計算機制御機構１０に対し、時刻変更速度が変更されたことを通知して、時刻指定のジョブを登録した論理計算機での処理を終了する（ステップＳ１１１２）。
【００６７】
（３）論理計算機制御機構１０は、時刻指定のジョブを登録したある論理計算機のＯＳ１から時刻変更速度が変更されたことの通知があると、時刻変更速度変更受付部１０３が、時刻指定起動ジョブの登録により、時刻変更速度の変更がＯＳ１より通知されたことを受け付ける。このとき、ＯＳ１から時刻変更終了時刻をも受け取る。この時刻は、時計３での時刻であり、ＯＳ１のタイムゾーンは影響しない（ステップＳ１１２１）。
【００６８】
（４）次に、論理計算機制御機構１０は、時刻変更速度が変更されたことを、自機構内の時刻変更速度管理テーブル１０１の時刻変更通知フラグ１０１２、１０１３、……に表示する。この表示は、通知元のＯＳ以外のＯＳ用フラグに対して行う。例えば、計算機９上で論理計算機が２台実現され、ＯＳ１とＯＳ２とが動作しているものとし、ＯＳ１の時刻変更速度が変更された場合、ＯＳ２用の速度変更通知フラグに対してのみに表示を行う（ステップＳ１１２２）。
【００６９】
（５）次に、論理計算機制御機構１０は、ＯＳ１から受け取った時刻変更完了時刻を、自機構１０内の時刻変更速度管理テーブル１０１の中の時刻変更完了時刻１０１１に格納する。論理計算機制御機構１０は、この状態で、他のＯＳからの時刻変更速度変更の問い合わせを待つ（ステップＳ１１２３）。
【００７０】
（６）時刻指定のジョブを登録して、時刻変更速度の変更を行った論理計算機以外の論理計算機のＯＳ（ここではＯＳ２とする）は、予め定めた一定時間毎に起動される処理フローＳ１１３の処理を開始し、まず、ＯＳ２の時刻変更速度変更問い合わせ部１２３が、論理計算機制御機構１０に対し時刻変更速度が変更されたか否かを問い合わせる（ステップＳ１１３１）。
【００７１】
（７）論理計算機制御機構１０の時刻変更速度変更受け付け部１０３は、ＯＳ２からの問い合わせを受け付け、時刻変更管理テーブル１０１の情報から時刻変更速度が変更されていることと、時刻変更完了時刻とを応答する（ステップＳ１１２４、Ｓ１１２５）。
【００７２】
（８）ＯＳ２は、論理計算機制御機構１０からの応答により、時刻変更速度が変更されていることと、時刻変更完了時刻とを受け取り、時刻変更速度をＯＳ２の時刻管理テーブル（図３の２１）の中の時刻変更完了時刻２１７に登録する。また、時刻変更速度を再計算し、時刻変更速度２１６に登録する（ステップＳ１１３２、Ｓ１１３３）。
【００７３】
（９）その後、ＯＳ２の時計時刻問い合わせ部１２１は、論理計算機制御機構１０の時刻通知部１０２に時計３の値を問い合わせ、論理計算機制御機構１０からの応答により、時計３の値を受け付けて、時計時刻要求元にその値を応答する（ステップＳ１１３４、Ｓ１１２６、Ｓ１１２７、Ｓ１１３５）。
【００７４】
前述した処理の結果、ＯＳ１の時刻指定ジョブの登録による時刻変更速度の変更が、論理計算機制御機構１０を介して他のＯＳ２に伝わり、時刻変更速度が調整され、時刻変更完了時刻を各ＯＳで一致させることができる。
【００７５】
前述した本発明の実施形態によれば、時計機構を有する計算機システムにおいて、時刻と時間とを独立して管理することが可能となり、計算機システムをサマータイムに対応させる等のためＯＳ時刻の変更の際、時計を変更せずに、ＯＳが現地時間との差分を管理する補正値のみを変更することとしているため、ＯＳの時刻が変更されても経過時間に影響せず、時間指定の事象を常に正しい時間で起動することができる。
【００７６】
また、本発明の実施形態によれば、ＯＳ時刻の変更の際、時刻変更差分を補正値に少しずつ反映させることにより、また、他のプログラムからの時刻取得要求時に反映することにより、時刻の順序性を保証することができ、他のプログラムに時刻の抜けや重複を発生させないようにすることができる。
【００７７】
例えば、計算機システムの運用をサマータイムに対応させる場合、本発明の実施形態によれば、時刻が戻る日に１時間停止する必要をなくすことができる。そして、１時間戻る際に、本発明の実施形態によって時刻を変更することにより、ＯＳ時刻の重複がなくなるため、他のプログラムの誤動作を防ぐことができる。また、この間、計算機システム内における時間の流れの速度にも変化はなく、他のプログラムへの時刻変更の影響をなくすことができる。
【００７８】
また、本発明の実施形態によれば、ＯＳ時刻変更中の時刻を指定した事象が発生した場合に、その時刻までに時刻変更が終了するようにＯＳが時刻変更速度を調整しているため、時刻変更中の時刻であっても、時刻指定の事象を正しい時刻に起動することができる。
【００７９】
さらに、本発明の実施形態によれば、前述の時刻変更中、ＯＳ時刻と外部システム（計算機システムに限らない）の時刻とが、時刻変更が完了するまでは一致していないが、論理計算機システムにおいて、複数の論理計算機でＯＳの時刻が変更され、さらにそのうちの１つで前述のような時刻指定事象が登録されたことにより時刻変更速度が変更された場合、時刻変更が終了する時刻を論理計算機制御機構、及び、他の論理計算機上のＯＳが他論理計算機に反映させることで、時刻変更が終了する時刻を各論理計算機で一致させ、ＯＳ時刻と外部システムの時刻とのずれが解消する時刻を、論理計算機内の各ＯＳ間で一致させることができる。
【図面の簡単な説明】
【００８０】
【図１】本発明の第１の実施形態による情報処理システムのハードウェア構成を示すブロック図である。
【図２】図１に示した本発明の第１の実施形態におけるハードウェア構成の例を機能構成として示したブロック図である。
【図３】時刻管理テーブルの詳細な構成を示す図である。
【図４】ＯＳが他のプログラムから時刻取得要求を受け付けたときに、時刻通知部がＯＳの時刻を取得する処理動作を説明するフローチャートである。
【図５】ＯＳが他のプログラムから時間指定のイベント登録の要求を受け付けたときのイベント登録部での処理動作を説明するフローチャートである。
【図６】ＯＳが他のプログラムからＯＳ時刻の変更要求を受け付けたときの時刻変更部での処理動作を説明するフローチャートである。
【図７】図４に示した処理で他のプログラムからの時刻取得により、時刻が戻る流れの一例を説明する図である。
【図８】ＯＳが他のプログラムから時刻指定のジョブ起動の登録要求を受け付けたときのジョブ管理部での処理動作を説明するフローチャートである。
【図９】本発明を論理計算機システムに適用した本発明の第２の実施形態による情報処理システムの機能構成を示すブロック図である。
【図１０】時刻変更速度管理テーブルの詳細な構成を示す図である。
【図１１】本発明の第２の実施形態において、ある論理計算機上のＯＳでの時刻変更速度の変更を、論理計算機制御機構を通じて他の論理計算機上のＯＳに伝えて、各ＯＳの時刻変更終了時刻を一致させる動作を説明するフローチャートである。
【符号の説明】
【００８１】
１、９  物理的な計算機
２、１８  ＯＳ
３  時計
１０  論理計算機制御機構
１１  プロセッサ
１２  メモリ
１３、１４  インタフェース
１５  ディスク
１６  ネットワーク
１７  論理計算機
２１  時刻管理テーブル
２２  タイマ登録キュー
２３  ジョブ登録キュー
２４  時刻通知部
２５  時計通知部
２６  イベント登録部
２７  時刻変更部
２８  ジョブ管理部
１０１  時刻変更速度管理テーブル
１０２  時刻通知部
１０３  時刻変更速度変更受付部
１２１  時計時刻問い合わせ部
１２２  時刻変更速度変更通知部
１２３  時刻変更速度問い合わせ部
【図１】
0004861935.tif 000004
【図２】
0004861935.tif 000005
【図３】
0004861935.tif 000006
【図４】
0004861935.tif 000007
【図５】
0004861935.tif 000008
【図６】
0004861935.tif 000009
【図７】
0004861935.tif 000010
【図８】
0004861935.tif 000011
【図９】
0004861935.tif 000012
【図１０】
0004861935.tif 000013
【図１１】
0004861935.tif 000014