"複数のプログラムにプログラムの実行に必要なリソースを割り当ててプログラムの実行を制御するプログラム実行制御方法であって、プログラム実行手段による、前記リソースを利用してプログラムを実行し、当該プログラムの実行箇所が予め設定された通過ポイントを通過した場合に通過ポイントを通過した通知を送信するステップと、プログラム管理手段による、前記通知を受信して前記通知の受信回数をカウントするとともに、前記通過ポイントの通過回数の設定値を単位時間当たりの複数の実行段階に分けて設定して記憶する記憶手段に記憶された前記設定値に基づいて前記リソースを要求し、当該リソースを前記プログラム実行手段に渡してプログラムの実行制御を行うプログラム管理手段と、プロセス管理手段による、単位時間毎に、前記複数の実行段階のうち優先度の高い実行段階から順に単位時間の終了まで前記リソースを各プログラムに割り当てるステップと、を有することを特徴とするプログラム実行制御方法。前記プログラム管理手段は、前記受信回数が前記設定値に達した時点あるいは超えた時点で、前記リソースを前記プロセス管理手段に戻すことを特徴とする請求項1記載のプログラム実行制御方法。前記プログラム管理手段は、前記実行段階毎に、各通過ポイントの当該実行段階における前記設定値と前記通過ポイントを通過してから次の通過ポイントを通過するまでの負荷を乗算した和から必要な前記リソースを求めて前記プロセス管理手段に要求することを特徴とする請求項1記載のプログラム実行制御方法。前記プログラム管理手段は、単位時間当たりに利用した前記リソースの統計量を前記プロセス管理手段から取得して単位時間当たりの前記受信回数で割り前記負荷を算出することを特徴とする請求項3記載のプログラム実行制御方法。複数のプログラムにプログラムの実行に必要なリソースを割り当ててプログラムの実行を制御するプログラム実行制御装置であって、前記リソースを利用してプログラムを実行し、当該プログラムの実行箇所が予め設定された通過ポイントを通過した場合に通過ポイントを通過した通知を送信するプログラム実行手段と、前記通過ポイントの通過回数の設定値を単位時間当たりの複数の実行段階に分けて設定して記憶する記憶手段と、前記通知を受信して前記通知の受信回数をカウントするとともに、前記記憶手段に記憶された前記設定値に基づいて前記リソースを要求し、当該リソースを前記プログラム実行手段に渡してプログラムの実行制御を行うプログラム管理手段と、単位時間毎に、前記複数の実行段階のうち優先度の高い実行段階から順に単位時間の終了まで前記リソースを各プログラムに割り当てるプロセス管理手段と、を有することを特徴とするプログラム実行制御装置。前記プログラム管理手段は、前記受信回数が前記設定値に達した時点あるいは超えた時点で、前記リソースを前記プロセス管理手段に戻すことを特徴とする請求項5記載のプログラム実行制御装置。前記プログラム管理手段は、前記実行段階毎に、各通過ポイントの当該実行段階における前記設定値と前記通過ポイントを通過してから次の通過ポイントを通過するまでの負荷を乗算した和から必要な前記リソースを求めて前記プロセス管理手段に要求することを特徴とする請求項5記載のプログラム実行制御装置。前記プログラム管理手段は、単位時間当たりに利用した前記リソースの統計量を前記プロセス管理手段から取得して単位時間当たりの前記受信回数で割り前記負荷を算出することを特徴とする請求項7記載のプログラム実行制御装置。しかしながら、プロセス優先度、特に絶対優先度が高いイベントが多量に発生し、CPUタイムスライスがプロセス優先度の高いイベントにすべて占められていた場合に、優先度が低いプロセスは動作不可となるという問題がある。例えば、システムの定期的なバックアップのようなプロセスはCPUタイムスライスを優先的に使用しないように優先度を低くしてもよいが、優先度が高いイベントが多量発生した場合でもバックアップ自体は行われる必要がある。このような場合を想定し、CPUの負荷状態を監視して、CPUが高負荷となった場合に、優先度の高いイベントをキャンセルし、CPUタイムスライスに余力を持たせることで優先度の低いプロセスにCPUタイムスライスを割り当てるシステムが考えられているが、CPUタイムスライスに余力を残す方法では、常に使用されないCPUタイムスライスが発生するという問題がある。また、CPUの負荷状態は統計量としてOS等にて測定されるものであり、測定から統計量として計算されるための時間が必要となり、多量のイベント発生による高負荷状態発生からイベントキャンセルまでのタイムラグが存在するという問題がある。受け入れ件数の上限を設定する方法では、計算結果から算出された上限値よりも実際に受け入れ可能な件数は多く、CPU能力を十分に使用していないという問題がある。上限値を超えたイベントは、処理中イベントとして内部保留されたり、次周期に持ち越された後で処理されるが、実際には、イベント発生件数には揺らぎがある場合がほとんどで、イベント発生件数の揺らぎによっては上限値を超えたイベントも処理できてしまう。逆に、計算結果よりも大きい件数を上限値として設定した場合、揺らぎによっては処理しきれないケースが発生する。本発明は、上記に鑑みてなされたものであり、多数のプログラムに実行する際に、CPU能力を十分に使用して処理能力を向上させることを目的とする。第1の本発明に係るプログラム実行制御方法は、複数のプログラムにプログラムの実行に必要なリソースを割り当ててプログラムの実行を制御するプログラム実行制御方法であって、プログラム実行手段による、前記リソースを利用してプログラムを実行し、当該プログラムの実行箇所が予め設定された通過ポイントを通過した場合に通過ポイントを通過した通知を送信するステップと、プログラム管理手段による、前記通知を受信して前記通知の受信回数をカウントするとともに、前記通過ポイントの通過回数の設定値を単位時間当たりの複数の実行段階に分けて設定して記憶する記憶手段に記憶された前記設定値に基づいて前記リソースを要求し、当該リソースを前記プログラム実行手段に渡してプログラムの実行制御を行うプログラム管理手段と、プロセス管理手段による、単位時間毎に、前記複数の実行段階のうち優先度の高い実行段階から順に単位時間の終了まで前記リソースを各プログラムに割り当てるステップと、を有することを特徴とする。上記プログラム実行制御方法において、前記プログラム管理手段は、前記受信回数が前記設定値に達した時点あるいは超えた時点で、前記リソースを前記プロセス管理手段に戻すことを特徴とする。上記プログラム実行制御方法において、前記プログラム管理手段は、前記実行段階毎に、各通過ポイントの当該実行段階における前記設定値と前記通過ポイントを通過してから次の通過ポイントを通過するまでの負荷を乗算した値の和から必要な前記リソースを求めて前記プロセス管理手段に要求することを特徴とする。上記プログラム実行制御方法において、前記プログラム管理手段は、単位時間当たりに利用した前記リソースの統計量を前記プロセス管理手段から取得して単位時間当たりの前記受信回数で割り前記負荷を算出することを特徴とする。第2の本発明に係るプログラム実行制御装置は、複数のプログラムにプログラムの実行に必要なリソースを割り当ててプログラムの実行を制御するプログラム実行制御装置であって、前記リソースを利用してプログラムを実行し、当該プログラムの実行箇所が予め設定された通過ポイントを通過した場合に通過ポイントを通過した通知を送信するプログラム実行手段と、前記通過ポイントの通過回数の設定値を単位時間当たりの複数の実行段階に分けて設定して記憶する記憶手段と、前記通知を受信して前記通知の受信回数をカウントするとともに、前記記憶手段に記憶された前記設定値に基づいて前記リソースを要求し、当該リソースを前記プログラム実行手段に渡してプログラムの実行制御を行うプログラム管理手段と、単位時間毎に、前記複数の実行段階のうち優先度の高い実行段階から順に単位時間の終了まで前記リソースを各プログラムに割り当てるプロセス管理手段と、を有することを特徴とする。本発明によれば、多数のプログラムに実行する際に、CPU能力を十分に使用して処理能力を向上させることができる。以下、本発明の実施の形態について図面を用いて説明する。図1は、本実施の形態におけるプログラム実行制御装置の構成を示す機能ブロック図である。同図に示すプログラム実行制御装置は、プログラム実行部10、プログラム管理部20、およびプロセス管理部30を備える。プログラム実行制御装置が備える各部は、演算処理装置、記憶装置等を備えたコンピュータにより構成して、各部の処理がプログラムによって実行されるものとしてもよい。このプログラムはプログラム実行制御装置が備える記憶装置に記憶されており、磁気ディスク、光ディスク、半導体メモリ等の記録媒体に記録することも、ネットワークを通して提供することも可能である。プログラム実行部10は、プロセス管理部30から割り当てられたCPUタイムスライスを利用してプログラムを実行し、プログラムの実行箇所が所定の通過ポイントを通過した場合に通過ポイントを通過した旨をプログラム管理部20に通知する。図2に、プログラムの実行状態の遷移の例を示す。同図では、3つの実行状態111,112,113を示しており、実行状態111,112,113それぞれの処理の開始点に通過ポイント121,122,123が設定されている。プログラム実行部10は、プログラムを実行し、プログラムの実行箇所が予めプログラム本体に設定された通過ポイント121,122,123に到達した場合に、プログラム管理部20に通過ポイント121,122,123を通過した旨を通知する。プログラム管理部20は、プログラムを実行するためのCPUタイムスライスの要求、プログラム実行部10からの通知のカウント及び応答、プログラム実行時の負荷の測定など、プログラム実行部10のプログラムの実行を管理する。また、プログラム管理部20は、図1に示すように、プログラムそれぞれについて、プログラムの通過ポイント121,122,123毎に、通知された通過の回数と1次、2次、3次と多段階に設定された通過回数の設定値を記載する通過ポイント情報21を記憶している。プログラム実行部10から通過ポイント121,122,123の通過が通知されると通過ポイント情報21に記載された通過回数が更新される。なお、通過回数の設定値はプログラム毎に予め定めておき、通過回数はプログラム起動時に初期化される。プロセス管理部30は、単位時間内に多段階に設定された1次、2次、3次といった実行段階のうち優先度の高い実行段階から順に、プログラム管理部20から各プログラムについて要求されたCPUタイムスライスを集計し、各プログラムの実行順序をスケジューリングして、CPUタイムスライスをプログラム管理部20経由でプログラムに割り当てる。また、プロセス管理部30は、単位時間当たりの各プログラムのCPUタイムスライスの統計量を求めておき、プログラム管理部20からの要求に応じてCPUタイムスライスの統計量を通知する。なお、プログラムとプログラム管理部20は1対1の関係であり、プロセス管理部30とプログラム管理部20あるいはプログラムとは1対多の関係である。本実施の形態では、プログラムを起動する度に、プログラムを管理する管理プログラムをコンピュータに実行させてプログラム管理部20として機能させる。複数のプログラムが実行される場合は、複数のプログラム管理部20が存在することになり、各プログラム管理部20からCPUタイムスライスの要求がプロセス管理部30に送信される。次に、プログラムの実行制御処理について説明する。本実施の形態におけるプログラムの実行制御方法には2つの方法がある。第1の方法は、プログラムから通知された通過回数をカウントし、通過回数が通過ポイント情報21の設定値に達した場合に制御をプロセス管理部30に戻す方法であり、第2の方法は、通過ポイント情報21の設定値と一通過あたりの処理負荷の積から必要なCPUタイムスライスを求めてプロセス管理部30に要求し、割り当てられたCPUタイムスライスを使い切った時点で制御をプロセス管理部30に戻す方法である。まず、第1の方法について説明する。図3は、第1の方法のプログラム実行制御処理を示すシーケンス図である。第1の方法では、プロセス管理部30のプログラムディスパッチCPUの処理能力の割り当てをプログラム走りきりとした。走りきりとは、プログラムのディスパッチの通知を一時的にマスクしてプログラムを実行し続ける実行方法である。プロセス管理部30がCPUの処理能力をプログラム管理部20を通じてプログラムの実行に割り当てて、プログラムが実行されるステップS11,S12。プログラム実行部10は、プログラムの実行箇所が通過ポイントを通る毎にプログラム管理部20に通知するステップS13。プログラム管理部20は、通過ポイント情報21の通過回数を更新し、通過回数が1次分の設定値より小さい場合は通過OKであることをプログラム実行部10に通知するステップS14。プログラム実行部10が通過ポイントの通過をプログラム管理部20に通知したときに、通過回数が1次分の設定値に達した時点でプロセス管理部30に制御を戻すステップS15,S16。あるいは、通過回数が設定値に達しない時点で単位時間当たりのプログラムの処理が終了した場合は、プロセス管理部30に制御を戻す。プロセス管理部30は、制御が戻されると、別のプログラムにCPUの処理能力を割り当てる。全てのプログラムの1次分の処理が完了したときに単位時間当たりのCPUリソースに余分があれば、2次分、3次分のプログラムの実行制御処理が行われる。単位時間が経過したら、次の単位時間において再び1次分の実行段階から順に処理を行う。続いて、第2の方法について説明する。図4は、第2の方法のプログラム実行制御処理を示すシーケンス図である。第2の方法では、プロセス管理部30のプログラムディスパッチをタイムスライス割当とした。割り当てるCPUタイムスライスは、通過ポイント情報21に記載された設定値と処理負荷により決定する。プログラム管理部20は、各通過ポイントの1次分の設定値と一通過あたりの処理負荷の積を求め、その和から必要なCPUタイムスライスをプロセス管理部30に要求するステップS21。CPUタイムスライスの要求はプログラム起動時に行う。もしくは、単位時間毎に次の単位時間のCPUタイムスライス要求として実施してもよい。なお、一通過あたりの処理負荷の算出については後述する。プロセス管理部30は、各プログラムの要求をスケジューリングして各プログラムにCPUタイムスライスを割り振り、CPUタイムスライスをプログラム管理部20を通じてプログラムの実行に割り当てて、プログラムが実行されるステップS22,S23。プログラム管理部20は、割り当てられたCPUタイムスライスを使い切った時点でプロセス管理部30に制御を戻すステップS24。あるいは、CPUタイムスライスを使い切らないで単位時間当たりのプログラムの処理が終了した場合は、プロセス管理部30に制御を戻す。プロセス管理部30は、制御が戻されると、別のプログラムにCPUタイムスライスを割り当てる。全てのプログラムの1次分の処理が完了したときに単位時間当たりのCPUリソースに余分があれば、2次分、3次分のプログラムの実行制御処理が行われる。単位時間が経過したら、次の単位時間において再び1次分の実行段階から順に処理を行う。次に、プロセス管理部30によるスケジューリングについて説明する。通過回数の設定値は1次、2次、3次と多段階に設定されており、全てのプログラムの1次分の処理が完了したときに単位時間当たりのCPUリソースに余分があれば、2次分、3次分のプログラムの実行制御処理が行われる。図5に、多段階でCPUタイムスライスを割り当てる様子を示す。図5aに示すように、プロセス管理部30は、多数のプログラムから1次分のCPUタイムスライスが要求されるので、1次分の要求を集計し、実行順序をスケジューリングし、各プログラムに対してCPUタイムスライスを割り当てる。図5aでは、符号100A~Dで示す部分が各プログラムから要求されて割り当てたCPUタイムスライスを示す。プロセス管理部30から各プログラムに対してCPUタイムスライスが割り当てられて順次プログラムが実行され、1次分の処理実績が確定した時点でCPUタイムスライスに余分があれば、図5bに示すように2次分のスケジューリングを行い、CPUタイムスライスを各プログラムに対して割り当てる。図5bでは、符号100で示す部分が1次分で使用されたCPUタイムスライスの実績を示し、符号200A~Dで示す部分が2次分として各プログラムから要求されて割り当てたCPUタイムスライスを示す。以下同様に、2次分処理後に余分なCPUタイムスライスがあれば3次分をスケジューリングする。なお、多段階の処理分をすべて処理後にもCPUタイムスライスに余分があれば、既存のタイムスライス割当論理などに従いCPUタイムスライスを割り当てる。次に、通過ポイントを用いた負荷測定について説明する。プログラム管理部20は、プログラムの実行箇所が所定の通過ポイントを通過した場合に通知を受けて通過回数をカウントする。プロセス管理部30は、単位時間当たりの各プログラムのCPUタイムスライスの統計量を求める。プログラム管理部20は、CPUタイムスライスの統計量をプロセス管理部30に問い合わせ、単位時間当たりのタイムスライスの統計量と通過ポイントの通過回数より単位時間当たりの1通過の負荷を算出する。現在のOSオペレーティングシステムはプロセス単位でCPU使用率などの負荷の統計をとっていることが多い。負荷と1通過の処理負荷の関係は、1通過の処理負荷を変数とし、通過回数をパラメータとした多元方程式で表される。1通過の処理負荷をx1~xn、通過回数をa1~an、CPUタイムスライスの統計値をLとした場合次式となる。L=a1x1a2x2anxnプログラムへの入力を変更することにより、複数の多元方程式が得られるのでそれを計算することで1通過の処理負荷を求めることができる。a1~anの負荷割合はある程度の周期で統計をとった場合に同じような割合になることが多い。その場合はx1~xnの処理をもとめたものを考えてXとし、通過回数をAとすると以下といえる。L=A×Xこれを計算することによって1通過あたりの平均の処理負荷を求めることができる。次に、各実行段階における通過回数の設定について説明する。1次分など低次の段階では、システムが輻輳した場合でも必ず処理しなくてはならない処理とその処理に対する通過回数を設定しておく。これにより、輻輳中でもその処理が設定値分処理されることが保証される。逆に、輻輳中に抑止したい処理については、通過回数を0もしくは抑止したい処理分のCPUタイムスライスとなるように設定する。高次の段階では、プログラムの処理が一定時間内に終わるようにする、一定時間内のイベント処理量がある一定値を超えるようにするなど、システムが対外的に保証する性能等に基づき設定値を決定する。これにより、輻輳中でない場合にプログラムの処理性能が保証される。その間の段階では、輻輳/負荷レベルに沿った性能や実行したい内容を上記と同様に設定することによって保証される。また、処理の上限回数を定義しておき、優先度の低いプログラムがCPUタイムスライスを使用しすぎないようにする。以上説明したように、本実施の形態によれば、プログラム実行部10が、プログラムに通過ポイントを設定して実行箇所が通過ポイントを通過したときに通知し、プログラム管理部20が、単位時間当たりの複数の実行段階に分けて通過ポイントの通過回数の設定値を記憶しておき、通過回数と設定値に基づいてCPUタイムスライスを要求し、プロセス管理部30が、単位時間毎に、1次分から順にCPUタイムスライスを各プログラムに割り当てて、単位時間のCPUタイムスライスに余裕がある場合は、2次分、3次分と割り当てることで、CPU能力を十分に使用して処理能力を向上させることができる。全体として優先度が低いプログラムについても、1次分とした処理については優先的に実行される。"