(57)【特許請求の範囲】
【請求項１】
データ記憶装置に記憶されたデータを参照更新する処理要求をその処理の優先度に応じて優先キュー及び通常キューの何れか一方に格納するステップと、前記優先キューに対応して設けられ、前記優先キューに格納された処理要求を専門に処理する優先処理手段が、前記優先キューに処理要求が格納されるのを待ち、前記優先キューに処理要求が格納されると、直ちにその処理要求を前記優先キューから取り出して処理するステップと、前記通常キューに対応して設けられ、前記優先処理手段と同じ機能を有し、前記通常キューに格納された処理要求を専門に処理する通常処理手段が、前記通常キューに処理要求が格納されるのを待ち、前記通常キューに処理要求が格納されると、直ちにその処理要求を前記通常キューから取り出して処理するステップとを含む情報処理システムにおける優先実行制御方法。
【請求項２】
前記優先処理手段および前記通常処理手段のそれぞれは、コンピュータ上で互いに並行して動作するスレッドである請求項１記載の情報処理システムにおける優先実行制御方法。
【請求項３】
前記優先処理手段を実現するスレッドのスレッド優先度は前記通常処理手段を実現するスレッドのスレッド優先度より低く設定されている請求項２記載の情報処理システムにおける優先実行制御方法。
【請求項４】
前記優先処理手段を実現するスレッドのスレッド優先度は前記通常処理手段を実現するスレッドのスレッド優先度と等しく設定されている請求項２記載の情報処理システムにおける優先実行制御方法。
【請求項５】
前記優先処理手段を実現するスレッドのスレッド優先度は前記通常処理手段を実現するスレッドのスレッド優先度より高く設定されている請求項２記載の情報処理システムにおける優先実行制御方法。
【請求項６】
前記優先処理手段を実現するスレッドまたは前記通常処理手段を実現するスレッドのスレッド優先度を動的に変更するステップを含む請求項２記載の情報処理システムにおける優先実行制御方法。
【請求項７】
処理要求をその処理の優先度に応じて優先キュー及び通常キューの何れか一方に格納するステップは、予め定められた優先ルールを参照して優先度の判定を行う請求項１記載の情報処理システムにおける優先実行制御方法。
【請求項８】
前記優先ルールを動的に変更するステップを含む請求項７記載の情報処理システムにおける優先実行制御方法。
【請求項９】
処理要求の処理結果を処理要求元に対して通知するステップを含む請求項１記載の情報処理システムにおける優先実行制御方法。
【請求項１０】
前記優先処理手段を実現するスレッドが処理要求を処理した結果及び前記通常処理手段を実現するスレッドが処理要求を処理した結果の少なくとも一方を処理要求元に通知するステップを含む請求項２記載の情報処理システムにおける優先実行制御方法。
【請求項１１】
前記優先キュー及び前記優先処理手段を実現するスレッドの組を動的に生成するステップと、生成した前記優先キュー及び前記優先処理手段を実現するスレッドの組を動的に消滅させるステップとを含む請求項２記載の情報処理システムにおける優先実行制御方法。
【請求項１２】
ネットワークを介してクライアントに接続され、クライアントからの処理要求を処理した結果を要求元のクライアントに返却するサーバにおける、処理要求を処理して応答結果を生成する処理部および該処理部で生成された応答結果を要求元のクライアントに返却する処理を行う応答部の少なくとも一方に、請求項１乃至請求項１１の何れか１項に記載された優先実行制御にかかる手順を実行させるようにした情報処理システムにおける優先実行制御方法。
【請求項１３】
優先キュー及び通常キューと、データ記憶装置に記憶されたデータを参照更新する処理要求をその処理の優先度に応じて前記優先キュー、前記通常キューの何れか一方に格納する分配手段と、前記優先キューに対応して設けられ、前記優先キューに格納された処理要求を専門に処理する手段であって、前記優先キューに処理要求が格納されるのを待ち、前記優先キューに処理要求が格納されると、直ちにその処理要求を前記優先キューから取り出して処理する優先処理手段と、前記通常キューに対応して設けられ、前記優先処理手段と同じ機能を有し、前記通常キューに格納された処理要求を専門に処理する手段であって、前記通常キューに処理要求が格納されるのを待ち、前記通常キューに処理要求が格納されると、直ちにその処理要求を前記通常キューから取り出して処理する通常処理手段とを備えた情報処理システムにおける優先実行制御装置。
【請求項１４】
前記優先処理手段および前記通常処理手段のそれぞれは、コンピュータ上で互いに並行して動作するスレッドである請求項１３記載の情報処理システムにおける優先実行制御装置。
【請求項１５】
前記優先処理手段を実現するスレッドのスレッド優先度は前記通常処理手段を実現するスレッドのスレッド優先度より低く設定されている請求項１４記載の情報処理システムにおける優先実行制御装置。
【請求項１６】
前記優先処理手段を実現するスレッドのスレッド優先度は前記通常処理手段を実現するスレッドのスレッド優先度と等しく設定されている請求項１４記載の情報処理システムにおける優先実行制御装置。
【請求項１７】
前記優先処理手段を実現するスレッドのスレッド優先度は前記通常処理手段を実現するスレッドのスレッド優先度より高く設定されている請求項１４記載の情報処理システムにおける優先実行制御装置。
【請求項１８】
前記優先処理手段を実現するスレッドまたは前記通常処理手段を実現するスレッドのスレッド優先度を動的に変更するスレッド優先度変更手段を含む請求項１４記載の情報処理システムにおける優先実行制御装置。
【請求項１９】
処理要求をその処理の優先度に応じて優先キュー及び通常キューの何れか一方に格納する分配手段によって参照される優先ルールを記憶する優先ルール記憶手段を含む請求項１３記載の情報処理システムにおける優先実行制御装置。
【請求項２０】
前記優先ルール記憶手段中の優先ルールを動的に変更する優先ルール変更手段を含む請求項１９記載の情報処理システムにおける優先実行制御装置。
【請求項２１】
処理要求の処理結果を処理要求元に対して通知する状態通知手段を含む請求項１３記載の情報処理システムにおける優先実行制御装置。
【請求項２２】
前記優先処理手段を実現するスレッドが処理要求を処理した結果及び前記通常処理手段を実現するスレッドが処理要求を処理した結果の少なくとも一方を処理要求元に通知する状態通知手段を含む請求項１４記載の情報処理システムにおける優先実行制御装置。
【請求項２３】
前記優先キュー及び前記優先処理手段を実現するスレッドの組を動的に生成し、且つ、生成した前記優先キュー及び前記優先処理手段を実現するスレッドの組を動的に消滅させるスレッド割付手段を含む請求項１４記載の情報処理システムにおける優先実行制御装置。
【請求項２４】
ネットワークを介してクライアントに接続され、クライアントからの処理要求を処理した結果を要求元のクライアントに返却するサーバにおける、処理要求を処理して応答結果を生成する処理部および該処理部で生成された応答結果を要求元のクライアントに返却する処理を行う応答部の少なくとも一方に、請求項１３乃至請求項２３の何れか１項に記載された優先実行制御にかかる手段を備える情報処理システムにおける優先実行制御装置。
【請求項２５】
コンピュータを、データ記憶装置に記憶されたデータを参照更新する処理要求をその処理の優先度に応じて優先キュー及び通常キューの何れか一方に格納する分配手段、前記優先キューに対応して設けられ、前記優先キューに格納された処理要求を専門に処理する手段であって、前記優先キューに処理要求が格納されるのを待ち、前記優先キューに処理要求が格納されると、直ちにその処理要求を前記優先キューから取り出して処理する優先処理手段、前記通常キューに対応して設けられ、前記優先処理手段と同じ機能を有し、前記通常キューに格納された処理要求を専門に処理する手段であって、前記通常キューに処理要求が格納されるのを待ち、前記通常キューに処理要求が格納されると、直ちにその処理要求を前記通常キューから取り出して処理する通常処理手段、として機能させるプログラム。
【請求項２６】
前記優先処理手段および前記通常処理手段のそれぞれは、コンピュータ上で互いに並行して動作するスレッドである請求項２５記載のプログラム。
【請求項２７】
前記優先処理手段を実現するスレッドのスレッド優先度は前記通常処理手段を実現するスレッドのスレッド優先度より低く設定されている請求項２６記載のプログラム。
【請求項２８】
前記優先処理手段を実現するスレッドのスレッド優先度は前記通常処理手段を実現するスレッドのスレッド優先度と等しく設定されている請求項２６記載のプログラム。
【請求項２９】
前記優先処理手段を実現するスレッドのスレッド優先度は前記通常処理手段を実現するスレッドのスレッド優先度より高く設定されている請求項２６記載のプログラム。
【請求項３０】
前記コンピュータを、更に、前記優先処理手段を実現するスレッドまたは前記通常処理手段を実現するスレッドのスレッド優先度を動的に変更するスレッド優先度変更手段、として機能させる請求項２６記載のプログラム。
【請求項３１】
前記コンピュータを、更に、処理要求をその処理の優先度に応じて優先キュー及び通常キューの何れか一方に格納する分配手段によって参照される優先ルールを記憶する優先ルール記憶手段中の優先ルールを動的に変更する優先ルール変更手段、として機能させる請求項２５記載のプログラム。
【請求項３２】
前記コンピュータを、更に、処理要求の処理結果を処理要求元に対して通知する状態通知手段、として機能させる請求項２５記載のプログラム。
【請求項３３】
前記コンピュータを、更に、前記優先処理手段を実現するスレッドが処理要求を処理した結果及び前記通常処理手段を実現するスレッドが処理要求を処理した結果の少なくとも一方を処理要求元に通知する状態通知手段、として機能させる請求項２６記載のプログラム。
【請求項３４】
前記コンピュータを、更に、前記優先キュー及び前記優先処理手段を実現するスレッドの組を動的に生成し、且つ、生成した前記優先キュー及び前記優先処理手段を実現するスレッドの組を動的に消滅させるスレッド割付手段、として機能させる請求項２６記載のプログラム。
【請求項３５】
ネットワークを介してクライアントに接続され、クライアントからの処理要求を処理した結果を要求元のクライアントに返却するサーバコンピュータを、クライアントからの処理要求をその処理の優先度に応じて第１の優先キュー及び第１の通常キューの何れか一方に格納する第１の分配手段、前記第１の優先キューに対応して設けられ前記第１の優先キューに格納された処理要求を処理する第１の優先処理手段、前記第１の通常キューに対応して設けられ前記第１の通常キューに格納された処理要求を処理する第１の通常処理手段を含む処理部として機能させるプログラム。
【請求項３６】
前記サーバコンピュータを、更に、前記処理部の前記第１の優先処理手段及び前記第１の通常処理手段からクライアントに返却すべき応答結果を含む処理要求を受け取ってその処理の優先度に応じて第２の優先キュー及び第２の通常キューの何れか一方に格納する第２の分配手段、前記第２の優先キューに対応して設けられ前記第２の優先キューに格納された処理要求を処理する第２の優先処理手段、前記第２の通常キューに対応して設けられ前記第２の通常キューに格納された処理要求を処理する第２の通常処理手段を含む応答部として機能させる請求項３５記載のプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は情報処理システムにおける処理要求の実行制御に関し、特にアプリケーションプログラムから出力される複数の処理要求のうち、優先的に処理すべき処理要求をできるだけ速やかに処理することができる優先実行制御方法及びその装置に関する。
【０００２】
【従来の技術】
情報処理システムにおける単位時間当たりの処理要求発生頻度と単位時間当たりの処理量との差を吸収することなどを目的として、キューが一般に用いられている。図１７（ａ）にキューを用いた典型的な実行制御方法の概略を示す。図１７（ａ）において、アプリケーションプログラム等の処理要求元１１０１から発生した個々の処理要求１１０２は、キュー１１０３に一旦格納される。処理部１１０４は、キュー１１０３に処理要求１１０２が格納されると、キュー１１０３から先入れ先出し方式（ＦＩＦＯ）に従って１つの処理要求１１０２を読み出し、処理要求１１０２の内容に従って当該処理要求１１０２を処理し、処理結果１１０５を出力する。処理部１１０４は、１つの処理要求１１０２を処理し終えると、キュー１１０３に他の処理要求１１０２が残っていれば、先と同様にこの処理要求１１０２を読み出し、同様の処理を繰り返す。
【０００３】
図１７（ａ）の構成では処理要求１１０２はその発生順に逐次に処理される為、特定の処理要求を他の処理要求より優先的に処理することはできない。特定の処理要求を優先的に実行する必要がある場合、単一のキューでなく、優先キューと通常キューの２つのキューが一般に用いられる。図１７（ｂ）に２つのキューを用いた典型的な実行制御方法の概略を示す。図１７（ｂ）において、アプリケーションプログラム等の処理要求元１１０１から発生した個々の処理要求１１０２は、その処理の優先度に応じて分配部１１０６により、優先度の高いものは優先キュー１１０７へ、そうでないものは通常キュー１１０８へそれぞれ一旦格納される。処理部１１０４は、所定の規則に従って優先キュー１１０７及び通常キュー１１０８から処理要求１１０２を読み出して処理し、処理結果１１０５を出力する。所定の規則が、優先キュー１１０７に処理要求がある場合にはそこから処理要求を読み出し、ない場合に限って通常キュー１１０８から処理要求を読み出すという規則である場合、優先キュー１１０７に格納される優先度の高い処理要求１１０２が通常キュー１１０８に格納される処理要求１１０２より優先的に処理されることになる。
【０００４】
このような優先キュー及び通常キューの２つのキューを用いた優先実行制御方法を記載した文献として、特開平４−１７６２３６号公報がある。同公報では、通常送信と優先送信の何れか一方が指定された送信データをその指定に従って優先キュー又は通常キューに格納し、予め設定された優先通信と通常通信の比率に従って優先キュー又は通常キューから送信データを読み出して送信を行うファクシミリ装置が開示されている。他に、パケット通信ネットワークにおける経路制御装置に見られるように、ＱｏＳ（Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）を目的として、パケットのヘッド情報に応じて優先キューもしくは通常キューへ振り分けることで、特定のパケット（例えば音声パケット）の送信を優先的に行う場合にも同様の優先実行制御方法が採用されている。
【０００５】
他方、情報処理システムにおける処理能力を改善する手法として処理の並列化がある。しかし、優先キュー及び通常キューの２つのキューを用いた優先実行制御方法に対して処理の並列化技術を適用した例は見当たらない。若し、図１７（ｂ）における処理部１１０４の並列化を考えた場合、図１７（ｃ）に示されるような構成となるであろう。図１７（ｃ）において、処理部１１０４Ａ及び処理部１１０４Ｂは、図１７（ｂ）における処理部１１０４と同機能を有するもので、各々は、所定の規則に従って優先キュー１１０７及び通常キュー１１０８から処理要求１１０２を読み出して処理し、処理結果１１０５を出力する。処理要求１１０２を処理する処理部が２つ並行して動作するため、当該情報処理システムにおける単位時間当たりの処理量が増大する利点がある。
【０００６】
【発明が解決しようとする課題】
図１７（ｂ）に示した優先実行制御方法では、通常キュー１１０８から処理要求１１０２を取り出す確率に比べて優先キュー１１０７から処理要求１１０２を取り出す確率を高めることで、優先キュー１１０７に格納された優先度の高い処理要求１１０２を通常キュー１１０８に格納された処理要求１１０２より優先的に処理することができる。
【０００７】
しかしながら、優先キュー１１０７が空の状態であり、通常キュー１１０８に１つ以上の処理要求１１０２が格納されており、処理部１１０４が通常キュー１１０８から１つの処理要求１１０２を取り出し、その処理を開始した時点で、優先度の高い処理要求が優先キュー１１０７に格納されたとき、当該優先度の高い処理要求が速やかに処理されないという課題がある。これは、優先キュー１１０７に処理要求がある場合にはそこから処理要求を読み出し、ない場合に限って通常キュー１１０８から処理要求を読み出すという最優先の規則を適用しても改善されない。その理由は、優先度の高い処理要求が優先キュー１１０７に投入された時点では処理部１１０４は通常キュー１１０８から取り出した処理要求を実行しており、その処理が終わらなければ、処理部１１０４は優先キュー１１０７から処理要求を取り出さないからである。
【０００８】
同様の問題は図１７（ｃ）に示したように処理部を並列化した構成でも起きる。つまり、処理部１１０４Ａが通常キュー１１０８中の或る１つの処理要求１１０２を処理しており、処理部１１０４Ｂが通常キュー１１０８中の別の１つの処理要求１１０２を処理しているときに、空き状態であった優先キュー１１０７に優先度の高い処理要求が投入されると、この処理要求は処理部１１０４Ａ、１１０４Ｂの何れか一方が現在の処理要求の処理を終了するまで待たされることになる。
【０００９】
本発明はこのような事情に鑑みて提案されたものであり、その目的は、優先的に処理すべき処理要求をできるだけ速やかに処理することができる優先実行制御方法及びその装置を提供することにある。
【００１０】
【課題を解決するための手段】
本発明は優先キュー及び通常キューのそれぞれに対して専用の処理手段を設けることを基本とする。具体的には、本発明の情報処理システムにおける優先実行制御方法においては、データ記憶装置に記憶されたデータを参照更新する処理要求をその処理の優先度に応じて優先キュー及び通常キューの何れか一方に格納するステップと、前記優先キューに対応して設けられ、前記優先キューに格納された処理要求を専門に処理する優先処理手段が、前記優先キューに処理要求が格納されるのを待ち、前記優先キューに処理要求が格納されると、直ちにその処理要求を前記優先キューから取り出して処理するステップと、前記通常キューに対応して設けられ、前記優先処理手段と同じ機能を有し、前記通常キューに格納された処理要求を専門に処理する通常処理手段が、前記通常キューに処理要求が格納されるのを待ち、前記通常キューに処理要求が格納されると、直ちにその処理要求を前記通常キューから取り出して処理するステップとを含んでいる。また、本発明の情報処理システムにおける優先実行制御装置は、優先キュー及び通常キューと、データ記憶装置に記憶されたデータを参照更新する処理要求をその処理の優先度に応じて前記優先キュー、前記通常キューの何れか一方に格納する分配手段と、前記優先キューに対応して設けられ、前記優先キューに格納された処理要求を専門に処理する手段であって、前記優先キューに処理要求が格納されるのを待ち、前記優先キューに処理要求が格納されると、直ちにその処理要求を前記優先キューから取り出して処理する優先処理手段と、前記通常キューに対応して設けられ、前記優先処理手段と同じ機能を有し、前記通常キューに格納された処理要求を専門に処理する手段であって、前記通常キューに処理要求が格納されるのを待ち、前記通常キューに処理要求が格納されると、直ちにその処理要求を前記通常キューから取り出して処理する通常処理手段とを備えている。
【００１１】
【作用】
本発明の情報処理システムにおける優先実行制御方法及びその装置にあっては、優先キューに１つも処理要求が格納されていない状態では、たとえ通常キューに複数の処理要求が格納されていたとしても、通常キューから処理要求を取り出して処理するのは通常処理手段だけで、優先処理手段は優先キューに処理要求が格納されるのを待っており、優先キューに処理要求が格納されると、この処理要求が優先処理手段によって直ちに取り出されて処理される。これによって、優先的に処理すべき処理要求が速やかに処理されることになる。
【００１２】
【発明の実施の形態】
次に本発明の実施の形態の例について図面を参照して詳細に説明する。
【００１３】
図１を参照すると、本発明の一実施の形態を適用した情報処理システムにおける優先実行制御装置は、優先キュー１及び通常キュー２の２つのキューと、処理要求３を発生するアプリケーションプログラム等の処理要求元４と、処理要求元４から発生した処理要求３をその処理の優先度に応じて優先キュー１、通常キュー２の何れか一方に分配する分配部５と、優先キュー１に対応して設けられ、優先キュー１に格納された処理要求３を専門に処理する優先処理部６と、通常キュー２に対応して設けられ、通常キュー２に格納された処理要求を専門に処理する通常処理部７とを含んで構成されている。
【００１４】
処理要求３は１つの完結した処理を要求する単位であり、処理すべきデータや場合によっては処理の種類などを含んで構成される。例えば、或る計算を行うための被演算データであったり、データベースを更新するためのデータであったり、ｊａｖａやｊａｖａスクリプト等のインタプリタ型の言語で記述されたプログラムであったりする。優先処理部６及び通常処理部７は、共に同じ機能を有しており、全ての種類の処理要求３を処理することができる。ここでの処理は、例えば、処理要求３に含まれる被演算データを用いて所定の計算を行って結果を出力したり、処理要求３で指定された通りにデータベースなどを更新したり、インタプリタ型の言語で記述されたプログラムを解釈して実行したりする処理である。
【００１５】
処理要求元４で発生した処理要求３をその処理の優先度に基づいて分配部５が優先キュー１または通常キュー２に分配する方法は、任意の方法を採用することができる。例えば、処理要求元４が処理要求３を発生する際に、その優先度を付随させ、分配部５は処理要求３に付随する優先度を解析し、高い優先度の処理要求３は優先キュー１に格納し、そうでない処理要求３は通常キュー２に格納する方法を採用することができる。他の例として、処理要求元４が複数存在する場合、個々の処理要求元４毎に予め優先度を付与しておき、分配部５は、優先度の高い処理要求元４から発生した処理要求３は優先キュー１に格納し、それ以外の処理要求元４から発生した処理要求３は通常キュー２に格納する方法を採用することができる。また、分配部５が処理要求の優先度を判定するルールは分配部５に固定的に設定しておいても良いし、別の部分に優先ルールを記憶しておき、分配部５がその記憶された優先ルールを参照するようにしても良い。
【００１６】
このように構成された本実施の形態にあっては、処理要求元４から発生した個々の処理要求３は、その処理の優先度に応じて分配部５により、優先度の高いものは優先キュー１へ、そうでないものは通常キュー２へそれぞれ分配される。優先処理部６は、優先キュー１に処理要求３が格納されるのを待っており、優先キュー１に処理要求３が格納されると、それを取り出して処理し、処理結果８を出力する。１つの処理要求３を処理し終えると、優先キュー１に他の処理要求３が存在するか否かを調べ、存在すれば処理要求３を取り出し、同様に処理する。存在しなければ、優先キュー１に処理要求３が格納されるのを待つ。
【００１７】
他方、通常処理部７は、通常キュー２に処理要求３が格納されるのを待っており、通常キュー２に処理要求３が格納されると、それを取り出して処理し、処理結果８を出力する。１つの処理要求３を処理し終えると、通常キュー２に他の処理要求３が存在するか否かを調べ、存在すれば処理要求３を取り出し、同様に処理する。存在しなければ、通常キュー２に処理要求３が格納されるのを待つ。
【００１８】
このように本実施の形態によれば、優先キュー１に１つも処理要求３が格納されていない状態では、たとえ通常キュー２に複数の処理要求が格納されていたとしても、通常キュー２から処理要求を取り出して処理するのは通常処理部７だけで、優先処理部６は優先キュー１に処理要求３が格納されるのを待っている。この点が処理部を並列化した図１７（ｃ）と大きく相違する点である。このため、優先キュー１に処理要求３が格納されると、この処理要求３は優先処理部６によって直ちに取り出され、速やかに処理されることになる。
【００１９】
【実施例】
次に本実施の形態の実施例について図面を参照して詳細に説明する。
【００２０】
【第１の実施例】
図２を参照すると、本実施例にかかる情報処理システムにおける優先実行制御方法を実施するコンピュータ１００は、アプリケーションプログラム（クライアント）２００から出力される複数の処理要求のうち優先的に処理すべき処理要求を他の処理要求より優先的に実行する機能を有しており、優先ルール記憶手段１０１、処理要求分配手段１０２、優先キュー１０３、通常キュー１０４、優先要求処理スレッド１０５、通常処理スレッド１０６及びデータ記憶装置１０７を含んで構成される。
【００２１】
優先キュー１０３は、アプリケーションプログラム２００から出力される処理要求のうち優先的に処理すべき処理要求を先入れ先出し方式で格納するキューであり、例えば主記憶上に設けられている。他方、通常キュー１０４は、アプリケーションプログラム２００から出力される処理要求のうち優先的に処理すべき処理要求以外の処理要求を先入れ先出し方式で格納するキューであり、同様に例えば主記憶上に設けられている。優先キュー１０３及び通常キュー１０４のキュー長は固定長でも、可変長でも良い。可変長の場合、キューの為に使用するメモリの効率的な利用を考慮したキュー長制御を実施するのが望ましい。例えば、処理要求をキューに投入し、またキューから取り出すためにＰＵＴメソッドとＧＥＴメソッドをキューに実装し、処理要求分配手段１０２が処理要求を優先キュー１０３または通常キュー１０４に投入する際に該当するキューのＰＵＴメソッドを呼び出し、また優先要求処理スレッド１０５、通常要求処理スレッド１０６が優先キュー１０３、通常キュー１０４から処理要求を取り出す際に該当するキューのＧＥＴメソッドを呼び出す構成を採用している場合、キュー自身がキュー長を管理し、現在のキュー長と溜まっている処理要求の数が一致している状態でＰＵＴメソッドが呼び出されると、キュー自身がキュー長を伸ばして処理要求の取り込みを可能にし、逆にＧＥＴメソッドが呼び出された結果、溜まっている処理要求が０になり、かつ、キュー長を伸ばしていたら、キュー自身が所定のキュー長に戻すようなキュー長制御を採用することができる。
【００２２】
優先要求処理スレッド１０５は、図１の優先処理部６に相当し、優先キュー１０３に対応して設けられている。他方、通常要求処理スレッド１０６は、図１の通常処理部７に相当し、通常キュー１０４に対応して設けられている。つまり、本実施の形態では、マルチスレッドの技術を使って処理要求を処理する処理部を実現している。ここで、スレッドとは、狭義の意味ではプロセスと区別されるが、本明細書ではプロセスを含めた広義の意味で使用している。つまり、スレッド１０５、１０６は狭義の意味でのスレッドであっても良いし、プロセスであっても良い。
【００２３】
マルチスレッド（マルチプロセス）を実現する情報処理システムにおいて、スレッドのスケジューリング方式としてスレッドの優先度に基づいて、優先度の高いスレッドほどＣＰＵ時間をより多く割り当てる方式がある。例えば、高、低の２つの優先度があり、高い優先度を持つスレッドに対して１回当たりに割り当てるＣＰＵ時間の最大値を２Ｔ、低い優先度を持つスレッドに対して１回当たりに割り当てるＣＰＵ時間をその半分のＴとし、実行可能状態のスレッド群からラウンドロビン方式でスレッドを順次に選択してＣＰＵ時間を割り当てていくスケジューリング方式では、高い優先度を持つスレッドは低い優先度を持つスレッドの２倍のＣＰＵ時間が割り当てられる。本実施例ではこのように優先度の高いスレッドほどＣＰＵ時間をより多く割り当てるスケジューリング方式を使って優先要求処理スレッド１０５及び通常要求処理スレッド１０６へのＣＰＵ時間の割り当てを行う。
【００２４】
各スレッド１０５及び１０６のスレッド自体の優先度は事前に設定されており、望ましくは、優先要求処理スレッド１０５のスレッドの優先度は、通常要求処理スレッド１０６のスレッドの優先度より高いか、同じに設定されている。勿論、優先要求処理スレッド１０５のスレッドの優先度を、通常要求処理スレッド１０６のスレッドの優先度より低く設定しても、一定の効果は得られる。
【００２５】
優先要求処理スレッド１０５及び通常要求処理スレッド１０６は、共に同じ機能を有する。両スレッド１０５、１０６の処理の概略を図３に示す。
【００２６】
図３を参照すると、各スレッド１０５、１０６は、自スレッドに対応するキューに処理要求が格納されるのを待っており（ステップＳ１）、自スレッドに対応するキューに処理要求が格納されると（ステップＳ１でＹＥＳ）、直ちにその処理要求をキューから取り出し（ステップＳ２）、その処理要求を処理する（ステップＳ３）。そして、１つの処理要求の処理を終えると、ステップＳ１に戻り、他の処理要求がキューに格納されていれば直ちにそれを取り出して処理し、格納されていなければ、格納されるのを待つ。但し、各スレッド１０５、１０６は１回当たりのＣＰＵ時間の持ち時間が決まっているので、自分の持ち時間を使い果たすと一旦ＣＰＵを明け渡す。また、自スレッドに対応するキューに処理要求が１つも格納されていなかった場合には、持ち時間を使い果たしていなくてもスリープ状態になってＣＰＵを明け渡す。スリープ状態のスレッドは、キューに処理要求が格納されると実行可能状態となる。
【００２７】
本実施例は、データ記憶装置１０７に記憶されたデータを参照更新する処理を必要とする処理要求を想定している。従って、双方のスレッド１０５及び１０６は同じデータ記憶装置１０７を共有している。各スレッド１０５、１０６がデータ記憶装置１０７に記憶されたデータを更新する場合、更新箇所にロックをかけ排他的に変更を実施する。ロックをかける単位、つまり排他の単位はスレッド１０５、１０６の並列性を充分に確保するためにできるだけ小さく設定される。
【００２８】
処理要求分配手段１０２は、アプリケーション２００から出力される処理要求を優先キュー１０３及び通常キュー１０４の何れか一方に分配する手段であり、優先的に処理すべき処理要求は優先キュー１０３に、そうでない処理要求は通常キュー１０４にそれぞれ格納する。本実施例では、処理要求分配手段１０２は、処理要求に付随する優先度データと優先ルール記憶手段１０１に記憶された優先ルールとに基づいて、各処理要求の優先度を判定し、その判定結果に基づいてキュー１０３、１０４の何れか一方に処理要求を分配する。
【００２９】
図４に、アプリケーションプログラム２００が出力する処理要求のフォーマット例を示す。図４を参照すると、個々の処理要求３００は、処理要求本体３０１とヘッダ３０２とから構成される。処理要求本体３０１には、処理すべきデータが含まれる。例えば、或る計算を行うための被演算データや、データ記憶装置１０７の更新アドレス及び更新データや、ｊａｖａまたはｊａｖａスクリプト等のインタプリタ型の言語で記述されたプログラムなどである。また、アプリケーションプログラム２００から複数の種類の処理要求が出される場合、処理要求の種類が処理要求本体３０１に設定される。ヘッダ３０２中の３０３は優先度データであり、当該処理要求３００の処理の優先度を数値で表現している。
【００３０】
アプリケーションプログラム２００は処理要求を発行する際、処理要求本体３０１に優先度データ３０３を設定したヘッダ３０２を付加して処理要求３００を生成し、処理要求分配手段１０２へ出力する。アプリケーションプログラム２００から図４の処理要求本体３０１と優先度データ３０３の値とが渡されると、それらを使ってヘッダ３０２を持つ処理要求３００を生成する機能を別途に設け、アプリケーションプログラム２００がこの機能を呼び出して処理要求３００を生成するように構成しても良い。
【００３１】
優先ルール記憶手段１０１には、優先度データ３０３の値と実際の優先度との関係などを定める優先ルールが事前に記憶されている。一例を示せば、優先ルールは、優先度データ３０３の値が正の整数であれば高優先、正の整数以外（例えば０）であれば低優先とするルールを規定する。この場合、処理要求分配手段１０２は、処理要求３００中の優先度データ３０３の値が正の整数であれば、この処理要求３００を優先キュー１０３に格納し、正の整数以外（例えば０）であれば、当該処理要求３００はこれを優先的に処理する必要のない処理要求と判断して通常キュー１０４へ格納する。他の例を示せば、優先ルールは、優先度データ３０３が閾値Δ以上であれば高優先、そうでなければ低優先とするルールを規定する。この場合、処理要求分配手段１０２は、処理要求３００中の優先度データ３０３の値を閾値Δと比較し、Δ以上の優先度データ３０３を持つ処理要求３００は優先キュー１０３に格納し、Δ未満の優先度データ３０３を持つ処理要求３００は通常キュー１０４へ格納する。
【００３２】
次に本実施例の動作を説明する。図２において、アプリケーションプログラム２００が優先度データ３０３をヘッダ３０２に付与した処理要求３００を投入すると、処理要求分配手段１０２は、優先度データ３０３の値と記憶手段１０１に記憶された優先ルールとに基づいて、優先的に処理すべき処理要求か否かを判断し、優先的に処理すべき処理要求については優先キュー１０３に格納し、優先的に処理すべき処理要求以外の処理要求については通常キュー１０４に格納する。キュー１０３、１０４へは処理要求３００全体を格納しても良いし、処理要求本体３０１だけを格納するようにしても良い。
【００３３】
通常キュー１０４に処理要求３００が格納されると、通常要求処理スレッド１０６はそのことを検出し（ステップＳ１）、通常キュー１０４から処理要求３００を取り出し（ステップＳ２）、処理要求本体３０１の内容に従って予め自スレッドに定義された所定の処理を実行することにより当該処理要求３００を処理する（ステップＳ３）。この処理の一環としてデータ記憶装置１０７が更新される。通常要求処理スレッド１０６は、１つの処理要求３００を処理し終えると、通常キュー１０４に他の処理要求３００が既に格納されていれば、それを取り出して処理する動作を継続する。
【００３４】
通常キュー１０４への処理要求３００の投入量が通常要求処理スレッド１０６の単位時間当たりの処理量を上回ると、処理要求３００が通常キュー１０４に徐々に溜まっていく。しかし、たとえこのような状況になっても、優先要求処理スレッド１０５は通常キュー１０４中の処理要求を処理することはなく、優先キュー１０３に処理要求３００が格納されるのを待っている。そして、優先キュー１０３に処理要求３００が格納されると、優先要求処理スレッド１０５はそのことを検出し（ステップＳ１）、優先キュー１０３から処理要求３００を取り出し（ステップＳ２）、処理要求本体３０１の内容に従って予め自スレッドに定義された所定の処理を実行することにより、当該処理要求３００を処理する（ステップＳ３）。この処理の一環としてデータ記憶装置１０７が更新される。優先要求処理スレッド１０５は、１つの処理要求３００を処理し終えると、優先キュー１０３に他の処理要求３００が既に格納されていれば、それを取り出して処理する動作を継続する。
【００３５】
従って、各処理要求の処理量を同じと仮定した場合、優先要求処理スレッド１０５の単位時間当たりの処理要求３００の処理量をＷ個とすると、優先キュー１０３への単位時間当たりの処理要求３００の投入量がＷ個以下であれば、常に投入後直ちに、各処理要求３００が処理されることになる。
【００３６】
他方、優先キュー１０３への単位時間当たりの処理要求３００の投入量がＷ個を超えると、優先キュー１０３に処理要求３００が徐々に溜まっていくことになる。この場合の優先キュー１０３中の処理要求の処理の状況を、通常キュー１０４中の処理要求の処理の状況と対比して、以下説明する。
【００３７】
先ず、優先要求処理スレッド１０５と通常要求処理スレッド１０６のスレッド優先度が同じ場合を考える。この場合、優先要求処理スレッド１０５と通常要求処理スレッド１０６にはＣＰＵ時間が等しく分配されるため、優先要求処理スレッド１０５と通常要求処理スレッド１０６の単位時間当たりの処理量は等しくなる。従って、優先キュー１０３中の処理要求が通常キュー１０４中の処理要求よりも優先的に処理されるには、優先的に処理すべき処理要求の単位時間当たりの発生量が、優先的に処理する必要のない処理要求の単位時間当たりの発生量の半分より少ないことが条件となる。つまり、アプリケーションプログラム２００は、このような条件を満足するように、限定された場合にのみ優先的に処理すべき処理要求を発生することで、優先的に処理すべき処理要求をそうでない処理要求よりも優先的に処理してもらうことが可能である。
【００３８】
図５に、優先的に処理すべき処理要求とそうでない処理要求とが１対３の割合で発生する場合の処理状況を示す。図５（ａ）は、アプリケーションプログラム２００からの処理要求の発生順を示し、番号１、５、９を付したものが優先的に処理すべき処理要求、番号２〜４、６〜８を付したものがそれ以外の処理要求を示す。図５（ｂ）は優先キュー１０３及び通常キュー１０４の状態を示し、優先キュー１０３には番号１、５、９等の優先的に処理すべき処理要求が発生順に格納され、通常キュー１０４には番号２〜４、６〜８等のそれ以外の処理要求が発生順に格納される。各処理要求の処理量が全て同じとすると、優先要求処理スレッド１０５及び通常要求処理スレッド１０６の単位時間当たりの処理量は前述したように等しくなるので、最終的な処理要求の処理順は図５（ｃ）のようになる。番号５の処理要求は先に発生した番号３、４の処理要求よりも先に処理され、番号９の処理要求は先に発生した番号４等の処理要求よりも先に処理されており、優先的に処理すべき処理要求がそうでない処理要求よりも優先的に処理されているのがわかる。
【００３９】
次に、優先要求処理スレッド１０５のスレッド優先度が通常要求処理スレッド１０６のスレッド優先度よりも高い場合を考える。この場合、優先要求処理スレッド１０５は通常要求処理スレッド１０６に比べてＣＰＵ時間をより多く分配されるため、優先要求処理スレッド１０５の単位時間当たりの処理量は通常要求処理スレッド１０６のそれより多くなる。この為、スレッド優先度が同じ場合と異なり、優先的に処理すべき処理要求の単位時間当たりの発生量が、優先的に処理する必要のない処理要求の単位時間当たりの発生量の半分より多い場合であっても、優先キュー１０３中の処理要求が通常キュー１０４中の処理要求よりも優先的に処理される。優先的に処理すべき処理要求の単位時間当たりの発生量と、優先的に処理する必要のない処理要求の単位時間当たりの発生量との比がどの程度までなら、優先キュー１０３中の処理要求が通常キュー１０４中の処理要求よりも優先的に処理されるかは、優先要求処理スレッド１０５と通常要求処理スレッド１０６のスレッド優先度の差に応じて決まるＣＰＵの分配時間の差で左右されることになる。
【００４０】
次に、優先要求処理スレッド１０５のスレッド優先度が通常要求処理スレッド１０６のスレッド優先度よりも低い場合を考える。この場合、優先要求処理スレッド１０５は通常要求処理スレッド１０６に比べて分配されるＣＰＵ時間が少なくなるため、優先要求処理スレッド１０５の単位時間当たりの処理量は通常要求処理スレッド１０６のそれより少なくなる。この為、優先的に処理すべき処理要求の単位時間当たりの発生量が、優先的に処理する必要のない処理要求の単位時間当たりの発生量の半分より充分に少なくなければ、優先キュー１０３中の処理要求が通常キュー１０４中の処理要求よりも優先的に処理されなくなる。優先的に処理すべき処理要求の単位時間当たりの発生量と、優先的に処理する必要のない処理要求の単位時間当たりの発生量との比がどの程度までなら、優先キュー１０３中の処理要求が通常キュー１０４中の処理要求よりも優先的に処理されるかは、優先要求処理スレッド１０５と通常要求処理スレッド１０６のスレッド優先度の差に応じて決まるＣＰＵの分配時間の差で左右されることになる。
【００４１】
【適用例】
次に本実施例の適用例について図面を参照して詳細に説明する。
【００４２】
ここでは、テレビ・ラジオにおける映像音声放送番組配信システムへの適用例を取りあげる。
【００４３】
テレビ・ラジオにおける映像音声放送番組配信システムは、１つのチャンネルに流される各番組の番組枠及び番組枠の中でのＣＭの時間枠を管理する編成装置と、送出コンテンツを作成する制作装置と、指示された送出スケジュール情報に沿って送出データの送出を行う送出装置とで構成される。この映像音声放送番組配信システムは、プレイリストと呼ばれる送出スケジュール情報マップによって制御されている。ここで、送出スケジュール情報マップとは、編成装置や制作装置が作成したコンテンツを送出装置が正しく送出するための情報が記述されている表である。具体的には、或る番組枠を細かな時間枠に分割し、その時間枠毎の送出開始時刻、送出継続時間およびその時間枠に送出される送出コンテンツの属性値が設定される。プレイリストは、各番組内時間枠の送出開始時刻、送出継続時間、その時間枠が番組かＣＭかの種別、さらにその時間枠に送出される映像コンテンツおよび音声コンテンツのアドレス情報などが記述されているもので、編成装置が作成する。制作装置は、プレイリストに指定されたアドレスに送出する映像コンテンツおよび音声コンテンツを設定する。送出装置は、プレイリストを元に指定されたアドレスにあるコンテンツを制作装置から取得し、送出できる形に送出データに加工するといった送出準備処理を行い、指定された送出開始時刻になったならば準備した送出データを送出する。
【００４４】
放送番組によっては、事前に設定された送出スケジュールを変更して放送する場合がある。この変更は、放送中の番組を対象とすることも、次以降に放送予定の番組を対象とすることもある。放送中の番組における送出スケジュールの変更を要求する処理要求は、次以降に放送される番組における送出スケジュールの変更を要求する処理要求よりも優先的に処理する必要がある。この番組単位での送出スケジュールの変更の処理を番組データ変更処理と呼ぶ。一方、特定の１つの放送番組の送出スケジュールの変更にとどまらず、後の放送番組の送出スケジュールも変更しなければならない処理がある。これを編成変更処理と呼ぶ。この編成変更処理は、例えばスポーツ中継などの試合の延長や早終わりといった場合に必要となり、放送中の番組に対する番組データ変更処理と同様に優先的に処理する必要がある。何れも、プレイリストを変更することによって送出スケジュールの変更を送出装置に伝達する。
【００４５】
図６にプレイリストの概略を示す。図６において、番組データ（１）〜（ｎ）のそれぞれが個々の１つの放送番組に関する送出スケジュール情報を記述している。本実施例では、図２のデータ記憶装置１０７がこのような送出スケジュール情報を記憶している。ここで、個々の番組データ（１）〜（ｎ）が１つの排他単位になっている。
【００４６】
アプリケーションプログラム２００は、送出スケジュール情報の変更要求を処理要求として発行する放送業務アプリケーションプログラムに相当する。アプリケーションプログラム２００は、処理要求を送出する際、図４の処理要求本体３０１に、番組データ変更処理、編成変更処理等の処理種別を設定し、また、番組データ変更処理または編成変更処理における変更後の送出スケジュール情報等を設定する。そして、優先度データ３０３をヘッダ３０２に付与した処理要求３００を投入する。優先度データ３０３としては、例えば、放送中の番組に対する番組データ変更処理および編成変更処理の場合には正の整数、それ以外は０とする。
【００４７】
処理要求分配手段１０２は、優先ルール記憶手段１０１に記憶された優先ルールに従って優先度データ３０３の値が正の整数か否かによって優先的に処理すべき処理要求か否かを判断し、優先的に処理すべき処理要求については優先キュー１０３に格納し、優先的に処理すべき処理要求以外の処理要求については通常キュー１０４に格納する。従って、放送中の番組に対する番組データ変更処理にかかる処理要求および編成変更処理にかかる処理要求は優先キュー１０３に格納され、次以降の番組に対する番組データ変更処理などの処理要求は通常キュー１０４に格納される。これにより、放送中の番組に対する番組データ変更処理および編成変更処理がそれ以外の処理より優先して処理される。
【００４８】
また、現在放送中の番組のデータを図６の例えば番組データ（２）とすると、通常要求処理スレッド１０６が実施する番組データ変更処理は番組データ（３）以降の処理に限られる。従って、通常要求処理スレッド１０６が番組データ変更処理のために番組データ（３）〜（ｎ）の何れかを排他的にロックしている最中に、放送中の番組の番組データ（２）の変更にかかる処理要求が発生しても、排他単位が異なるため、優先要求処理スレッド１０５は通常要求処理スレッド１０６に影響されずに当該処理要求の処理を進めることが可能である。
【００４９】
【第２の実施例】
図７を参照すると、本実施例にかかる情報処理システムにおける優先実行制御方法を実施するコンピュータ１００は、処理要求分配手段１０２からデータ記憶装置１０７を参照できる点が、図２の第１の実施例と相違する。データ記憶装置１０７にはスレッド１０５、１０６の処理結果が格納されるため、処理要求分配手段１０２からデータ記憶装置１０７が参照可能になると、これまでの処理結果に応じて処理要求分配手段１０２の処理要求の分配の仕方を動的に変更するといったことが可能となる。
【００５０】
例えば、優先ルール記憶手段１０１に記憶された優先ルールが、優先度データ３０３が閾値Δ以上であれば高優先、そうでなければ低優先とするルールである場合、第１の実施例では、当該閾値Δは固定値となるが、本実施例では、当該閾値Δをデータ記憶装置１０７上で処理の進行に応じて変化する変数とすることにより、現在までの処理結果に応じて優先度の高低を切りわける閾値を動的に設定することが可能となる。
【００５１】
【適用例】
次に本実施例の適用例について図面を参照して詳細に説明する。
【００５２】
ここでは、１万人分のユーザの得点データを処理して成績上位１００名のユーザ名とその得点の一覧を生成するクイズアプリケーションへの適用例を取りあげる。この場合、アプリケーションプログラム２００はクイズアプリケーションプログラムであり、テレビ番組で放送されているクイズに対して視聴者（ユーザ）が携帯電話等の通信装置を通じて送信してきた回答に対して採点されたデータ（ユーザ名とその得点データ）を含むパケットを受け取る毎に、図４の処理要求本体３０１にユーザ名とその得点データとを設定し、ヘッダ３０２の優先度データ３０３に当該得点データそのものを設定した処理要求３００を処理要求分配手段１０２へ投入する処理を、１万人分のユーザ毎に繰り返す。
【００５３】
また、データ記憶装置１０７には、図８に示すように上位データ４００及び通知データ４１０というデータがそれぞれ独立したデータ領域に設定される。上位データ４００は、成績上位１００名のユーザ名とその得点を記録する上位成績者一覧表４０１と、上位成績者一覧表４０１に記録された得点のうちの最低点４０２と、上位成績者一覧表４０１に記録されたユーザの数であるユーザ数４０３とを含む。最低点４０２の初期値は満点以上の或る値、ユーザ数の初期値は０であり、上位成績者一覧表４０１の更新に応じて適宜変更される。また、通知データ４１０は、足きりの得点である足きり点（Ｓ）４１１を記録する。足きり点４１１の初期値は０であり、上位成績者一覧表４０１の更新に応じて適宜変更される。データ記憶装置１０７を更新する場合、上位データ４００単位、通知データ４１０単位で排他制御を行う。ある者が更新のために排他されていても他の者は参照は自由に行える。
【００５４】
さらに、優先要求処理スレッド１０５および通常要求処理スレッド１０６の各々には、図８に示すように各スレッド１０５、１０６独自のメモリ領域内に下位成績者表４２０、４３０がそれぞれ設定される。下位成績者表４２０、４３０は、成績上位１００名に入らなかったユーザのユーザ名とその得点を記録する表である。
【００５５】
優先要求処理スレッド１０５及び通常要求処理スレッド１０６は、自スレッドに対応するキュー１０３、１０４から取り出した処理要求に対する図３のステップＳ３における処理では、図９に示す処理を行う。
【００５６】
先ず、上位データ４００のユーザ数４０３が１００以上か否かを調べる（ステップＳ１１）。１００未満であれば、処理要求中のユーザ名とその得点を上位データ４００の上位成績者一覧表４０１に追加し（ステップＳ１２）、ユーザ数４０３を＋１すると共に、今回追加したユーザの得点が最低点４０２より低ければ、今回追加したユーザの得点で最低点４０２を更新する（ステップＳ１３）。そして、ユーザ数４０３が１００以上になったか否かを調べ（ステップＳ１４）、１００以上でなければ今回の処理を終了し、１００以上であれば、通知データ４１０の足きり点４１１を上位データ４００の最低点４０２で更新する（ステップＳ１５）。
【００５７】
他方、上位データ４００のユーザ数４０３が１００以上であれば（ステップＳ１１でＹＥＳ）、今回の処理要求中の得点と最低点４０２とを比較し（ステップＳ１６）、最低点４０２以上の得点であれば、今回の処理要求中のユーザ名と得点を上位成績者一覧表４０１に追加する（ステップＳ１７）。そして、ユーザ数４０３から上位成績者一覧表４０１における最低点のユーザ数の合計を差し引いた値が９９であるか否かを調べ（ステップＳ１８）、９９であれば、最低点の全てのユーザの情報（ユーザ名と得点）を上位成績者一覧表４０１から自スレッドの下位成績者表４２０または４３０に移動させ（ステップＳ１９）、最低点４０２を更新後の上位成績者一覧表４０１における新たな最低点で更新すると共に、ユーザ数４０３を１００に更新する（ステップＳ２０）。また、足きり点４１１を更新後の最低点４０２で更新する（ステップＳ２１）。ステップＳ１８の判定結果がＮＯであれば、ユーザ数４０３を＋１する（ステップＳ２４）。
【００５８】
今回の処理要求中の得点が最低点４０２以上でなければ、最低点４０２と同得点か否かを判別する（ステップＳ２２）。同得点であれば、今回の処理要求中のユーザ名と得点を上位成績者一覧表４０１に追加し（ステップＳ２３）、ユーザ数４０３を＋１する（ステップＳ２４）。
【００５９】
今回の処理要求中の得点が最低点４０２未満であれば（ステップＳ２２でＮＯ）、今回の処理要求中のユーザ名と得点を自スレッドの下位成績者表４２０または４３０に追加する（ステップＳ２５）。
【００６０】
処理要求分配手段１０２は、処理要求３００に付随する優先度データ３０３で与えられる得点をデータ記憶装置１０７に記憶されている足きり点４１１と比較し、足きり点４１１に満たない得点を持つ処理要求３００は通常キュー１０４に格納し、足きり点４１１以上の得点を持つ処理要求３００は優先キュー１０３に格納する。
【００６１】
次に本適用例の動作を説明する。アプリケーションプログラム２００は、ユーザ名とその得点データとを含むパケットを受け取ると、ヘッダ３０２の優先度データ３０３に当該得点データそのものを設定し、処理要求本体３０１にユーザ名と得点とを設定した処理要求３００を処理要求分配手段１０２へ投入する。処理要求分配手段１０２は、処理要求３００の優先度データ３０３で示される得点とデータ記憶装置１０７の足きり点４１１とを比較して当該処理要求の優先度を判定する。足きり点４１１は当初は初期値の０になっているので、処理要求分配手段１０２は、当初は全ての処理要求３００を優先的に処理すべき処理要求と判断して、優先キュー１０３へ格納することになる。
【００６２】
優先要求処理スレッド１０５は、優先キュー１０３から処理要求を順次に取り出して図９に示した処理を実行する。当初はユーザ数４０３が１００未満なので、処理要求中のユーザ名と得点を上位成績者一覧表４０１に追加し、最低点４０２を必要に応じて更新し、ユーザ数４０３を＋１する処理が行われる（ステップＳ１２、Ｓ１３）。そして、１００個目の処理要求を処理し終えた時点で、それまでの最低点を足きり点４１１に設定する（ステップＳ１５）。
【００６３】
足きり点４１１が０点以外の或る得点Ｘに更新されると、以後、処理要求分配手段１０２は、得点Ｘに満たない得点を持つ処理要求３００は通常キュー１０４へ格納し、得点Ｘを超える得点を持つ処理要求３００だけを優先キュー１０３へ格納するようになる。但し、優先キュー１０３による遅延が介在するため、得点の低い古い足きり点４１１に基づいて処理要求が優先キュー１０３に分配される可能性がある。若し、このような処理要求が優先キュー１０３に格納されると、その処理要求の得点は最低点４０２未満であるため、優先要求処理スレッド１０５のステップＳ２５において、当該処理要求中のユーザ名と得点が下位成績者表４２０に記録されることになる。
【００６４】
最低点４０２以上の得点を持つ処理要求の場合、優先要求処理スレッド１０５は次のように処理する。先ず、最低点４０２を超える得点を持つ処理要求の場合（ステップＳ１６でＹＥＳ）、今回の処理要求のユーザ名と得点を上位成績表一覧４０１に追加する（ステップＳ１８）。最低点を持つユーザが上位１００名に入らなくなった場合には（ステップＳ１８でＹＥＳ）、最低点を持つユーザのユーザ名と得点を上位成績表一覧４０１から下位成績者表４２０に移し（ステップＳ２０）、最低点４０２を更新後の上位成績表一覧４０１における最低点で更新すると共にユーザ数４０３を１００に更新し（ステップＳ２０）、足きり点４１１を更新後の最低点４０２で更新する（ステップＳ２１）。他方、最低点４０２と同じ得点を持つ処理要求の場合（ステップＳ２２でＹＥＳ）、今回の処理要求のユーザ名と得点を上位成績表一覧４０１に追加し（ステップＳ２３）、ユーザ数４０３を＋１する（ステップＳ２４）。
【００６５】
一方、通常要求処理スレッド１０６は、通常キュー１０４から処理要求を取り出し、図９の処理を実行する。但し、通常キュー１０４に処理要求が格納される時点では、ユーザ数４０３は１００以上になっており、また、最低点４０２以上の得点を持つ処理要求は通常キュー１０４には格納されない。このため、通常要求処理スレッド１０６が実行する処理は、処理要求中のユーザ名と得点を自スレッドの下位成績者表４３０に記録する処理（ステップＳ２５）だけとなり、データ記憶装置１０７の上位データ４００及び通知データ４１０への更新、そのための排他ロックを行う場面はない。従って、優先要求処理スレッド１０５は通常要求処理スレッド１０６の処理の影響を受けずに自らの処理を進めることができる。このため、成績上位１００名のユーザ名と得点をディスクなどのデータ記憶装置１０７に記録する処理を効率良く実施することが可能となる。
【００６６】
【第３の実施例】
図１０を参照すると、本実施例にかかる情報処理システムにおける優先実行制御方法を実施するコンピュータ１００は、処理要求分配手段１０２からアプリケーションプログラム２００に対して任意のデータを状態通知として通知する状態通知手段１０８を備えている点で、図７の第２の実施例と相違する。
【００６７】
このような状態通知手段１０８を処理要求分配手段１０２とアプリケーションプログラム２００との間に設けることによって、例えば、アプリケーションプログラム２００が投入した処理要求の結果などを迅速にアプリケーションプログラム２００に通知することができる。第２の実施例の適用例を例にすれば、データ記憶装置１０７に作成される成績上位１００名の上位成績者一覧表４０１をアプリケーションプログラム２００に通知することができる。そして、以下のようにすれば、上位成績者一覧表４０１をその完成後に直ちにアプリケーションプログラム２００に通知することができる。
【００６８】
先ず、処理要求分配手段１０２は、優先キュー１０３及び通常キュー１０４に格納した処理要求３００の数をカウントし、カウント値が１万に達すると、優先キュー１０３の状態を監視する。そして、優先キュー１０３に１つも処理要求３００が存在しなくなった時点より、優先要求処理スレッド１０５が１つの処理要求３００の処理にかかる時間だけ経過した時点で、データ記憶装置１０７から上位成績者一覧表４０１を読み出し、状態通知手段１０８を通じてアプリケーションプログラム２００に通知する。この時点で通常キュー１０４に処理要求が幾ら溜まっていても関係はない。それらが成績上位１００名に入らないことが既に確定しているからである。
【００６９】
【第４の実施例】
図１１を参照すると、本実施例にかかる情報処理システムにおける優先実行制御方法を実施するコンピュータ１００は、優先要求処理スレッド１０５からアプリケーションプログラム２００に対してデータ記憶装置１０７に記録された任意のデータを状態通知として通知する状態通知手段１０９を備え、通常要求処理スレッド１０６からアプリケーションプログラム２００に対してデータ記憶装置１０７に記録された任意のデータを状態通知として通知する状態通知手段１１０を備えている点で、図１０の第３の実施例と相違する。
【００７０】
このような状態通知手段１０９、１１０を設けることによって、優先キュー１０３中の処理要求を優先要求処理スレッド１０５が処理した結果の途中経過と、通常キュー１０４中の処理要求を通常要求処理スレッド１０６が処理した結果の途中経過とを、それぞれ独立にアプリケーションプログラム２００に通知することができる。第２の実施例の適用例を例にすれば、優先要求処理スレッド１０５は、データ記憶装置１０７上で時々刻々と変化する上位成績者一覧表４０１の内容をリアルタイムにアプリケーションプログラム２００に通知することができる。また、必要によっては下位成績者表４２０の途中結果もアプリケーションプログラム２００に通知することができる。更に、通常要求処理スレッド１０６は、下位成績表４３０の途中結果を状態通知手段１１０を通じてアプリケーションプログラム２００に通知することができる。
【００７１】
【第５の実施例】
図１２を参照すると、本実施例にかかる情報処理システムにおける優先実行制御方法を実施するコンピュータ１００は、キューとそれに対応する要求処理スレッドとをアプリケーションプログラム２００からの指示に従って生成し、また、既に生成されているキューとそれに対応する要求処理スレッドとをアプリケーションプログラム２００からの指示に従って消滅させるスレッド割付手段１１１を備えている点で、図２の第１の実施例と相違する。
【００７２】
スレッド割付手段１１１は、キューとスレッドの組の生成時には、アプリケーションプログラム２００から、優先、通常の区別と、スレッドの優先度の指定を受け取り、優先の区別が指定された場合には、優先キュー１０３と、指定されたスレッド優先度を持つ優先要求処理スレッド１０５を生成し、優先キュー１０３の存在場所（アドレス）を優先ルール記憶手段１０１に設定する。また、通常の区別が指定された場合には、通常キュー１０４と、指定されたスレッド優先度を持つ通常要求処理スレッド１０６を生成し、通常キュー１０４の存在場所（アドレス）を優先ルール記憶手段１０１に設定する。
【００７３】
また、スレッド割付手段１１１は、キューとスレッドの組の消滅時には、アプリケーションプログラム２００から、優先、通常の区別の指定を受け取り、優先の区別が指定された場合には、優先キュー１０３と優先要求処理スレッド１０５を消滅させ、優先ルール記憶手段１０１中の優先キュー１０３の存在場所（アドレス）を消去する。また、通常の区別が指定された場合には、通常キュー１０４と通常要求処理スレッド１０６を消滅させ、優先ルール記憶手段１０１中の通常キュー１０４の存在場所（アドレス）を消去する。
【００７４】
処理要求分配手段１０２は、優先キュー１０３及び通常キュー１０４のアドレスを優先ルール記憶手段１０１から参照して、アプリケーションプログラム２００から入力される処理要求を格納するキューの位置を認識する。優先キュー１０３がなく、通常キュー１０４だけ存在する場合には、全ての処理要求は通常キュー１０４へ格納する。同様に、通常キュー１０４がなく、優先キュー１０３だけ存在する場合には、全ての処理要求は優先キュー１０３へ格納する。優先キュー１０３及び通常キュー１０４の双方が存在しない状態で処理要求が入力されるとエラーとなる。
【００７５】
このようなスレッド割付手段１１１を備えることにより、アプリケーションプログラム２００は、通常キュー１０４と通常要求処理スレッド１０６を生成すると同時に優先キュー１０３と優先要求処理スレッド１０５を生成すれば、優先実行制御を利用することが可能となり、その後に、優先実行制御が不要になれば、優先キュー１０３と優先要求処理スレッド１０５とを消滅させることにより、資源の無駄を無くすことができる。
【００７６】
第１の実施例の放送業務アプリケーションの適用例では、放送中に番組に関する変更が生じないことが自明である場合には、アプリケーションプログラム２００はスレッド割付手段１１１を使って優先キュー１０３と優先要求処理スレッド１０５とを消滅させ、或る番組で放送中に何らかの変更が発生することが分かっている場合には、同様にスレッド割付手段１１１を使って優先キュー１０３と優先要求処理スレッド１０５を生成すれば、優先実行を必要なときにのみ利用することができる。また、アプリケーションプログラム２００が終了する際に、スレッド割付手段１１１を使って、優先キュー１０３と優先要求処理スレッド１０５及び通常キュー１０４と通常要求処理スレッド１０６を消滅させることも可能である。
【００７７】
【第６の実施例】
図１３を参照すると、本発明の第６の実施例は、アプリケーションプログラム２００からの指示に従って優先ルール記憶手段１０１に記憶された優先ルールを変更する優先ルール変更手段１１２と、アプリケーションプログラム２００からの指示に従って優先要求処理スレッド１０５及び通常要求処理スレッド１０６のスレッド優先度を変更するスレッド優先度変更手段１１３と、処理要求分配手段１０２からアプリケーションプログラム２００に対して任意のデータを状態通知として通知する状態通知手段１０８とを備えている点で、図７の第２の実施例と相違する。
【００７８】
優先ルール変更手段１１２は、優先ルールの変更時、アプリケーションプログラム２００から変更後の優先ルールを受け取り、受け取った優先ルールで優先ルール記憶手段１０１に記憶されている優先ルールを上書きする機能を有する。
【００７９】
スレッド優先度変更手段１１３は、スレッド優先度の変更時、アプリケーションプログラム２００から、優先、通常の区分と、変更後のスレッド優先度とを受け取り、優先要求処理スレッド１０５及び通常要求処理スレッド１０６のうち区分で指定された側のスレッドの優先度を、指定された優先度に変更する機能を有する。
【００８０】
状態通知手段１０８は、優先キュー１０３及び通常キュー１０４の状態や、データ記憶装置１０７に記憶されているデータなど任意のデータを処理要求分配手段１０２からアプリケーションプログラム２００に通知する機能を有する。
【００８１】
本実施例はこのような構成を有するため、アプリケーションプログラム２００は、以下のような各種の優先実行制御方法をシステムの運用中に動的に切り替えることが可能である。
（１）優先要求処理スレッド１０５のスレッド優先度を通常要求処理スレッド１０６のそれより低く設定した優先実行制御。
（２）優先要求処理スレッド１０５のスレッド優先度を通常要求処理スレッド１０６のそれと同じに設定した優先実行制御。
（３）優先要求処理スレッド１０５のスレッド優先度を通常要求処理スレッド１０６のそれより高く設定した優先実行制御。
【００８２】
また、前記（１）〜（３）のそれぞれの優先実行制御に際して使用する優先ルールをシステム運用中に動的に切り替えることができる。
【００８３】
【適用例】
次に本実施例の適用例について説明する。ここでは、第１の実施例における適用例と同様に放送業務アプリケーションを取りあげる。
【００８４】
今、図６における番組データ（１）〜（ｎ）のうち、例えば番組データ（３）の放送番組だけが、特にその放送中に当該番組データ（３）を変更する頻度が高く、それ以外の番組データ（１）、（２）、（４）〜（ｎ）についてはその放送中に当該番組データ（１）、（２）、（４）〜（ｎ）を変更することがないか、あっても頻度が極めて小さいことが事前に分かっているものとする。このため、番組データ（３）以外の番組の放送中は、現放送中の番組にかかる番組データ変更処理及び編成変更処理をその他の処理より優先し、番組データ（３）の番組の放送中は、当該番組データ（３）の変更処理を編成変更処理を含めてその他の処理より優先したいものとする。
【００８５】
このような場合、アプリケーションプログラム２００は、番組データ（３）の番組が放送されるまでは、スレッド優先度変更手段１１３により優先要求処理スレッド１０５のスレッド優先度を通常処理スレッド１０６のスレッド優先度と同じか、低く設定する。また、アプリケーションプログラム２００は、優先度データ３０３として放送中の番組に対する番組データ変更処理および編成変更処理の場合には正の整数、それ以外は０を設定するものとすると、優先ルール変更手段１１２により、例えば、優先度データ３０３の値が正の整数なら高優先、それ以外なら低優先とする優先ルールを優先ルール記憶手段１０１に設定する。
【００８６】
こうすると、アプリケーションプログラム２００から処理要求分配手段１０２に出力される処理要求のうち、現放送中の番組に対する番組データ変更処理と編成変更処理の要求が優先キュー１０３を通じて優先要求処理スレッド１０５へ与えられ、それ以外の処理要求は通常キュー１０４を通じて通常要求処理スレッド１０６へ与えられる。第１の実施例で説明したように、優先的に処理すべき処理要求の発生量がそれ以外の処理要求の発生量に比べて充分に少ない場合には、優先要求処理スレッド１０５のスレッド優先度が通常要求処理スレッド１０６のスレッド優先度と同じか低くても、優先的に処理すべき処理要求を優先的に処理することが可能である。つまり、今の例では、現放送中の番組に対する番組データ変更処理と編成変更処理の要求をその他の処理要求より優先的に処理できる。他方、優先的に処理すべき処理要求の発生量が少ないときに優先要求処理スレッド１０５のスレッド優先度を通常要求処理スレッド１０６より高くしておくと、その分だけ通常要求処理スレッド１０６の処理を無駄に圧迫することになるが、この例のように優先要求処理スレッド１０５のスレッド優先度を通常要求処理スレッド１０６と同じか低く設定しておくことで、通常要求処理スレッド１０６の処理能力を相対的に高めることができ、優先的に処理する必要のない処理要求の発生量が多い場合であっても迅速に処理することが可能となる。
【００８７】
次にアプリケーションプログラム２００は、番組データ（３）の番組の開始直前に、スレッド優先度変更手段１１３により優先要求処理スレッド１０５のスレッド優先度を通常処理スレッド１０６のスレッド優先度より高く設定する。また、アプリケーションプログラム２００は、優先ルール変更手段１１２により、例えば、優先度データ３０３の値が正の整数かつ処理種別が番組データ変更処理なら高優先、それ以外なら低優先とする優先ルールを優先ルール記憶手段１０１に設定する。
【００８８】
こうすると、アプリケーションプログラム２００から処理要求分配手段１０２に出力される処理要求のうち、現放送中の番組に対する番組データ変更処理にかかる処理要求だけが優先キュー１０３を通じて優先要求処理スレッド１０５へ与えられ、番組編成変更要求を含むそれ以外の処理要求は通常キュー１０４を通じて通常要求処理スレッド１０６へ与えられる。このため、現放送中の番組に対する番組データ変更処理にかかる処理要求だけを優先的に実行させることが可能となる。
【００８９】
次にアプリケーションプログラム２００は、番組データ（３）の番組が終了すると、スレッド優先度および優先ルールを元の状態に戻す。つまり、スレッド優先度変更手段１１３により優先要求処理スレッド１０５のスレッド優先度を通常処理スレッド１０６のスレッド優先度と同じか、低く設定し、優先ルール変更手段１１２により、優先度データ３０３の値が正の整数なら高優先、それ以外なら低優先とする優先ルールを優先ルール記憶手段１０１に設定する。
【００９０】
なお、アプリケーションプログラム２００は、処理要求分配手段１０２から状態通知手段１０８を通じて優先キュー１０３及び通常キュー１０４の状態を定期的に収集し、若し、現状のスレッド優先度、優先ルールでは支障が生じる場合にはスレッド優先度変更手段１１３によってスレッド優先度を適宜変更し、また優先ルール変更手段１１２によって優先ルールを適宜変更する。例えば、番組データ（１）、（２）の番組の放送中に、事前の予想に反して現放送中の番組データ（１）、（２）に対する変更要求の発生量が増え、優先キュー１０３に処理要求が滞っていることが判明すると、優先要求処理スレッド１０５のスレッド優先度を高めたり、優先ルールを変更して現放送中の番組データにかかる変更要求処理のみを高優先に変更する。
【００９１】
【第７の実施例】
図１４を参照すると、本発明の第７の実施例は、クライアント５００とサーバ５０２とがネットワーク５０１を介して接続されたクライアント・サーバ型の情報処理システムにおいて、クライアント５００からネットワーク５０１経由でサーバ５０２に送られてくる処理要求を処理する処理部５０３及び処理部５０３で得られた応答結果をネットワーク５０１経由で要求元のクライアント５００に返却する応答部５０４に対して、本発明を適用したものである。即ち、処理部５０３は、クライアント５００からの処理要求の処理に関して第１乃至第６の実施例で説明した優先実行制御を実施する機能を有し、応答部５０４は処理部５０３で生成された応答結果をクライアント５００に返却する処理に関して第１乃至第６の実施例で説明した優先実行制御を実施する機能を有している。
【００９２】
処理部５０３及び応答部５０４に対して第１の実施例の優先実行制御を適用した例を図１５に示す。
【００９３】
図１５を参照すると、処理部５０３の受信手段５０５は、ネットワーク５０１を介してクライアント５００から処理要求を受信すると、処理要求分配手段１０２に伝達する。処理要求分配手段１０２は、優先ルール記憶手段１０１の優先ルールに沿ってその処理要求の処理の優先度を判別し、優先キュー１０３、通常キュー１０４の何れか一方に当該処理要求を格納する。優先ルールとしては、例えば、個々のクライアント５００毎のクライアント名に対応した優先度と優先度の高低を切りわける閾値とを含むルールが考えられる。この場合、処理要求分配手段１０２は、処理要求元のクライアント名に対応する優先度を優先ルールから取得し、それを閾値と比較することで優先キュー１０３、通常キュー１０４への振り分けを行う。他の方法として、クライアント５００が処理要求にその処理の優先度を示す優先データを設定したヘッダを付随させ、優先ルールとして優先データの値に応じて高低の優先度を判定するルールを用意し、処理要求分配手段１０２はヘッダに設定された優先度データと優先ルールに基づいて処理要求を優先キュー１０３、通常キュー１０４に振り分けることもできる。
【００９４】
処理部５０３内の優先要求処理スレッド１０５及び通常要求処理スレッド１０６は、優先キュー１０３及び通常キュー１０４から処理要求を取り出し、データベース等のデータ記憶装置１０７を参照、更新して当該処理要求を処理する。そして、処理結果を要求元のクライアント５００に返却する応答処理の要求を応答部５０４の処理要求分配手段１０２へ出力する。
【００９５】
応答部５０４の処理要求分配手段１０２は、処理部５０３から渡された応答にかかる処理要求の優先度を、応答部５０４内の優先ルール記憶手段１０１に設定された優先ルールに基づき判別し、優先して処理すべき処理要求は優先キュー１０３へ、そうでない処理要求は通常キュー１０４へ格納する。優先ルールとしては、例えば、個々のクライアント５００毎のクライアント名に対応した優先度と優先度の高低を切りわける閾値とを含むルールが考えられる。この場合、処理要求分配手段１０２は、処理要求元のクライアント名に対応する優先度を優先ルールから取得し、それを閾値と比較することで優先キュー１０３、通常キュー１０４への振り分けを行う。他の優先ルールとして、応答結果の種別に応じた優先度と高低の優先度を切りわける閾値とを含むルールが考えられる。この場合、処理部５０４の各スレッド１０５、１０６は、応答結果の処理要求にその応答結果の種別に応じた優先度を設定したヘッダを付随させ、応答部５０４内の処理要求分配手段１０２はヘッダに設定された優先度と優先ルールに基づいて処理要求を優先キュー１０３、通常キュー１０４に振り分ける。応答結果の種別に応じて優先度を設定する例としては、何らかのエラーが発生して処理要求が正しく処理されなかったことをクライアント５００に伝えるエラー応答を正常応答より優先度を高く設定することが考えられる。
【００９６】
【第８の実施例】
図１６を参照すると、第８の実施例は、ＣＰＵ６０１、それに接続された通信インタフェイス６０２、主メモリ６０３及び磁気ディスク装置６０４で構成されるコンピュータ６００と、記録媒体６０５とで構成される。記録媒体６０５は、半導体メモリ、ＣＤ−ＲＯＭ、磁気ディスク等の機械読み取り可能な記録媒体であり、優先実行制御プログラムが記録されている。ここに記録された優先実行制御プログラムは、コンピュータ６００に読み取られ、コンピュータ６００の動作を制御することにより、コンピュータ６００上に前述した第１乃至第７の実施例の優先実行制御に必要な機能手段を実現する。
【００９７】
【発明の効果】
以上説明したように本発明によれば、処理要求をその処理の優先度に応じて優先キュー及び通常キューの何れか一方に格納し、優先キューに格納された処理要求はそれ専門に処理する優先処理手段で取り出して処理する構成を有するため、優先的に処理すべき処理要求をできるだけ速やかに処理することが可能になる効果がある。
【００９８】
優先キュー及びそれに対応するスレッドを動的に生成でき、また消滅させることができるため、資源の無駄がなくなり、また必要な場合にのみ資源を確保した優先実行制御を実施することができる。
【００９９】
各キューに対応するスレッドのスレッド優先度を動的に変更できるため、優先的に処理すべき処理要求とそれ以外の処理要求との発生量の差に応じた柔軟な制御が可能となる。
【０１００】
優先キュー及び通常キューに処理要求を分配する際の優先度判定のために参照される優先ルールを動的に変更できるため、優先的に処理すべき処理要求とそれ以外の処理要求との切りわけを動的に変更でき、柔軟な制御が可能となる。
【図面の簡単な説明】
【図１】本発明の一実施の形態を適用した情報処理システムにおける優先実行制御装置のブロック図である。
【図２】本発明の第１の実施例のブロック図である。
【図３】優先要求処理スレッド及び通常要求処理スレッドの処理の概略を示すフローチャートである。
【図４】処理要求のフォーマット例を示す図である。
【図５】優先的に処理すべき処理要求とそうでない処理要求とが１対３の割合で発生する場合の本発明による処理状況を示す図である。
【図６】映像音声放送番組配信システムにおけるプレイリストの概略を示す図である。
【図７】本発明の第２の実施例のブロック図である。
【図８】本発明の第２の実施例の適用例においてデータ記憶装置に記憶されるデータ構造の例を示す図である。
【図９】本発明の第２の実施例の適用例において優先要求処理スレッド及び通常要求処理スレッドが実施する処理例を示すフローチャートである。
【図１０】本発明の第３の実施例のブロック図である。
【図１１】本発明の第４の実施例のブロック図である。
【図１２】本発明の第５の実施例のブロック図である。
【図１３】本発明の第６の実施例のブロック図である。
【図１４】本発明の第７の実施例のブロック図である。
【図１５】本発明の第７の実施例のより具体的なブロック図である。
【図１６】本発明の第８の実施例のブロック図である。
【図１７】従来技術の説明図である。
【符号の説明】
１…優先キュー
２…通常キュー
３…処理要求
４…処理要求元
５…分配部
６…優先処理部
７…通常処理部
８…処理結果
【図１】
0003975703.tif 000002
【図２】
0003975703.tif 000003
【図３】
0003975703.tif 000004
【図４】
0003975703.tif 000005
【図５】
0003975703.tif 000006
【図６】
0003975703.tif 000007
【図７】
0003975703.tif 000008
【図８】
0003975703.tif 000009
【図９】
0003975703.tif 000010
【図１０】
0003975703.tif 000011
【図１１】
0003975703.tif 000012
【図１２】
0003975703.tif 000013
【図１３】
0003975703.tif 000014
【図１４】
0003975703.tif 000015
【図１５】
0003975703.tif 000016
【図１６】
0003975703.tif 000017
【図１７】
0003975703.tif 000018