(57)【特許請求の範囲】
【請求項１】
複数の優先制御対象のプロセスと，
前記優先制御対象のプロセスの稼動状態と優先度とを管理する管理情報を記憶する記憶部とを備え，
前記優先制御対象のプロセスは，
前記記憶部に記憶された管理情報を参照し，他プロセスの稼動状態と，他プロセスの優先度と，自プロセスの優先度とから，自プロセスの実処理の実行可否を判定する判定部と，
前記判定部による判定結果が実行可である場合に，自プロセスの実処理を実行する実行部と，
前記判定部による判定結果が実行否である場合に，自プロセスの実処理を実行待ちとする実行待ち部と，
自プロセスの実処理を実行する際には，前記記憶部に記憶された管理情報に自プロセスの稼動状態が実処理の実行状態である旨を設定する設定部とを備える
ことを特徴とするプロセス優先制御システム。
【請求項２】
前記判定部は，前記記憶部に記憶された管理情報を参照し，優先度が自プロセスの優先度以上で稼動状態が実処理の実行状態である他プロセスの数が，所定の基準より少ない場合に自プロセスの実処理を実行可と判定し，所定の基準より多い場合に自プロセスの実処理を実行否と判定する
ことを特徴とする請求項１に記載のプロセス優先制御システム。
【請求項３】
前記判定部は，少なくとも自プロセスが所定単位の実処理を実行するごとに，自プロセスの実処理の実行可否を判定する
ことを特徴とする請求項１または請求項２に記載のプロセス優先制御システム。
【請求項４】
前記優先度には，最優先を示す特定の優先度があり，
前記判定部は，
自プロセスの優先度が最優先を示す特定の優先度である場合に，自プロセスの実処理を実行可と判定し，
自プロセスの優先度が最優先を示す特定の優先度でない場合に，優先度が最優先を示す特定の優先度である他プロセスの稼動状態が実行中であれば，自プロセスの実処理を実行否と判定する
ことを特徴とする請求項１から請求項３までのいずれかに記載のプロセス優先制御システム。
【請求項５】
コンピュータで動作する優先制御対象のプロセスが，
記憶部に記憶された，優先制御対象のプロセスの稼動状態と優先度とを管理する管理情報を参照し，他プロセスの稼動状態と，他プロセスの優先度と，自プロセスの優先度とから，自プロセスの実処理の実行可否を判定し，
判定結果が実行可である場合に，自プロセスの実処理を実行し，
判定結果が実行否である場合に，自プロセスの実処理を実行待ちとし，
自プロセスの実処理を実行する際には，前記記憶部に記憶された管理情報に自プロセスの稼動状態が実処理の実行状態である旨を設定する過程を実行する
ことを特徴とするプロセス優先制御方法。
【請求項６】
コンピュータで動作する優先制御対象のプロセスに，
記憶部に記憶された，優先制御対象のプロセスの稼動状態と優先度とを管理する管理情報を参照し，他プロセスの稼動状態と，他プロセスの優先度と，自プロセスの優先度とから，自プロセスの実処理の実行可否を判定し，
判定結果が実行可である場合に，自プロセスの実処理を実行し，
判定結果が実行否である場合に，自プロセスの実処理を実行待ちとし，
自プロセスの実処理を実行する際には，前記記憶部に記憶された管理情報に自プロセスの稼動状態が実処理の実行状態である旨を設定する
処理を実行させるためのプロセス優先制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は，マルチプロセス環境において，プロセスの優先制御を行うプロセス優先制御システム，プロセス優先制御方法およびプロセス優先制御プログラムに関するものである。
【背景技術】
【０００２】
マルチプロセス環境では，プロセスの優先制御が行われる。例えば，マルチプロセスのＯＳ（Operating System）では，指定された優先度に従ったプロセスの優先制御が行われる。ＯＳによるプロセス制御では，例えば，ディスパッチャが，実行可能で最も優先度が高いプロセスに制御を渡す。
【０００３】
マルチプロセスのＯＳにおいて，あるプロセスの走行中に発生した割り込み処理を行った後に，走行中のプロセスに制御を戻すことなく，優先度の高いプロセスを実行する技術が知られている。また，複数のサービスプロバイダが共用するトランザクション処理システムにおいて，トランザクションモニタにより，サービスプロバイダとの契約に応じて投入された処理要求の優先度を決定し，決定された優先度に従って処理を実行する技術が知られている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平５−１２００３８号公報
【特許文献２】特開２００２−２２９９４３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
ＯＳによるプロセスの優先制御では，プロセスの優先度を下げても，プロセスを停止させることはできない。ＯＳによるプロセスの優先制御では，プロセスの多重度が上がり，リソース負荷が高い状況でも，すべてのプロセスが走行しようとする。このような状況では，優先度が高いプロセスでも，十分なリソースが行き渡らずに，処理が遅くなってしまうという問題がある。
【０００６】
ＯＳによるプロセスの優先制御では，プロセスの走行中でも，外部からプロセスの優先度を変更することはできる。しかし，外部からはプロセスの実行進度を正確に判断できないため，外部から適切なタイミングでプロセスの優先度を変更することができない。そのため，効率的なプロセスの優先制御が行えず，例えば，優先度が低いプロセスがロックを保持し，優先度が高いプロセスがそのロック解除待ちをするようなケースにおいて，優先度が高いプロセスに処理遅延が起こるといった問題が発生する。
【０００７】
これらのＯＳによるプロセス優先制御の問題を解決する方法として，リソースが豊富な高スペックのハードウェアを用意するという方法も考えられるが，コストが高くなってしまうという問題がある。
【０００８】
一側面では，本発明は，限られたリソースの範囲内で，効率的なプロセスの優先制御を行うことが可能となる技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
１態様では，プロセス優先制御システムは，複数の優先制御対象のプロセスと，優先制御対象のプロセスの稼動状態と優先度とを管理する管理情報を記憶する記憶部とを備え，優先制御対象のプロセスは，記憶部に記憶された管理情報を参照し，他プロセスの稼動状態と，他プロセスの優先度と，自プロセスの優先度とから，自プロセスの実処理の実行可否を判定する判定部と，判定部による判定結果が実行可である場合に，自プロセスの実処理を実行する実行部と，判定部による判定結果が実行否である場合に，自プロセスの実処理を実行待ちとする実行待ち部と，自プロセスの実処理を実行する際には，記憶部に記憶された管理情報に自プロセスの稼動状態が実処理の実行状態である旨を設定する設定部とを備える。
【発明の効果】
【００１０】
１態様では，限られたリソースの範囲内で，効率的なプロセスの優先制御を行うことが可能となる。
【図面の簡単な説明】
【００１１】
【図１】マルチプロセス環境におけるプロセス優先制御の例を説明する図である。
【図２】本実施の形態によるプロセス優先制御システムの構成例を示す図である。
【図３】本実施の形態によるプロセス優先制御システムを実現するコンピュータのハードウェア構成例を示す図である。
【図４】本実施の形態による多重度設定情報の例を示す図である。
【図５】本実施の形態による管理情報の例を示す図である。
【図６】本実施の形態による稼動状態遷移の例を説明する図である。
【図７】本実施の形態のプロセスによる優先制御処理フローチャートである。
【図８】本実施の形態の判定部による実行可否判定処理フローチャートである。
【図９】本実施の形態によるプロセス優先制御の実施例（１）を示す図である。
【図１０】本実施の形態によるプロセス優先制御の実施例（２）を示す図である。
【図１１】本実施の形態によるプロセス優先制御の実施例（３）を示す図である。
【図１２】本実施の形態によるプロセス優先制御の実施例（４）を示す図である。
【発明を実施するための形態】
【００１２】
以下，本実施の形態について，図を用いて説明する。
【００１３】
マルチプロセスのＯＳ（Operating System）では，指定された優先度に従ったプロセスの優先制御が行われている。例えば，ＵＮＩＸ（登録商標）系のＯＳでは，ｎｉｃｅ値によりプロセスの優先度が指定可能である。
【００１４】
ＯＳによるプロセス制御では，例えば，ディスパッチャが，実行可能で最も優先度が高いプロセスに制御を渡す。すなわち，プロセスに制御が渡った時点で，そのプロセスは実行可能なプロセスの中で最も優先度が高いプロセスである。ＯＳにおいて，プロセスは，「実行状態」，「実行可能状態」，「待ち状態」の３つの状態に分けて管理される。プロセスを「実行可能状態」から「実行状態」へと遷移させる際には，「実行可能状態」のプロセスの中から最も優先度が高いプロセスが選択される。
【００１５】
図１は，マルチプロセス環境におけるプロセス優先制御の例を説明する図である。
【００１６】
図１に示すシステムにおいて，受付端末２００は，例えば各種受付を行う業務において，各所に設置された端末である。サーバ１００は，例えば各所に配置された各受付端末２００と接続され，全受付業務を管理する。サーバ１００では，受付端末２００との応答処理を行う複数の常駐のプロセス１１０と，プロセス１１０からの非同期処理要求を受けて帳票出力などを行う複数の常駐のプロセス１２０とが動作する。
【００１７】
プロセス１１０は，受付端末２００からの要求に対してできるだけ速く応答を返す必要があるために，ＯＳによる優先制御において，優先度が高く設定されている。これに対して，プロセス１２０は，帳票出力などの即答性のない処理を行うので，ＯＳによる優先制御において，優先度が低く設定されている。
【００１８】
図１に示すサーバ１００において，プロセス１２０については，帳票出力などには緊急性がないので，プロセス１１０などの優先度が高いプロセスが多数動作している場合には，動作を停止してもかまわない。しかし，既存のＯＳによるプロセスの優先制御では，優先度を低く設定しても，プロセスを停止させることまではできない。例えば，図１に示すサーバ１００において，処理要求を受けて帳票出力の処理を開始したプロセス１２０の処理を，停止することはできない。
【００１９】
既存のＯＳによるプロセスの優先制御では，リソース負荷が高い場合でも，プロセスの多重度を上げることができる。例えば，図１に示す例において，プロセス１１０ａ〜ｎがそれぞれ受付端末２００ａ〜ｎから立て続けに要求を受けた場合，サーバ１００におけるプロセス多重度は高くなってしまう。このとき，一定期間だけプロセスの処理を停止するということができないので，処理を実行するすべてのプロセスは，際限なく走行しようとする。そのため，図１に示すサーバ１００において，優先度が高いプロセス１１０でも，プロセスの多重度が上がれば，レスポンスが低下してしまうという問題がある。プロセス多重度が高い場合には，緊急性が高いプロセスに対しても，リソースが行き渡らず，待ちが発生してしまう。
【００２０】
また，図１に示すサーバ１００において，プロセス１２０については，処理を開始するまでは優先度が低くてもよいが，一旦処理を開始した際には，できるだけ速く処理を終わらせるように，高い優先度で処理を実行させたい。
【００２１】
例えば，図１に示すサーバ１００において，優先度が低いプロセス１２０ａが，自身のトランザクション処理の実行でロック保持するものとする。その後，優先度が高いプロセス１１０ａもトランザクション処理を開始し，優先度が高いプロセス１１０ａが，優先度が低いプロセス１２０ａのロック解除を待つことになったものとする。このとき，他のプロセスの実行状況によっては，ロックを保持する優先度が低いプロセス１２０ａに，ＯＳからの制御がなかなか渡されないという事態が発生する。このとき，優先度が高いプロセス１１０ａが，優先度が低いプロセス１２０ａのロック解除待ちにより，処理遅延を起こしてしまうという問題が発生する。
【００２２】
既存のＯＳによるプロセスの優先制御では，プロセスの走行中に外部から優先度を変更することはできる。たとえば，図１に示すサーバ１２０において，優先度が低いプロセス１２０の優先度を，外部から一時的に上げることはできる。しかし，プロセスの実行進度は外部から判断できないため，外部から優先度を変更する制御を適切なタイミングで行うことはできない。そのため，既存のＯＳによるプロセスの優先制御では，処理を開始するまでは優先度を低く設定し，処理を開始した際には優先度を高く設定するといった，プロセスの優先制御を適切に行うことができない。
【００２３】
このようなマルチプロセス環境では，想定される最大負荷時で性能要件を満たす高スペックなハードウェアが選択されがちである。しかし，高スペックなハードウェアを導入すると，コストが高くなるという問題がある。
【００２４】
以下では，このような既存のＯＳによるプロセスの優先制御の問題を解決する，本実施の形態によるプロセス優先制御の技術について説明する。
【００２５】
図２は，本実施の形態によるプロセス優先制御システムの構成例を示す図である。
【００２６】
図２（Ａ）は，本実施の形態によるプロセス優先制御システムを実現するコンピュータ１の構成例を示す。コンピュータ１は，複数のプロセス１０，情報記憶部２０，ＯＳ３０を備える。
【００２７】
プロセス１０は，コンピュータ１上で動作するアプリケーションのプロセスであり，本実施の形態のプロセス優先制御システムによる優先制御対象のプロセスである。図２（Ａ）には記載されていないが，コンピュータ１上では，プロセス１０以外にも，本実施の形態のプロセス優先制御システムによる優先制御の対象外のプロセスも動作する。
【００２８】
情報記憶部２０は，多重度設定情報や管理情報等の情報を記憶する，プロセス１０がアクセス可能な記憶部である。情報記憶部２０は，例えば，すべてのプロセス１０がアクセス可能な共有メモリやファイルなどにより実現される。多重度設定情報は，許容するプロセス１０の多重度すなわち同時実行数の基準が設定された情報である。管理情報は，各プロセス１０の稼動状態と優先度とを管理する情報である。
【００２９】
コンピュータ１では，プロセス１０に対する本実施の形態のプロセス優先制御システムによる優先制御に関係なく，ＯＳ３０による優先制御が行われている。ＯＳ３０による優先制御は，例えば上述した既存のプロセス優先制御である。ＯＳ３０による優先制御の対象となるプロセスは，コンピュータ１で動作するすべてのプロセスであり，プロセス１０も，本実施の形態のプロセス優先制御システムによる優先制御の対象外のプロセスも，含まれる。
【００３０】
ここでは，ＯＳ３０による優先制御において，プロセス１０には，すべて同じ優先度が設定されるものとする。例えば，ＯＳ３０がＵＮＩＸ系である場合において，プロセス１０には，すべて同じｎｉｃｅ値を指定しておくものとする。なお，ＯＳ３０による優先制御ですべてのプロセス１０に同じ優先度が設定されなくても，本実施の形態のプロセス優先制御システムによるプロセス１０の優先制御の実施は可能である。
【００３１】
図２（Ｂ）は，本実施の形態による優先制御対象のプロセス１０の構成例を示す。図２（Ｂ）に示すように，本実施の形態による優先制御対象のプロセス１０は，優先制御部１１，実行部１５を備える。
【００３２】
優先制御部１１は，情報記憶部２０に記憶された管理情報に基づいて，自プロセス１０の実処理を実行するか否かを制御する。
【００３３】
本実施の形態によるプロセス優先制御システムでは，各プロセス１０が優先制御部１１によって自プロセス１０の実処理を実行するか否かを制御することにより，複数のプロセス１０全体としての優先制御が行われる。優先制御部１１は，設定部１２，判定部１３，実行待ち部１４を備える。
【００３４】
設定部１２は，情報記憶部２０に記憶された管理情報に自プロセス１０の稼動状態を設定する。例えば，プロセス１０が自プロセス１０の実処理を実行する際には，そのプロセス１０の設定部１２は，情報記憶部２０に記憶された管理情報に，自プロセス１０の稼動状態が実処理の実行状態である旨を設定する。また，例えば，プロセス１０が自プロセス１０の実処理を実行待ちとする際には，そのプロセス１０の設定部１２は，情報記憶部２０に記憶された管理情報に，自プロセス１０の稼動状態が実処理の実行待ち状態である旨を設定する。
【００３５】
判定部１３は，情報記憶部２０に記憶された管理情報を参照し，他プロセス１０の稼動状態と，他プロセス１０の優先度と，自プロセス１０の優先度とから，自プロセス１０の実処理の実行可否を判定する。例えば，判定部１３は，優先度が自プロセス１０の優先度以上で稼動状態が実処理の実行状態である他プロセス１０の数が，所定の基準より少ない場合に自プロセス１０の実処理を実行可と判定し，所定の基準より多い場合に自プロセス１０の実処理を実行否と判定する。所定の基準は，例えば，情報記憶部２０に記憶された多重度設定情報で設定されている。
【００３６】
判定部１３が自プロセス１０の実処理の実行可否を判定するタイミングは，例えば，自プロセス１０が所定単位の実処理を実行するごとなどである。所定単位は，例えば，リクエスト単位やトランザクション単位などである。また，同じトランザクション単位でも，１トランザクション単位，２トランザクション単位などの設計は任意である。判定部１３は，例えば，１トランザクションの処理を実行するごとに，自プロセス１０の実処理の実行可否を判定する。なお，トランザクションなどの単位に関係なく，実処理中の任意の箇所で実行可否判定を行うように設計することも可能である。
【００３７】
また，優先度として，通常の高低を示す優先度とは別に，最優先を示す特定の優先度を設定してもよい。このとき，判定部１３は，例えば，自プロセス１０の優先度が最優先を示す特定の優先度である場合に，自プロセス１０の実処理を実行可と判定する。また，判定部１３は，例えば，自プロセス１０の優先度が最優先を示す特定の優先度でない場合に，優先度が最優先を示す特定の優先度である他プロセス１０の稼動状態が実行中であれば，自プロセス１０の実処理を実行否と判定する。
【００３８】
実行待ち部１４は，判定部１３による判定結果が実行否である場合に，自プロセス１０の実処理を実行待ちとする。例えば，優先制御部１１は，実行待ち部１４によって自プロセス１０の動作を所定時間だけスリープさせ，所定時間後に，再度判定部１３による判定を行う。
【００３９】
実行部１５は，判定部１３による判定結果が実行可である場合に，自プロセス１０の実処理を実行する。判定部１３による判定を所定単位の実処理の実行ごとに行う場合には，実行部１５は，所定単位の実処理を実行するごとに，実処理の実行を一時停止する。
【００４０】
図３は，本実施の形態によるプロセス優先制御システムを実現するコンピュータのハードウェア構成例を示す図である。
【００４１】
図３に示すように，図２に示す本実施の形態のプロセス優先制御システムを実現するコンピュータ１は，例えば，ＣＰＵ（Central Processing Unit ）２，主記憶となるメモリ３，記憶装置４，通信装置５，媒体読取・書込装置６，入力装置７，出力装置８等を備える。記憶装置４は，例えばＨＤＤ（Hard Disk Drive ）などである。媒体読取・書込装置６は，例えばＣＤ−Ｒ（Compact Disc Recordable ）ドライブやＤＶＤ−Ｒ（Digital Versatile Disc Recordable ）ドライブなどである。入力装置７は，例えばキーボード・マウスなどである。出力装置８は，例えばディスプレイ等の表示装置などである。
【００４２】
図２（Ｂ）に示すプロセス１０およびプロセス１０が備える各機能部は，コンピュータ１が備えるＣＰＵ２，メモリ３等のハードウェアと，ソフトウェアプログラムとによって実現することが可能である。コンピュータ１が実行可能なプログラムは，記憶装置４に記憶され，その実行時にメモリ３に読み出され，ＣＰＵ２により実行される。
【００４３】
コンピュータ１は，可搬型記録媒体から直接プログラムを読み取り，そのプログラムに従った処理を実行することもできる。また，コンピュータ１は，サーバコンピュータからプログラムが転送されるごとに，逐次，受け取ったプログラムに従った処理を実行することもできる。さらに，このプログラムは，コンピュータ１で読み取り可能な記録媒体に記録しておくことができる。
【００４４】
以下では，本実施の形態のプロセス優先制御システムの動作について，より具体的な例を示しながら説明を行う。
【００４５】
図４は，本実施の形態による多重度設定情報の例を示す図である。
【００４６】
図４に示す多重度設定情報２１は，情報記憶部２０に記憶された，許容するプロセス１０の多重度すなわち同時実行数の基準が設定された情報の一例である。多重度設定情報２１には，本実施の形態のプロセス優先制御システムが許容するプロセス１０の多重度の指標として，プロセス多重度値が設定されている。
【００４７】
例えば，情報記憶部２０がすべてのプロセス１０がアクセス可能な共有メモリである場合に，多重度設定情報２１は，システム起動時に，システム設定ファイルから情報記憶部２０の共有メモリ領域に読み込まれる。各プロセス１０の判定部１３は，多重度設定情報２１のプロセス多重度値を参照し，プロセス多重度値を基準として同時に実行中となるプロセス１０の数を調整するように，自プロセス１０の実処理の実行可否を判定する。
【００４８】
図５は，本実施の形態による管理情報の例を示す図である。
【００４９】
図５に示す管理情報２２は，情報記憶部２０に記憶された，各プロセス１０の稼動状態と優先度とを管理する情報の一例である。管理情報２２は，プロセス名，優先度，稼動状態の情報を持つ。
【００５０】
管理情報２２のプロセス名は，プロセス１０を一意に識別する識別情報である。プロセス名は，例えば，プロセス１０のアプリケーションの名称である。アプリケーションが同じ複数のプロセス１０が起動されるケースでも，起動時にパラメータでプロセス１０にプロセス名を持たせることで，アプリケーションが同じ複数のプロセス１０をプロセス名で識別することが可能である。
【００５１】
また，管理情報２２におけるプロセス１０の識別情報として，プロセス名以外の識別情報を用いてもよい。例えば，プロセスの起動時には，ＯＳ３０は，プロセス管理のために，プロセスに対してＩＤを発行する。ＯＳ３０により発行されたＩＤを，管理情報２２におけるプロセス１０の識別情報として用いてもよい。
【００５２】
管理情報２２の優先度は，本実施の形態によるプロセス優先制御システムにおいて，プロセス１０に設定された優先度を示す。管理情報２２における優先度は，ＯＳ３０のプロセス管理で設定されるｎｉｃｅ値などの優先度とは，別の優先度である。以下の説明において，単に優先度という場合には，本実施の形態のプロセス優先制御システムにおける優先度を示す。
【００５３】
本実施の形態の例では，優先度は，基本的にＡ，Ｂ，Ｃの３段階で示される。この３つの優先度の中では，Ａが最も優先度が高く，Ｂが中間で，Ｃが最も優先度が低い。例えば，各プロセス１０の判定部１３は，管理情報２２を参照し，稼動状態が実行中である他プロセス１０の優先度と，自プロセス１０の優先度との関係に基づいて，自プロセス１０の実処理の実行可否を判定する。
【００５４】
また，本実施の形態の例では，Ａ，Ｂ，Ｃの３段階の優先度の他に，最優先を示す特定の優先度Ｓが設定されている。例えば，優先度Ｓのプロセス１０は，他プロセス１０の優先度に関係なく，自プロセスの実処理を実行する。また，優先度Ｓ以外のプロセス１０は，優先度Ｓのプロセス１０が実行中である場合に，自プロセスの実処理の実行を待つ。
【００５５】
優先度は，例えば，各プロセス１０が自身の優先度を書き込むことにより，管理情報２２に設定される。例えば，
ｐｒｏｃ＃１  ：  Ａ
ｐｒｏｃ＃２  ：  Ｂ
・・・
というように，各プロセス１０のプロセス名と優先度との対応が記録されたプロセス個別設定ファイルがあらかじめ用意されているものとする。各プロセス１０は，起動時に自身のプロセス名でプロセス個別設定ファイルを参照して優先度を取得し，取得した優先度を自身のプロセス名に対応付けて情報記憶部２０の管理情報２２に設定する。同じアプリケーションのプロセス１０であっても，プロセス１０ごとに優先度を変えたい場合には，プロセス１０ごとに優先度が対応付けられたデータを用いて，各プロセス１０の優先度を設定する。
【００５６】
アプリケーション単位で同じ優先度をプロセス１０に設定することも可能である。例えば，
ａｐｌｉ＃１  ：  Ａ
ａｐｌｉ＃２  ：  Ｂ
・・・
というように，アプリケーション名と優先度との対応が記録された優先度設定ファイルがあらかじめ用意されているものとする。各プロセス１０は，起動時に自身のアプリケーション名で優先度設定ファイルを参照して優先度を取得し，取得した優先度を自身のプロセス名に対応付けて情報記憶部２０の管理情報２２に設定する。
【００５７】
また，プロセス名と優先度との対応が設定された管理情報２２の設定ファイルをあらかじめ用意するようにしてもよい。例えば，情報記憶部２０がすべてのプロセス１０がアクセス可能な共有メモリである場合に，プロセス名と優先度との対応が設定された管理情報２２は，システム起動時に，管理情報２２の設定ファイルから情報記憶部２０の共有メモリ領域に読み込まれる。
【００５８】
プロセス１０の優先度は，システムの稼動中でも変更することが可能である。ユーザは，コンピュータ１の入力装置７を用いて，情報記憶部２０に記憶された管理情報２２の任意のプロセス１０の優先度を変更できる。管理情報２２で優先度が変更されたプロセス１０の判定部１３は，以後，変更された新たな優先度を自プロセス１０の優先度として，実処理の実行可否判定を行う。
【００５９】
管理情報２２の稼動状態は，本実施の形態によるプロセス優先制御システムにおける，各プロセス１０の実処理の実行状態を示す。本実施の形態の例では，プロセス１０の稼動状態は，要求待ち，実行中，実行待ちの３つの状態で表される。
【００６０】
要求待ちは，起動後のプロセス１０が，外部からの処理要求を待っている状態である。例えば，常駐のプロセス１０では，起動後に，他のプロセスや端末，ユーザなどからの処理要求を待って，実処理を実行する場合がある。このようなプロセス１０が他からの処理要求を待つ状態を，本実施の形態によるプロセス優先制御システムでは，要求待ちと呼ぶ。
【００６１】
実行中は，プロセス１０が実処理を実行している状態である。例えば，プロセス１０において，判定部１３による実処理の実行可否判定で実行可と判定され，実行部１５が自プロセス１０の実処理を実行している状態が，実行中の状態となる。
【００６２】
実行待ちは，自プロセス１０の実処理の実行を停止して待っている状態である。例えば，プロセス１０において，自プロセス１０よりも優先度が高い他プロセス１０が多数実行されている場合に，判定部１３により実処理の実行可否判定で実行否と判定され，実行待ち部１４により所定時間の待ち制御が行われている状態が，実行待ちの状態である。
【００６３】
本実施の形態によるプロセス優先制御システムの背景では，ＯＳ３０によるプロセスの優先制御が行われている。上述のように，ＯＳ３０では，実行状態，実行可能状態，待ち状態でプロセスの状態を管理している。しかし，本実施の形態のプロセス優先制御システムによるプロセス１０の稼動状態と，ＯＳ３０の管理によるプロセスの状態とは，全く別のものである。例えば，ＯＳ３０の管理で実行可能状態から実行状態となったプロセス１０でも，判定部１３により自プロセス１０の実処理が実行否と判定されれば，実行待ち部１４による実処理の実行待ち状態となる。このように，本実施の形態のプロセス優先制御システムは，ＯＳ３０によるプロセス管理とは異なるレベルで，独自のプロセス優先制御を行う。
【００６４】
管理情報２２における稼動状態は，各プロセス１０が設定する。例えば，プロセス１０の設定部１２は，起動時に，管理情報２２の自プロセス１０の稼動状態に要求待ちを設定する。また，プロセス１０の設定部１２は，判定部１３により自プロセス１０の実処理が実行可と判定され，実行部１５により自プロセス１０の実処理が実行される際に，管理情報２２の自プロセス１０の稼動状態に実行中を設定する。また，プロセス１０の設定部１２は，判定部１３により自プロセス１０の実処理が実行否と判定され，実行待ち部１４により自プロセス１０の実処理の実行待ち処理が行われる際に，管理情報２２の自プロセス１０の稼動状態に実行待ちを設定する。
【００６５】
図６は，本実施の形態による稼動状態遷移の例を説明する図である。
【００６６】
ここでは，常駐のプロセス１０の稼動状態遷移の例について説明する。常駐のプロセス１０は，起動すると，まず，稼動状態が要求待ちの状態となる。他プロセス１０や端末，ユーザなどからの処理要求を受けると，要求待ち状態のプロセス１０は，判定部１３による実行可否判定を行う。
【００６７】
判定部１３による判定結果が実行否である場合には，プロセス１０は，稼動状態が実行待ちの状態となる。所定時間経過後，実行待ち状態のプロセス１０は，再度，判定部１３による実行可否判定を行う。
【００６８】
判定部１３による判定結果が実行可である場合には，プロセス１０は，稼動状態が実行中の状態となる。所定単位の実処理が完了した後，まだすべての実処理が完了していなければ，実行中状態のプロセス１０は，再度，判定部１３による実行可否判定を行う。すべての実処理が完了していれば，実行中状態のプロセス１０は，稼動状態が要求待ちの状態となる。例えば，所定単位の実処理が，１トランザクション分の実処理である場合に，１トランザクション分の実処理が完了した後，まだすべてのトランザクションが完了していなければ，プロセス１０は，実行可否判定を行う。すべてのトランザクションが完了していれば，プロセス１０は，次の処理要求を待つ。
【００６９】
図７は，本実施の形態のプロセスによる優先制御処理フローチャートである。
【００７０】
図７に示すフローチャートは，常駐のプロセス１０による優先制御処理の流れの一例である。
【００７１】
優先制御対象のアプリケーションのプロセス１０が起動すると，起動したプロセス１０は，プロセス名と優先度との対応が記録されたプロセス個別設定ファイルから，自プロセス１０の優先度を取得する（ステップＳ１０）。設定部１２は，情報記憶部２０の管理情報２２に，自プロセス１０のプロセス名に対応付けて，取得した自プロセス１０の優先度と，自プロセス１０の稼動状態“要求待ち”とを設定する（ステップＳ１１）。プロセス１０は，要求の受け付けをチェックする（ステップＳ１２）。
【００７２】
プロセス１０は，要求を受けると（ステップＳ１２のＹＥＳ），その要求が終了要求であるかを判定する（ステップＳ１３）。要求が終了要求であれば（ステップＳ１３のＹＥＳ），プロセス１０は，終了する。
【００７３】
要求が終了要求でなければ（ステップＳ１３のＮＯ），すなわち要求が処理要求であれば，判定部１３は，実行可否判定処理を実行する（ステップＳ１４）。実行可否判定処理では，自プロセス１０の実処理の実行可否が判定される。実行可否判定処理の例については，後述する。プロセス１０は，判定部１３による実行可否判定処理の判定結果が実行可であるかを判定する（ステップＳ１５）。
【００７４】
判定結果が実行可でなければ（ステップＳ１５のＮＯ），すなわち判定結果が実行否であれば，設定部１２は，情報記憶部２０の管理情報２２における自プロセス１０のレコードの稼動状態を“実行待ち”に設定する（ステップＳ１６）。実行待ち部１４は，プロセス１０を所定時間スリープさせる（ステップＳ１７）。所定時間スリープ後，プロセス１０は，ステップＳ１４の処理に戻り，再度実行可否判定処理を行う。
【００７５】
判定結果が実行可であれば（ステップＳ１５のＹＥＳ），設定部１２は，情報記憶部２０の管理情報２２における自プロセス１０のレコードの稼動状態を“実行中”に設定する（ステップＳ１８）。実行部１５は，自プロセス１０の実処理を所定単位分だけ，ここでは１トランザクション分だけ実行する（ステップＳ１９）。
【００７６】
１トランザクション分の実処理の実行後，プロセス１０は，すべてのトランザクションの実処理が終了したかを判定する（ステップＳ２０）。まだすべてのトランザクションの実処理が終了していなければ（ステップＳ２０のＮＯ），プロセス１０は，ステップＳ１４の処理に戻り，次の実行可否判定処理を行う。
【００７７】
すべてのトランザクションの実処理が終了していれば（ステップＳ２０のＹＥＳ），設定部１２は，情報記憶部２０の管理情報２２における自プロセス１０のレコードの稼動状態を“要求待ち”に設定する（ステップＳ２１）。プロセス１０は，ステップＳ１２の処理に戻り，次の要求を待つ。
【００７８】
図８は，本実施の形態の判定部による実行可否判定処理フローチャートである。
【００７９】
図８に示すフローチャートは，図７のステップＳ１４に示す実行可否判定処理の流れの一例である。
【００８０】
判定部１３は，情報記憶部２０の管理情報２２を参照し，自プロセス１０の優先度が“Ｓ”であるかを判定する（ステップＳ３０）。自プロセス１０の優先度が“Ｓ”であれば（ステップＳ３０のＹＥＳ），判定部１３は，自プロセス１０の実処理を実行可と判定する（ステップＳ３１）。
【００８１】
自プロセスの優先度が“Ｓ”でなければ（ステップＳ３０のＮＯ），判定部１３は，情報記憶部２０の管理情報２２を参照し，優先度が“Ｓ”の他プロセス１０が“実行中”であるかを判定する（ステップＳ３２）。優先度が“Ｓ”の他プロセス１０が“実行中”であれば（ステップＳ３２のＹＥＳ），判定部１３は，自プロセス１０の実処理を実行否と判定する（ステップＳ３５）。
【００８２】
優先度が“Ｓ”の他プロセス１０が“実行中”でなければ（ステップＳ３２のＮＯ），判定部１３は，情報記憶部２０の情報を参照し，優先度が自プロセス１０以上で“実行中”である他プロセス１０の数を取得する（ステップＳ３３）。判定部１３は，優先度が自プロセス１０以上で“実行中”である他プロセス１０の数が，プロセス多重度値以上であるかを判定する（ステップＳ３４）。優先度が自プロセス１０以上で“実行中”である他プロセス１０の数がプロセス多重度値以上であれば（ステップＳ３４のＹＥＳ），判定部１３は，自プロセス１０の実処理を実行否と判定する（ステップＳ３５）。優先度が自プロセス１０以上で“実行中”である他プロセス１０の数がプロセス多重度値以上でなければ（ステップＳ３４のＮＯ），判定部１３は，自プロセス１０の実処理を実行可と判定する（ステップＳ３１）。
【００８３】
以下，本実施の形態によるプロセス優先制御の具体的な実施例を説明する。以下の実施例では，多重度設定情報２１において，プロセス多重度値に４が設定されているものとする。また，各プロセス１０は，図８に示す実行可否判定処理のロジックで，自プロセス１０の実処理の実行可否を判定するものとする。また，判定部１３による実行可否判定処理は，１トランザクションの実処理が実行されるたびに行われるものとする。
【００８４】
図９は，本実施の形態によるプロセス優先制御の実施例（１）を示す図である。
【００８５】
図９に示すように，当初実行中のプロセス１０がない状態から，優先度Ａのプロセス１０ａ，優先度Ｂのプロセス１０ｂ，優先度Ｂのプロセス１０ｃ，優先度Ｃのプロセス１０ｄが処理要求を受けて，実処理の実行を開始する。ここまでは，同時に実処理を実行するプロセス１０の数が，多重度設定情報２１のプロセス多重度値で設定された４以下であるので，各プロセス１０ａ〜ｄは，自プロセス１０の実処理を実行する。プロセス１０ａ〜ｄの設定部１２は，それぞれ管理情報２２の自プロセス１０の稼動状態を，実行中に設定する。この時点で，実行中のプロセスは４つとなる。
【００８６】
この状況で，優先度Ａのプロセス１０ｅが，処理要求を受ける。このとき，プロセス１０ｅの判定部１３は，管理情報２２を参照し，実行中のプロセス１０が４つあるが，優先度Ａで実行中の他プロセス１０が１つであるので，自プロセス１０ｅの実処理を実行可と判定する。プロセス１０ｅの設定部１２は，管理情報２２の自プロセス１０ｅの稼動状態を，実行中に設定する。プロセス１０ｅの実行部１５は，自プロセス１０ｅの実処理を実行する。この時点で，実行中のプロセス１０は５つとなる。
【００８７】
ここで，優先度Ｃのプロセス１０ｄが，１つのトランザクションを完了したものとする。プロセス１０ｄの判定部１３は，次のトランザクションを開始する前に，実行可否判定を行う。プロセス１０ｄの判定部１３は，管理情報２２を参照し，優先度が自プロセス１０ｄの優先度Ｃ以上である実行中の他プロセス１０が，すでにプロセス多重度値で設定された４つ以上となっているので，自プロセス１０ｄの実処理を実行否と判定する。プロセス１０ｄの設定部１２は，管理情報２２の自プロセス１０ｄの稼動状態を，実行待ちに設定する。プロセス１０ｄの実行待ち部１４は，自プロセス１０ｄを実処理の実行待ち状態にする。この時点で，実行中のプロセスは４つとなる。
【００８８】
その後，プロセス１０ｂがすべてのトランザクションを完了し，要求待ちの状態となる。この時点で，実行中のプロセスは３つとなる。
【００８９】
所定時間の実行待ちの後，プロセス１０ｄの判定部１３は，再度実行可否判定を行う。プロセス１０ｄの判定部１３は，管理情報２２を参照し，実行中のプロセス１０の数が設定されたプロセス多重度値に満たない３つであるので，自プロセス１０ｄの実処理を実行可と判定する。プロセス１０ｄの設定部１２は，管理情報２２の自プロセス１０ｄの稼動状態を，実行中に設定する。プロセス１０ｄの実行部１５は，自プロセス１０ｄの実処理を再開する。実行中のプロセス１０が４つとなる。
【００９０】
図９に示すように，優先度が高いプロセス１０は，実行中の優先度が低い他プロセス１０があっても，自プロセス１０の実処理を実行することが可能となる。このとき，すでに実行中の優先度が低いプロセス１０も，まとまった単位の実処理が完了するまでは，実行中の優先度が高い他プロセス１０と同じレベルで実処理を実行できる。これにより，例えば優先度が低いプロセス１０による実処理の完了が遅れることで，優先度が高いプロセス１０の実処理が遅れてしまうといった弊害を防ぐことができる。
【００９１】
図１０は，本実施の形態によるプロセス優先制御の実施例（２）を示す図である。
【００９２】
図１０に示すように，当初実行中のプロセス１０がない状態から，優先度Ａのプロセス１０ｆ，優先度Ｂのプロセス１０ｇ，優先度Ｃのプロセス１０ｈ，優先度Ｃのプロセス１０ｉが処理要求を受けて，実処理の実行を開始する。ここまでは，同時に実処理を実行するプロセス１０の数が，多重度設定情報２１のプロセス多重度値で設定された４以下であるので，各プロセス１０ｆ〜ｉは，自プロセス１０の実処理を実行する。プロセス１０ｆ〜ｉの設定部１２は，それぞれ管理情報２２の自プロセス１０の稼動状態を，実行中に設定する。この時点で，実行中のプロセスは４つとなる。
【００９３】
この状況で，優先度Ｃのプロセス１０ｊが，処理要求を受ける。このとき，プロセス１０ｊの判定部１３は，管理情報２２を参照し，実行中のプロセス１０が４つあり，その４つのプロセス１０の優先度がすべて自プロセス１０ｊの優先度Ｃ以上であるので，自プロセス１０ｊの実処理を実行否と判定する。プロセス１０ｊの設定部１２は，管理情報２２の自プロセス１０ｊの稼動状態を，実行待ちに設定する。プロセス１０ｊの実行待ち部１４は，自プロセス１０ｊを実処理の実行待ち状態にする。この時点で，実行中のプロセスは４つのままである。
【００９４】
その後，プロセス１０ｇがすべてのトランザクションを完了し，要求待ちの状態となる。この時点で，実行中のプロセスは３つとなる。
【００９５】
所定時間の実行待ちの後，プロセス１０ｊの判定部１３は，再度実行可否判定を行う。プロセス１０ｊの判定部１３は，管理情報２２を参照し，実行中のプロセス１０の数が設定されたプロセス多重度値に満たない３つであるので，自プロセス１０ｊの実処理を実行可と判定する。プロセス１０ｊの設定部１２は，管理情報２２の自プロセス１０ｊの稼動状態を，実行中に設定する。プロセス１０ｊの実行部１５は，自プロセス１０ｊの実処理を実行する。実行中のプロセス１０が４つとなる。
【００９６】
図１０に示すように，優先度が低いプロセス１０は，優先度が自プロセス１０以上である他プロセス１０が，すでに一定数以上実行中である場合には，自プロセス１０の実処理を開始しない。実処理を開始していない優先度が低いプロセス１０は，実行中の他プロセス１０の数が一定数以下となってから，自プロセス１０の実処理の実行を開始する。このように，すでに一定数以上のプロセス１０が実行中である場合に，優先度が低いプロセス１０が実処理の開始を待つことで，多数のプロセス１０による実処理の同時実行で発生し得るリソース不足を回避できる。
【００９７】
図１１は，本実施の形態によるプロセス優先制御の実施例（３）を示す図である。
【００９８】
図１１に示すように，当初実行中のプロセス１０がない状態から，優先度Ａのプロセス１０ｋ，優先度Ａのプロセス１０ｌ，優先度Ａのプロセス１０ｍ，優先度Ｃのプロセス１０ｎが処理要求を受けて，実処理の実行を開始する。ここまでは，同時に実処理を実行するプロセス１０の数が，多重度設定情報２１のプロセス多重度値で設定された４以下であるので，各プロセス１０ｋ〜ｎは，自プロセス１０の実処理を実行する。プロセス１０ｋ〜ｎの設定部１２は，それぞれ管理情報２２の自プロセス１０の稼動状態を，実行中に設定する。この時点で，実行中のプロセスは４つとなる。
【００９９】
この状況で，優先度Ａのプロセス１０ｏが，処理要求を受ける。このとき，プロセス１０ｏの判定部１３は，管理情報２２を参照し，実行中のプロセス１０が４つあるが，優先度Ａで実行中の他プロセス１０が３つであるので，自プロセス１０ｏの実処理を実行可と判定する。プロセス１０ｏの設定部１２は，管理情報２２の自プロセス１０ｏの稼動状態を，実行中に設定する。プロセス１０ｏの実行部１５は，自プロセス１０ｏの実処理を実行する。この時点で，実行中のプロセス１０は５つとなる。
【０１００】
ここで，優先度Ｃのプロセス１０ｎが，１つのトランザクションを完了したものとする。プロセス１０ｎの判定部１３は，次のトランザクションを開始する前に，実行可否判定を行う。プロセス１０ｎの判定部１３は，管理情報２２を参照し，優先度が自プロセス１０ｎの優先度Ｃ以上である実行中の他プロセス１０が，すでにプロセス多重度値で設定された４つ以上となっているので，自プロセス１０ｎの実処理を実行否と判定する。プロセス１０ｎの設定部１２は，管理情報２２の自プロセス１０ｎの稼動状態を，実行待ちに設定する。プロセス１０ｎの実行待ち部１４は，自プロセス１０ｎを実処理の実行待ち状態にする。この時点で，実行中のプロセスは４つとなる。
【０１０１】
この状況で，優先度Ｂのプロセス１０ｐが，処理要求を受ける。このとき，プロセス１０ｐの判定部１３は，管理情報２２を参照し，実行中のプロセス１０が４つあり，その４つのプロセス１０の優先度がすべて自プロセス１０ｐの優先度Ｂ以上であるので，自プロセス１０ｐの実処理を実行否と判定する。プロセス１０ｐの設定部１２は，管理情報２２の自プロセス１０ｐの稼動状態を，実行待ちに設定する。プロセス１０ｐの実行待ち部１４は，自プロセス１０ｐを実処理の実行待ち状態にする。この時点で，実行中のプロセスは４つのままである。
【０１０２】
その後，プロセス１０ｌがすべてのトランザクションを完了し，要求待ちの状態となる。この時点で，実行中のプロセスは３つとなる。
【０１０３】
所定時間の実行待ちの後，プロセス１０ｐの判定部１３は，再度実行可否判定を行う。プロセス１０ｐの判定部１３は，管理情報２２を参照し，実行中のプロセス１０の数が設定されたプロセス多重度値に満たない３つであるので，自プロセス１０ｐの実処理を実行可と判定する。プロセス１０ｐの設定部１２は，管理情報２２の自プロセス１０ｐの稼動状態を，実行中に設定する。プロセス１０ｐの実行部１５は，自プロセス１０ｐの実処理を再開する。実行中のプロセス１０が４つとなる。
【０１０４】
ここで，ユーザが入力装置７を用いて，管理情報２２におけるプロセス１０ｎの優先度をＣからＡに変更したものとする。
【０１０５】
所定時間の実行待ちの後，優先度がＡに変更されたプロセス１０ｎの判定部１３は，再度実行可否判定を行う。プロセス１０ｎの判定部１３は，管理情報２２を参照し，実行中のプロセス１０が４つあるが，優先度Ａで実行中の他プロセス１０が３つであるので，自プロセス１０ｎの実処理を実行可と判定する。プロセス１０ｎの設定部１２は，管理情報２２の自プロセス１０ｎの稼動状態を，実行中に設定する。プロセス１０ｎの実行部１５は，自プロセス１０ｎの実処理を実行する。この時点で，実行中のプロセス１０は５つとなる。
【０１０６】
ここで，優先度Ｂのプロセス１０ｐが，１つのトランザクションを完了したものとする。プロセス１０ｐの判定部１３は，次のトランザクションを開始する前に，実行可否判定を行う。プロセス１０ｐの判定部１３は，管理情報２２を参照し，優先度が自プロセス１０ｐの優先度Ｂ以上である実行中の他プロセス１０が，すでにプロセス多重度値で設定された４つ以上となっているので，自プロセス１０ｐの実処理を実行否と判定する。プロセス１０ｐの設定部１２は，管理情報２２の自プロセス１０ｐの稼動状態を，実行待ちに設定する。プロセス１０ｐの実行待ち部１４は，自プロセス１０ｐを実処理の実行待ち状態にする。この時点で，実行中のプロセスは４つとなる。
【０１０７】
図１１に示すように，システム稼動中であっても，ユーザがプロセス１０の優先度を変更したい場合には，管理情報２２に記録された優先度のデータを変更するだけで，希望するプロセス１０の優先度を変更することができる。
【０１０８】
図１２は，本実施の形態によるプロセス優先制御の実施例（４）を示す図である。
【０１０９】
図１２に示すように，当初実行中のプロセス１０がない状態から，優先度Ａのプロセス１０ｑ，優先度Ｂのプロセス１０ｒ，優先度Ｃのプロセス１０ｓ，優先度Ｃのプロセス１０ｔが処理要求を受けて，実処理の実行を開始する。ここまでは，同時に実処理を実行するプロセス１０の数が，多重度設定情報２１のプロセス多重度値で設定された４以下であるので，各プロセス１０ｑ〜ｔは，自プロセス１０の実処理を実行する。プロセス１０ｑ〜ｔの設定部１２は，それぞれ管理情報２２の自プロセス１０の稼動状態を，実行中に設定する。この時点で，実行中のプロセスは４つとなる。
【０１１０】
この状況で，特定の優先度Ｓのプロセス１０ｕが，処理要求を受ける。このとき，プロセス１０ｕの判定部１３は，管理情報２２を参照し，自プロセスｕの優先度がＳであるので，自プロセス１０ｕの実処理を実行可と判定する。プロセス１０ｕの設定部１２は，管理情報２２の自プロセス１０ｕの稼動状態を，実行中に設定する。プロセス１０ｕの実行部１５は，自プロセス１０ｕの実処理を実行する。この時点で，実行中のプロセス１０は５つとなる。
【０１１１】
ここで，各プロセス１０ｑ〜ｔが，順に１つのトランザクションを完了したものとする。各プロセス１０ｑ〜ｔの判定部１３は，それぞれ次のトランザクションを開始する前に，実行可否判定を行う。各プロセス１０ｑ〜ｔの判定部１３は，管理情報２２を参照し，優先度Ｓの他プロセス１０ｕが実行中であるので，自プロセス１０の実処理を実行否と判定する。各プロセス１０ｑ〜ｔの設定部１２は，それぞれ管理情報２２の自プロセス１０の稼動状態を，実行待ちに設定する。各プロセス１０ｑ〜ｔの実行待ち部１４は，自プロセス１０を実処理の実行待ち状態にする。この時点で，実行中のプロセス１０は，優先度Ｓのプロセス１０ｕだけとなる。
【０１１２】
その後，プロセス１０ｕがすべてのトランザクションを完了し，要求待ちの状態となる。この時点で，実行中のプロセス１０は０となる。
【０１１３】
各プロセス１０ｑ〜ｔは，それぞれ所定時間の実行待ちの後，判定部１３による再度実行可否判定を経て，順次，自プロセス１０の実処理を再開する。実行中のプロセス１０が４つに戻る。
【０１１４】
図１２に示すように，最優先を示す特定の優先度Ｓのプロセス１０は，実行中の他プロセス１０の優先度や数に関係なく，自プロセスの実処理を実行する。また，優先度Ｓのプロセス１０の実行中には，優先度Ｓ以外の他プロセス１０は，所定単位の処理を終えたところですべて実行待ち状態となる。これにより，緊急性を有するプロセス１０に対して最大限のリソースを割り当てて，すみやかに実処理を実行させることが可能となる。
【０１１５】
以上説明したように，本実施の形態のプロセス優先制御システムでは，ＯＳ３０による優先制御に関係なく，優先制御対象のプロセス１０が，実行中のプロセス１０の数や優先度に基づいて，自身の実処理の実行を判断し，制御する。本実施の形態のプロセス優先制御システムでは，プロセス１０は実行中のプロセス１０の数に応じて自身の実処理の実行を判断するので，プロセス優先制御システム全体としてのプロセス多重度の制御が可能となる。また，本実施の形態のプロセス優先制御システムでは，プロセス１０自身が実処理の実行を判断するので，自身の実処理の実行進度に応じた適切なタイミングで，実行待ちとすることが可能となる。これにより，限られたリソースの範囲内で，十分に効率的なプロセスの優先制御を行うことが可能となる。
【０１１６】
以上，本実施の形態について説明したが，本発明はその主旨の範囲において種々の変形が可能であることは当然である。
【０１１７】
例えば，本実施の形態では，主に常駐プロセス１０を優先制御対象とした例について説明したが，常駐プロセス１０以外のプロセス１０を優先制御対象とすることも，当然可能である。
【０１１８】
以上の本実施の形態に関し，さらに以下の付記を開示する。
【０１１９】
（付記１）
複数の優先制御対象のプロセスと，
前記優先制御対象のプロセスの稼動状態と優先度とを管理する管理情報を記憶する記憶部とを備え，
前記優先制御対象のプロセスは，
前記記憶部に記憶された管理情報を参照し，他プロセスの稼動状態と，他プロセスの優先度と，自プロセスの優先度とから，自プロセスの実処理の実行可否を判定する判定部と，
前記判定部による判定結果が実行可である場合に，自プロセスの実処理を実行する実行部と，
前記判定部による判定結果が実行否である場合に，自プロセスの実処理を実行待ちとする実行待ち部と，
自プロセスの実処理を実行する際には，前記記憶部に記憶された管理情報に自プロセスの稼動状態が実処理の実行状態である旨を設定する設定部とを備える
ことを特徴とするプロセス優先制御システム。
【０１２０】
（付記２）
前記判定部は，前記記憶部に記憶された管理情報を参照し，優先度が自プロセスの優先度以上で稼動状態が実処理の実行状態である他プロセスの数が，所定の基準より少ない場合に自プロセスの実処理を実行可と判定し，所定の基準より多い場合に自プロセスの実処理を実行否と判定する
ことを特徴とする付記１に記載のプロセス優先制御システム。
【０１２１】
（付記３）
前記判定部は，少なくとも自プロセスが所定単位の実処理を実行するごとに，自プロセスの実処理の実行可否を判定する
ことを特徴とする付記１または付記２に記載のプロセス優先制御システム。
【０１２２】
（付記４）
前記優先度には，最優先を示す特定の優先度があり，
前記判定部は，
自プロセスの優先度が最優先を示す特定の優先度である場合に，自プロセスの実処理を実行可と判定し，
自プロセスの優先度が最優先を示す特定の優先度でない場合に，優先度が最優先を示す特定の優先度である他プロセスの稼動状態が実行中であれば，自プロセスの実処理を実行否と判定する
ことを特徴とする付記１から付記３までのいずれかに記載のプロセス優先制御システム。
【０１２３】
（付記５）
コンピュータで動作する優先制御対象のプロセスが，
記憶部に記憶された，優先制御対象のプロセスの稼動状態と優先度とを管理する管理情報を参照し，他プロセスの稼動状態と，他プロセスの優先度と，自プロセスの優先度とから，自プロセスの実処理の実行可否を判定し，
判定結果が実行可である場合に，自プロセスの実処理を実行し，
判定結果が実行否である場合に，自プロセスの実処理を実行待ちとし，
自プロセスの実処理を実行する際には，前記記憶部に記憶された管理情報に自プロセスの稼動状態が実処理の実行状態である旨を設定する過程を実行する
ことを特徴とするプロセス優先制御方法。
【０１２４】
（付記６）
前記自プロセスの実処理の実行可否を判定する過程は，前記記憶部に記憶された管理情報を参照し，優先度が自プロセスの優先度以上で稼動状態が実処理の実行状態である他プロセスの数が，所定の基準より少ない場合に自プロセスの実処理を実行可と判定し，所定の基準より多い場合に自プロセスの実処理を実行否と判定する
ことを特徴とする付記５に記載のプロセス優先制御方法。
【０１２５】
（付記７）
前記自プロセスの実処理の実行可否を判定する過程は，少なくとも自プロセスが所定単位の実処理を実行するごとに，自プロセスの実処理の実行可否を判定する
ことを特徴とする付記５または付記６に記載のプロセス優先制御方法。
【０１２６】
（付記８）
前記優先度には，最優先を示す特定の優先度があり，
前記自プロセスの実処理の実行可否を判定する過程は，
自プロセスの優先度が最優先を示す特定の優先度である場合に，自プロセスの実処理を実行可と判定し，
自プロセスの優先度が最優先を示す特定の優先度でない場合に，優先度が最優先を示す特定の優先度である他プロセスの稼動状態が実行中であれば，自プロセスの実処理を実行否と判定する
ことを特徴とする付記５から付記７までのいずれかに記載のプロセス優先制御方法。
【０１２７】
（付記９）
コンピュータで動作する優先制御対象のプロセスに，
記憶部に記憶された，優先制御対象のプロセスの稼動状態と優先度とを管理する管理情報を参照し，他プロセスの稼動状態と，他プロセスの優先度と，自プロセスの優先度とから，自プロセスの実処理の実行可否を判定し，
判定結果が実行可である場合に，自プロセスの実処理を実行し，
判定結果が実行否である場合に，自プロセスの実処理を実行待ちとし，
自プロセスの実処理を実行する際には，前記記憶部に記憶された管理情報に自プロセスの稼動状態が実処理の実行状態である旨を設定する
処理を実行させるためのプロセス優先制御プログラム。
【０１２８】
（付記１０）
前記自プロセスの実処理の実行可否を判定する処理は，前記記憶部に記憶された管理情報を参照し，優先度が自プロセスの優先度以上で稼動状態が実処理の実行状態である他プロセスの数が，所定の基準より少ない場合に自プロセスの実処理を実行可と判定し，所定の基準より多い場合に自プロセスの実処理を実行否と判定する
ことを特徴とする付記９に記載のプロセス優先制御プログラム。
【０１２９】
（付記１１）
前記自プロセスの実処理の実行可否を判定する処理は，少なくとも自プロセスが所定単位の実処理を実行するごとに，自プロセスの実処理の実行可否を判定する
ことを特徴とする付記９または付記１０に記載のプロセス優先制御プログラム。
【０１３０】
（付記１２）
前記優先度には，最優先を示す特定の優先度があり，
前記自プロセスの実処理の実行可否を判定する処理は，
自プロセスの優先度が最優先を示す特定の優先度である場合に，自プロセスの実処理を実行可と判定し，
自プロセスの優先度が最優先を示す特定の優先度でない場合に，優先度が最優先を示す特定の優先度である他プロセスの稼動状態が実行中であれば，自プロセスの実処理を実行否と判定する
ことを特徴とする付記９から付記１１までのいずれかに記載のプロセス優先制御プログラム。
【符号の説明】
【０１３１】
１  コンピュータ
１０  プロセス
１１  優先制御部
１２  設定部
１３  判定部
１４  実行待ち部
１５  実行部
２０  情報記憶部
３０  ＯＳ
【図１】
0005667000.tif 000002
【図２】
0005667000.tif 000003
【図３】
0005667000.tif 000004
【図４】
0005667000.tif 000005
【図５】
0005667000.tif 000006
【図６】
0005667000.tif 000007
【図７】
0005667000.tif 000008
【図８】
0005667000.tif 000009
【図９】
0005667000.tif 000010
【図１０】
0005667000.tif 000011
【図１１】
0005667000.tif 000012
【図１２】
0005667000.tif 000013