(57)【要約】【課題】チェックポイントリスタート機能を有するコンピュータにおいて、チェックポイント期間中にチェックポイント処理以外の計算処理を実行するという、不正利用を防止する。【解決手段】チェックポイント機能を有するコンピュータの課金システムにおいて、前記チェックポイントの開始と終了を行い、前記チェックポイントの期間中の課金方法および不正防止の指示を行う制御手段と、前記指示に基づいて前記課金方法を選定する課金手段と、前記指示に基づいて前記不正防止の処理をする不正防止手段と、を備え、前記不正防止手段は、前記チェックポイントの処理以外の処理を防止する。【選択図】      図１
2015158815.tif 000002
【特許請求の範囲】
【請求項１】
チェックポイント機能を有するコンピュータの課金システムにおいて、
前記チェックポイントの開始と終了を行い、前記チェックポイントの期間中の課金方法および不正防止の指示を行う制御手段と、前記指示に基づいて前記課金方法を選定する課金手段と、前記指示に基づいて前記不正防止の処理をする不正防止手段と、を備え、
前記不正防止手段は、前記チェックポイントの処理以外の処理を防止する、課金システム。
【請求項２】
前記不正防止手段は、前記コンピュータの有するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の計算能力の制限を行う、請求項１記載の課金システム。
【請求項３】
前記不正防止手段は、前記コンピュータの有するＣＰＵの周波数を低下させる、もしくは、前記ＣＰＵをベクトル命令の発行を抑止するモードに設定する、請求項１記載の課金システム。
【請求項４】
前記不正防止手段は、前記チェックポイントの処理を行うプログラムのユーザが登録されたユーザであることを確認する、請求項１記載の課金システム。
【請求項５】
前記制御手段は、前記チェックポイントの期間の長さにより不正利用を検出する、請求項１から４の内の１項記載の課金システム。
【請求項６】
チェックポイント機能を有するコンピュータの不正防止システムにおいて、
前記チェックポイントの開始と終了を行い、前記チェックポイントの期間中の不正防止の指示をする制御手段と、前記指示に基づいて前記不正防止の処理をする不正防止手段と、を備え、
前記不正防止手段は、前記チェックポイントの処理以外の処理を防止する、不正防止システム。
【請求項７】
前記不正防止手段は、前記コンピュータの有するＣＰＵの周波数を低下させる、もしくは、前記ＣＰＵをベクトル命令の発行を抑止するモードに設定する、請求項６記載の不正防止システム。
【請求項８】
前記不正防止手段は、前記チェックポイントの処理を行うプログラムのユーザが登録されたユーザであることを確認する、請求項６記載の不正防止システム。
【請求項９】
チェックポイント機能を有するコンピュータの不正防止方法において、
前記チェックポイントの開始時に不正防止処理を開始し、
前記チェックポイントの終了時に前記不正防止処理を終了し、
前記不正防止処理は、前記チェックポイントの処理以外の処理を防止する、不正防止方法。
【請求項１０】
前記不正防止処理は、前記コンピュータの有するＣＰＵの周波数を低下させる、もしくは、前記ＣＰＵをベクトル命令の発行を抑止するモードに設定する、もしくは、前記チェックポイントの処理を行うプログラムのユーザが登録されたユーザであることを確認する、請求項９記載の不正防止方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、チェックポイントリスタート機能を有するコンピュータの課金システムおよび不正防止システム、不正防止方法に関する。
【背景技術】
【０００２】
コンピュータシステムの大規模化に伴い、システムの平均故障間隔（Ｍｅａｎ  Ｔｉｍｅ  Ｂｅｔｗｅｅｎ  Ｆａｉｌｕｒｅ、ＭＴＢＦと略す）が益々短くなることが予想される。例えば、エクサスケールになると、ＭＴＢＦは数分から長くても数時間のオーダになると予想されている。このような状況下において、実行時間が数十時間〜数日を要する大規模アプリケーションの実行には、ユーザレベルのチェックポイントリスタート機能を使った定期的な継続型チェックポイントによるシステム障害への対処が必要となる。
【０００３】
このようなチェックポイントリスタート機能を有するコンピュータにおいては、チェックポイント中には課金をしないという運用が想定される。すなわち、図９Ａに示すように、本来の目的の処理である計算を実行しているときには課金を行う。ｓｔａｒｔ＿ｃｈｅｃｋｐｏｉｎｔでチェックポイント処理が開始されると非課金となる。ｆｉｎｉｓｈ＿ｃｈｅｃｋｐｏｉｎｔで計算が再開されると、課金も再開される。
【０００４】
チェックポイントリスタート機能を有するコンピュータの課金方法に関して、システム障害発生時にチェックポイントから再実行される計算の課金を行う課金方法が特許文献１に開示されている。この方法によれば、チェックポイントの期間は課金対象から除外する課金システムの実現が可能である。
【０００５】
一方、かつてはシステムレベルのチェックポイントが主流であったが、近年、ユーザレベルのチェックポイントライブラリが開発され、今後、主流になるものと思われる。その１つ目の理由は、ユーザレベルのチェックポイントでは、保存するデータはユーザが指定するのでその規模は必要最小限となり、チェックポイントにかかる時間が短縮できることにある。２つ目の理由は、チェックポイントを指定するタイミングもユーザが指定するので、プロセス間で同期を取って通信中のデータを待ち合わせる等の必要がなく、大規模であってもチェックポイントを成功させやすいことが挙げられる。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００６−３１０６７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、ユーザレベルのチェックポイントリスタート機能を有するコンピュータにおいては、チェックポイントの期間を課金対象から除外するという課金システムの運用を悪用して、チェックポイント中に何らかの方法で計算を実行し、課金逃れをしようとする行為が予想される。また、チェックポイント中ではないにもかかわらず、チェックポイント中だと偽って課金逃れをする行為も予想される。
【０００８】
すなわち、図９Ｂに示すように、本来の目的の処理である計算を実行しているときには課金を行う。ｓｔａｒｔ＿ｃｈｅｃｋｐｏｉｎｔでチェックポイント処理が開始されると非課金となる。この時、何らかの方法で本来この期間には実行されない計算が実行されることによって、非課金で計算が行われてしまう。ｆｉｎｉｓｈ＿ｃｈｅｃｋｐｏｉｎｔで本来の計算が再開されると、課金も再開される。
【０００９】
システムレベルのチェックポイントでは、チェックポイントを取るタイミングやその処理内容をユーザが指定できない。そのため、チェックポイント中と言って計算を行い課金逃れすることは、原理的に不可能である。一方、ユーザレベルのチェックポイントリスタート機能では、チェックポイントを取るタイミングはユーザ自身が指定するので、チェックポイントを取ると宣言しておきながら、実際には計算を実行することも可能である。
【００１０】
特許文献１によれば、チェックポイント中は課金しないようにすることはできるが、本当にチェックポイントが実行されているか否かを確認する手段は提供されていない。すなわち、課金を行わないチェックポイントにおいて、本来課金されるべき計算が行われた場合、課金逃れという不正利用を防止できないという課題を有している。
【００１１】
本発明は、上記の課題に鑑みてなされたものであり、その目的は、チェックポイントリスタート機能を有するコンピュータにおいて、チェックポイント期間中にチェックポイント処理以外の計算処理を実行するという、不正利用を防止するシステムを提供することにある。
【課題を解決するための手段】
【００１２】
本発明による課金システムは、チェックポイント機能を有するコンピュータの課金システムにおいて、前記チェックポイントの開始と終了を行い、前記チェックポイントの期間中の課金方法および不正防止の指示を行う制御手段と、前記指示に基づいて前記課金方法を選定する課金手段と、前記指示に基づいて前記不正防止の処理をする不正防止手段と、を備え、前記不正防止手段は、前記チェックポイントの処理以外の処理を防止する。
【００１３】
本発明による不正防止システムは、チェックポイント機能を有するコンピュータの不正防止システムにおいて、前記チェックポイントの開始と終了を行い、前記チェックポイントの期間中の不正防止の指示をする制御手段と、前記指示に基づいて前記不正防止の処理をする不正防止手段と、を備え、前記不正防止手段は、前記チェックポイントの処理以外の処理を防止する。
【００１４】
本発明による不正防止方法は、チェックポイント機能を有するコンピュータの不正防止方法において、前記チェックポイントの開始時に不正防止処理を開始し、前記チェックポイントの終了時に前記不正防止処理を終了し、前記不正防止処理は、前記チェックポイントの処理以外の処理を防止する。
【発明の効果】
【００１５】
本発明によれば、チェックポイントリスタート機能を有するコンピュータにおいて、チェックポイント期間中にチェックポイント処理以外の計算処理を実行するという、不正利用を防止するシステムを提供することができる。
【図面の簡単な説明】
【００１６】
【図１】本発明の第１の実施形態の課金システムの構成を示す図である。
【図２】本発明の第２の実施形態の課金システムの構成を示す図である。
【図３】本発明の第２の実施形態の課金システムの動作を示すフローチャートである。
【図４】本発明の第３の実施形態の課金システムの構成を示す図である。
【図５】本発明の第３の実施形態の課金システムの動作を示すフローチャートである。
【図６】本発明の第４の実施形態の課金システムの構成を示す図である。
【図７】本発明の第４の実施形態の課金システムのプログラムおよびチェックポイントライブラリの作成方法を示すフローチャートである。
【図８】本発明の第４の実施形態の課金システムの動作を示すフローチャートである。
【図９Ａ】チェックポイントリスタート機能を有するコンピュータの正常な運用を説明する図である。
【図９Ｂ】チェックポイントリスタート機能を有するコンピュータの不正な運用を説明する図である。
【発明を実施するための形態】
【００１７】
以下、図を参照しながら、本発明の実施形態を詳細に説明する。但し、以下に述べる実施形態には、本発明を実施するために技術的に好ましい限定がされているが、発明の範囲を以下に限定するものではない。
（第１の実施形態）
図１は、本発明の第１の実施形態の課金システムの構成を示す図である。本実施形態の課金システム１０は、チェックポイント機能を有するコンピュータの課金システムにおいて、前記チェックポイントの開始と終了を行い、前記チェックポイントの期間中の課金方法および不正防止の指示を行う制御手段１１を備える。さらに、前記指示に基づいて前記課金方法を選定する課金手段１２と、前記指示に基づいて前記不正防止の処理をする不正防止手段１３とを備える。さらに、前記不正防止手段１３は、前記チェックポイントの処理以外の処理を防止する。
【００１８】
本実施形態によれば、チェックポイントリスタート機能を有するコンピュータにおいて、チェックポイント期間中にチェックポイント処理以外の計算処理を実行するという、不正利用を防止するシステムを提供することができる。
（第２の実施形態）
（構成の説明）
図２は、本発明の第２の実施形態の課金システムの構成を示す図である。課金システム２００は、チェックポイントの動作を実行する実行部２２０と、実行部２２０からの指示を受けて課金方法および不正防止の指示などを行う課金管理部２３０と、を備えた制御手段２１０を備える。さらに、課金管理部２３０からの指示を受けて課金を行う課金手段２４０を備える。さらに、課金管理部２３０からの指示を受けて不正防止の処理を行う不正防止手段２５０を備える。不正防止手段２５０は、不正防止の方法として、機能制限を行う機能制限部２５１を備える。さらに、実行部２２０からの指示を受けてチェックポイントのデータを記憶する記憶手段２６０を備える。
【００１９】
課金システム２００は、コンピュータシステムにおいて、コンピュータシステムの有する中央演算処理装置（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ、ＣＰＵと略す）の計算資源や、ハードディスク装置（ＨＤＤと略す）やメモリなどの記憶資源を用いて、制御手段２１０、課金手段２４０、不正防止手段２５０、記憶手段２６０を、各々構築することができる。
【００２０】
実行部２２０は、チェックポイントの動作を行うスレッドとすることができる。図２では、課金手段２４０を制御手段２１０から分離して記載しているが、制御手段の内にあるようにしても良い。また、図２では、不正防止手段２５０を制御手段２１０から分離して記載しているが、制御手段２１０の内にあるようにしても良い。
【００２１】
実行部２２０には、図２に示すチェックポイントを行うコードが埋め込まれている。すなわち、ｓｔａｒｔ＿ｃｈｅｃｋｐｏｉｎｔ（）を呼び出してチェックポイントの開始を宣言する。次に、ｆｗｒｉｔｅ（）でチェックポイント処理である対象データの記憶手段２６０への書き込みを行う。次に、ｆｉｎｉｓｈ＿ｃｈｅｃｋｐｏｉｎｔ（）でチェックポイントの終了を宣言する。ｓｔａｒｔ＿ｃｈｅｃｋｐｏｉｎｔ（）とｆｉｎｉｓｈ＿ｃｈｅｃｋｐｏｉｎｔ（）は、コンピュータシステムで用意されているユーザレベルのチェックポイントライブラリである。ここでは、チェックポイントを書き出す処理をｆｗｒｉｔｅ（）としているが、任意の方法が可能である。
【００２２】
課金管理部２３０は、ｓｔａｒｔ＿ｃｈｅｃｋｐｏｉｎｔ（）やｆｉｎｉｓｈ＿ｃｈｅｃｋｐｏｉｎｔ（）から呼び出される処理で、課金手段２４０への通知や不正防止手段２５０への通知等の処理を行う。具体的な処理内容は、課金逃れを抑止・防止する方法として、一例として、後述する図３のフローチャートに示す方法が挙げられる。
【００２３】
課金手段２４０は、通常課金レコード２４２とチェックポイント課金レコード２４３を備える課金レコード部２４１、課金レコード部２４１の課金レコードの切り替えを行う切り替え部２４４を備える。
【００２４】
不正防止手段２５０の機能制限部２５１は、コンピュータシステムの通常動作時やチェックポイント動作時などの動作状況に応じてコンピュータシステムの機能を制御することができる。この機能制限により、チェックポイントの期間中は、チェックポイント処理以外の処理、例えば、通常の計算処理などが行えないようにすることができる。
【００２５】
記憶手段２６０は、チェックポイント動作時に、チェックポイントデータがファイルとして格納される。
（動作の説明）
図３は、本実施形態の課金システム２００の動作を示すフローチャートである。図３を用いて、課金システム２００の動作を説明する。
【００２６】
まず、実行部２２０において、チェックポイントの動作を行うスレッドで、ｓｔａｒｔ＿ｃｈｅｃｋｐｏｉｎｔ（）が実行されると（処理３０１）、課金管理部２３０は、スレッドをＣＰＵのコアにバインドする（処理３０２）。次に、課金管理部２３０は、課金手段２４０の切り替え部２４４に、課金レコードを通常課金レコード２４２からチェックポイント課金レコード２４３に切り替えるよう通知する（処理３０３）。切り替え部２４４は、課金レコード部２４１にて、通常課金レコード２４２からチェックポイント課金レコード２４３に切り替える（処理３０４）。
【００２７】
次に、課金管理部２３０は、機能制限部２５１に機能制限を開始するよう通知する（処理３０５）。機能制限部２５１は、これを受けて機能制限を開始する（処理３０６）。機能制限は、たとえば、当該ＣＰＵコアの周波数を低下させることである。これにより、チェックポイント処理以外の処理、例えば、通常の計算処理などが行えないようにすることができる。また、機能制限はこれには限定されない。
【００２８】
実行部２２０は、機能制限が開始されたことを受けて、ｆｗｒｉｔｅ（）で必要なデータを記憶手段２６０のファイルに書き込むチェックポイント処理を実行する（処理３０７）。
【００２９】
次に、実行部２２０がｆｉｎｉｓｈ＿ｃｈｅｃｋｐｏｉｎｔ（）を実行すると（処理３０８）、先ほどと逆の処理が実行される。すなわち、課金管理部２３０が呼び出され、課金管理部２３０は機能制限部２５１に、機能制限を解除するよう通知する（処理３０９）。機能制限部２５１は、これを受けて機能制限を解除する（処理３１０）。すなわち、当該ＣＰＵコアの周波数を低下させている場合は、もとの周波数に復元する。
【００３０】
次に、課金管理部２３０は、課金手段２４０の切り替え部２４４に、課金レコードをチェックポイント課金レコード２４３から通常課金レコード２４２に切り替えるよう通知する（処理３１１）。切り替え部２４４は、課金レコード部２４１にて、チェックポイント課金レコード２４３から通常課金レコード２４２に切り替える（処理３１２）。
【００３１】
最後に、課金管理部２３０は、スレッドが当該ＣＰＵのコアにバインドされているのを解除し（処理３１３）、終了する。
【００３２】
チェックポイント処理は、メモリ上の必要なデータをファイルに書き出す処理なので、ＣＰＵの演算性能は必要なく、装置主体のメモリアクセスさえ実行できればよい。本実施形態では、ＣＰＵの周波数を低下させることで、ＣＰＵの演算性能を必要とする計算処理が行えないようにする。これにより、チェックポイント期間中にチェックポイント処理以外の計算処理を行うことによる課金逃れを防止することができる。
【００３３】
また、課金レコードを切り替えることで、チェックポイントに要した時間を知ることができる。すなわち、制御手段２１０は、課金管理部２３０において、課金手段２４０の切り替え部２４４から、通常課金レコード２４２からチェックポイント課金レコード２４３に切り替えられた時間と、チェックポイント課金レコード２４３から通常課金レコード２４２に切り替えられた時間との通知を受けることで、チェックポイントに要した時間を算出する。そして、チェックポイントに要した時間が規定値よりも長い場合は、課金逃れの可能性があるとして検出することができる。
【００３４】
また、チェックポイント課金レコード２４２への課金は任意であり、ゼロにする運用もあれば、通常課金レコード２４３に対する課金に比べて小さくする運用も可能である。
【００３５】
本実施形態によれば、チェックポイントリスタート機能を有するコンピュータにおいて、チェックポイント期間中にチェックポイント処理以外の計算処理を実行するという、不正利用を防止するシステムを提供することができる。
（第３の実施形態）
（構成の説明）
図４は、本発明の第３の実施形態の課金システムの構成を示す図である。課金システム４００は、チェックポイントの動作を実行する実行部４２０と、実行部４２０からの指示を受けて課金方法および不正防止の指示などを行う課金管理部４３０と、を備えた制御手段４１０を備える。さらに、課金管理部４３０からの指示を受けて課金を行う課金手段４４０を備える。さらに、課金管理部４３０からの指示を受けて不正防止の処理を行う不正防止手段４５０を備える。不正防止手段４５０は、不正防止の方法として、オペレーティングシステム（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ、ＯＳと略す）内でどのプロセスに実行権を与えてＣＰＵを割り当てるかのスケジューリングを行う（ＯＳスケジューラ機能）、スケジューリング部４５１を備える。さらに、実行部４２０からの指示を受けてチェックポイントのデータを記憶する記憶手段４６０を備える。
【００３６】
課金システム４００は、コンピュータシステムにおいて、コンピュータシステムの有するＣＰＵの計算資源や、ＨＤＤやメモリなどの記憶資源を用いて、制御手段４１０、課金手段４４０、不正防止手段４５０、記憶手段４６０を、各々構築することができる。
【００３７】
実行部４２０は、チェックポイントの動作を行うスレッドとすることができる。図４では、課金手段４４０を制御手段４１０から分離して記載しているが、制御手段の内にあるようにしても良い。また、図４では、不正防止手段４５０を制御手段４１０から分離して記載しているが、制御手段４１０の内にあるようにしても良い。
【００３８】
実行部４２０には、図４に示すチェックポイントを行うコードが埋め込まれている。すなわち、ｓｔａｒｔ＿ｃｈｅｃｋｐｏｉｎｔ（）を呼び出してチェックポイントの開始を宣言する。次に、ｆｗｒｉｔｅ（）でチェックポイント処理である対象データの記憶手段４６０への書き込みを行う。次に、ｆｉｎｉｓｈ＿ｃｈｅｃｋｐｏｉｎｔ（）でチェックポイントの終了を宣言する。ｓｔａｒｔ＿ｃｈｅｃｋｐｏｉｎｔ（）とｆｉｎｉｓｈ＿ｃｈｅｃｋｐｏｉｎｔ（）は、コンピュータシステムで用意されているユーザレベルのチェックポイントライブラリである。ここでは、チェックポイントを書き出す処理をｆｗｒｉｔｅ（）としているが、任意の方法が可能である。
【００３９】
課金管理部４３０は、ｓｔａｒｔ＿ｃｈｅｃｋｐｏｉｎｔ（）やｆｉｎｉｓｈ＿ｃｈｅｃｋｐｏｉｎｔ（）から呼び出される処理で、課金手段４４０への通知や不正防止手段４５０への通知等の処理を行う。
【００４０】
課金手段４４０は、通常課金レコード４４２とチェックポイント課金レコード４４３を備える課金レコード部４４１、課金レコード部４４１の課金レコードの切り替えを行う切り替え部４４４を備える。
【００４１】
不正防止手段４５０のスケジューリング部４５１は、ＯＳ内でどのプロセスに実行権を与えてＣＰＵを割り当てるかのスケジューリングを行う。これにより、チェックポイントの期間中は、チェックポイント処理以外の処理、例えば、通常の計算処理などが行えないようにすることができる。
【００４２】
記憶手段４６０は、チェックポイント動作時に、チェックポイントデータがファイルとして格納される。
（動作の説明）
ベクトル型コンピュータでは、以下に説明するように、チェックポイント処理を行っているスレッドではベクトル命令の発行を禁止することで、チェックポイント中に計算を実行する課金逃れを防止することができる。図５は、本実施形態の課金システム４００の動作を示すフローチャートである。図５を用いて、課金システム４００の動作を説明する。
【００４３】
まず、実行部４２０において、チェックポイントの動作を行うスレッドで、ｓｔａｒｔ＿ｃｈｅｃｋｐｏｉｎｔ（）が実行されると（処理５０１）、課金管理部４３０は、実行部４２０のスレッドを機能制限スレッドにする。具体的には、システムコール呼び出しで、ＯＳ内のスレッド毎の管理情報に「機能制限中」のフラグをセットする（処理５０２）。次に、課金管理部４３０は、課金手段４４０の切り替え部４４４に、課金レコードを通常課金レコード４４２からチェックポイント課金レコード４４３に切り替えるよう通知する（処理５０３）。切り替え部４４４は、課金レコード部４４１にて、通常課金レコード４４２からチェックポイント課金レコード４４３に切り替える（処理５０４）。
【００４４】
次に、課金管理部４３０は、スレッドを一旦ＣＰＵから手放す（処理５０５）。この方法としては、ｎａｎｏｓｌｅｅｐシステムコールを実行する方法や、ｓｃｈｅｄ＿ｙｉｅｌｄシステムコールを実行する方法などが可能である。
【００４５】
この課金管理部４３０の動作を受けて、スケジューリング部４５１は、再び実行部４２０のスレッドにＣＰＵを割り当てる。この時、スケジューリング部４５１は、対象スレッドが機能制限スレッドであると判断し、同時にベクトル命令の発行を抑止するＣＰＵモードへの設定、具体的にはＣＰＵ制御レジスタへの書き込み、を行う（処理５０６）。この状態で仮にスレッドがベクトル命令を実行しようとすると、不正命令でエラーとなりプログラムは停止する。
【００４６】
課金管理部４３０から実行部４２０のスレッドに処理が戻ると、ｆｗｒｉｔｅ（）等で必要なデータを記憶手段４６０上のファイルに書き込むチェックポイント処理が実行される（処理５０７）。
【００４７】
次に、実行部４２０がｆｉｎｉｓｈ＿ｃｈｅｃｋｐｏｉｎｔ（）を実行すると（処理５０８）、先ほどと逆の処理が実行される。すなわち、課金管理部４３０が呼び出されて、スレッドを機能制限のない通常のスレッドにする（処理５０９）。具体的には、処理５０２で立てたフラグを、システムコール呼び出しを使ってアンセットする。
【００４８】
次に、課金管理部４３０は、課金手段４４０の切り替え部４４４に、課金レコードをチェックポイント課金レコード４４３から通常課金レコード４４２に切り替えるよう通知する（処理５１０）。切り替え部４４４は、課金レコード部４４１にて、チェックポイント課金レコード４４３から通常課金レコード４４２に切り替える（処理５１１）。
【００４９】
次に、処理５０５と同様に、課金管理部４３０は、スレッドを一旦ＣＰＵから手放す（処理５１２）。この課金管理部４３０の動作を受けて、スケジューリング部４５１は、再び実行部４２０のスレッドにＣＰＵを割り当てる（処理５１３）。これにより、通常通りベクトル命令が使えるようになり、終了する。
【００５０】
本実施形態では、課金対象外にしているチェックポイント期間中にベクトル命令を使って計算を行うとエラーになる。すなわち、チェックポイント期間中はベクトル命令を使った計算ができなくなる。
【００５１】
すなわち、本実施形態によれば、チェックポイントリスタート機能を有するコンピュータにおいて、チェックポイント期間中にチェックポイント処理以外の計算処理を実行するという、不正利用を防止するシステムを提供することができる。
（第４の実施形態）
（構成の説明）
図６は、本発明の第４の実施形態の課金システムの構成を示す図である。課金システム６００は、チェックポイントの動作を実行する実行部６２０と、実行部６２０が動作を実行すると、ダイナミックリンクで呼び出されるチェックポイントライブラリを有する課金管理部６３０と、を有する制御手段６１０を備える。
【００５２】
課金管理部６３０の有するチェックポイントライブラリは、プログラムを実行しているユーザが登録されたユーザか否かの確認を依頼するユーザ認証部６３１、課金レコードの切り替えを指示する切替指示部６３２、チェックポイント処理を行う処理部６３３を備える。
【００５３】
さらに、課金システム６００は、不正防止手段６５０としてユーザ認証部６３１の依頼を受けてユーザの認証を行う認証部６５１、切替指示部６３２の指示を受けて課金レコードの切り替えを行う課金手段６４０、処理部６３３の指示を受けてチェックポイントのデータを記憶する記憶手段６６０を備える。
【００５４】
認証部６５１は、チェックポイント処理中の課金を免除されるユーザのＩＤが格納されており、ユーザ認証部６３１からの依頼に基づいて、プログラムを実行しているユーザのＩＤが格納されているか否かを応答する。
【００５５】
課金手段６４０は、通常課金レコード６４２とチェックポイント課金レコード６４３を備える課金レコード部６４１、切替指示部６３２の指示を受けて課金レコード部６４１の課金レコードの切り替えを行う切り替え部６４４を備える。
【００５６】
課金システム６００は、コンピュータシステムにおいて、コンピュータシステムの有するＣＰＵの計算資源や、ＨＤＤやメモリなどの記憶資源を用いて、制御手段６１０、課金手段６４０、不正防止手段６５０、記憶手段６６０を、各々構築することができる。
【００５７】
実行部６２０は、チェックポイントの動作を実行するプログラムを有する。図６にあるように、例えば、ｄｏ＿ＭＹｃｈｅｃｋｐｏｉｎｔ（）を呼び出してチェックポイントの動作を開始することができる。課金管理部６３０は、実行部６２０がプログラムを実行すると、ダイナミックリンクで呼び出されるチェックポイントライブラリを有する。プログラムおよびチェックポイントライブラリは、図７のようにして作成することができる。
【００５８】
まず、ユーザは、チェックポイントを行うプログラムと、そこからダイナミックリンクで呼び出すチェックポイントライブラリとを作成する（処理７０１および処理７０２）。プログラムはユーザ自身でコンパイルし実行部６２０とすることができる。一方、ユーザは、チェックポイント処理を行う処理部６３３を備えたチェックポイントライブラリのソースコードを作成し、管理者に提出する。
【００５９】
管理者は、提出されたソースコードの内容を確認して、課金逃れ等の不正がないか、すなわち、チェックポイントとは関係ない大量の演算処理が含まれていないかの審査、すなわち、不正利用がないか否かの審査を行う（処理７０３）。不正利用がないと判断した場合は（ＹＥＳ）、提出されたチェックポイントライブラリのソースコードに、ユーザ認証処理を行うユーザ認証部６３１や課金切り替え指示を行う切替指示部６３２を追加し、更新されたソースコードをコンパイルする。こうしてできたチェックポイントライブラリを管理者のみが書き込める特定のディレクトリに格納する（処理７０４）。
【００６０】
また、管理者は認証部６５１に、上記ソースコードを作成したユーザのＩＤを登録する（処理７０５）。以上の処理が完了すると、管理者はユーザに実行準備が完了したことを通知し（処理７０６）、終了する。
【００６１】
一方、審査の結果（処理７０３）、課金逃れ等の不正利用があると認められた場合は（ＮＯ）、その旨ユーザに通知し（処理７０７）、終了する。
（動作の説明）
以上のようにして作成されたプログラムとチェックポイントライブラリによる課金システム６００の動作を、図８を用いて説明する、図８は、本実施形態の課金システム６００の動作を示すフローチャートである。
【００６２】
ＣＰＵの計算資源によりプログラム（実行部６２０）を実行すると、ダイナミックリンクでチェックポイントライブラリ（課金管理部６３０）が呼び出される（処理８０１）。
【００６３】
チェックポイントライブラリでは、ユーザ認証部６３１が、不正防止手段６５０の認証部６５１に、プログラムを実行しているユーザが登録されたユーザか否かの確認を依頼する（処理８０２）。認証部６５１は、プログラムを実行しているユーザのユーザＩＤが登録されているかを確認する（処理８０３）。ユーザＩＤが登録されている場合は、次の処理に進む。
【００６４】
次の処理では、切替指示部６３２が、課金手段６４０の切り替え部６４４に、課金レコードを通常課金レコード６４２からチェックポイント課金レコード６４３に切り替えるよう通知する（処理８０４）。切り替え部６４４は、課金レコード部６４１にて、通常課金レコード６４２からチェックポイント課金レコード６４３に切り替える（処理８０５）。
【００６５】
次に、チェックポイント処理を行う処理部６３３が、ユーザの指定した処理にしたがって記憶手段６６０にチェックポイントデータを書き出す（処理８０６）。
【００６６】
次に、切替指示部６３２は、課金手段６４０の切り替え部６４４に、課金レコードをチェックポイント課金レコード６４３から通常課金レコード６４２に切り替えるよう通知する（処理８０７）。切り替え部６４４は、課金レコード部６４１にて、チェックポイント課金レコード６４３から通常課金レコード６４２に切り替える（処理８０８）。
【００６７】
なお、処理８０３において、ユーザＩＤが登録されていない場合は、認証部６５１はアラームにより通知するなどの方法で、チェックポイント処理が不正に行われている可能性があることを通知し、その後の処理を中断するなどの対策を行うことができる。
【００６８】
本実施形態の課金管理部６４０であるチェックポイントライブラリの代わりに、システムであらかじめこれに相当する信頼できるチェックポイントライブラリを用意しておく方法も可能である。この場合、ユーザにとっては、用意されたチェックポイントライブラリのインタフェースに沿ったプログラミングをしなければならなかったり、機能が不足していたりするデメリットはあるが、管理者にとってはいちいち審査しなくてもよいというメリットがある。
【００６９】
本実施形態によれば、チェックポイント処理を行うプログラムのユーザＩＤが、認証部６５１に登録されたユーザＩＤであることが確認される。当該ユーザのＩＤ登録は、このプログラムにダイナミックリンクしたチェックポイントライブラリのチェックポイント処理を行うソースコードが不正利用のない処理であることが管理者によって確認された時点で行われる。さらに、管理者は、不正利用が無いことが確認されたこのチェックポイントライブラリをコンパイルする。よって、プログラムが実行された際に、当該プログラムのユーザＩＤが登録されていることが確認されることによって、実行されるチェックポイント処理は不正利用のないものであることが確認される。
【００７０】
すなわち、本実施形態によれば、チェックポイントリスタート機能を有するコンピュータにおいて、チェックポイント期間中にチェックポイント処理以外の計算処理を実行するという、不正利用を防止するシステムを提供することができる。
【００７１】
本発明は上記実施形態に限定されることなく、特許請求の範囲に記載した発明の範囲内で、種々の変形が可能であり、それらも本発明の範囲内に含まれるものであることはいうまでもない。
【００７２】
また、上記の実施形態の一部又は全部は、以下の付記のようにも記載され得るが、以下には限られない。
【００７３】
付記
（付記１）
チェックポイント機能を有するコンピュータの課金システムにおいて、
前記チェックポイントの開始と終了を行い、前記チェックポイントの期間中の課金方法および不正防止の指示を行う制御手段と、前記指示に基づいて前記課金方法を選定する課金手段と、前記指示に基づいて前記不正防止の処理をする不正防止手段と、を備え、
前記不正防止手段は、前記チェックポイントの処理以外の処理を防止する、課金システム。
（付記２）
前記チェックポイントの処理以外の処理は、計算である、付記１記載の課金システム。
（付記３）
前記不正防止手段は、前記コンピュータの有するＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）の計算能力の制限を行う、付記１または２記載の課金システム。
（付記４）
前記不正防止手段は、前記コンピュータの有するＣＰＵの周波数を低下させる、付記１または２記載の課金システム。
（付記５）
前記不正防止手段は、前記コンピュータの有するＣＰＵを割り当てるスケジューリングを操作する、付記１または２記載の課金システム。
（付記６）
前記不正防止手段は、前記コンピュータの有するＣＰＵをベクトル命令の発行を抑止するモードに設定する、付記１または２記載の課金システム。
（付記７）
前記不正防止手段は、前記チェックポイントの処理を行うプログラムのユーザが登録されたユーザであることを確認する、付記１または２記載の課金システム。
（付記８）
前記制御手段は、前記チェックポイントの期間の長さにより不正利用を検出する、付記１から７の内の１項記載の課金システム。
（付記９）
前記課金手段は、前記課金方法として通常課金方法とチェックポイント課金方法とを有する、付記１から８の内の１項記載の課金システム。
（付記１０）
チェックポイント機能を有するコンピュータの不正防止システムにおいて、
前記チェックポイントの開始と終了を行い、前記チェックポイントの期間中の不正防止の指示をする制御手段と、前記指示に基づいて前記不正防止の処理をする不正防止手段と、を備え、
前記不正防止手段は、前記チェックポイントの処理以外の処理を防止する、不正防止システム。
（付記１１）
前記チェックポイントの処理以外の処理は、計算である、付記１０記載の不正防止システム。
（付記１２）
前記不正防止手段は、前記コンピュータの有するＣＰＵの計算能力の制限を行う、付記１０または１１記載の不正防止システム。
（付記１３）
前記不正防止手段は、前記コンピュータの有するＣＰＵの周波数を低下させる、付記１０または１１記載の不正防止システム。
（付記１４）
前記不正防止手段は、前記コンピュータの有するＣＰＵを割り当てるスケジューリングを操作する、付記１０または１１記載の不正防止システム。
（付記１５）
前記不正防止手段は、前記コンピュータの有するＣＰＵをベクトル命令の発行を抑止するモードに設定する、付記１０または１１記載の不正防止システム。
（付記１６）
前記不正防止手段は、前記チェックポイントの処理を行うプログラムのユーザが登録されたユーザであることを確認する、付記１０または１１記載の不正防止システム。
（付記１７）
前記制御手段は、前記チェックポイントの期間の長さにより不正利用を検出する、付記１０から１６の内の１項記載の不正防止システム。
（付記１８）
チェックポイント機能を有するコンピュータの不正防止方法において、
前記チェックポイントの開始時に不正防止処理を開始し、
前記チェックポイントの終了時に前記不正防止処理を終了し、
前記不正防止処理は、前記チェックポイントの処理以外の処理を防止する、不正防止方法。
（付記１９）
前記チェックポイントの処理以外の処理は、計算である、付記１８記載の不正防止方法。
（付記２０）
前記不正防止処理は、前記コンピュータの有するＣＰＵの計算能力の制限を行う、付記１８または１９記載の不正防止方法。
（付記２１）
前記不正防止処理は、前記コンピュータの有するＣＰＵの周波数を低下させる、付記１８または１９記載の不正防止方法。
（付記２２）
前記不正防止処理は、前記コンピュータの有するＣＰＵを割り当てるスケジューリングを操作する、付記１８または１９記載の不正防止方法。
（付記２３）
前記不正防止処理は、前記コンピュータの有するＣＰＵをベクトル命令の発行を抑止するモードに設定する、付記１８または１９記載の不正防止方法。
（付記２４）
前記不正防止処理は、前記チェックポイントの処理を行うプログラムのユーザが登録されたユーザであることを確認する、付記１８または１９記載の不正防止方法。
（付記２５）
前記チェックポイントの期間の長さにより不正利用を検出する、付記１８から２４の内の１項記載の不正防止方法。
【符号の説明】
【００７４】
１０、２００、４００、６００    課金システム
１１、２１０、４１０、６１０    制御手段
１２、２４０、４４０、６４０    課金手段
１３、２５０、４５０、６５０    不正防止手段
２２０、４２０、６２０    実行部
２３０、４３０、６３０    課金管理部
２４１、４４１、６４１    課金レコード部
２４２、４４２、６４２    通常課金レコード
２４３、４４３、６４３    チェックポイント課金レコード
２４４、４４４、６４４    切り替え部
２５１    機能制限部
２６０、４６０、６６０    記憶手段
４５１    スケジューリング部
６５１    認証部
【図１】
2015158815.tif 000003
【図２】
2015158815.tif 000004
【図３】
2015158815.tif 000005
【図４】
2015158815.tif 000006
【図５】
2015158815.tif 000007
【図６】
2015158815.tif 000008
【図７】
2015158815.tif 000009
【図８】
2015158815.tif 000010
【図９Ａ】
2015158815.tif 000011
【図９Ｂ】
2015158815.tif 000012