標準時刻と同期がとられた内部クロックと、前記内部クロックが保持する時刻を調整する演算部と、OS上の時刻を調整する際に用いられる情報を記憶する記憶部と、を備え、前記記憶部は、記憶装置にインストールされている1以上のOSを個別に識別するOS識別情報と、前記内部クロックが保持する時刻と前記OS上の時刻との間の時差を、前記OS識別情報が識別する前記OS毎に記述した時差情報と、を格納しており、前記演算部は、前記記憶装置にインストールされているOSを読み出して起動し、起動したOSに対応する前記時差を前記時差情報から取得し、前記内部クロックが保持している時刻にその時差を加算した時刻を、起動したOSの時刻としてセットすることを特徴とする計算機。前記演算部は、前記記憶装置から読み出して起動した前記OSを終了する際に、前記OS上の時刻と前記内部クロックが保持している時刻との間の時差を、前記時差情報内に記録することを特徴とする請求項1記載の計算機。前記記憶装置は、前記計算機に内蔵されており、前記OS識別情報は、前記記憶装置上における各前記OSの格納先アドレスを記述しており、前記演算部は、前記記憶装置にインストールされている前記OSを読み出す際に、前記格納先アドレスに基づき前記OSを識別し、そのOSに対応する前記時差を前記時差情報から取得することを特徴とする請求項1記載の計算機。前記記憶装置は、複数の計算機が前記OSを読み出すことができるように構成されており、前記OS識別情報は、前記記憶装置の外部から認識することのできる各前記OSの格納先アドレスを記述しており、前記演算部は、前記記憶装置にインストールされている前記OSを読み出す際に、前記格納先アドレスに基づき前記OSを識別し、そのOSに対応する前記時差を前記時差情報から取得することを特徴とする請求項1記載の計算機。前記時差情報を他の計算機に対して送信する送信部を備えたことを特徴とする請求項4記載の計算機。前記時差情報を他の計算機から受信する受信部を備えたことを特徴とする請求項4記載の計算機。内蔵電池または前記計算機の電源から電力供給を受けて時刻を計時するリアルタイムクロックを備え、前記演算部は、前記記憶装置にインストールされている前記OSを読み出して起動する際に、そのOSに対応する前記時差を前記内部クロックの時刻に加算した時刻を前記リアルタイムクロックの時刻としてセットした後、前記リアルタイムクロックから時刻を取得して前記OSの時刻としてセットし、前記リアルタイムクロックは、前記OSが終了した後は前記内蔵電池から電力供給を受けて計時を継続することを特徴とする請求項1記載の計算機。計算機の時刻を管理する方法であって、前記計算機は、標準時刻と同期がとられた内部クロックと、前記内部クロックが保持する時刻を調整する演算部と、OS上の時刻を調整する際に用いられる情報を記憶する記憶部と、を備え、前記記憶部は、記憶装置にインストールされている1以上のOSを個別に識別するOS識別情報と、前記内部クロックが保持する時刻と前記OS上の時刻との間の時差を、前記OS識別情報が識別する前記OS毎に記述した時差情報と、を格納しており、前記記憶装置にインストールされているOSを読み出して起動するステップと、起動したOSに対応する前記時差を前記時差情報から取得し、前記内部クロックが保持している時刻にその時差を加算した時刻を、起動したOSの時刻としてセットするステップと、を有することを特徴とする計算機時刻管理方法。計算機がマルチブート構成を採用している場合、あるOS上のタイムゾーンと別のOS上のタイムゾーンが異なる可能性がある。このとき、計算機は各OSをシャットダウンときにそれぞれ異なる時刻をRTCにセットすることになるので、OSを起動する毎に異なるタイムゾーン上の時刻をRTCから読み出してしまい、時刻を正確に管理することが難しくなる。外部記憶装置にOSをインストールして複数の計算機から共用する場合、同じOSを起動したとしても、各計算機が備えているRTCに記録されている時刻が異なっていると、OSが同じであるにもかかわらず異なる時刻を用いてしまう。また、特許文献1のように待機サーバへ処理を引き継ぐ場合、障害が発生したサーバが備えるRTCに記録されている時刻と、待機サーバが備えるRTCに記録されている時刻とが異なり、引き継ぎがうまくいかない可能性がある。本発明は、上記のような課題を解決するためになされたものであり、複数のOSが用いられる場合でも、誤った時刻をOS上で用いないようにするための技術を提供することを目的とする。本発明に係る計算機は、標準時刻と同期が取られた内部クロック上の時刻とOS上の時刻との間の時差を時差情報として保持しておく。計算機は、OSを起動する際に、そのOSに対応する時差を内部クロック上の時刻に加算した時刻を、OS上の時刻としてセットする。本発明に係る計算機によれば、標準時刻を基準としたOS間の時差を加味した上でOS上の時刻をセットするので、複数のOSが用いられる場合でも、各OS上で正しい時刻を用いることができる。<実施の形態1>図1は、本発明の実施形態1に係る計算機100の構成図である。計算機100周辺の装置も併せて示した。計算機100は、外部に接続されている記憶装置211、212、213のいずれかにインストールされているOSを、自己のOSとして用いる。計算機100は複数台存在する場合もある。各計算機100は、LANLocalAreaNetwork300を介して接続される。計算機100は、CPUボード110、フラッシュメモリ120、SVPサービスプロセッサ130を備える。CPUボード110は、CPU111、メモリ112、IOHub113、HBAホストバスアダプタ114、IOControllerHub115、BMCBaseManagementController116を搭載している。CPU111は、計算機100のOSを実行する。また、後述するRTC1151とUTC1161を用いて、OS上の時刻を調整する。以下では記載の便宜上、OSや各プログラムコードなどのソフトウェアを動作主体として説明する場合があるが、実際にこれらソフトウェアを実行するのはCPU111などの演算装置であることを付言しておく。メモリ112は、CPU111が動作する際に一時的に用いるデータなどを保持する記憶装置である。IOHub113は、CPU111とその他の機能部を接続する。HBA114は、後述するファイバチャネルファブリック200と計算機100を接続するインターフェースである。IOControllerHub115は、異なる接続規格で接続されるデバイス同士を相互に接続する装置である。ここではフラッシュメモリ120を接続した例を示した。フラッシュメモリ120が格納している情報については後述する。IOControllerHub115は、RTC1151を備え、計算機100のOSに時刻を提供する。BMC116は、計算機100を外部から管理するための処理を実行する装置である。BMC116は、RTC1161を備える。BMC116は、RTC1161が保持する時刻を、UTCなどの標準時刻に同期させる。記載の便宜上、以下ではUTC1161と表記する。SVP130は、計算機100の外部から計算機を管理するための操作を受け付けるインターフェースとしての役割を有する。SVP130は、LAN300を介して管理サーバ310と接続され、管理サーバ310から管理操作を受け取ってBMC116に通知する。BMC116は、その通知にしたがって計算機100の管理処理を実行する。ファイバチャネルファブリック200は、記憶装置211~213を接続するネットワークである。記憶装置211~213は、各計算機100からアクセスすることができるように構成されている。記憶装置211~213には、それぞれ異なるOSがインストールされている。各OSのタイムゾーンは同一である場合もあるし、それぞれタイムゾーンが異なる場合もある。各計算機100は、記憶装置211~213にインストールされているOSを読み出して起動する。ここでは3台の記憶装置211~213を例示したが、記憶装置の台数は任意でよいし、いずれか1以上の記憶装置を計算機100に内蔵してもよい。また、1台の記憶装置に複数のOSをインストールしてもよい。本実施形態1における内部クロックは、UTC1161が相当する。演算部は、CPU111が相当する。記憶部は、フラッシュメモリ120が相当する。記憶装置は、記憶装置211~213が相当する。図2は、フラッシュメモリ120が格納している情報を示す図である。フラッシュメモリ120は、BIOSBasicInput/OutputSystemコード121、BIOS変数データ122、時差テーブル123を格納している。BIOSコード121は、計算機100のBIOS機能を実装したプログラムコード群であり、プラットフォーム初期化コード1211、ランタイムサービスコード1212、OSブート処理コード1213、ブートメニューコード1214を含む。プラットフォーム初期化コード1211は、後述の図6におけるステップS1101で説明する、計算機100を初期化する処理を記述したプログラムコードである。ランタイムサービスコード1212は、後述の図5で説明する処理を記述したプログラムコードである。OSブート処理コード1213は、後述の図6で説明する処理全体を記述したプログラムコードである。ブートメニューコード1214は、計算機100がいずれのOSを起動すべきかをユーザに選択させるメニュー画面BIOSメニューを画面表示するための処理を記述したプログラムコードである。BIOS変数データ122は、BIOS機能上で用いられる各種変数を保持するデータであり、BootCurrentデータ1221、BootNextデータ1222、OSブートリスト1223を含む。OSブートリスト1223は、計算機100が起動することができるOSのリストを保持するデータである。詳細は後述の図3で改めて説明する。BootCurrentデータ1221は、OSブートリスト1223が保持しているレコードのうち、現在起動しているOSに対応するレコード番号を保持する。BootNextデータ1222は、OSブートリスト1223が保持しているレコードのうち、ユーザがBIOSメニュー上で起動すべきOSを指定しなかった場合に計算機100が起動すべきOSに対応するレコード番号を保持する。時差テーブル123は、OSブートリスト1223が保持しているOSリスト内の各OS上で用いられる時刻と、UTC1161が保持している標準時刻との間の時差を、OS毎に記述したデータである。詳細は後述の図4で改めて説明する。本実施形態1におけるOS識別情報は、OSブートリスト1223が相当する。時差情報は、時差テーブル123が相当する。図3は、OSブートリスト1223の構成とデータ例を示す図である。OSブートリスト1223は、レコード番号フィールド12231、OS名フィールド12232、デバイスパスフィールド12233、追加データフィールド12234を有する。レコード番号フィールド12231は、OSブートリスト1223が保持する個々のレコードを識別するための番号を保持する。OS名フィールド12232は、計算機100が記憶装置から読み出して起動することができるOSの名称を記述している。追加データフィールド12234は、任意の予備的なデータを保持するためのフィールドであり、OSが自由に使用することができる。デバイスパスフィールド12233は、計算機100が読み出すOSが格納されている記憶装置上のアドレスを記述している。本フィールドが記述しているアドレスは、OSがインストールされている記憶装置が計算機100に内蔵されている場合であれば、その記憶装置上のアドレスである。OSがインストールされている記憶装置が、記憶装置211~213のように計算機100の外部に接続されている場合であれば、本フィールドが記述しているアドレスは、各記憶装置のネットワーク上のアドレスを含む。例えばファイバチャネルファブリック200上のWWNWorldWideNameとLU番号LogicalUnitNumber:論理ユニット番号などを本フィールドに記述するようにしてもよい。1台の記憶装置に複数のOSがインストールされている場合でも、WWNとLUの組み合わせにより、OSの格納先アドレスを特定することができる。図3に示すデータ例によれば、計算機100は、それぞれパスAパスBパスCにインストールされている3つのOSOSAOSBOSCのいずれかを選択して起動することができることが分かる。図4は、時差テーブル123の構成とデータ例を示す図である。時差テーブル123は、レコード番号フィールド1231、デバイスパスフィールド1232、時差フィールド1233を有する。レコード番号フィールド1231は、時差テーブル123が保持する個々のレコードを識別するための番号を保持する。デバイスパスフィールド1232は、計算機100が読み出すOSが格納されている記憶装置上のアドレスを記述するフィールドであり、OSブートリスト1223のデバイスパスフィールド12233に対応する。時差フィールド1233は、デバイスパスフィールド1232に記述されているアドレスにインストールされているOS上の時刻と、UTCなどの標準時刻本実施形態1ではUTC1161の時刻との間の時差を保持する。図4のデータ例によれば、パスAにインストールされているOSA上の時刻はUTC1161の時刻と一致していることが分かる。同様に、パスBにインストールされているOSB上の時刻はUTC1161よりも9時間進んでいることがわかる。以上、計算機100およびその周辺機器の構成について説明した。次に、OS間の時刻がずれていることによって生じる不都合について説明する。OSAはシャットダウンするときにRTC1151にUTCをセットするように設定されており、OSBはシャットダウンするときにRTC1151に日本標準時をセットするように設定されていると仮定する。OSBは日本標準時を用いるように設定されているので、起動するときにRTC1511から時刻を取得すると、その時刻は日本標準時であると想定する。そのため、OSAがRTC1511にUTCを記録してシャットダウンした後にOSBを起動すると、UTC上の時刻を誤って日本標準時として取り扱ってしまう。そこで本実施形態1では、RTC1151が保持している時刻をそのままOS上の時刻としてセットするのではなく、OS上の時刻とUTCの時差を時差テーブル123上で管理しておくことにより、いずれのOS上でもUTCからの時差を用いることにした。UTCはどのOS上でも共通であるため、UTCからの時差と各OSの対応関係を正確に管理しておけば、どのOS上でも正確な時刻を提供することができる。図5は、計算機100のBIOS機能が提供する、時刻設定ランタイムサービスの処理フローを示す図である。時刻設定ランタイムサービスは、RTC1151に時刻を記録する機能である。RTC1151は計算機100の内部的な構成要素であるため、RTC1151に対する操作は一般的にBIOS機能の配下で実施される。OSは、BIOSが提供する時刻設定ランタイムサービスを呼び出すことにより、シャットダウン時にRTC1151に時刻を記録する。以下、図5の各ステップについて説明する。図5:ステップS500計算機100のOSは、シャットダウンするときに本処理フローを起動する。ランタイムサービスコード1212は、以下のステップS501~S505を実行する。OSは、本処理フローを起動するとき、RTC1151に記録する時刻を指定してランタイムサービスコード1212に引き渡す。図5:ステップS501ランタイムサービスコード1212は、フラッシュメモリ120からBootCurrentデータ1221の値を読み出す。このときのBootCurrentデータ1221の値は、OSブートリスト1223が保持しているレコードのうち、現在計算機100が実行しているOSに対応するレコード番号フィールド12231の値である。図5:ステップS502ランタイムサービスコード1212は、ステップS501で取得したBootCurrentデータ1221の値をキーにして、OSブートリスト1223の対応するレコードからデバイスパスフィールド12233の値を取得する。この値は、現在計算機100が実行しているOSがインストールされている記憶装置211~213いずれかの格納先アドレスである。図5:ステップS503ランタイムサービスコード1212は、BMC116からUTC1161の時刻を取得する。図5:ステップS504ランタイムサービスコード1212は、ステップS500でOSから指定された時刻とUTC1161の時刻との間の時差を計算し、時差テーブル123のうち現在実行しているOSに対応する時差フィールド1233に格納する。図5:ステップS505ランタイムサービスコード1212は、ステップS500でOSから指定された時刻をRTC1151にセットする。図6は、計算機100が起動してからOSローダに処理が移行するまでの処理フローである。以下、図6の各ステップについて説明する。図6:ステップS601OSブート処理コード1213は、プラットフォーム初期化コード1211を起動する。プラットフォーム初期化コード1211は、CPUボード110に搭載されている各構成要素を初期化する。図6:ステップS602計算機100のユーザが自動ブートを選択した場合はステップS604へ進み、手動ブートを選択した場合はステップS603へ進む。図6:ステップS603OSブート処理コード1213は、ブートメニューコード1214を起動する。ブートメニューコード1214は、OSブートメニュー画面を画面表示する。ユーザは、いずれのOSを起動するかをOSブートメニュー画面上で手動選択する。図6:ステップS604OSブート処理コード1213は、フラッシュメモリ120からBootNextデータ1222の値を読み出す。このときのBootNextデータ1222の値は、OSブートリスト1223が保持しているレコードのうち、計算機100が自動起動すべきOSに対応するレコード番号フィールド12231の値である。図6:ステップS605OSブート処理コード1213は、OSブートリスト1223を読み出し、ステップS603またはステップS604で起動するように指定されたOSに対応するレコードを取得する。図6:ステップS606OSブート処理コード1213は、ステップS605でOSブートリスト1223から取得したレコードのデバイスパスフィールド12233の値をキーにして、時差データ123が保持しているレコードのうちデバイスパスフィールド1232に同じ値が格納されているものを取得する。該当するレコードが見つかれば、時差フィールド1233の値を取得する。該当するレコードが見つからなかった場合は、時差フィールド1233の値が0であるとみなす。図6:ステップS607OSブート処理コード1213は、BMC116からUTC1161の時刻を取得する。図6:ステップS608OSブート処理コード1213は、ステップS607で取得したUTC1161の時刻に、ステップS606で取得した時差フィールド1233の値を加算し、加算後の時刻をRTC1151の時刻としてセットする。図6:ステップS609OSブート処理コード1213は、ステップS603またはステップS604で起動するように指定されたOSに対応する、レコード番号フィールド12231の値を、BootCurrentデータ1221に記録する。図6:ステップS610OSブート処理コード1213は、OSローダをメモリ112上に読み出す。OSローダは、OSを記憶装置から読み出して起動するプログラムである。OSローダは、OSがインストールされている記憶装置から取得することができる。図6:ステップS611OSブート処理コード1213は、メモリ112上に読み出したOSローダに制御を引き渡す。以後、OSローダは、ステップS603またはステップS604で起動するように指定されたOSを起動する。OSは、RTC1151から時刻を取得してOS上の時刻として用いる。RTC1151の時刻は、ステップS608においてUTC時差にセットされているので、当該OSのタイムゾーンに合致した時刻をOS時刻として用いることができる。<実施の形態1:まとめ>以上のように、本実施形態1に係る計算機100は、OS上の時刻とUTC1161との間の時差を時差テーブル123上に保持しておく。計算機100は、OSを起動する際に、そのOSに対応する時差を時差テーブル123から取得し、これをUTC1161の時刻に加算して得た時刻を、OS上の時刻として用いる。これにより、同一のOSを複数の計算機が利用する場合でも、RTC1151が保持している時刻の差異によらず、OSのタイムゾーンに合致した時刻をOS時刻として用いることができる。同様に、同一の計算機100上で複数のOSを用いる場合でも、各OSのタイムゾーンに合致した時刻をOS時刻として用いることができる。また、本実施形態1に係る計算機100は、OSをシャットダウンするとき、OS上の時刻とUTC1161との間の時差を、時差テーブル123に記録する。これにより、新たなOSが追加された場合でも、そのOSを以後用いる際に、OSのタイムゾーンに合致した時刻をOS時刻として用いることができる。<実施の形態2>実施形態1において、計算機100が複数存在する場合、いずれかの計算機100を待機系計算機としてスタンバイさせておき、他の計算機100に障害が発生した時点で待機系計算機に処理を引き継ぐことが考えられる。ここで、稼動系計算機が使用するOSAはシャットダウンするときにRTC1151にUTCを記録するように設定されており、待機系計算機が使用するOSBはシャットダウンするときにRTC1151に日本標準時を記録するように設定されていると仮定する。各計算機が使用するOS上の時刻は異なるので、実施形態1で述べたものと同様の課題が生じる。そこで、実施形態1で説明した時刻管理手法を用いて、稼動系計算機から待機系計算機へOS時刻を引き継ぐことができる。これにより、特許文献1に記載されているようなシステム構成の下における時刻不一致に係る課題を解決することができる。ただし、OSブートリスト1223と時差テーブル123それぞれの内容は、稼動系計算機と待機系計算機の間で共有しておく必要がある。例えばBIOSメニュー画面上などで各計算機100に同じ内容のOSブートリスト1223と時差テーブル123をそれぞれ個別にセットしてもよいが、作業上の手間がかかる。そこで、いずれかの計算機100がマスタとなって、他の計算機100にOSブートリスト1223と時差テーブル123を配信するようにするとよい。マスタとなる計算機100は、SVP130およびLAN300などを介して他の計算機にOSブートリスト1223と時差テーブル123を送信する。他の計算機100は、LAN300およびSVP130を介してこれを受信し、フラッシュメモリ120に格納する。これにより、各計算機100は同一のOSブートリスト1223と時差テーブル123を保持することになるので、稼動系計算機から待機系計算機に処理を引き継いでも、時刻ずれが生じないようにすることができる。なお、本実施形態2における送信部受信部は、SVP130が相当する。<実施の形態3>実施形態1~2において、2つのRTCRTC1151とUTC1161を用いる構成例を説明したが、これは一般的な計算機100の構成部品であるIOControllerHub115にRTC1151が備えられているからこれを便宜上用いたものである。必ずしもRTC1151を用いずとも、UTC1161のみを用いて実施形態1~2と同様の効果を発揮することもできる。この場合、計算機100は、OSをシャットダウンするときおよびOSを起動するときに、UTC1161の時刻を更新しない。OS時刻とUTCとの間の時差を時差テーブル123に記録する点、およびUTC1161に時差を加算してOS時刻として用いる点については、実施形態1~2と同様である。また、実施形態1~2では、RTC1161の時刻としてUTCを用いることを説明したが、計算機100間で共有することができるその他の標準時刻を用いてもよい。例えば日本標準時をRTC1161の時刻としてもよい。<実施の形態4>実施形態1~3では、OSが時刻設定ランタイムサービスを呼び出して図5の処理フローが起動されるまで、時差テーブル123は更新されない。時差テーブル123の内容をより頻繁に更新する必要がある場合は、そのためのランタイムサービスを記述したプログラムコードをBIOSコード121に追加し、これを起動するエージェントプログラムをOS上にインストールして適当なタイミングで起動するようにしてもよい。以上、本発明者によってなされた発明を実施形態に基づき具体的に説明したが、本発明は前記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で種々変更可能であることは言うまでもない。また、上記各構成、機能、処理部などは、それらの全部または一部を、例えば集積回路で設計することによりハードウェアとして実現することもできるし、プロセッサがそれぞれの機能を実現するプログラムを実行することによりソフトウェアとして実現することもできる。各機能を実現するプログラム、テーブルなどの情報は、メモリやハードディスクなどの記憶装置、ICカード、DVDなどの記憶媒体に格納することができる。