(57)【特許請求の範囲】
【請求項１】
複数のオブジェクトによる処理をオブジェクト単位で実行することにより所定の機能を実現する情報処理システムにおいて、
前記複数のオブジェクトを、処理のパフォーマンスに影響する第１オブジェクトのグループと処理のパフォーマンスに影響しない第２オブジェクトとに分類し、前記グループによる処理の実行順序と前記第２オブジェクトによる処理の実行順序との優先度を定める主優先度テーブルを作成するとともに前記第１オブジェクトによる処理の実行順序の優先度を定める従優先度テーブルを作成する第１の手段と、
前記作成された主優先度テーブルを用いた前記処理の実行中に、前記グループによる処理の実行順序が最優先になったときに、前記従優先度テーブルを用いた前記処理に切り換える第２の手段と、を備える、
情報処理システム。
【請求項２】
前記第１の手段は、
前記グループを、２以上のオブジェクトにより構成されて所定の処理を行う１以上のソフトウェア部品毎に形成し、前記ソフトウェア部品毎に前記従優先度テーブルを作成するようにしてなる、
請求項１記載の情報処理システム。
【請求項３】
オブジェクトと、２以上のオブジェクトにより構成されて処理を行う１以上のソフトウェア部品と、により所定の処理を行う情報処理システムにおいて、
オブジェクトを、いずれのソフトウェア部品にも属さない第１オブジェクトのグループと、前記ソフトウェア部品毎の第２オブジェクトのグループとにグループ化し、前記第１オブジェクトによる処理の実行順序と前記ソフトウェア部品による処理の実行順序との優先度を定める主優先度テーブルを作成するとともに、前記ソフトウェア部品毎に、当該ソフトウェア部品を構成する第２オブジェクトによる処理の実行順序の優先度を定める従優先度テーブルを作成する第１の手段と、
前記作成された主優先度テーブルを用いた前記処理の実行中に、ソフトウェア部品による処理の実行順序が最優先になったときに、当該ソフトウェア部品について定められた従優先度テーブルを用いた前記処理に切り換える第２の手段と、を備える、
情報処理システム。
【請求項４】
前記ソフトウェア部品は、当該ソフトウェア部品の処理のパフォーマンスに影響しないオブジェクトを含んでおり、
前記第１の手段は、ソフトウェア部品のパフォーマンスに影響しない前記オブジェクトの優先度を、前記主優先度テーブルに含むようにしてなる、
請求項３記載の情報処理システム。
【請求項５】
複数のオブジェクトによる処理を実行することにより所定の処理を行う装置において実行される方法であって、
前記複数のオブジェクトを、所定の条件により主グループに属する第１オブジェクトと１以上の従グループのいずれかに属する第２オブジェクトとに分ける第１段階と、
前記主グループに属する前記第１オブジェクトによる処理及び前記従グループによる処理を行う優先度を定める主優先度テーブルを作成する第２段階と、
前記従グループ毎に、当該従グループに属する前記第２オブジェクトの処理を行う優先度を定める従優先度テーブルを作成する第３段階と、を含み、
前記主優先度テーブルを用いた処理の実行中に、従グループによる処理が最優先になったときは、当該従グループについて定められた従優先度テーブルを用いた処理に切り換え、当該従優先度テーブルを用いた処理の終了時に、前記主優先度テーブルを用いた処理に切り換えることを特徴とする、
オブジェクトの優先度管理方法。
【請求項６】
前記第１段階では、前記複数のオブジェクトを、処理がパフォーマンスに影響しない主グループと処理がパフォーマンスに影響する従グループとに分けることを特徴とする、
請求項５記載のオブジェクトの優先度管理方法。
【請求項７】
情報処理システム全体のタスク及び２以上のタスクにより構成され所定の処理を行う１以上のソフトウェア部品の優先度を定める主優先度テーブルと、前記ソフトウェア部品を構成するタスクの優先度をソフトウェア部品毎に定める従優先度テーブルと、その時点で使用する前記主優先度テーブル又は従優先度テーブルを指定するポインタとを備え、前記ポインタが指定する優先度テーブルに基づいて前記タスク又は前記ソフトウェア部品による処理を実行する装置において実行される方法であって、
前記ポインタが、
前記主優先度テーブルを指定しているときに、ソフトウェア部品の処理が最優先になると、当該ソフトウェア部品について定められた従優先度テーブルを指定するようにする、
オブジェクトの優先度管理方法。
【請求項８】
複数のオブジェクトによる処理をオブジェクト単位で実行することにより所定の機能を実現するオペレーティングシステムにおいて、
前記複数のオブジェクトを、処理のパフォーマンスに影響する第１オブジェクトのグループと処理のパフォーマンスに影響しない第２オブジェクトとに分類し、前記グループによる処理の実行順序と前記第２オブジェクトによる処理の実行順序との優先度を定める主優先度テーブルを作成するとともに前記第１オブジェクトによる処理の実行順序の優先度を定める従優先度テーブルを作成する第１の手段と、
前記作成された主優先度テーブルを用いた前記処理の実行中に、前記グループによる処理の実行順序が最優先になったときに、前記従優先度テーブルを用いた前記処理に切り換える第２の手段と、を備える、
オペレーティングシステム。
【請求項９】
オブジェクトと、２以上のオブジェクトにより構成されて処理を行う１以上のソフトウェア部品と、により所定の処理を行うオペレーティングシステムにおいて、
オブジェクトを、いずれのソフトウェア部品にも属さない第１オブジェクトのグループと、前記ソフトウェア部品毎の第２オブジェクトのグループとにグループ化し、前記第１オブジェクトによる処理の実行順序と前記ソフトウェア部品による処理の実行順序との優先度を定める主優先度テーブルを作成するとともに、前記ソフトウェア部品毎に、当該ソフトウェア部品を構成する第２オブジェクトによる処理の実行順序の優先度を定める従優先度テーブルを作成する第１の手段と、
前記作成された主優先度テーブルを用いた前記処理の実行中に、ソフトウェア部品による処理の実行順序が最優先になったときに、当該ソフトウェア部品について定められた従優先度テーブルを用いた前記処理に切り換える第２の手段と、を備える、
オペレーティングシステム。
【請求項１０】
複数のオブジェクトによる処理をオブジェクト単位で実行することにより所定の機能を実現するコンピュータに、
前記複数のオブジェクトを、処理のパフォーマンスに影響する第１オブジェクトのグループと処理のパフォーマンスに影響しない第２オブジェクトとに分類し、前記グループによる処理の実行順序と前記第２オブジェクトによる処理の実行順序との優先度を定める主優先度テーブルを作成するとともに前記第１オブジェクトによる処理の実行順序の優先度を定める従優先度テーブルを作成する手段、
前記作成された主優先度テーブルを用いた前記処理の実行中に、前記グループによる処理の実行順序が最優先になったときに、前記従優先度テーブルを用いた前記処理に切り換える手段、
を形成させるためのプログラムが記録された、コンピュータ読み取り可能な記録媒体。
【請求項１１】
オブジェクトと、２以上のオブジェクトにより構成されて処理を行う１以上のソフトウェア部品と、により所定の処理を行うコンピュータに、
オブジェクトを、いずれのソフトウェア部品にも属さない第１オブジェクトのグループと、前記ソフトウェア部品毎の第２オブジェクトのグループとにグループ化し、前記第１オブジェクトによる処理の実行順序と前記ソフトウェア部品による処理の実行順序との優先度を定める主優先度テーブルを作成するとともに、前記ソフトウェア部品毎に、当該ソフトウェア部品を構成する第２オブジェクトによる処理の実行順序の優先度を定める従優先度テーブルを作成する処理、
前記作成された主優先度テーブルを用いた前記処理の実行中に、ソフトウェア部品による処理の実行順序が最優先になったときに、当該ソフトウェア部品について定められた従優先度テーブルを用いた前記処理に切り換える処理、
を実行させるためのプログラムが記録された、コンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、コンピュータからなる情報処理システム上で所定の処理を実行するための環境を、当該コンピュータに構築するための技術に関する。
【０００２】
【従来の技術】
情報処理システムには、その情報処理システムに接続されるハードウェアを制御したり、入力されるデータの処理を実行したり、処理されたデータの出力を制御したりするための各種ソフトウェアが組み込まれる。ソフトウェアは、各種処理を行うために、タスクやソフトウェア部品を組み合わせて構成されるのが一般的である。タスクは、処理の最小単位である。
ソフトウェア部品は、内部に、処理を分担する複数のタスクを備えており、これらのタスクが協働して処理を行うことにより、ソフトウェア部品としての処理を実現する。タスクを実行するためには、タスク間の同期をとるためのイベントフラグやセマフォ等が必要となる。このようなイベントフラグやセマフォ等もソフトウェア部品内に備えられる。これらのタスクや、イベントフラグ、セマフォ等のソフトウェア部品の動作要素を、本明細書では「オブジェクト」と称する。
ソフトウェア部品には、例えば、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol）等の各種通信プロトコルの処理や、画面の制御、ファイルを管理するもの等がある。
【０００３】
ソフトウェア部品の中には、パフォーマンスを保証する必要があるものがある。例えば、プロトコルをサポートするようなものである。ここでパフォーマンスとは、処理速度や処理結果の精度等である。
従来、情報処理システム内のすべてのタスクに優先度を付け、優先度の高い順にタスクの処理を実行している。つまり、情報処理システム内で、タスクの優先度を一元的に管理している。優先度は、通常、システム設計者が情報処理システムの設計段階で決めて割り振る。
優先度を一元的に管理するために、タスクの優先度は、情報処理システム全体での比較となる。そのため、ソフトウェア部品単体では十分なパフォーマンスが出せたとしても、情報処理システムに実装した際に、パフォーマンスが保証できなくなることがある。例えば、ソフトウェア部品を構成する複数のタスクの優先度を、ソフトウェア部品以外のタスクの優先度と同列で扱うため、ソフトウェア部品内のタスクの処理中に、タスク優先度に応じて、ソフトウェア部品以外のタスクに制御が渡ってしまい、ソフトウェア部品としての処理が完結せずに十分なパフォーマンスを出せなくなる。
【０００４】
図６を例に、従来の優先度の概念によるタスクの処理順序について説明する。
図６では、情報処理システム全体の優先度が１〜１０まで設けてあり、１０個のタスクにいずれかの優先度が割り振られている。ここで、優先度「４」のタスクＡ、優先度「７」のタスクＢ、優先度「９」のタスクＣは、一つのソフトウェア部品をなすものとする。このソフトウェア部品は、タスクＡ、タスクＢ、タスクＣにより連続して処理を行う場合、最高のパフォーマンスを発揮する。しかし、図６のように、タスクＡとタスクＢとの間にタスク４、タスク５による処理が行われ、タスクＢとタスクＣとの間にタスク６による処理が行われると、ソフトウェア部品としての処理の合間に別の処理による割り込みが入ることになり、パフォーマンスが低下することになる。
【０００５】
【発明が解決しようとする課題】
本発明の課題は、上記のような問題点に鑑み、ソフトウェア部品による処理の中でパフォーマンスの保証をする必要があるものについて、そのパフォーマンスを低下させることなく処理を実行できるようにする技術を提供することにある。
【０００６】
【課題を解決するための手段】
以上のような課題を解決する本発明は、複数のオブジェクトによる処理をオブジェクト単位で実行することにより所定の機能を実現する情報処理システムである。この情報処理システムは、前記複数のオブジェクトを、処理のパフォーマンスに影響する第１オブジェクトのグループと処理のパフォーマンスに影響しない第２オブジェクトとに分類し、前記グループによる処理の実行順序と前記第２オブジェクトによる処理の実行順序との優先度を定める主優先度テーブルを作成するとともに前記第１オブジェクトによる処理の実行順序の優先度を定める従優先度テーブルを作成する第１の手段と、前記作成された主優先度テーブルを用いた前記処理の実行中に、前記グループによる処理の実行順序が最優先になったときに、前記従優先度テーブルを用いた前記処理に切り換える第２の手段と、を備える。
このとき、前記第１の手段は、例えば、前記グループを、２以上のオブジェクトにより構成されて所定の処理を行う１以上のソフトウェア部品毎に形成し、前記ソフトウェア部品毎に前記従優先度テーブルを作成するようにしてなるようにしてもよい。
【０００７】
また、本発明は、オブジェクトと、２以上のオブジェクトにより構成されて処理を行う１以上のソフトウェア部品と、により所定の処理を行う情報処理システムである。この情報処理システムは、オブジェクトを、前記ソフトウェア部品毎のオブジェクトのグループと、いずれのソフトウェア部品にも属さないオブジェクトのグループとにグループ化し、前記いずれのソフトウェア部品にも属さないオブジェクトによる処理の実行順序と前記ソフトウェア部品による処理の実行順序との優先度を定める主優先度テーブルを作成するとともに、ソフトウェア部品を構成するオブジェクトによる処理の実行順序の優先度を定める従優先度テーブルを前記ソフトウェア部品毎に作成する第１の手段と、前記作成された主優先度テーブルを用いた前記処理の実行中に、ソフトウェア部品による処理の実行順序が最優先になったときに、当該ソフトウェア部品について定められた従優先度テーブルを用いた前記処理に切り換える第２の手段と、を備える。
このとき、例えば、前記ソフトウェア部品が、当該ソフトウェア部品の処理のパフォーマンスに影響しないオブジェクトを含んでいる場合、前記第１の手段は、ソフトウェア部品のパフォーマンスに影響しない前記オブジェクトの優先度を、前記主優先度テーブルに含むようにしてなるようにしてもよい。
【０００８】
これらの本発明により、処理のパフォーマンスに関するオブジェクトの処理時に、他のオブジェクトにより、そのパフォーマンスを低下させることが無くなる。つまり、パフォーマンスに関するオブジェクトの処理中には、他のオブジェクトによる処理の発生を抑えて、パフォーマンスを保証する。ここでパフォーマンスとは、例えば、処理の速度であったり、処理結果の精度等である。
例えば、ソフトウェア部品のように、複数のオブジェクトにより所定の処理を優先的に完結させる必要がある場合などに有効である。
なお、オブジェクトとは、例えば、タスクや、イベントフラグ、セマフォ等の動作要素である。
【０００９】
本発明は、以下のような方法によっても実現可能である。即ち、複数のオブジェクトによる処理を実行することにより所定の処理を行う装置において実行される方法であって、前記複数のオブジェクトを所定の条件により主グループと１以上の従グループとに分ける第１段階と、前記主グループに属するオブジェクトによる処理及び前記従グループによる処理を行う優先度を定める主優先度テーブルを作成する第２段階と、前記従グループに属するオブジェクトの処理を行う優先度を定める従優先度テーブルを、従グループ毎に作成する第３段階と、を含み、前記作成された主優先度テーブルを用いた処理の実行中に、従グループによる処理が最優先になったときは、当該従グループについて定められた従優先度テーブルを用いた処理に切り換え、当該従優先度テーブルを用いた処理の終了時に、前記主優先度テーブルを用いた処理に切り換えることを特徴とする、オブジェクトの優先度管理方法である。
前記第１段階では、例えば、前記複数のオブジェクトを、処理がパフォーマンスに影響しない主グループと処理がパフォーマンスに影響する従グループとに分けるようにしてもよい。
【００１０】
本発明は、以下のような方法によっても実現可能である。即ち、情報処理システム全体のタスク及び１以上のソフトウェア部品の優先度を定める主優先度テーブルと、前記１以上のソフトウェア部品内部のタスクの優先度をソフトウェア部品毎に定める従優先度テーブルと、その時点で使用する前記主優先度テーブル又は従優先度テーブルを指定するポインタとを備え、前記ポインタが指定する優先度テーブルに基づいて前記タスク又は前記ソフトウェア部品による処理を実行する装置において実行される方法であって、前記ポインタが、前記主優先度テーブルを指定しているときに、ソフトウェア部品の処理が最優先になると、当該ソフトウェア部品について定められた従優先度テーブルを指定するようにする、オブジェクトの優先度管理方法である。
【００１１】
本発明は、以下のようなオペレーティングシステムによっても実現可能である。即ち、複数のオブジェクトによる処理をオブジェクト単位で実行することにより所定の機能を実現するオペレーティングシステムにおいて、前記複数のオブジェクトを、処理のパフォーマンスに影響する第１オブジェクトのグループと処理のパフォーマンスに影響しない第２オブジェクトとに分類し、前記グループによる処理の実行順序と前記第２オブジェクトによる処理の実行順序との優先度を定める主優先度テーブルを作成するとともに前記第１オブジェクトによる処理の実行順序の優先度を定める従優先度テーブルを作成する第１の手段と、前記作成された主優先度テーブルを用いた前記処理の実行中に、前記グループによる処理の実行順序が最優先になったときに、前記従優先度テーブルを用いた前記処理に切り換える第２の手段と、を備える、オペレーティングシステムである。
【００１２】
本発明は、以下のようなオペレーティングシステムによっても実現可能である。即ち、オブジェクトと、２以上のオブジェクトにより構成されて処理を行う１以上のソフトウェア部品と、により所定の処理を行うオペレーティングシステムにおいて、オブジェクトを、前記ソフトウェア部品毎のオブジェクトのグループと、いずれのソフトウェア部品にも属さないオブジェクトのグループとにグループ化し、前記いずれのソフトウェア部品にも属さないオブジェクトによる処理の実行順序と前記ソフトウェア部品による処理の実行順序との優先度を定める主優先度テーブルを作成するとともに、ソフトウェア部品を構成するオブジェクトによる処理の実行順序の優先度を定める従優先度テーブルを前記ソフトウェア部品毎に作成する第１の手段と、前記作成された主優先度テーブルを用いた前記処理の実行中に、ソフトウェア部品による処理の実行順序が最優先になったときに、当該ソフトウェア部品について定められた従優先度テーブルを用いた前記処理に切り換える第２の手段と、を備える、オペレーティングシステムである。
【００１３】
本発明は、以下のようなプログラムが記録された記録媒体をコンピュータに読み取らせて実行させることによっても実現可能である。即ち、複数のオブジェクトによる処理をオブジェクト単位で実行することにより所定の機能を実現するコンピュータに、前記複数のオブジェクトを、処理のパフォーマンスに影響する第１オブジェクトのグループと処理のパフォーマンスに影響しない第２オブジェクトとに分類し、前記グループによる処理の実行順序と前記第２オブジェクトによる処理の実行順序との優先度を定める主優先度テーブルを作成するとともに前記第１オブジェクトによる処理の実行順序の優先度を定める従優先度テーブルを作成する処理、前記作成された主優先度テーブルを用いた前記処理の実行中に、前記グループによる処理の実行順序が最優先になったときに、前記従優先度テーブルを用いた前記処理に切り換える処理、を実行させるためのプログラムが記録された、コンピュータ読み取り可能な記録媒体がその一例である。
【００１４】
また、他の例として、本発明は、以下のようなプログラムが記録された記録媒体をコンピュータに読み取らせて実行させることによっても実現可能である。即ち、オブジェクトと、２以上のオブジェクトにより構成されて処理を行う１以上のソフトウェア部品と、により所定の処理を行うコンピュータに、オブジェクトを、前記ソフトウェア部品毎のオブジェクトのグループと、いずれのソフトウェア部品にも属さないオブジェクトのグループとにグループ化し、前記いずれのソフトウェア部品にも属さないオブジェクトによる処理の実行順序と前記ソフトウェア部品による処理の実行順序との優先度を定める主優先度テーブルを作成するとともに、ソフトウェア部品を構成するオブジェクトによる処理の実行順序の優先度を定める従優先度テーブルを前記ソフトウェア部品毎に作成する処理、前記作成された主優先度テーブルを用いた前記処理の実行中に、ソフトウェア部品による処理の実行順序が最優先になったときに、当該ソフトウェア部品について定められた従優先度テーブルを用いた前記処理に切り換える処理、を実行させるためのプログラムが記録された、コンピュータ読み取り可能な記録媒体である。
【００１５】
【発明の実施の形態】
以下、本発明の実施形態を図面を参照して詳細に説明する。
本発明では、グループ優先度の概念に基づいて、タスク等のオブジェクトの優先度を管理する。
【００１６】
グループ優先度について説明する。
オブジェクトを、各種処理を単体で行うオブジェクトのグループと、複数のオブジェクトで協働して一つの処理を行うオブジェクトのグループとに分ける。ここで後者をソフトウェア部品と呼ぶ。オペレーティングシステムは、オブジェクト及びソフトウェア部品についての優先度を管理し、実行することにより所望のアプリケーションソフトウェアを実現する。
【００１７】
単体で処理を行うオブジェクト（第１オブジェクト）は、アプリケーションソフトウェアから各種要求を受け付け、要求による処理結果をアプリケーションソフトウェアに返す。ソフトウェア部品内のオブジェクトには、アプリケーションソフトウェアから各種要求を受け付け、ソフトウェア部品内で行われる要求に対する処理結果をアプリケーションに返すオブジェクト（第２オブジェクト）と、ソフトウェア部品内に固有で、アプリケーションソフトウェアや他のソフトウェア部品とは、直接要求を受けたり処理結果を返さないオブジェクト（第３オブジェクト）とがある。第３オブジェクトは、ソフトウェア部品の中核であり、ソフトウェア部品が行う処理のパフォーマンスに影響するものである。
【００１８】
第１オブジェクト及びソフトウェア部品を一つのグループとして、グループ番号「０」を割り振る。また、第２、第３オブジェクトを、ソフトウェア部品毎のグループに分け、各グループにグループ番号を割り振る。
グループ番号「０」に属する第１オブジェクト及びソフトウェア部品に、処理の順序を表す優先度を割り振り、優先度テーブルを作成する。
例えば、図１に示すようなグループ０の優先度テーブルを作成する。図１に示すグループ０の優先度のテーブルには、グループ０に属するオブジェクトの他に、各ソフトウェア部品（グループ１、２）の優先度も割り振られる。
また、各ソフトウェア部品についても、ソフトウェア部品毎にソフトウェア部品内のオブジェクトに優先度を割り振り、優先度テーブルを作成する。図１では、グループ１の優先度テーブル、グループ２の優先度テーブルが、それに当たる。
【００１９】
グループ０では、優先度１〜７の順序で、タスク１→タスク２→タスク３→グループ１→タスク５→グループ２→タスク７の処理を行うようにしてもよいが、本実施形態では、実行準備が完了した各タスク及び各グループの中で、優先度が最も高いものから処理を実行する。例えば、タスク１の実行準備完了前にタスク２の実行準備が完了すると、タスク２の優先度がタスク１の優先度より低い場合であってもタスク２が実行される。
グループ０でグループ１の実行準備が整い、優先度１〜３のタスク１〜３の実行準備が整っていない場合、優先度４であるグループ１の処理が実行される。この場合、グループ１の優先度テーブルに処理が移り、グループ１のタスクＡ〜Ｄを実行する。つまり、アプリケーションソフトウェアからグループ１の第２オブジェクトのタスクに処理を要求し、第２オブジェクトのタスクが、グループ１内の優先度に基づき第３オブジェクトのタスクを用いてグループ１のソフトウェア部品としての処理を行わせる。処理結果は、第２オブジェクトからアプリケーションソフトウェアに返す。これにより、グループ０の優先度４の処理が終了する。
【００２０】
例えば、タスクＡを第２オブジェクト、タスクＢ、Ｃ、Ｄを第３オブジェクトとする。グループ０の優先度４の処理が始まると、グループ１の優先度１であるタスクＡは、アプリケーションソフトウェアから処理の要求を受け付ける。タスクＡは、要求を受け付けると、第３オブジェクトによる処理結果が導出されるまで待機状態に移行する。その結果、グループ１の優先度２以降の処理が実行可能となる。タスクＡが要求を受け付けると、タスクＢ、Ｃ、Ｄは、グループ１の優先度テーブルに従って要求に応じた処理を実行し、処理結果をタスクＡに戻す。タスクＡは、処理結果を受け取ると待機状態が終了し、アプリケーションソフトウェアに処理結果を返す。
【００２１】
グループ０で優先度６のグループ２が実行されるときも同様の処理が行われる。このようにして、グループ０の優先度テーブルから他のグループの優先度テーブルによる処理を行わせて、再びグループ０の優先度テーブルに基づく処理に戻ることが可能となる。
【００２２】
グループ１、グループ２の各ソフトウェア部品の処理を行うときは、各グループ内の優先度に基づいてタスクを実行して、自グループより優先度の低いタスクやグループに処理が移ることはないようにする。
パフォーマンスを保証する必要のあるソフトウェア部品を一つのグループとして、当該グループ内で優先度を定め、処理を実行することができるようになるので、従来のように、他のソフトウェア部品やタスクに処理が移動して、ソフトウェア部品自体のパフォーマンスの低下を招くことはなくなる。
【００２３】
【実施例】
図２は、以上のようなグループ優先度の概念に基づいて、オブジェクトの優先度順に処理を行う情報処理システムの構成図である。
この情報処理システム１０は、オペレーティングシステム（以下、ＯＳという。）２０と、所定のアプリケーションソフトウェア３０とを備えている。アプリケーションソフトウェア３０は、タスク等のオブジェクトやソフトウェア部品を優先度に従い実行することにより、所定の処理を実現する。
ＯＳ２０は、モニタ部２１と、グループ化されたオブジェクトの各グループに割り振られるグループ番号に対応した優先度テーブル２３ａ〜ｃを備えており、オブジェクト及びソフトウェア部品による処理を優先度テーブルに基づいて実行して、種々の処理を行う。
各オブジェクトには、通常、システム設計者により優先度が割り振られるが、ＯＳ２０側で、自動で割り振るようにしてもよい。
【００２４】
モニタ部２１は、各オブジェクトの優先度を、当該オブジェクトが属するグループのグループ番号に対応する優先度テーブルに記録する。また、各オブジェクト及びソフトウェア部品による処理が、優先度テーブル２３ａ〜ｃに基づく順序で実行されるように制御する。モニタ部２１は、その時点で使用する優先度テーブル２３ａ〜ｃを指し示すポインタ２２を備える。
【００２５】
優先度テーブル２３ａ〜ｃは、グループ番号のそれぞれに対応しており、自グループに属するオブジェクトやソフトウェア部品の優先度テーブルを保持する。なお、本実施形態では優先度テーブルを３つとしているが、これは、ソフトウェア部品（グループ）の数により決まるものであり、ソフトウェア部品が５つの場合は、グループ０を加えて優先度テーブルが６つとなり、ソフトウェア部品が１つの場合は、グループ０を加えて優先度テーブルが２つとなる。
【００２６】
以下のようにして、各優先度テーブル２３ａ〜ｃにテーブルを保存する。
まず、第１オブジェクト及びソフトウェア部品をグループ０として、グループ番号「０」を指定する。そして、第１オブジェクト及びソフトウェア部品に対して、処理順序を定める優先度を割り振る。モニタ部２１は、第１オブジェクト及びソフトウェア部品の優先度のテーブルを優先度テーブル２３ａに保存する。
次いで、先に情報処理システム１０に登録する第１ソフトウェア部品をグループ１として、グループ番号「１」を指定する。そして、第１ソフトウェア部品内部のオブジェクトに対して優先度を割り振る。モニタ部２１は、第１ソフトウェア部品内部のオブジェクトの優先度のテーブルを優先度テーブル２３ｂに保存する。
次いで、後に情報処理システム１０に登録する第２ソフトウェア部品をグループ２として、グループ番号「２」を指定する。そして、第２ソフトウェア部品内部のオブジェクトに対して優先度を割り振る。モニタ部２１は、第２ソフトウェア部品内部のオブジェクトの優先度のテーブルを優先度テーブル２３ｃに保存する。
モニタ部２１は、タスクの制御も行っているため、どのグループ番号のタスクが動作しているかを判別することができる。
【００２７】
モニタ部２１は、デフォルトでグループ０の優先度テーブル２３ａに基づいてオブジェクトを実行させる。優先度テーブル２３ａでソフトウェア部品（グループ）の実行順序になると、ポインタ２２が、該当するグループの優先度テーブル２３ｂ又は優先度テーブル２３ｃを指定して、指定した優先度テーブルの優先度順に従って、ソフトウェア部品内部のオブジェクトを実行するように切り換える。
【００２８】
図３を例にすると、モニタ部２１は、デフォルトであるグループ０の優先度テーブル２３ａに従って、タスク１〜３の処理を行う。そして、優先度「４」のグループ１の処理の順番になると、ポインタ２２がグループ１の処理の優先度テーブルである優先度テーブル２３ｂを指定して、グループ１のタスクＡ〜Ｄを優先度テーブル２３ｂに基づいて実行させる。グループ１の処理が終了すると、ポインタ２２は、再びグループ０の優先度テーブル２３ａを指定して、優先度「５」のタスク５の処理を実行させる。
次いで、優先度「６」のグループ２の処理になると、ポインタ２２がグループ２の処理の優先度テーブルである優先度テーブル２３ｃを指定して、グループ２のタスクＸ〜Ｚを優先度テーブル２３ｃに基づいて実行させる。グループ２の処理が終了すると、ポインタ２２はグループ０の優先度テーブル２３ａを指定して、優先度「７」のタスク７の処理を実行する。
以上のようにして、すべてのタスクの処理が終了する。
【００２９】
図４を用いて、さらに詳細に説明する。ここでは、グループ番号及び優先度を１６ビットで表すこととし、１２３４Ｈ（Ｈは１６進数で表すことを示す。）という数値で表す場合、１２Ｈをグループ番号、３４Ｈを優先度とする。
【００３０】
第１オブジェクトのタスク４つ（タスク１〜タスク４）及びソフトウェア部品２つ（グループ１、２）をグループ０として、グループ番号「０」を割り振る。次いで、タスク及びソフトウェア部品に優先度を割り振る。図４では、以下のようになる。
タスク１    ０００１Ｈ
グループ１  ０００２Ｈ
タスク２    ０００３Ｈ
タスク３    ０００５Ｈ
グループ２  ０００６Ｈ
タスク４    ０００７Ｈ
各タスク及びグループは、グループ０を表す「００Ｈ」と、優先度を表す「０１Ｈ」〜「０７Ｈ」により表される。
【００３１】
次に、第１ソフトウェア部品内のタスクに優先度を設定する。第１ソフトウェア部品内のタスクは、第１ソフトウェア部品のパフォーマンスに影響するタスクＡ、Ｂ、Ｃと、パフォーマンスに影響しないタスクＫ、Ｌとからなる。第１ソフトウェア部品をグループ１として、グループ番号「１」を割り振る。次いで、タスクに優先度を割り振る。ここで、優先度は、第１ソフトウェア部品のパフォーマンスに影響するタスクＡ、Ｂ、Ｃについてはグループ１内で独自の優先度を割り振ることになるが、タスクＫ、Ｌについては、第１ソフトウェア部品のパフォーマンスに影響を与えないので、グループ０の優先度テーブルに基づいて優先度が割り振られる。図４では、以下のようになる。
タスクＡ    ＦＦ０３Ｈ
タスクＢ    ＦＦ０４Ｈ
タスクＣ    ＦＦ０５Ｈ
タスクＫ    ０００４Ｈ
タスクＬ    ０００５Ｈ
タスクＡ〜Ｃは、グループ０以外のグループを表す「ＦＦＨ」と、優先度を表す「０３Ｈ」〜「０５Ｈ」により表される。タスクＫ、Ｌは、グループ０を表す「００Ｈ」と、優先度を表す「０４Ｈ」、「０５Ｈ」により表される。
尚、タスクＫ、Ｌは、予めグループ０として優先度テーブル２３ａに登録してもよい。つまり、パフォーマンスに関するタスクのみをグループ化して、パフォーマンスに関しないタスクは従来と同様に、グループ０のタスクと同列で管理するようにしてもよい。
【００３２】
次に、第２ソフトウェア部品内のタスクに優先度を設定する。第２ソフトウェア部品内のタスクは、第２ソフトウェア部品のパフォーマンスに影響するタスクＸ、Ｙ、Ｚからなる。第２ソフトウェア部品をグループ２として、グループ番号「２」を割り振る。次いで、タスクに優先度を割り振る。図４では、以下のようになる。
タスクＸ    ＦＦ０１Ｈ
タスクＹ    ＦＦ０３Ｈ
タスクＺ    ＦＦ０４Ｈ
タスクＸ〜Ｚは、グループ０以外のグループを表す「ＦＦＨ」と、優先度を表す「０１Ｈ」、「０３Ｈ」、「０４Ｈ」により表される。
【００３３】
グループ１のタスクＡとグループ２のタスクＹとは、同じ「ＦＦ０３Ｈ」により優先度が表されるが、ポインタ２２により指定された優先度テーブルにおいて優先度を指定してタスクの処理を実行するために、両者を混同することはない。つまり、同じ優先度で表されていても異なる優先度テーブルで両者を管理し、ポインタ２２でいずれかの優先度テーブルを指定して処理を実行させるために、両者の混同は起こらない。これは、グループ１のタスクＢとグループ２のタスクＺについても同様である。
【００３４】
図４に示す優先度テーブルにより実行されるタスクの処理順序は、以下のようになる。ここでは、一度処理を行ったタスクは待機状態になるものとする。
まず、グループ０の優先度テーブル２３ａに従い、優先度「０１Ｈ」のタスク１の処理が実行される。ついで、優先度「０２Ｈ」のグループ１へ処理が移る。モニタ２１のポインタ２２は、グループ１の優先度テーブルである優先度テーブル２３ｂを指定する。そして、グループ１の優先度テーブル２３ｂに従い、タスクＡ、タスクＢ、タスクＣの処理を、この順序で実行する。グループ１の優先度テーブル２３ｂによる順序での処理が終了すると、ポインタ２２は、再び優先度テーブル２３ａを指定して、引き続きグループ０の優先度テーブル２３ａに基づいた処理を行う。
【００３５】
グループ１のタスクＡ、Ｂ、Ｃの優先度は、それぞれ「０３Ｈ」、「０４Ｈ」、「０５Ｈ」であるが、グループ０の優先度とは異なる優先度により優先度が決められている。そのために、グループ０の優先度テーブル２３ａで優先度「０２Ｈ」のであるグループ１の優先度「０５Ｈ」のタスクＣが、グループ０の優先度「０３Ｈ」のタスク２よりも先に処理が実行されることとなる。
つまり、グループ１の優先度がタスク２の優先度よりも高いために、グループ１内のタスクの処理が終了するまで、タスク２の処理が実行されることはない。そのために、グループ１のパフォーマンスは、グループ１、つまり第１ソフトウェア部品単体のときと同じになる。
【００３６】
グループ０の優先度テーブル２３ａでは、グループ１の処理に次いで、優先度「０３Ｈ」のタスク２の処理を実行する。タスク２の処理が終了すると、優先度「０４Ｈ」の処理を実行する。優先度「０４Ｈ」はグループ１のタスクＫであるが、タスクＫが第１ソフトウェア部品のパフォーマンスに影響のないタスクであるために、グループ０の優先度テーブル２３ａで、その処理順序を指定する。つまり、タスクＫは、グループ１に属するが、扱いとしてはグループ０のタスクと同列ということになる。
タスクに割り振られるグループ番号により、どのグループの優先度テーブルを用いるか、つまり、グループ番号が「００Ｈ」ならばグループ０の優先度テーブル２３ａを用い、グループ番号が「ＦＦＨ」ならば自グループの優先度テーブルを用いることで、このような処理が可能にになる。
【００３７】
次いで、グループ０の優先度テーブル２３ａの優先度「０５Ｈ」の処理を実行する。優先度「０５Ｈ」には、グループ０のタスク３及びグループ１のタスクＫがあるが、どちらを優先させて処理を実行させるかは、情報処理システム１０全体として、システム設計者が決めたり、その都度、他のプログラムにより制御するようにするとよい。例えば、グループ０のタスク３の処理を優先的に実行させたり、実行の準備が先に整ったタスクの処理を先に実行したり、前後のタスクの処理結果によって決めたり等である。
【００３８】
次いで、グループ０の優先度テーブル２３ａの優先度「０６Ｈ」の処理を実行する。ここでは、グループ２の処理を行うので、ポインタ２２は、グループ２の優先度テーブル２３ｃを指定する。グループ２の優先度テーブル２３ｃに従い、タスクＸ、タスクＹ、タスクＺの処理を、この順序で実行する。グループ２の優先度テーブル２３ｃによる順序での処理が終了すると、ポインタ２２は、再び優先度テーブル２３ａを指定して、引き続きグループ０の優先度テーブル２３ａに基づいた処理を行う。
【００３９】
グループ２のタスクＸ、Ｙ、Ｚの優先度は、それぞれ「０１Ｈ」、「０３Ｈ」、「０４Ｈ」であるが、グループ０の優先度とは異なる優先度により優先度が決められている。そのために、グループ２の優先度「０１Ｈ」のタスクＸがグループ０の優先度「０５Ｈ」のタスク３よりも後に処理が実行される。
つまり、グループ２の優先度がタスク３の優先度よりも低いために、グループ２内のタスクの処理は、タスク３の処理が終了するまで実行されることはない。そのために、グループ２のパフォーマンスは、グループ２、つまり第２ソフトウェア部品単体のときと同じになる。
【００４０】
ポインタ２２は、グループ２の処理が終了すると再びグループ０の優先度テーブル２３ａを指定する。グループ０の優先度テーブル２３ａでは、グループ２の処理に次いで、優先度「０７Ｈ」のタスク４の処理を実行する。
これにより、図４に示す優先度テーブル２３ａ〜ｃによるタスクの処理が終了する。
【００４１】
タスクを、主となるグループ（グループ０）と従となるソフトウェア部品のグループ（グループ１、２）とに分け、各グループで優先度テーブルを設定する。ソフトウェア部品のグループの優先度テーブルは、他のグループの優先度テーブルから独立しているため、ソフトウェア部品内の処理が終了するまで、自グループより優先度の低いタスクやグループに処理が移ることはない。そのために、ソフトウェア部品単体のときと同じパフォーマンスを保証できるようになる。
【００４２】
ここで、第１ソフトウェア部品（グループ１）に機能が追加され、新たなタスクであるタスクＤを追加する場合について、図５を用いて説明する。
タスクＤは、グループ１内の処理で、優先度としてタスクＡとタスクＢの間に位置するものとする。この場合、グループ番号「１」をタスクＤに割り振る。そして、グループ番号「１」の優先度テーブル２３ｂを参照してタスクＡとタスクＢの間に処理が実行されるように、タスクＤに優先度を割り振る。
【００４３】
具体的には、モニタ部２１でグループ１の優先度テーブル２３ｂを読み出す。読み出された優先度テーブル２３ｂに基づいてタスクＤの処理の優先度を割り振る。この場合は、タスクＡの優先度を「ＦＦ０２Ｈ」に変更し、タスクＤの優先度を「ＦＦ０３Ｈ」とする。
【００４４】
他のグループにタスクやソフトウェア部品を追加する場合も同様に行う。これにより、タスクやソフトウェア部品が追加される優先度テーブルのみを変更することにより優先度の再割り振りが可能となり、情報処理システム内のすべてのタスクについて優先度の再割り振りを行う必要のあった従来と比較して、容易にタスクやソフトウェア部品の追加による機能の追加が行えるようになる。
【００４５】
グループ優先度の概念を導入することで、各ソフトウェア部品のパフォーマンスを保証することができる。また、ソフトウェア部品にタスクの追加があった場合でも、ソフトウェア部品内で優先度の再割り振りをするだけで済むために、容易に機能の追加が可能になる。
【００４６】
【発明の効果】
以上のような本発明により、情報処理システムに組み込んだ場合でも、ソフトウェア部品のパフォーマンスを低下させることなく実行することができる。
【図面の簡単な説明】
【図１】グループ優先度による優先度テーブルの例示図。
【図２】情報処理システムの構成図。
【図３】モニタ部による処理の説明図。
【図４】優先度テーブルの例示図。
【図５】優先度テーブルの例示図。
【図６】従来の優先度テーブルの例示図。
【符号の説明】
１０  情報処理システム
２０  オペレーティングシステム
２１  モニタ部
２２  ポインタ
２３ａ、ｂ、ｃ  優先度テーブル
３０  アプリケーション
【図１】
0003763452.tif 000002
【図２】
0003763452.tif 000003
【図３】
0003763452.tif 000004
【図４】
0003763452.tif 000005
【図５】
0003763452.tif 000006
【図６】
0003763452.tif 000007