JPH07282013A - 分散処理システム - Google Patents

分散処理システム

Info

Publication number
JPH07282013A
JPH07282013A JP6075610A JP7561094A JPH07282013A JP H07282013 A JPH07282013 A JP H07282013A JP 6075610 A JP6075610 A JP 6075610A JP 7561094 A JP7561094 A JP 7561094A JP H07282013 A JPH07282013 A JP H07282013A
Authority
JP
Japan
Prior art keywords
priority
program
processing
computer
load
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP6075610A
Other languages
English (en)
Other versions
JP3658420B2 (ja
Inventor
Masahiko Saito
雅彦 齊藤
Takanori Yokoyama
孝典 横山
Masaru Shimada
優 島田
Kunihiko Tsunetomi
邦彦 恒冨
Tomoaki Nakamura
智明 中村
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP07561094A priority Critical patent/JP3658420B2/ja
Priority to DE19513922A priority patent/DE19513922A1/de
Priority to US08/421,249 priority patent/US5845116A/en
Publication of JPH07282013A publication Critical patent/JPH07282013A/ja
Priority to US09/167,498 priority patent/US6578064B1/en
Priority to US10/342,272 priority patent/US6957434B2/en
Priority to US10/965,847 priority patent/US20050050544A1/en
Application granted granted Critical
Publication of JP3658420B2 publication Critical patent/JP3658420B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • G06F9/4862Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration the task being a mobile agent, i.e. specifically designed to migrate
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5021Priority

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Multi Processors (AREA)
  • Computer And Data Communications (AREA)

Abstract

(57)【要約】 【目的】複数の性能,負荷の異なる計算機から構成され
る分散処理システムにおいて、個々の計算機における優
先順位を統一的に管理する。 【構成】複数の計算機上で複数のプログラムが動作する
分散処理システムにおいて、各計算機は、該計算機の性
能と負荷に応じて、処理の緊急度と優先順位との変換を
行う優先順位変換手続き手段144〜145と、該優先
順位変換手段の示す優先順位にしたがって、処理を実行
するプログラムの優先順位を変更する優先順位変更手続
き手段146〜147とを設けたことを特徴とする分散
処理システム。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明は、複数の計算機がネット
ワークに接続され、複数のプログラムを協調して実行す
る分散処理システムに関連し、特に、優先順位を用いて
リアルタイム性を実現する分散処理システムの構成およ
び方式に関する。
【0002】
【従来の技術】単一計算機(マルチプロセッサ型計算機
を含む)からのみ構成される計算機システムにおいて、
リアルタイム性を保証する場合、従来から、優先順位を
用いて順序制御を行う方法がある。このような優先順位
制御の一例として、プレンティス・ホール社(Prentice-
Hall, Inc.)刊行のA.S.タンネンバウム著「オペレ
ーティングシステムズ・デザイン・アンド・インプリメ
ンテーション」,1987年,82〜84頁(A.S.Tanenb
aum:Operating Systems - Design and Implementatio
n, 1987, pp.82−84)がある。
【0003】さらに、例えば、特開平2−113362 号公報
に記載されている方式は、分散処理システムの各処理ノ
ード間でメッセージ通信を行う際に、該メッセージに優
先度を付随させ、優先度の高いメッセージから順に処理
を行うものである(以降、この方式を従来技術1と呼
ぶ)。
【0004】また、別の従来の方式として、例えば、特
開平5−35701号公報に記載されている方式がある。この
方式は、複数の処理装置を有した分散処理システムで処
理要求を行う際に、処理待ち許容時間を指定し、各処理
装置での予定処理待ち時間を調べ、予定処理待ち時間が
処理待ち許容時間より短い処理装置に該処理要求を割り
当てるものがある。処理待ち許容時間を満たす処理装置
がなければ、最も短い予定処理待ち時間となる処理装置
に該処理要求を割り当てる。各処理装置に割り当てられ
た処理要求は基本的に古いものから順に処理される(以
降、この方式を従来技術2と呼ぶ)。
【0005】またさらに、例えば、特開平5−35701号公
報に記載されるように、処理要求発行の際に、処理待ち
許容時間と同時に前記従来技術1と同様の優先順位も付
加し、処理要求の割当て後に、割り当てられた処理装置
で該優先順位の順に処理を実行させる方法(以降、これ
を従来技術3と呼ぶ)もある。
【0006】
【発明が解決しようとする課題】複数の計算機が各々個
別のオペレーティングシステムによって管理される分散
処理システムにおいては、各々の計算機で個別にプログ
ラムの優先順位が管理される。このため、分散処理シス
テム全体に渡る優先順位の統一的な管理を行えず、性
能,負荷の異なる計算機を有する分散処理システムにお
いては、ある計算機の優先順位が意味する緊急性と別の
計算機の優先順位が表わす緊急性とが異なる場合があ
る。例えば、性能の高い計算機と性能の低い計算機とで
は、同じ優先順位0であっても、高性能計算機で実行し
た方が速く終了する。同様に、負荷の重い計算機と負荷
の軽い計算機との間でも、優先順位の示す意味が異なっ
てくる。また、複数の異なった種類の計算機を有する分
散処理システムでは、各々の計算機の優先順位体系自体
が異なる場合がある。例えば、優先順位の範囲が0〜25
5である計算機と優先順位の範囲が0〜127である計
算機とは、優先順位の値に互換性がない。同様に、優先
順位0を最高優先順位と見なす計算機と優先順位255
を最高優先順位と見なす計算機との間で、同一の優先順
位を使用することはできない。
【0007】前記従来技術1は、このような分散処理シ
ステムにおける個々の計算機の性能,負荷および機種の
違いを考慮せず、単に優先度を付随してメッセージを送
信する方法である。このため、メッセージ送信先計算機
の性能が低い、若しくは、負荷が重いような条件では、
望ましい速さで処理を実行して貰えない可能性があり、
リアルタイム性を保証できないことがある。
【0008】さらに、前記従来技術1では、複数の計算
機で処理が行われる際に、優先順位の低い処理依頼が優
先順位の高い処理依頼よりも速く完了するという逆転現
象が起こり得る。例えば、処理Aを優先度5で計算機A
に依頼し、処理Bを優先度1で計算機Bに依頼するとす
る(優先度の値が小さい方が高い優先順位を表わすもの
とする)。このとき、本来ならば、処理Bが処理Aより
速く完了していなければならないが、計算機Bの性能が
計算機Aに比べて低い、または、計算機Bの負荷が重い
場合には、優先順位の低い処理Aが優先順位の高い処理
Bよりも速く完了してしまう可能性がある。
【0009】さらにまた、前記従来技術1では、一つの
計算機に処理が集中すること、特に、一つの計算機に優
先度の高い処理が集中することを考慮していないため、
これらの優先度の高い処理が集中した計算機では、リア
ルタイム性保証がさらに困難となるという課題がある。
【0010】前記従来技術2は、各処理装置での予定処
理待ち時間を正確に計算できれば、個々の処理要求に関
してはある程度のリアルタイム性保証に使用することが
可能である。しかし、この方式では、既に各処理装置に
ある程度の数の処理要求が割り当てられている場合に、
新たに発生した処理待ち許容時間の短い処理要求の時間
制約条件を満たせないことがある。例えば、処理待ち許
容時間の長い処理要求が既に処理装置に割り当てられて
おり、かつ、これらに先んじて新たに発生した処理要求
を処理することができれば全ての処理要求の時間制約条
件を満たすことができる場合にも、順に処理要求を割り
当てていくため、新たに発生した処理要求の時間制約条
件を満たせないことがある。すなわち、負荷がある程度
高い状況で発生した緊急性の高い処理要求を直ちに処理
することができず、厳密なリアルタイム性を保証するこ
とができないという問題点がある。
【0011】さらにまた、前記従来技術3は、(1)各
処理装置への処理要求割り当ては、処理待ち許容時間を
充足する処理装置を選択し、(2)各処理装置での処理
要求の実行順序は指定した優先順位の示す順に実行す
る、という方式である。従来技術3によれば、新たに発
生した処理待ち許容時間の短い処理要求に対して、高い
優先順位を設定することにより、上記従来技術2の欠点
をある程度解決することができる。しかし、この方式で
は、新たに割り当てられた高い優先順位の処理要求を優
先して処理するため、既に処理待ち許容時間を満たすと
判断されて、割り当てられている低い優先順位を有する
処理要求の処理待ち許容時間が満たされなくなることが
あるという課題がある。例えば、処理待ち許容時間1
分,優先順位5の処理要求Aが、処理待ち許容時間を満
たすことができると判断されて、処理装置Aに割り付け
られている状況で、新たに、処理待ち許容時間30秒,
優先順位1の処理要求Bが処理装置Aに割り付けられた
とする。このとき、新たな処理要求Bが先に処理される
ことになる。これによって、既に割り付けられ、処理待
ち許容時間を満たすことが保証されていた筈の処理要求
Aがこの時間制約条件を満たせないことが起こり得る。
【0012】さらに、前記従来技術3では、従来技術1
と同様に、同一処理待ち許容時間で優先順位の異なる処
理要求を複数の処理装置に割り当てた場合、該処理装置
の負荷,性能の違いによって、優先順位の低い処理依頼
が優先順位の高い処理依頼よりも速く完了するという逆
転現象が起こり得るという課題がある。
【0013】本発明の目的は、これら上記のリアルタイ
ム性保証に関する課題を解決し、分散処理システムにお
ける、より厳密なリアルタイム性を実現することであ
る。特に、性能,負荷および機種の異なる計算機を含み
得る分散処理システムにおいて、各々の計算機の優先順
位を統一的に管理することによって、さらに厳密なリア
ルタイム性を実現することである。
【0014】
【課題を解決するための手段】本発明では、分散処理シ
ステムの個々の計算機の優先順位を統一的に管理する概
念として、次の二つの概念のうち、いずれか一方を用い
る。
【0015】・処理の緊急度:処理をどの程度の迅速さ
で完了させたいかを示すシステム全体で共通の相対値 ・処理の時間制約:処理をどの程度の時間で完了させた
いかを示す絶対値 これら各々の概念を用いて分散処理システムの個々の計
算機の優先順位を統一的に管理するため手段を、以下、
処理の緊急度を使用する場合と処理の時間制約を使用す
る場合とに分けて説明する。
【0016】(A)処理の緊急度を用いて管理するため
の手段 本発明では、上記目的を達成するために、各計算機の性
能,負荷の少なくとも一方と、プログラムが実行する処
理の緊急度とを考慮して、プログラムの実行に適した優
先順位を決定する優先順位決定手段を設けることを特徴
とする。
【0017】具体的には、該優先順位決定手段はその構
成要素として以下の五つの手段を有し、これらの手段が
協調して動作することにより、処理の緊急度を使用し
て、上記目的を達成する分散処理システム管理を行うこ
とができる。なお、下記五つの全ての手段を同時に設け
る必要はない。
【0018】(1)計算機の性能と負荷に応じて、処理
の緊急度と優先順位との変換を行う優先順位変換手段 (2)優先順位変換手段の示す優先順位にしたがって、
処理を実行するプログラムの優先順位を変更する優先順
位変更手段 (3)各計算機の性能,負荷の少なくとも一方と、プロ
グラムが実行する処理の緊急度とを考慮して、プログラ
ムの実行に適した計算機を決定する計算機選択手段 (4)複数の同一処理を行うプログラムが存在し、か
つ、該プログラムに処理を依頼する際に、各計算機の性
能,負荷の少なくとも一方と、処理の緊急度とを考慮し
て、該複数の同一処理を行うプログラムの中から最適な
優先順位を有するプログラムを決定するプログラム選択
手段 (5)プログラム選択手段が示すプログラムに対して新
たに依頼された処理を転送する処理転送手段 (B)処理の時間制約を用いて管理するための手段 本発明では、上記目的を達成するために、各計算機の性
能,負荷の少なくとも一方と、プログラムが実行する処
理の時間制約,処理量とを考慮して、プログラムの実行
に適した優先順位を決定する優先順位決定手段を設ける
ことを特徴とする。
【0019】具体的には、該優先順位決定手段はその構
成要素として以下の八つの手段を有し、これらの手段が
協調して動作することにより、処理の時間制約を使用し
て、上記目的を達成する分散処理システム管理を行うこ
とができる。なお、下記八つの全ての手段を同時に設け
る必要はない。
【0020】(1)計算機の性能と負荷に応じて、処理
の時間制約,処理量と優先順位との変換を行う優先順位
変換手段 (2)優先順位変換手段の示す優先順位にしたがって、
処理を実行するプログラムの優先順位を変更する優先順
位変更手段 (3)他計算機との通信時間を予測する通信時間予測手
段 (4)各計算機の性能,負荷の少なくとも一方と、プロ
グラムが実行する処理の時間制約,処理量とを考慮し
て、プログラムの実行に適した計算機を決定する計算機
選択手段 (5)複数の同一処理を行うプログラムが存在し、か
つ、該プログラムに処理を依頼する際に、各計算機の性
能,負荷の少なくとも一方と、処理の時間制約,処理量
とを考慮して、該複数の同一処理を行うプログラムの中
から最適な優先順位を有するプログラムを決定するプロ
グラム選択手段 (6)プログラム選択手段が示すプログラムに対して新
たに依頼された処理を転送する処理転送手段 (7)計算機の性能,負荷,処理量に応じて、該プログ
ラムが実行中の処理の処理時間を予測する処理時間予測
手段 (8)処理時間予測手段が示す予測処理時間が該処理に
要求される時間制約を満足しない際に、該処理が要求さ
れた時点からの経過時間と該要求される時間制約から新
たに時間制約を設定する時間制約設定手段
【0021】
【作用】前記課題を解決するための手段が有する作用に
ついて、処理の緊急度を使用する場合と処理の時間制約
を使用する場合とに分けて説明する。
【0022】(A)処理の緊急度を用いて管理する場合 優先順位決定手段は、各計算機の性能,負荷の少なくと
も一方と、プログラムが実行する処理の緊急度とを考慮
して、プログラムの実行に適した優先順位を決定する。
これにより、同一緊急度を有した処理を複数の計算機で
実行する場合に、高性能計算機では低い優先順位を、低
性能計算機では高い優先順位を与え、各計算機の性能の
違いにかかわらず、同程度の迅速さで処理を完了させる
ことができる。同様に、高負荷計算機では高い優先順位
を、低負荷計算機では低い優先順位を与え、各計算機の
負荷の違いにかかわらず、同程度の迅速さで処理を完了
させることができる。また、各計算機の性能と負荷を考
慮して、処理の緊急度から個々の計算機での優先順位を
決定するため、低い緊急度の処理が高い緊急度の処理に
先んじて完了するという逆転現象を避けることも可能と
なる。すなわち、従来技術に比べて、より厳密なリアル
タイム性を保証することが可能となる。優先順位決定手
段の構成要素である五つの手段は以下の作用を有する。
【0023】優先順位変換手段は、処理の緊急度と優先
順位との対応を示す優先順位対応表を有し、該優先順位
対応表を用いることにより、処理の緊急度と優先順位と
の変換を行う。優先順位対応表の内容は計算機の性能,
負荷および機種に応じて変更させる。
【0024】優先順位変更手段は、優先順位変換手段に
よって示された優先順位にしたがって、プログラムの優
先順位を変更させる。優先順位変換手段と優先順位変更
手段によって、同一緊急度を有する処理が性能,負荷の
異なるいずれの計算機においても同程度の迅速さで実行
されることを保証できるようになる。
【0025】計算機選択手段は、計算機性能情報と計算
機負荷情報とからなる計算機情報を参照し、指定された
処理の緊急度の負荷が均等に分散されるように計算機を
選択し、プログラムを実行させる。計算機性能情報は各
計算機の性能を示したテーブル,計算機負荷情報は各計
算機の負荷を処理の緊急度毎に示したテーブルであり、
計算機上の負荷が変化した場合、該変化量を計算機負荷
情報に反映させる。これにより、緊急度の高い処理が一
つの計算機に集中するといった現象がなくなり、各計算
機におけるリアルタイム性保証をより厳密に行うことが
可能となる。
【0026】プログラム選択手段は、同一処理を行うプ
ログラムの情報を纏めたプログラム位置データベースを
用い、複数の同一処理を行うプログラムの中から、指定
された処理の緊急度に一致するプログラムを選択し、該
プログラムに処理を依頼させる。プログラム位置データ
ベースは、同一処理を行うプログラムについて、その優
先順位または緊急度と、プログラムが動作する計算機と
を記憶する。これにより、前記優先順位変更手段が存在
しない場合でも、複数の緊急度の異なるプログラムを用
意して、これらのうちから最も適した緊急度のプログラ
ムに対して処理を依頼し、望ましい迅速さで処理を実行
させることが可能となる。
【0027】処理転送手段は、プログラムが処理を実行
中に新たに処理を依頼された際に、プログラム選択手段
に別の同一処理を行うプログラムの位置を尋ね、その結
果指定されたプログラムに対して処理依頼を転送する。
これによって、処理実行中のプログラムに新たに依頼さ
れた処理を、該プログラムの処理が終了するまで待たせ
ることなく、別の同程度の迅速さで処理できる(同一緊
急度の)プログラムで実行させることが可能となり、よ
り厳密なリアルタイム性保証を実現することができる。
【0028】(B)処理の時間制約を用いて管理する場
合 優先順位決定手段は、各計算機の性能,負荷の少なくと
も一方と、プログラムが実行する処理の時間制約,処理
量とを考慮して、プログラムの実行に適した優先順位を
決定する。これにより、各計算機の性能と負荷に応じ
て、処理の時間制約,処理量を個々の計算機の優先順位
に変換して実行させ、新たに発生した時間制約の短い処
理を、既に割り付けられている時間制約の長い処理に先
んじて実行させるといったことが可能となる。また、処
理の時間制約は計算機性能と負荷に応じて、計算機の優
先順位に変換できるため、既に計算機に割り付けられて
いる処理の時間制約が近付いている場合に、処理の時間
制約を短くして再びより高い優先順位を決定し、新たに
発生した処理が、既に割り付けられている処理の実行を
妨げないようにすることもできる。すなわち、従来技術
に比べて、より厳密なリアルタイム性を保証することが
可能となる。優先順位決定手段の構成要素である八つの
手段は以下の作用を有する。
【0029】優先順位変換手段は、単位処理量当たりの
時間制約と優先順位との対応を示す優先順位対応表を有
し、該優先順位対応表を用いることにより、処理の時間
制約,処理量と優先順位との変換を行う。優先順位対応
表の内容は計算機の性能,負荷および機種に応じて変更
させる。
【0030】優先順位変更手段は、優先順位変換手段に
よって示された優先順位にしたがって、プログラムの優
先順位を変更させる。優先順位変換手段と優先順位変更
手段によって、処理を時間制約に対応した各計算機の優
先順位で実行させ、時間制約の短い処理を他のより時間
制約の緩い処理の前に実行させるといったことが可能と
なり、分散処理システムにおける各処理のリアルタイム
性をより厳密に保証することができる。また、時間制約
の長い処理であっても、他処理を優先的に処理させてい
る間に、処理が行われないまま該時間制約が近付いてく
ることがあり、この際には、短くなった時間制約に応じ
て優先順位をより高く再設定し、この優先順位で処理を
実行させることが可能となる。
【0031】通信時間予測手段は、個々の計算機間の通
信時間を保持する通信時間表を有し、要求に応じて、各
計算機との通信に要する時間を通知する。これにより、
計算機間の通信時間が無視できない場合に、処理の時間
制約をより厳密に設定することが可能となる。
【0032】計算機選択手段は、計算機性能情報と計算
機負荷情報とからなる計算機情報を参照し、指定された
単位処理量当たりの時間制約の負荷が均等に分散される
ように計算機を選択し、プログラムを実行させる。計算
機性能情報は各計算機の性能を示したテーブル,計算機
負荷情報は各計算機の負荷を単位処理量当たりの時間制
約毎に示したテーブルであり、計算機上の負荷が変化し
た場合、該変化量を計算機負荷情報に反映させる。これ
により、処理の時間制約の短い処理が一つの計算機に集
中するといった現象がなくなり、各計算機におけるリア
ルタイム性保証をより厳密に行うことが可能となる。
【0033】プログラム選択手段は、同一処理を行うプ
ログラムの情報を纏めたプログラム位置データベースを
用い、複数の同一処理を行うプログラムの中から、指定
された単位処理量当たりの時間制約に一致するプログラ
ムを選択し、該プログラムに処理を依頼させる。プログ
ラム位置データベースは、同一処理を行うプログラムに
ついて、その優先順位,時間制約のいずれか一つと、プ
ログラムが動作する計算機とを記憶する。これにより、
前記優先順位変更手段が存在しない場合でも、複数の時
間制約の異なるプログラムを用意して、これらのうちか
ら最も適した時間制約のプログラムに対して処理を依頼
し、望ましい迅速さで処理を実行させることが可能とな
る。
【0034】処理転送手段は、プログラムが処理を実行
中に新たに処理を依頼された際に、プログラム選択手段
に別の同一処理を行うプログラムの位置を尋ね、その結
果指定されたプログラムに対して処理依頼を転送する。
これによって、処理実行中のプログラムに新たに依頼さ
れた処理を、該プログラムの処理が終了するまで待たせ
ることなく、別の同程度の時間制約を有するプログラム
で実行させることが可能となり、より厳密なリアルタイ
ム性保証を実現することができる。
【0035】処理時間予測手段は、プログラムが実行し
なければならない残り処理量と該プログラムの単位処理
量当たりの時間制約とから、処理完了までの時間を計算
する。
【0036】時間制約設定手段は、処理依頼時に指定さ
れた処理の時間制約と処理実行の経過時間とから、新た
な処理の時間制約を決定する。処理時間予測手段と時間
制約設定手段によって、プログラムが現在の優先順位で
実行される場合に処理の時間制約を満たすか否かを判定
し、時間制約を満たせないと判定される場合には、より
短い時間制約を設定できる。新たに設定した時間制約を
用いて、前記優先順位変換手段と優先順位変更手段がよ
り高い優先順位をプログラムに与えることや、該新しい
時間制約を満たし得る別の同一プログラムに処理を転
送,実行させることができ、結果的に最初に与えられた
時間制約を満たすように管理することが可能となる。
【0037】
【実施例】本発明の実施例を図面を用いて説明する。ま
ず、緊急度を用いた一連の実施例を示し、その後、時間
制約を用いた実施例を記述する。
【0038】(A)処理の緊急度を用いる場合 図1に本発明の第一の実施例である分散処理システムの
構成を示す。複数の計算機がネットワークに接続され、
各計算機上のプログラムが互いに協調して動作する。1
00〜103は計算機である。図中では4台の計算機が
接続されたシステム構成を示すが、これ以上若しくはこ
れ以下の計算機数でシステムを構成することは可能であ
る。110は通信バス,光ファイバ,クロスバ結合網等
のネットワークである。各計算機上のプログラムはネッ
トワーク110を介して互いに通信を行う。計算機10
0および101のみ、計算機内部の詳細を示した。各計
算機は中央処理装置120,主記憶装置121,入出力
制御装置122等から構成され、内部バス125を用い
てデータの授受を行う。個々の計算機では、中央処理装
置120等の性能が異なることがある。入出力制御装置
122はそれぞれ、通常、ディスク等の外部記憶装置1
23,端末124と接続され、外部とのデータの授受を
行う。主記憶装置121上にはユーザプログラム130
〜136,プライオリティキュー140〜141,スケ
ジューラ142〜143,優先順位変換手続き手段14
4〜145,優先順位変更手続き手段146〜147が
存在して、中央処理装置120によって処理される。一
般には、個々の計算機にオペレーティングシステムが存
在して、計算機上の各プログラムの実行状況を管理す
る。プライオリティキュー,スケジューラはオペレーテ
ィングシステムの一部であることが多い。図1ではオペ
レーティングシステムの記述を省略した。ユーザプログ
ラム130〜136は、単独で若しくは互いに協調して
処理を実行する。ユーザプログラムの数,各計算機への
配置方法は任意である。
【0039】図1に示すようなマルチプロセッサ型計算
機システムや分散処理システムにおいて複数のプログラ
ムが協調して動作する場合には、各計算機上のユーザプ
ログラムは、通常、オペレーティングシステムの待ち行
列等によって順序管理が行われるが、ユーザプログラム
間で処理の緊急性が異なることがある。このため、それ
ぞれのプログラムに優先順位を与え、該優先順位ごとに
待ち行列を構成して実行順序を管理する。プライオリテ
ィキュー140〜141が各計算機での優先順位ごとの
待ち行列を構成している。図1に示す実施例では、計算
機100が0〜255の範囲の優先順位を、計算機10
1が0〜127の範囲の優先順位を所有していると仮定
している。該優先順位それぞれに対して待ち行列が構成
され、これを用いてスケジューラ142〜143が次に
実行すべきプログラムを決定する。プライオリティキュ
ーの構成要素はプログラム構造体であり(プログラム構
造体の一例が160〜166である)、それぞれ、ユー
ザプログラムの情報を所有する。主記憶装置121上に
存在するユーザプログラム130〜136以外に、プロ
グラムD,E,F等のプログラム構造体がプライオリテ
ィキューに存在するが、これらは、主記憶装置121上
に配置されているプログラムではなく、外部記憶装置1
23上に存在するプログラムである。プログラムD,
E,F等は、必要なプログラム,データを外部記憶装置
123から主記憶装置121上に転送した後、実行する
ことができる。
【0040】上記分散処理システムに対して処理を依頼
する際には、該分散処理システムの各ユーザが、新たに
各人のユーザプログラムを該分散処理システムのいずれ
かの計算機上で動作させるか、若しくは、既に存在して
いるプログラムに対して、入力手段より、データを入力
して処理を行わせる。分散処理システム上の各プログラ
ムは、必要に応じて互いに通信を行いつつ、処理を実行
し、その結果をユーザに返却、若しくは、いずれかの計
算機の端末に表示することとなる。すなわち、分散処理
システムへの入力とは、端末などの入力手段を介して、
分散処理システムへプログラム又はプログラムに対する
データを入力することである。また、分散処理システム
からの出力とは、分散処理システムで処理されたプログ
ラムの処理結果が、端末などの画面表示等として、出力
されることである。
【0041】スケジューラ142〜143はプライオリ
ティキュー140〜141の内容にしたがって、次に実
行すべきプログラムを決定する。本実施例では、計算機
100の優先順位0の待ち行列がプログラムA(ユーザプ
ログラム130),優先順位1の待ち行列がプログラム
B(ユーザプログラム131)およびプログラムC(ユ
ーザプログラム132)から構成されている。このた
め、スケジューラ142が優先順位番号の小さいプログ
ラムから処理を実行する方針を持つ場合、このプライオ
リティキューの構成では、プログラムA,B,C,D,
E,F,…の順に実行されることになる。プライオリテ
ィキュー140〜141およびスケジューラ142〜1
43は、通常、オペレーティングシステムの一部であ
り、オペレーティングシステムの種類によっては、スケ
ジューラのプログラム実行順序決定方針が前述の順序と
異なることがある。なお、以降、優先順位番号が小さい
ほど、優先順位が高い(より先に実行される)と仮定し
て実施例を説明する。
【0042】このように、プログラムの実行順序を考慮
して各プログラムに優先順位を与えることにより、緊急
性の異なるプログラムを同一計算機内で一様に扱うこと
ができる。しかし、性能,負荷および機種の異なる計算
機間では互いの優先順位に互換性がない。このため、本
実施例では、分散処理システム内で共通の概念である緊
急度を導入して、性能,負荷および機種の異なる複数の
計算機から構成される分散処理システムでの優先順位の
統一管理を行う。緊急度は分散処理システム全体に適用
されるグローバルな優先順位と見なすことができる。本
実施例では、0〜31の範囲で緊急度を指定できると仮
定している。本実施例で緊急度を導入するために設けた
手段が、優先順位変換手続き手段144〜145およ
び、優先順位変更手続き手段146〜147である。以
降、優先順位と同様、緊急度の値が小さいほど、緊急性
が高いと仮定して実施例を説明する。
【0043】優先順位変換手続き手段144〜145
は、分散処理システムにおいて共通のデータである緊急
度と計算機固有のデータである優先順位とを変換する手
段である。本実施例は、優先順位変換手続き手段144
〜145内に優先順位対応表150〜151を設ける。
優先順位対応表150〜151は緊急度と計算機固有の
優先順位との対応を示した表である。計算機100で
は、緊急度0が優先順位0あるいは1に対応し、緊急度
1が優先順位2乃至4に対応する。これに対し、計算機
100よりも性能の低い計算機101では、緊急度0が
優先順位0に、緊急度1が優先順位1に対応し、同一の
緊急度に対して高い優先順位が与えられる。これによっ
て、同一緊急度でプログラムを実行した場合に、同程度
の迅速さで処理が完了することを保証する。また、計算
機の負荷に応じて優先順位対応表150〜151の内容
を変更し、負荷の重い計算機では、同一緊急度が高い優
先順位に対応するように設定する。優先順位変換手続き
手段144〜145は優先順位対応表150〜151を
用いて、与えられた緊急度から優先順位への変換、およ
び、優先順位から緊急度への変換を行う。
【0044】優先順位対応表150〜151を図1に示
す配列構造で作成することは可能であるが、同一緊急度
に複数の優先順位が対応するため、緊急度から優先順位
への変換が効率的に行えない。図2に緊急度と優先順位
との変換を効率的に行うための優先順位対応表150の
データ構造の一例をC言語で記述した。緊急度と優先順
位との変換を容易にするために、二つの配列を組み合わ
せて優先順位対応表を作成する。優先順位対応表におい
て、優先順位から緊急度への変換は一意に行えるため、
配列170を用いる。緊急度から優先順位への変換は1
対多の変換であるため、各々の緊急度に対して、最小の
優先順位と最大の優先順位を記憶する構造体を用いる
(配列171)。各配列要素が示す値はデータ構造17
2に示すものとなる。このデータ構造を用いる場合、緊
急度uと優先順位pとの変換は、以下のように行えばよ
い。
【0045】(1)優先順位から緊急度への変換: u←to_urgency[p] (2)緊急度から優先順位への変換: p←to_priority[u].startからto_priority[u].e
ndの間のいずれかかの整数値 なお、本実施例では、緊急度と優先順位とを1対多の関
係に固定している。このため、優先順位から緊急度への
変換を単純配列で実現しているが、緊急度の範囲が実施
例に示す範囲に比べて大きい場合には、緊急度と優先順
位との対応を多対多若しくは多対1の関係に設定でき
る。多対多の関係の場合、配列170を配列171と同
様の構成とする必要がある。多対1の関係の場合には、
配列170と配列171の構成を入れ換えることによっ
て優先順位対応表を実現できる。なお、優先順位の範
囲,緊急度の範囲を変更する場合には、配列170〜1
71の要素数を変更しなければならない。
【0046】図1および図2の例では、優先順位対応表
150〜151を用いて緊急度と優先順位との変換を行
っているが、優先順位対応表を用いない構成方法もあ
る。図3に優先順位対応表を用いない優先順位変換手続
き手段144の内容を示した。なお、図3ではC言語を
用いて表現している。180が緊急度から優先順位への
変換式であり、181が優先順位から緊急度への変換手
続きである。本実施例では、最適な計算式として優先順
位が緊急度の二乗に比例するものを選択しているが、個
々の分散処理システムで最適な計算式を実験的に導出
し、これを一次式、あるいは、多次式で表現することは
可能である。この実施例では、比例係数として、負荷当
たりの計算機性能を用いている。本実施例では、負荷を
プライオリティキュー内のプログラム数(実行可能プロ
グラム数)、性能は10MIPS(1MIPSは一秒間に百万回
命令を実行可能な性能)を単位とするCPU(中央処理
装置)性能で表わすと都合がよい。この変換手続きを用
いることにより、プログラム当たりのCPU性能が高け
れば、同一緊急度に対して低い優先順位(優先順位番号
大)を設定でき、プログラム当たりのCPU性能が低け
れば、同一緊急度に対して高い優先順位(優先順位番号
小)を設定できる。
【0047】図1の優先順位変更手続き手段146〜1
47は優先順位変換手続き手段144〜145によって計
算された計算機固有の優先順位にしたがって、各プログ
ラムの優先順位を変更する。例えば、図1では、プログ
ラムJ(ユーザプログラム133)の状態が緊急度1,
優先順位4である。このプログラムの緊急度が1から0
に変化すると仮定すると、優先順位変換手続き手段14
4によって緊急度から優先順位への変換が行われ、新た
な優先順位として0(優先順位を1としてもよい)が得
られる。この値を用いて、優先順位変更手続き手段14
6はユーザプログラム133の優先順位を0に変更す
る。同時に、プログラムJのプログラム構造体163を
優先順位0の待ち行列に繋ぎ換える。
【0048】優先順位変換手続き手段144〜145と
優先順位変更手続き手段146〜147はいずれも、オ
ペレーティングシステムの一部、若しくは、オペレーテ
ィングシステムと協調して動作するサービスプログラム
である。サービスプログラムとしてこれらの手続きを構
成する場合は、優先順位変更手続き手段146〜147
はプログラムの優先順位の変更をオペレーティングシス
テムに依頼する形式を採用する必要がある。依頼された
オペレーティングシステムが実際に優先順位の変更と待
ち行列におけるプログラム構造体の繋ぎ換えを行う。
【0049】次に、本実施例に示した優先順位変換手続
き,優先順位変更手続きを用いて、計算機間で緊急度を
用いて処理を依頼する方式について説明する。リアルタ
イム分散処理システムでは、計算機間で処理を依頼する
際に、どの程度迅速に処理を完了してほしいかを示すこ
とにより、システム構築を容易にすることができる。こ
のため、本発明では、依頼元プログラムが処理依頼時に
緊急度を指定できるようにする。図4は本発明における
緊急度指定方法をC言語で記述した一例である。190
は処理依頼の先頭引数に緊急度を指定する方法、191
は処理依頼の最終引数に緊急度を指定する方法である。
なお、ユーザプログラムがこれを直接記述する必要はな
く、コンパイラ,トランスレータが190および191
の形式に翻訳する方法を用いることも可能である。
【0050】図5に上記緊急度指定方法を用いた処理依
頼の流れの概要を示した。符号100〜101,110,
130〜136,140〜147,150〜151,1
60〜166は図1と同一である。計算機102〜10
3並びに計算機内の詳細は省略している。本実施例で
は、ユーザプログラム133がユーザプログラム136
に処理を依頼する際の流れを示す。通信200〜206
が該処理の流れである。本発明では、図面において通信
を示す矢印記号の隣に記したデータが、該通信で送られ
る重要なデータを示すものとしている。ユーザプログラ
ム133はプライオリティキュー140内では優先順位
4(プログラム構造体163)を有している。ユーザプ
ログラム133は、第一に、優先順位から緊急度への変
換を優先順位変換手続き手段144に対して依頼する
(通信200)。図5では、計算機100の優先順位4
が緊急度1に対応しているので、優先順位変換手続き手
段144は変換結果として緊急度1を返答する(通信2
01)。次に、ユーザプログラム133は受理した緊急
度1を用いて、図4の緊急度指定方式190または19
1で、ユーザプログラム136に対して処理を依頼する
(通信202)。計算機101では、緊急度1指定の通
信を受信すると、該緊急度を計算機固有の優先順位に変
換し、変換結果の優先順位でユーザプログラム136を
実行させなければならない。ユーザプログラム136は
緊急度1を指定して、優先順位変更手続き手段147に
優先順位の変更を依頼する(通信203)。優先順位変
更手続き手段147は優先順位変換手続き手段145に
緊急度から優先順位への変換を依頼する(通信20
4)。図5では、緊急度1が計算機101の優先順位1
に対応する。優先順位変換手続き手段145は変換結果
として、優先順位1を優先順位変更手続き手段147に
通知し、ユーザプログラム136が優先順位1で実行さ
れなければならないことを知らせる(通信205)。最
後に、優先順位変更手続き手段147はプライオリティ
キュー141内のプログラム構造体166(ユーザプロ
グラム136に対応するプログラム構造体)を優先順位
1の待ち行列に繋ぎ換えさせる(通信206)。
【0051】これにより、異なる計算機上に存在する処
理依頼元および依頼先プログラムの優先順位を分散処理
システム全体に共通の概念である緊急度を用いて統一的
に管理することができる。なお、処理依頼元プログラム
が予め自己の緊急度を認識している場合には、計算機固
有の優先順位から緊急度への変換処理(通信200およ
び201)は不要である。さらにまた、自己の緊急度と
異なる緊急度で処理を依頼することも可能であり、この
場合にも、直接緊急度を指定して処理依頼を行えばよ
い。
【0052】本実施例で図1に示した優先順位対応表1
50〜151はそれぞれ、計算機の性能を考慮して割り
当てられるが、実際には、計算機の負荷によって処理の
完了までの時間が異なってくる。このため、本実施例で
は、計算機負荷が変化する度に優先順位対応表150〜
151を変化させる。図6に優先順位対応表の内容変更
方法210を示した。
【0053】本実施例では、負荷(実行可能プログラム
数)が一定量増減した場合、優先順位対応表の内容を変
更する。ここで、前回優先順位対応表の内容を変更した
後の負荷の変化量を総負荷変化量と呼ぶ。負荷が変化し
た場合、総負荷変化量に今回変化した負荷量を足し込み
(処理211)、この結果、総負荷変化量が正の一定値
以上となるか(処理212)、若しくは、総負荷変化量
が負の一定値以下となるか(処理213)を判定する。
正の一定値以上であれば、負荷が一定量増加したことを
示すので、優先順位対応表の緊急度境界を上にずらし
(処理214)、総負荷変化量が負の一定値以下であれ
ば、負荷が一定量減少したことを示すため、優先順位対
応表の緊急度境界を下にずらす(処理215)。優先順
位対応表の内容を変更した場合には、最後に、総負荷変
化量に0を設定し(処理216)、再び総負荷変化量の
計数を最初から行う。
【0054】処理214および処理215で優先順位対
応表の緊急度境界を上下にずらす意味について、図7を
用いて説明する。優先順位対応表150の緊急度境界が
負荷の増加によって上に移動すると、優先順位対応表2
20のように変化する。このとき、変化前の優先順位対
応表に比べ、同一緊急度であっても、より高い優先順位
にプログラムを割り当てることができる。同様に、緊急
度境界が負荷の減少によって下に移動すると、対応表2
21のように変化し、同一緊急度のプログラムがより低
い優先順位に割り当てられることになる。上記のように
緊急度境界を上下に移動することにより、同一緊急度の
プログラムを同一性能を有する計算機(あるいは、同一
計算機)で動作させる場合でも、負荷が重ければ高い優
先順位で、負荷が軽ければ低い優先順位で動作させるこ
とができ、各計算機上での負荷の増減をも考慮した統一
的な優先順位管理を行うことができる。
【0055】なお、本実施例では、緊急度境界を上下に
一つ移動しているが、負荷変化量に応じて、移動量を変
化させることも可能である。
【0056】次に、図2に示した優先順位対応表のデー
タ構造170および171を用いた場合に緊急度境界を
上下に移動する手続きを説明する。図8に、この手続き
の一例をC言語で記述した。230が緊急度境界を上に
移動する手続きである。データ構造171のto_priorit
y[u].endおよびto_priority[u+1].startが緊急
度uの下の緊急度境界を示すので、これらを減少させる
ことによって、緊急度境界を上にずらすことができる
(処理240〜241)。また、優先順位対応表の緊急度
境界を移動させると、優先順位から見た緊急度が変化す
る部分がある。例えば、図7において、優先順位1に対
応する緊急度は、緊急度境界が上に移動することによ
り、0から1に変化する。このため、優先順位から緊急
度への変換を行う配列170の内容を変更しなければな
らない。緊急度境界を上に移動させた場合、優先順位か
ら見た緊急度が変化した部分はto_priority[u+1].
startである。したがって、to_urgency[to_priority
[u+1].start] の値を増加させて補正する(処理
242)。
【0057】ここで、上記の優先順位対応表への変更を
行うと、既にプライオリティキューに存在しているプロ
グラムの緊急度が変化することがある。例えば、図7に
おいて、緊急度0,優先順位1であったプログラムは、
緊急度境界を上に移動させると、緊急度1,優先順位1
の属性を有することになる。本実施例では、このプログ
ラムを緊急度0に補正するため、後述する図9の処理
を、優先順位変更手続き手段146〜147に導入でき
る。図9の処理は、優先順位対応表の変更により緊急度
が変化したプログラムの優先順位を変更して、優先順位
対応表変更前と同一の緊急度を有するように変更するも
のである。前記の例では、優先順位1に属する全てのプ
ログラムの優先順位を1減少させ、優先順位を0に変化
させることにより、これらのプログラムの緊急度を優先
順位対応表変更前の値(緊急度0)に補正させる。24
3は優先順位変換手続き手段144〜145から図9の
機能を呼び出す処理である。処理243では図9の処理
名がchange_all_priority であると仮定し、さらに、指
定すべき引数は緊急度と優先順位との対応が変化した部
分to_priority[u+1].start と優先順位の増加分で
ある(処理243では優先順位の増加分が−1であり、
優先順位の減少を指定していることになる)。図9に優
先順位変更手続き手段146〜147の機能の内、特定
の優先順位を有するプログラムを全て別の優先順位に変
更する処理250の内容を示した。処理250は、指定
された優先順位に対応する待ち行列をプライオリティキ
ュー140〜141から取り出し(処理251)、該待
ち行列が空か否かを調べる(処理252)。待ち行列が
空でない限り、該待ち行列内のプログラム構造体を取り
出して(処理253)、プログラムの優先順位を指定分
だけ増加させる(処理254。指定値が負であれば優先
順位は減少する。なお、優先順位が減少することは、本
実施例では、より高い優先順位となることを意味するも
のである)。さらに、取り出したプログラム構造体を、
指定分だけ増加させた優先順位の待ち行列に繋ぎ換える
(処理255。負の値を増加させると優先順位は減少す
る)。これにより、処理243から要求される優先順位
変更を行うことができ、緊急度を同一に保つようにプロ
グラムの優先順位を変化させることができる。
【0058】同様に、図8の231が緊急度境界を下に
移動する手続きであり、データ構造171のto_priorit
y[u].endおよびto_priority[u+1].startを増加
させることによって、緊急度境界を下に移動させる(処
理244〜245)。緊急度境界を下に移動させる場
合、優先順位から見た緊急度が変化する部分はto_prior
ity[u].endである。したがって、to_urgency[to_pr
iority[u].end]の値を減少させて補正する(処理2
46)。手続き230と同様、処理247によって、プログ
ラムの優先順位の変更を行わせることができる。この場
合には、引数として、緊急度と優先順位との対応が変化
した部分to_priority[u].endと優先順位の増加分1
を指定する。
【0059】以上、図1乃至図9で第一の実施例の構
成,動作,方法について述べた。本実施例によれば、緊
急度を用いて、分散処理システム内の性能,負荷および
機種の異なる複数の計算機の優先順位を統一的に管理す
ることができ、同一緊急度を指定することにより、いず
れの計算機においても同程度の迅速さで処理が完了する
ことを期待できる。また、緊急度が計算機の性能,負荷
を考慮して優先順位に変換されるため、異なる計算機上
の処理であっても、低い緊急度の処理が高い緊急度の処
理に先んじて完了するという逆転現象も避けることがで
きるようになる。すなわち、分散処理システムにおける
より厳密なリアルタイム性の保証を行うことができる。
【0060】本実施例では、さらに、優先順位対応表の
内容変更およびプライオリティキューの内容変更(図6
乃至図9)を行うことができ、これにより、各計算機で
の動的な負荷変化に対応しつつ優先順位管理を行うこと
が可能となる。
【0061】本実施例では、さらに、上記二つの効果の
上に、計算機間に跨る処理依頼において、処理の重要度
に応じた緊急度を指定することができ、かつ、緊急度を
指定する際には、相手計算機の性能,負荷および機種を
知る必要がない。
【0062】なお、本実施例では、計算機の負荷を実行
可能状態にあるプログラムの数で表現したが、実行可能
状態にあるプログラムの処理量または処理予測時間の和
で表現する方式もある。これにより、計算機の負荷計算
がより正確となり、より厳密なリアルタイム性保証を行
うことができる。また、本実施例では、各計算機の負荷
と性能の両者を考慮して優先順位を決定しているが、い
ずれか一方のみを考慮して決定することもできる。特
に、分散処理システムが同一計算機から構成される場
合、負荷のみを考慮すればよく、緊急度と優先順位との
変換を効率的に行うことができる。
【0063】次に、図10に本発明の第二の実施例であ
る分散処理システムの構成について示す。図10に示す
実施例の特徴は、分散処理システム内の全ての計算機の
優先順位を管理する優先順位変換手続き手段260を用
意したことである。符号100〜101,110,130
〜136,140〜143,146〜147,160〜
166は図1と同一である。計算機102〜103並び
に計算機内の詳細は省略している。優先順位変換手続き
手段260は全ての計算機の優先順位と緊急度との優先
順位対応表270を有する。優先順位対応表270のデ
ータ構造は図2に示したデータ構造170および171
を計算機数だけ用意したものに等しい。したがって、優
先順位対応表の変更、並びに、それに伴うプログラムの
優先順位の変更は図6乃至図9で説明した処理と同一の
処理を行えばよい。
【0064】図10には、さらに、緊急度を指定した処
理依頼の流れの概要を示している。図5と同様に、本実
施例では、ユーザプログラム133がユーザプログラム
136に処理を依頼する際の流れを示す。ユーザプログラ
ム133は、第一に、優先順位から緊急度への変換を優
先順位変換手続き手段260に対して依頼する(通信2
80)。ユーザプログラム133と優先順位変換手続き
手段260とが互いに異なる計算機に存在する場合、通
信280は計算機間通信となる。優先順位対応表270
により、計算機100の優先順位4が緊急度1に対応し
ていることが判るので、優先順位変換手続き手段260
は変換結果として緊急度1を返答する(通信281)。
次に、ユーザプログラム133は受理した緊急度1を用
いて、ユーザプログラム136に対して処理を依頼する
(通信282)。計算機101では、緊急度1指定の通
信を受信すると、該緊急度を計算機固有の優先順位に変
換し、その優先順位でユーザプログラム136を実行さ
せる。ユーザプログラム136は緊急度1を指定して、
優先順位変更手続き手段147に優先順位の変更を依頼
する(通信283)。優先順位変更手続き手段147は
優先順位変換手続き手段260に緊急度から優先順位へ
の変換を依頼する(通信284)。本実施例では、緊急
度1が計算機101の優先順位1に対応する。優先順位
変換手続き手段260は変換結果として、優先順位1を
優先順位変更手続き手段147に通知し、ユーザプログ
ラム136が優先順位1で実行されなければならないこ
とを知らせる(通信285)。ユーザプログラム136
と優先順位変換手続き手段260とが互いに異なる計算
機に存在しているので、通信284および285は計算
機間通信となる。最後に、優先順位変更手続き手段14
7はプライオリティキュー141内のプログラム構造体
166を優先順位1の待ち行列に繋ぎ換えさせる(通信
286)。
【0065】なお、図5と同様、処理依頼元プログラム
が予め自己の緊急度を認識している場合には、計算機固
有の優先順位から緊急度への変換処理(通信280およ
び281)は不要である。さらにまた、自己の緊急度と
異なる緊急度で処理を依頼することも可能であり、この
場合にも、直接緊急度を指定して処理依頼を行えばよ
い。
【0066】以上に示した第二の実施例は、図1乃至図
9に示した第一の実施例において、優先順位変換手続き
を一つの計算機上に纏めて配置させたものに等しく、前
述した第一の実施例の効果の上に、優先順位対応表の管
理を纏めて容易に行うことができるという利点がある。
分散処理システム内に該システム全体を管理する高性能
かつ高信頼の計算機が存在し、該計算機に優先順位管理
の手続きも纏めて配置させるという考えに適している。
【0067】次に、本発明の第三の実施例について説明
する。分散処理システムにおいては、各計算機にプログ
ラムを均等に分散させ、各計算機の負荷を均等化させる
こともリアルタイム性を保証することに役立つ。しかし
ながら、プログラムを均等に分散させても、一つの計算
機に緊急性を要するプログラムが集中し、別の計算機に
重要性のないプログラムが集中するような負荷分散では
計算機資源を効率的に使用しているとは言えない。ま
た、一つの計算機に緊急性の高いプログラムが集中する
と、結果的に該計算機上での処理が遅れ、リアルタイム
性保証を妨げることになる。本発明では、緊急度を用い
て、個々のプログラムの重要性を加味した負荷分散を行
うことができる。図11に負荷分散を行う第三の実施例
の分散処理システムの構成を示す。符号100〜10
3,110,130〜136,140〜143,146
〜147,160〜166は図1と同一、優先順位変換
手続き手段260,優先順位対応表270は図10と同
一であり、その動作も同様である。ただし計算機101
の主記憶装置上にはユーザプログラム130〜136の
他、ユーザプログラム137も存在し、プログラム構造
体167を用いて管理される。
【0068】プログラム実行・移動手続き手段290〜
291はプログラムの起動や、計算機間でのプログラム
移動を行うもので、通常はオペレーティングシステムの
機能として提供される。プログラムの起動とは、新たに
実行すべきプログラムのプログラム構造体を生成し、こ
れをプライオリティキュー140〜141に登録するこ
とにより、プログラムを実行可能状態にすることであ
る。また、プログラム移動とは、ある計算機で実行可能
状態のプログラムを他の計算機に移動して、移動先の計
算機で実行可能状態にすることであり、プロセス移送と
も呼ばれ、分散オペレーティングシステムの機能として
提供されることが多い。
【0069】計算機情報300は計算機負荷情報302
と計算機性能情報304から成る。計算機負荷情報は、
各計算機の負荷、すなわち実行すべきプログラムの数
を、緊急度別に記憶したものである。例えば、現在の計
算機100の負荷は緊急度0が3,緊急度1が8,緊急
度2が7で、計算機101の負荷は緊急度0が1,緊急
度1が1,緊急度2が2である。計算機性能情報は、各
計算機の性能を記憶している。例えば本実施例では10
MIPSを1として性能を表現しており、計算機100の性能
は10,計算機101の性能は3である。なお、プログ
ラム実行・移動手続き手段290〜291はプログラム
の起動や移動を行った場合、その変化を計算機負荷情報
302に反映する処理を行う。これにより計算機負荷情
報302は、その時点での分散システム全体の負荷状態
を正しく表わすことができる。
【0070】プログラム移動決定手続き手段292は、
各計算機の負荷が性能に見合って均等に分散されている
かどうかを、計算機情報300中の計算機負荷情報30
2を調べて判定し、均等でない場合、均等になるように
プログラムを移動することを決定する。本実施例では、
プログラム移動決定手続きは一定周期で定期的に起動さ
れるものとする。計算機選択手続き手段294は新たに
実行すべきプログラムが生じた場合それをどの計算機で
実行するか、およびプログラムを計算機間で移動する場
合にどの計算機に移動するかを、計算機情報300中の
計算機負荷情報302と計算機性能情報304を参照し
て決定する。
【0071】本実施例の動作を図11乃至図15を用い
て説明する。まず、新たにプログラムを起動する場合の
処理について説明する。プログラムの起動は、例えば、
ユーザがプログラムの実行可能ファイル名と緊急度を指
定したコマンドを入力すると、オペレーティングシステ
ムがそのコマンドを解析し、オペレーティングシステム
中のプログラム実行・移動手続き手段290〜291に
プログラム起動を依頼することにより可能となる。ここ
では緊急度1のプログラムの起動コマンドが計算機10
0で入力され、プログラム実行・移動手続き手段290
がプログラムの起動処理を行う場合について、以下説明
する。
【0072】プログラム起動処理310の動作を図12
により説明する。まず、プログラム実行・移動手続き手
段290が計算機選択手続き手段294に依頼して、緊
急度の範囲が0から起動するプログラムの緊急度までの
負荷/性能値を、全ての計算機について算出する(処理
311)。ここで、負荷/性能値とは、計算機の負荷量
をその計算機の性能で割った値である。本実施例では、
計算機のプライオリティキューに登録されている実行可
能状態のプログラムの個数をその計算機の負荷量とす
る。算出は図11に示した計算機情報300中の計算機
負荷情報302と計算機性能情報304を読み出して行
う。図11の状態の各計算機の負荷情報,負荷量,負荷
/性能値を図13に示す。計算機負荷情報302は各緊
急度ごとの実行可能状態のプログラム数を表わしている
が、緊急度0から特定の緊急度の範囲に含まれる実行可
能状態のプログラム数が負荷量306であり、これを計
算機の性能で割ったものが負荷/性能値308である。
ここでは新たに起動するプログラムが緊急度が1の場合
について考えているので、緊急度範囲0〜1の負荷/性
能値を算出すると、計算機100の負荷/性能値は1.
10 ,計算機101の負荷/性能値は0.67となる。
【0073】次に、計算機選択手続き手段294は最も
負荷/性能値が低い計算機を、起動すべきプログラムを
実行する計算機として選択する(処理312)。図13
では計算機102以降については省略しているが、計算
機101の負荷/性能値0.67が最も小さいとすると、計
算機101が選択される。最後にプログラム実行・移動
手続きは、選択した計算機でプログラムを起動する処理
を行う(処理313)。これは、プログラム起動処理を開
始した計算機のプログラム実行・移動手続きが、選択し
た計算機のプログラム実行・移動手続きに、プログラム
を実行可能状態にするよう依頼することにより行う。こ
の場合、計算機100のプログラム実行・移動手続き手
段290が、計算機101内のプログラム実行・移動手
続き手段291に対して、通信を行い、プログラムを実
行可能状態にするよう依頼する。次に、実行可能状態の
プログラムを移動する処理について説明する。本実施例
では、プログラム移動決定手続き手段292が定期的に
起動され、各計算機の負荷が性能に見合って均等に分散
されていない場合、均等になるようにプログラムを移動
することを決定し、プログラム実行・移動手続き手段2
90〜291に移動を依頼する。プログラム実行・移動
手続き手段290〜291は、計算機選択手続き手段2
94に依頼して、移動先の計算機を決定し、移動先の計
算機のプログラム実行・移動手続きと協調して、プログ
ラムの移動処理を行う。本実施例では計算機の負荷が性
能に見合って均等であるかどうかを判定するための値と
して、前述の負荷/性能値を用いる。
【0074】プログラム移動処理320の動作を図14
を用いて説明する。まず、プログラム移動決定手続きは
緊急度の範囲を表わす変数nに0を代入する(処理32
1)。そして、緊急度範囲が0からnまでについて、各
計算機の負荷/性能値を算出する(処理322)。前述
のように図11の状態の負荷/性能値の値は図13の負
荷/性能値308のようになる。次に全ての計算機のう
ち、該緊急度範囲の最大の負荷/性能値と最小の負荷/
性能値の差Dを算出する(処理323)。図13では計
算機102以降については省略しているが、nが0の場
合、計算機101の負荷/性能値0.33が最も大き
く、計算機100の負荷/性能値0.30が最も小さい
とすると、Dの値は0.03 となる。このDの値が閾値
Dtを越えているかどうかを調べる(処理324)。本
実施例では閾値Dtとして0.3 という値を用いるもの
とする。Dの値が閾値Dtを越えている場合には処理3
25に移り、越えていない場合には処理328に移る。
ここでは、nが0の場合にはDの値はDtを越えていな
いので、処理328に移り、nの値に1を加える。そし
てnの値が31を越えているかを判定し(処理32
9)、越えていれば処理を終了し、越えていなければ処
理322に戻る。
【0075】ここではnが1なので、処理322に戻
り、各計算機の負荷/性能値を算出し、次に処理323
でDの値を算出する。図13では計算機102以降につ
いては省略しているが、nが1の場合、計算機100の
負荷/性能値1.10 が最も大きく、計算機101の負
荷/性能値0.67 が最も小さいとすると、Dの値は
0.43 となる。したがってnが1の時、Dの値は閾値
Dtを越えている。Dの値が閾値Dtを越えている場合
には負荷が均等ではないものと判定し、移動すべきプロ
グラムを決定する(処理325)。本実施例では、負荷
/性能値が最大の計算機の、緊急度nに対応する実行可
能状態のプログラムのうち、プライオリティキューにお
ける実行順位が最後尾のプログラムを選択することとす
る。この場合、図11に示したように、計算機100の
緊急度1に対応する優先順位は2〜4であり、そのうち
実行順位が最後尾なのはK(プログラム構造体167)
なので、これを移動対象プログラムとする。
【0076】移動対象プログラムが決定したら、プログ
ラム移動決定手続き手段292は、移動対象プログラム
が存在する計算機のプログラム実行・移動手続きに、移
動対象プログラムの移動処理を依頼する。この場合は計
算機100のプログラム実行・移動手続き手段290が
プログラム移動処理を行う。まず、プログラム実行・移
動手続き手段290は計算機選択手続き手段294に依
頼して、移動対象プログラムの移動先の計算機を選択す
る(処理326)。本実施例では負荷/性能値が最小の
計算機を移動先とする。したがってこの場合、nが1の
場合の最小負荷/性能値の計算機101を移動先とす
る。
【0077】移動先が決定したらプログラム実行/移動
手続きがプログラム移動処理を実行する(処理32
7)。この場合、計算機100のプログラム実行・移動
手続き手段290は、プログラム移動先計算機101の
プログラム実行・移動手続き手段291と協調して、プ
ログラム移動処理を実行する。通常、プログラム実行・
移動手続きはオペレーティングシステムにより提供され
る。プログラム移動において、移動先の計算機101に
移動すべきプログラムの実行可能ファイルが存在しない
場合には、それを計算機100から計算機101に転送
するするとともに、計算機100のプログラム構造体を
プライオリティキューから削除し、移動先の計算機でプ
ログラム構造体を生成し、それを移動先の計算機のプラ
イオリティキューに追加することにより、実行可能状態
にする処理が必要である。プログラムの移動が行われる
と、それによる計算機の負荷の状態は計算機負荷情報3
02に反映される。この場合、計算機負荷情報302は
図15に示すように、緊急度1の実行可能状態のプログ
ラムの数が、計算機100では7,計算機101では2
になる。
【0078】このようにして、プログラムの移動が行わ
れると、処理322に戻り、もう一度各計算機の負荷/
性能値を算出する。この場合には図15に示すような負
荷量306、および負荷/性能値308になる。図15
では計算機102以降については省略しているが、nが
1の場合、まだDの値がDtを越えている場合には、さ
きほどと同様にプログラムの移動処理を行う。Dの値が
Dt以下となったとすると、処理328に移る。
【0079】以上述べた処理をnが31を越えるまで行
うことにより、全ての緊急度について、負荷分散、すな
わち計算機性能に見合った負荷の均等化のためのプログ
ラム移動が行われる。
【0080】なお、上記ではプログラム移動決定手続き
によって起動される、負荷分散のためのプログラム移動
について述べたが、ユーザがコマンドにより指定するこ
とにより、プログラム移動を行うこともできる。この場
合には移動すべきプログラムの緊急度をnとし、図14
の処理326〜327の処理を行うことにより、最も負
荷の小さな計算機にプログラムを移動できる。
【0081】以上、本発明の第三の実施例について説明
した。本実施例によれば、計算機の負荷が各計算機の性
能に見合って均等にユーザプログラムを割り当てること
ができ、計算機資源を有効に活用できるという効果があ
る。ここで、本実施例では、計算機の負荷量と性能の両
者を考慮して、負荷の均等性の評価を行っており、計算
機の性能が変化しても、負荷の評価を平等に行えるとい
う効果がある。
【0082】また、本実施例によれば、プログラムの緊
急度の各レベルにおいて、各計算機の性能に見合って均
等にユーザプログラムを割り当てることができ、分散処
理システム全体で統一的な緊急度によってリアルタイム
処理が可能になるという効果がある。特に、プログラム
の緊急度を考慮して負荷分散を行うため、一つの計算機
に緊急性を要する処理が集中することがなくなり、より
厳密なリアルタイム性保証を行うことができる。
【0083】また、本実施例では、分散処理システム全
体の負荷の管理を一つの計算機で集中的に行っており、
プログラム起動先やプログラム移動先の決定を、他の計
算機との通信を行うことなく、効率的に行えるという効
果がある。
【0084】本発明の第四の実施例について図16を用
いて説明する。本実施例では上記本発明の第三の実施例
と異なり、計算機の性能および負荷に関する情報を、計
算機単位に保有する。図16は本実施例の構成を表わし
たものである。符号100〜101,110,130〜
136,140〜147,150〜151,160〜1
66は図1と同一であり、その動作も同様である。計算
機102〜103および計算機内部の詳細は省略してい
る。また記号137,167,290〜291は図11
と同一であり、その動作も同様である。
【0085】計算機情報330〜331は、計算機負荷
情報332〜333、および、計算機性能情報334〜
335を含んでいる。プログラム移動決定手続き手段2
96〜297は、各計算機の負荷が性能に見合って均等
に分散されているかどうかを、互いに計算機間で通信し
あって判定し、そのプログラム移動決定手続きが存在す
る計算機の負荷が他の計算機に比較して大きい場合、均
等になるようにプログラムを移動することを決定する。
プログラム移動決定手続き手段296〜297は、この
処理を計算機情報330〜331中の計算機負荷情報3
32〜333を参照して実行する。計算機選択手続き手
段298〜299は新たに実行すべきプログラムが生じ
た場合、それをどの計算機で実行するか、およびプログ
ラムを計算機間で移動する場合にどの計算機に移動する
かを、互いに計算機間で通信しあって決定する。計算機
選択手続き手段298〜299はこの処理を計算機情報
330〜331中の計算機負荷情報332〜333と計
算機性能情報334〜335を参照して決定する。
【0086】本実施例において、新たにプログラムを起
動する場合の処理、およびプログラム移動処理はいずれ
も基本的には図11〜図15を用いて説明した前記第三
の実施例と同様である。ただし前記第三の実施例では、
全計算機の負荷/性能値の計算を、一つの計算機100
上のプログラム移動決定手続き手段292、または計算
機選択手続き手段294が行ったが、本実施例では、各
計算機の負荷/性能値の計算をそれぞれの計算機上のプ
ログラム移動決定手続き手段296〜297、または、
計算機選択手続き手段298〜299が行い、それらの
計算により得た負荷/性能値を、プログラム起動を行う
計算機上の計算機選択手続きまたはプログラム移動を行
う計算機上のプログラム移動決定手続きが収集すること
により、プログラムの起動先およびプログラムの移動先
を決定するという点が異なる。
【0087】本実施例では、前記第三の実施例で示した
負荷分散,リアルタイム性保証の効果に加え、負荷の管
理を各計算機単位で分散して行っており、各計算機がプ
ログラムの起動や移動を行ったとき、該計算機および起
動先または移動先の計算機が、自分の計算機内の計算機
負荷情報を変更するのみでよいので、状態変化の計算機
負荷情報への反映処理を効率的に行えるという効果があ
る。また、分散システム内の計算機を取り除いたり、計
算機を新たに追加した場合でも、計算機情報のテーブル
を変更する必要がないため、システムの拡張性が向上す
るという効果がある。
【0088】以上述べた、上記第三および第四の実施例
については、いくつか別の実施例がある。上記第三およ
び第四の実施例では、緊急度を指標としてプログラムの
負荷情報を記憶し、評価することにより、プログラムの
起動や移動を行ったが、緊急度ではなく各計算機の優先
順位を指標として記憶し、評価する方式もある。これに
より各計算機では優先順位のみを考慮して処理を行えば
よく、緊急度と優先順位の変換処理が少なくなり、処理
を効率化できるという効果がある。また、この場合、本
発明の第一の実施例の図6乃至図9で示したように、緊
急度と優先順位の対応関係を管理している優先順位変換
手続き手段260、あるいは優先順位変換手続き手段1
44〜145に対して計算機の負荷に応じて対応関係を
変更する機能を持たせることもでき、これにより、計算
機の負荷に応じた緊急度または優先順位の制御が可能に
なるという効果がある。
【0089】さらにまた、上記第三および第四の実施例
では、計算機の負荷量を実行可能状態にあるプログラム
の数で表現したが、実行可能状態にあるプログラムの処
理量または処理予測時間の和で表現する方式もある。こ
れにより、計算機の負荷の評価が正確になり、より均等
な負荷の分散が可能になるという効果がある。
【0090】さらにまた、上記第三および第四の実施例
では、各計算機の負荷と性能の両者を考慮して、プログ
ラムを起動あるいは移動する計算機を決定したが、いず
れか一方のみを考慮して決定することもできる。特に、
複数の同一機種の計算機から成る分散システムの場合に
は、各計算機の負荷のみを考慮すればよい。これにより
処理が簡単になり、効率がよくなるという効果がある。
【0091】さらにまた、上記第三および第四の実施例
では、計算機の負荷量を、緊急度が0から起動するプロ
グラムまたは移動するプログラムの緊急度までの範囲に
含まれる、実行可能状態のプログラムについて評価した
が、起動するプログラムまたは移動するプログラムの緊
急度に等しい、実行可能状態のプログラムについて評価
するという方式もある。これにより負荷量の算出時間が
短くなり、処理が効率化できるという効果がある。
【0092】分散処理システムにおいては、複数の同一
処理を行うプログラムを複数の計算機上で動作させ、処
理依頼を分散させることができる。処理依頼を分散させ
るに当たって、従来は、複数の同一処理を行うプログラ
ムの中から、暇な(処理を実行していない)プログラム
を選択し、該プログラムに処理依頼を行っていた。しか
しながら、リアルタイム分散処理システムで上記のプロ
グラム選択方法を行う場合、必ずしも高い優先順位のプ
ログラムが選択されるわけではなく、依頼元に望ましい
迅速さで処理が完了するとは限らない。図17は、複数
の同一プログラムから処理依頼元に望ましい優先順位の
プログラムを選択し、該プログラムに対して処理を実行
させるための本発明の第五の実施例である。本実施例
は、望ましい迅速さで動作するプログラムを選択すると
いうリアルタイム性保証と、処理の負荷分散とを同時に
達成させるための実現システムである。本実施例は、前
述した優先順位変換手続き手段260と該優先順位変換
手続き手段260の変換結果を用いて処理依頼先プログ
ラムを決定するプログラム選択手続き手段410を用い
て実現される。
【0093】図17中、符号100〜103,110,
140〜143は図1と同一である。計算機100〜1
01のハードウェア詳細については省略してある。優先
順位変換手続き手段260および優先順位対応表270
は図10と同一の手続き,データ構造を使用する。43
0〜442はユーザプログラムである。ユーザプログラ
ムの内、ユーザプログラム440〜442は、プログラ
ム選択手続き手段410の管理対象でないプログラムであ
る。分散処理システム内で唯一のプログラム,処理依頼
を受けずに単独で動作するプログラム等がプログラム選
択手続き手段410の管理対象外とすることができる。
個々のユーザプログラムにはそれぞれ優先順位が与えら
れ、プライオリティキュー140〜141内の優先順位
毎の待ち行列で管理される。450〜451,454〜
458,460〜462は各ユーザプログラムのプログ
ラム構造体の一例であり、それぞれ、ユーザプログラム
430〜431,434〜438,440〜442の情
報を所有する。ユーザプログラム432〜433,43
9に対応するプログラム構造体は省略してある。本発明
では、複数の同一処理を行うプログラムが複数の計算機
上で同時に実行され、処理を依頼する際の緊急度に応じ
て依頼先プログラムを決定する。図17の実施例では、
ユーザプログラム431〜433が同一処理を行うプロ
グラム(プログラムB)であると仮定している。同様
に、ユーザプログラム435〜436(プログラム
D),ユーザプログラム438〜439(プログラム
F)がそれぞれ同一処理を行うプログラムである。
【0094】プログラム選択手続き手段410はこれら
のプログラムが動作している計算機,優先順位を管理
し、最適な優先順位を有するプログラムの選択を行う。
このための管理用データ構造として、プログラム位置デ
ータベース420を設ける。プログラム位置データベー
ス420は、同一処理を行うプログラムの動作している
計算機,優先順位を記憶するプログラム位置情報470
〜479を管理する。プログラム位置情報にプログラム
の通信アドレス等の情報を含め、処理依頼を容易にする
管理方法もある。プログラム位置情報470〜479は
同一処理を行うプログラム毎にプログラムリスト421
〜426として管理される。例えば、プログラム位置情
報471〜473は同一処理を行うプログラム(プログ
ラムB)の位置情報であり、これらが纏めてプログラム
リスト422として記憶される。なお、プログラムA,
C,Eはそれぞれ一つずつのプログラムしか存在しない
ため、これらのプログラムリストをプログラム位置デー
タベース420から削除して管理することも可能であ
る。プログラム選択手続き手段410に登録されている
プログラムの優先順位が各計算機で変更された場合や、
該プログラムが存在しなくなった場合、および、登録す
べきプログラムが新たに起動された場合には、それぞれ
のプログラムの動作している計算機,優先順位をプログ
ラム選択手続き手段410に通知し、プログラム位置デ
ータベースの内容を変更させる。
【0095】次に、優先順位変換手続き手段260とプ
ログラム選択手続き手段410を用いて、優先順位を用
いた処理依頼先選択方法について示す。図18がプログ
ラム選択手法の一例である。本実施例では、ユーザプロ
グラム440がプログラムD(ユーザプログラム435
またはユーザプログラム436)に対して緊急度0で処
理を依頼するものと仮定する。ユーザプログラム440
は、第一に、プログラム選択手続き手段410に対し、
緊急度0に対応するプログラムDの位置を尋ねる(通信
480)。プログラム選択手続き手段410は各プログ
ラムの動作している計算機と優先順位とを認識している
が、緊急度を認識していないので、指定された緊急度0
をそのまま優先順位変換手続き手段260に渡し(通信
481)、その結果、緊急度0に対応する優先順位リス
ト490を得る(通信482)。優先順位リスト490
の内容は、指定された緊急度に対応する各計算機の優先
順位の範囲を示している。本実施例では、緊急度0に対
して、計算機100では優先順位0〜1の範囲に、計算
機101では優先順位0に対応することを示す優先順位
リストが通信482でプログラム選択手続き手段410
に返される。プログラム選択手続き手段410では、プ
ログラム位置データベース420の内容と優先順位リス
ト490の内容とを比較して、処理依頼先プログラムを
決定する。図18の例では、プログラムDのプログラム
リスト424の中で、優先順位リスト490で指定され
る優先順位に対応するプログラム位置情報は476(ユ
ーザプログラム436に対応)のみである。したがっ
て、計算機101に存在するユーザプログラム436が
処理依頼先であると判断し、これをユーザプログラム44
0に通知する(通信483)。ユーザプログラム440
は通信483で得られたユーザプログラム436に対し
て処理を依頼する(通信484)。なお、ここで、プロ
グラム選択手続き手段410がユーザプログラム440
からの通信480を、直接、ユーザプログラム436に
対して送信するという通信仲介方法を採用することも可
能である(通信485)。
【0096】次に、プログラム選択手続き手段410が
プログラムリスト421〜426と優先順位リスト49
0との比較を行い、指定された優先順位の範囲内に存在
するプログラムを見つける処理500の一例を図19に
示す。第一に、指定されたプログラムリストが示す最初
のプログラム位置情報を取り出す(処理501)。プロ
グラム位置情報が空であれば(処理502による判
定)、該当する範囲の優先順位のプログラムが存在しな
いと見なし、これを処理依頼元プログラムに通知する
(処理503)。プログラム位置情報が空でなければ、
該プログラム位置情報内に記憶されている計算機と一致
するエントリを優先順位リスト490から取り出す(処
理504)。処理504で得られた優先順位の範囲にプ
ログラム位置情報内の優先順位が含まれていれば(処理
505による判定)、該プログラムを処理依頼元プログ
ラムに通知する(処理506)。処理505の判定によ
って、プログラムの優先順位が指定範囲外であると判断
された場合、プログラムリストの次のプログラム位置情
報を取り出して(処理507)、処理502から同じ手
続きを繰り返す。処理500を用いることにより、図1
8の例では、第一に、プログラムDに関するプログラム
リスト424の最初のプログラム位置情報475と優先
順位リスト490とを比較し、次に、第二のプログラム
位置情報476と優先順位リスト490とを比較する。
プログラム位置情報476の優先順位が優先順位リスト
490の指定する範囲内に存在しているので、これが選
択されて処理依頼元プログラムに通知されることにな
る。
【0097】本発明の第五の実施例を用いることによ
り、優先順位の異なった複数の同一処理を行うプログラ
ムを分散処理システムの計算機上に分散させ、緊急性に
応じた処理依頼の負荷分散を行うことができる。処理依
頼は同一内容の処理を依頼する場合であっても、依頼元
によって、その緊急性が異なる場合が多く、本実施例の
効果が期待できる。
【0098】さらにまた、上記した第五の実施例によれ
ば、該複数の同一処理を行うプログラムの優先順位を予
め違ったレベルに設定しておくことにより、前記優先順
位変更手続きを使用することなく、異なった緊急度で同
一内容の処理を依頼することができ、第一の実施例と同
程度のリアルタイム性保証を実現することができる。図
20に本発明の第六の実施例を示す。図20の実施例
は、各計算機に分散させて設けた優先順位変換手続き手
段144〜145と、同一処理を行うプログラムが動作
している計算機と緊急度とを記憶して処理依頼先を決定
するプログラム選択手続き手段510を組み合わせて構
築した分散処理システムである。図20中、符号100
〜103,110,140〜145,150〜151は
図1と同一である。計算機100〜101のハードウェ
ア詳細については省略してある。ユーザプログラム43
0〜442並びにプログラム構造体450〜462は、
図17と同一の内容を示している。ユーザプログラム4
32〜433,439に対応するプログラム構造体は省
略してある。
【0099】プログラム選択手続き手段510はこれら
のプログラムが動作している計算機,緊急度を管理し、
最適な緊急度を有するプログラムの決定を行う。このた
めの管理用データ構造として、プログラム位置データベ
ース520を設ける。プログラム位置データベース52
0は、同一処理を行うプログラムの動作している計算
機,緊急度を記憶するプログラム位置情報530〜53
9を管理する。プログラム位置情報530〜539はそ
れぞれ、同一処理を行うプログラム毎にプログラムリス
ト521〜526を構成する。図17におけるプログラ
ム位置情報470〜479は、プログラムの動作してい
る計算機,優先順位を記憶するが、プログラム位置情報
530〜539は優先順位の代わりに緊急度を記憶す
る。プログラム位置情報にプログラムの通信アドレス等
の情報を含め、処理依頼を容易にする管理方法もある。
プログラム選択手続き手段510に登録されているプロ
グラムの緊急度が各計算機で変更された場合や、該プロ
グラムが存在しなくなった場合、また、登録すべきプロ
グラムが新たに起動された場合には、それぞれのプログ
ラムの動作している計算機,緊急度をプログラム選択手
続き手段510に通知し、プログラムリストの内容を変
更させる。また、各計算機上での優先順位と緊急度との
対応関係が変化した場合にも、優先順位変換手続き手段
144〜145は対応関係の変化をプログラム選択手続
き手段510に通知し、プログラム位置情報520〜5
29に記憶されている緊急度を変更させる。
【0100】図20は、さらに、優先順位変換手続き手
段144〜145としての優先順位対応表とプログラム
選択手続き手段510を用いて、緊急度を用いた処理依
頼先選択方法についても示している。図18と同様、ユ
ーザプログラム440がプログラムD(ユーザプログラ
ム435またはユーザプログラム436)に対して処理
を依頼するものと仮定する。ユーザプログラム440
は、第一に、プログラム選択手続き手段510に対し、
緊急度0に対応するプログラムDの位置を尋ねる(通信
540)。プログラム選択手続き手段510は各プログ
ラムの動作している計算機と緊急度とを認識しているた
め、この時点で、プログラムDかつ緊急度0という条件
を満たすプログラムの位置を認識できる。本実施例で
は、二つのプログラムDの内、プログラム位置情報53
6(ユーザプログラム436に対応)のみである。したが
って、計算機101に存在するユーザプログラム436
が処理依頼先であると判断し、これをユーザプログラム
440に通知する(通信541)。ユーザプログラム44
0は通信541で得られたユーザプログラム436に対
して処理を依頼する(通信542)。なお、ここで、プロ
グラム選択手続き手段510がユーザプログラム440
からの通信540を、直接、ユーザプログラム436に
対して送信するという通信仲介方法を採用することも可
能である(通信543)。
【0101】本発明の第六の実施例は、前記第五の実施
例の効果に加え、プログラム選択手続き手段510が優
先順位変換手続き手段144〜145に対して緊急度か
ら優先順位への変換を行わせないため、プログラム選択
を前記第五の実施例に比べて高速化することができる。
ただし、プログラム位置情報530〜539において緊
急度を記憶するため、各計算機の負荷の変化等によって
緊急度と優先順位との対応関係が変化した場合には、各
プログラム位置情報の緊急度を変化させなければならな
い可能性がある。このため、各計算機上の負荷が時間に
よって大きく変化する場合には、前記第五の実施例に示
した方式が有利となる。
【0102】前記第五の実施例に示した方式,前記第六
の実施例に示した方式の他に、プログラム選択手続き手
段510と優先順位変換手続き手段260とを組み合わ
せて構築する方式,プログラム選択手続き手段410と
優先順位変換手続き手段144〜145とを組み合わせて
構築する方式を実現することは可能である。なお、図1
7,図18および図20においてはプログラムの優先順
位を変更して動作させることを考慮していないため、優
先順位変更手続き手段146〜147を記述していない
が、この手続きを追加して優先順位変更を行えるように
することも可能である。
【0103】複数の同一処理を行うプログラムを有した
分散処理システムでは、処理を実行中のプログラムに対
して、新たに処理が依頼された場合、新たに依頼された
処理を別の同一処理を行うプログラムに転送すると、個
々のプログラムを効率的に使用でき、また、新たな処理
依頼を迅速に実行し、リアルタイム性の向上につなが
る。この処理依頼転送を行う第七の実施例を次に示す。
図21は、処理実行中のプログラムに対してさらに処理
を依頼した場合に、該新たな処理を別の同一処理を行う
プログラムに転送させる分散処理システムの構成を示し
ている。図21中、符号100〜103,110,14
0〜143は図1と同一である。計算機100〜101
のハードウェア詳細については省略してある。優先順位
変換手続き手段260および優先順位対応表270は図
10と同一の手続き,データ構造を使用する。符号41
0,420〜426,430〜442,450〜462
並びに470〜479は、図17と同一の内容を示して
いる。ユーザプログラム432〜433,439に対応
するプログラム構造体は省略してある。
【0104】本実施例では、プログラム内部に処理転送
手続き手段550および待ち行列551を設けることに
よって処理依頼を別プログラムに転送させることを可能
とする。待ち行列551はプログラムに対して行われた
処理依頼を順に記憶するバッファ記憶である。処理転送
手続き手段550はプログラムが処理実行中に待ち行列
に到着した処理依頼を監視し、該処理依頼を別プログラ
ムに転送する。これにより、処理依頼をプログラム間で
分散処理することができ、計算機の負荷を均等に分散化
させることができる。通信560〜565の流れは、上
記処理依頼の転送を行う際に、処理転送手続きによって
どのように処理依頼が別プログラムに送られるかを示し
たものである。本実施例では、ユーザプログラム440
がユーザプログラム438(プログラムFの一つ)に対
して緊急度1で処理依頼を行い(通信560)、これが
別プログラムに転送される過程を例として示している。
ユーザプログラム438が処理実行中に処理依頼が到着
した場合、これらの処理依頼は待ち行列551に格納さ
れる。552〜553が処理依頼である。処理転送手続
き手段550は新たな処理依頼553を受信すると、該
処理依頼553に必要な緊急度1を有しているプログラ
ムFが別に存在するかどうかをプログラム選択手続き手
段410に尋ねる(通信561)。プログラム選択手続
き手段410は緊急度1を優先順位変換手続き手段260
に通知して(通信562)、該緊急度1に対応する優先
順位の範囲を示す優先順位リスト491を受け取る(通
信563)。図21中、優先順位リスト491の計算機
101および102に対応するデータは省略している。
優先順位リスト491とプログラムFのプログラムリス
ト426とを比較することにより、必要な緊急度を満た
すプログラム位置情報を選択する。このとき、プログラ
ム選択手続き手段410はユーザプログラム438自身
を表わすプログラム位置情報は選択しないようにする。
図21の例では、プログラム位置情報479(ユーザプ
ログラム439に対応)が優先順位リスト491の示す
優先順位の範囲に含まれ、該位置情報に対応するユーザ
プログラム439の位置を処理転送手続き手段550に
通知する(通信564)。これを受けた処理転送手続き手
段550がユーザプログラム439に対して、新たに到
達した処理553を依頼することになる(通信56
5)。
【0105】本発明の第七の実施例では、処理転送手続
き手段550並びに待ち行列551をプログラム内部に
配置したが、これをプログラム外部に配置し、複数のプ
ログラムが共通に使用する手続き並びにデータ構造とし
て実現することも可能である。また、本実施例では、プ
ログラム選択手続き手段410と優先順位変換手続き手
段260との組み合わせから構成される図17の分散処
理システムに処理転送手続き手段550を追加した構成
である。しかし、プログラム選択手続き手段510と優
先順位変換手続き手段144〜145との組み合わせか
ら構成される図20の分散処理システムに処理転送手続
き手段550を追加しても同様の処理を行うことができ
る。
【0106】本発明の第七の実施例を用いることによ
り、個々のプログラムに対して依頼された処理を他の同
一緊急度を持つプログラムに転送することができ、特定
のプログラムに対して処理が集中することなく、処理依
頼を複数のプログラムで分散させることができる。さら
にまた、新たに依頼された処理が、実行中の処理の完了
を待つ必要がなく、リアルタイム性保証をさらに向上さ
せることが可能となる。以上述べた本発明の第七の実施
例には、別の実施例がある。第七の実施例は、処理実行
中に新たな処理が依頼された場合、該新たな処理を別の
プログラムに転送するというものであったが、該新たな
処理を転送せず、処理を実行するプログラムにより高い
緊急度を与え、実行中の処理と新たな処理をより迅速に
処理させるという方式を採用することも可能である。こ
の方式は、一つのプログラムに対して複数の処理が依頼
された場合に、該処理依頼の数に応じて高い緊急度を与
え、該複数の処理依頼全体としての望ましいリアルタイ
ム性を保証するというものである。なお、この方式を採
用するためには、優先順位変更手続き手段146〜14
7を各計算機上に配置させ、プログラムの優先順位を変
更させる必要がある。
【0107】(B)処理の時間制約を用いる場合 図1〜図21に示した実施例は、全て分散処理システム
全体に共通の概念である緊急度を設け、該緊急度を用い
て各計算機での優先順位を統一的に管理する方法であっ
た。緊急度を絶対的な数値に変更して、処理の時間制約
を用いることができる。処理の時間制約を用いる場合、
これを直接優先順位に変換することはできない。処理の
時間制約は長くても処理量が大きい場合や、時間制約は
短いが処理量も小さい場合が存在するため、時間制約と
処理量から優先順位を決定する必要がある。図22に、
時間制約,処理量を用いて優先順位を統一的に管理する
ための分散処理システムの第八の実施例を示す。
【0108】図22中、符号100〜101,110,
130〜136,142〜143,146〜147は図
1と同一である。計算機100〜101のハードウェア
詳細、および、計算機102〜103については省略し
てある。570〜571はプライオリティキューであ
り、各計算機での優先順位毎にプログラムの待ち行列を
構成して実行順序管理を行う。プライオリティキューの
構成要素はプログラム構造体であり、その一例が590
〜596である。プログラム構造体590〜596は、そ
のデータ構造の一部として処理量データ600を所有す
る。個々のプログラムの情報として該プログラムが実行
する処理量を所有させることにより、時間制約,処理量
を優先順位に変換する際の支援を行う。処理量として記
憶する値には、例えば、以下のような値がある。
【0109】(1)プログラムの実行命令数 (2)プログラムサイズ (3)前回実行時の処理量(前回のプログラム実処理時
間/計算機性能) いずれも、単位は千命令等を使用する。実際に、上記の
三つの例の内、最も望ましいものはプログラムの実行命
令数であるが、これを計数することは非常に困難であ
る。このため、プログラムの静的なサイズ,前回プログ
ラム実行時にどれだけの処理量であったかを測定し、こ
の値を処理量データ600として記憶する。処理量デー
タ600の初期値としてプログラムサイズを記憶し、プ
ログラムを一回実行するたびにどれだけの処理量であっ
たかを処理量データ600に記憶,更新することによっ
て、プログラム実行命令数に対する良い近似とすること
ができる。
【0110】572〜573は優先順位変換手続きであ
る。優先順位変換手続き手段572〜573は、時間制
約,処理量と計算機固有の優先順位との変換を行う手続
きである。本実施例では、優先順位変換手続き手段57
2〜573内に優先順位対応表580〜581を設けて
いる。優先順位対応表580〜581は単位処理量当た
りの時間制約と優先順位との対応を示した表である。プ
ログラムに与えられた時間制約をプログラムの処理量で
正規化することにより単位処理量当たりの時間制約を計
算することができる。本実施例では、計算機100が優
先順位0の場合に単位処理量を0.017ミリ秒で実行
でき、優先順位255では22.77ミリ秒で実行でき
ることを示す。これに対し、性能の低い計算機101で
は、同一優先順位でも単位処理量当たりの実行時間が長
くなる。このため、例えば、優先順位0の場合には、単
位処理量を0.034 ミリ秒で実行すると記憶されてお
り、計算機100の優先順位0に比べて単位処理量実行
時間が長くなっている。また、優先順位対応表580〜
581の内容は負荷に応じて変更され、負荷の重い計算
機では同一時間制約が高い優先順位に対応するように設
定する。優先順位変換手続き手段572〜573は、優
先順位対応表580〜581を用いて、時間制約,処理
量と優先順位との変換を行う。
【0111】優先順位対応表580〜581は、図22
に示す配列構造で、そのまま、実現できる。これをC言
語のプログラムで記述すると図23に示す配列610に
なる。配列610を用いる場合、優先順位から単位処理
量当たりの時間制約への変換は容易に行えるが、時間制
約は連続量(浮動小数点数)なので、時間制約から優先
順位への変換は2分探索等の工夫が必要となる。2分探
索については、オーム社刊行の情報処理学会編「情報処
理ハンドブック」,58頁等に記載されているが、本実
施例では、時間制約timelimitに対して、 to_time[p]<=timelimit<to_time[p+1] を満たすような優先順位pを与える必要がある。したが
って、2分探索のアルゴリズムを変形して、図24に示
す手続き620の探索を行う。なお、手続き620はC
言語で記述してあり、単位処理量当たりの時間制約を引
数として、手続き620を呼び出すことにより、時間制
約から優先順位への変換を行うことができる。単位処理
量当たりの時間制約と優先順位との変換方法を纏める
と、次のようになる。
【0112】(1)優先順位から時間制約への変換: timelimit←to_time[p] (2)時間制約から優先順位への変換: p←to_priority(timelimit) なお、計算機の最高優先順位で実行しても時間制約を満
たせない場合、処理依頼を拒絶することも可能である。
【0113】図22乃至図24では、優先順位対応表5
80〜581を用いて時間制約,処理量と優先順位との
変換を行うが、緊急度を用いる場合と同様に(図3参
照)、これを計算式に置き換えることも可能である。
【0114】次に、本実施例に示した優先順位変換手続
き手段572〜573並びに優先順位変更手続き手段1
46〜147を用いて計算機間で時間制約を指定して処
理を依頼する方式について説明する。緊急度指定を行う
通信と同様に、処理の時間制約を指定して通信を行え
ば、リアルタイム分散処理システム構築を容易にするこ
とができる。このため、本発明では、依頼元プログラム
が処理依頼時に時間制約を指定できるようにする。図2
5が本発明の時間制約指定方法をC言語で記述した一例
である。630は処理依頼の先頭引数に時間制約を指定
する方法、631が処理依頼の最終引数に時間制約を指
定する方法である。前述のように優先順位を定めるため
には時間制約と処理量とを決定する必要があるが、処理
量については依頼先計算機のプログラム構造体の処理量
データ600を参照することにより決定することができ
るため、処理依頼時に時間制約のみを指定すれば良い。
【0115】図26に上記時間制約指定方法を用いた処
理依頼の流れの概要を示した。符号100〜101,1
10,130〜136,142〜143,146〜14
7は図1と同一である。計算機102〜103並びに計
算機内の詳細は省略している。符号570〜573,5
80〜581,590〜596,600は図22と同一
である。本実施例では、ユーザプログラム133がユー
ザプログラム136に処理を依頼する際の流れを示す。
ユーザプログラム136の行うべき処理に関してユーザ
プログラム133が何らかの時間制約を課したい場合、
時間制約指定通信630あるいは631を行う(通信6
40)。図26では、時間制約を5ミリ秒であると仮定
する。計算機101では、時間制約指定の通信を受信す
ると、該時間制約を計算機固有の優先順位に変換し、変
換結果の優先順位でユーザプログラム136を実行させ
なければならない。ユーザプログラム136は5ミリ秒
の時間制約を指定して、優先順位変更手続き手段147
に優先順位の変更を依頼する(通信641)。優先順位変
更手続き手段147は優先順位変換手続き手段573に時
間制約から優先順位への変換を依頼する(通信64
2)。優先順位変換手続き手段573はユーザプログラ
ム136に対応するプログラム構造体596から処理量
データ600を取り出し(処理643)、該処理量と時
間制約から優先順位を決定する。ここで、ユーザプログ
ラム136の処理量が64千命令であるとする。このと
き、時間制約5ミリ秒と処理量64千命令から、単位処
理量当たりの時間制約として、0.78ミリ秒を得るこ
とができる(計算644)。優先順位対応表581を使
用することにより、計算644で得られた数値に対応す
る優先順位は1であることが判る。優先順位変換手続き
手段573は変換結果として、優先順位1を優先順位変
更手続き手段147に通知し、ユーザプログラム136
が優先順位1で実行されなければならないことを知らせ
る(通信645)。最後に、優先順位変更手続き手段1
47はプライオリティキュー571内のプログラム構造
体596を優先順位1の待ち行列に繋ぎ換えさせる(通
信646)。
【0116】これにより、異なる計算機上に存在するプ
ログラムの優先順位を時間制約という共通の概念で統一
的に管理することが可能となる。なお、緊急度を使用し
た分散処理システムと同様に、ユーザプログラム133
が優先順位変換手続き手段572に自己の優先順位4と
処理量とから時間制約を計算させ、該時間制約を指定し
て処理依頼640を行うことは可能である。
【0117】緊急度を用いて分散処理システムの各計算
機の優先順位を管理する場合と同様、時間制約を用いる
場合にも、負荷の増減によって優先順位対応表の内容を
変更することができる。時間制約と優先順位との対応表
を変更する方法として、次の二つの方式を例として説明
する。
【0118】(1)負荷に比例して優先順位対応表の時
間制約を変更する方式 (2)実際に実行した時間と時間制約の差を用いて優先
順位対応表の時間制約を変更する方式 図27に第一の優先順位対応表変更方式650を示す。
前回優先順位対応表を変更した時点の負荷量を前負荷
量、その後の負荷の変化量を総負荷変化量と呼ぶ。方式
650は負荷が変化した場合、総負荷変化量に今回変化
した負荷量を足し込み(処理651)、この結果、総負
荷変化量が増減に拘らず一定値以上(総負荷変化量の絶
対値が一定値以上)となるかどうかを判定する(処理6
52)。一定値以上であれば、前負荷量と現在の負荷量
との比によって優先順位対応表の時間制約の補正を行う
(処理653)。優先順位対応表の内容を変更した場合
には、最後に、総負荷変化量に0を設定、および、前負
荷量に現在の負荷量を設定し(処理654)、再び負荷
変化量の計数を開始する。
【0119】処理653で前負荷量と現在の負荷量との
比によって優先順位対応表の調節を行う意味を図28に
示した。優先順位対応表580が負荷量50(実行可能
プログラム数50)を有していると仮定し、負荷が10
増減する毎に優先順位対応表580の変更を行うものと
仮定している。負荷が10増加した場合、優先順位対応
表は660に示すように変化する。これは、変化前の負
荷量50と変化時点の負荷量60の比を優先順位対応表
の時間制約に各々掛け合わせたものとなる。同様に、負
荷が10減少した場合には、各々の時間制約に前負荷量
50と現在の負荷量40の比を掛け合わせた優先順位対
応表661を得ることができる。これにより、負荷が高
い場合には、同じ優先順位に対応する時間制約が長くな
り(処理完了に時間を要する)、負荷が低い場合には、
時間制約を短くする(処理が速く完了する)ことができ
る。
【0120】次に、第二の優先順位対応表変更方式を再
度図26を用いて説明する。第二の変更方式では、優先
順位を1に変更してユーザプログラム136を実行した
後、優先順位変換手続き手段573がユーザプログラム
136の実際の処理時間を受け取る(通信647)。図
26の例では、実際の処理時間が3.47ミリ秒である
と仮定している。このとき、単位処理量当たりの実行時
間が3.47/64=0.54 ミリ秒と計算できる(計
算648)。この値をそのまま、優先順位1に対応する
時間制約として記憶することにより、優先順位対応表5
81の補正を行うことができる(処理649)。なお、
実際に補正を行う場合には、上記の計算値0.54 ミリ
秒に一定値(例えば、0.1 ミリ秒)を加え、安全区間
を設けておくほうがよい。
【0121】以上に、時間制約を用いて分散処理システ
ムの各計算機上の優先順位を統一的に管理する第八の実
施例を示した。本実施例によれば、時間制約を用いて、
分散処理システム内の性能,負荷および機種の異なる複
数の計算機の優先順位を統一的に管理することができ
る。時間制約を指定して処理依頼を行うだけで、該時間
制約が各計算機の性能,負荷に応じて各計算機の優先順
位に変換されるため、リアルタイム分散処理システムを
容易に構築することが可能となる。
【0122】さらに、本実施例によれば、各計算機の性
能と負荷に応じて、処理の時間制約,処理量を個々の計
算機の優先順位に変換して実行させるため、新たに発生
した時間制約の短い処理を、既に割り付けられている時
間制約の長い処理に先んじて実行させるといったことが
可能となり、複数の計算機を効率的に利用しつつ、より
厳密にリアルタイム処理を実現することが可能となる。
【0123】本実施例では、さらに、優先順位対応表の
内容変更を行うことができ、これにより、各計算機での
動的な負荷変化に対応しつつ優先順位管理を行うことが
可能となる。
【0124】本実施例では、さらに、計算機間に跨る処
理依頼において、処理の重要度に応じた時間制約を指定
することができ、かつ、時間制約を指定する際には、相
手計算機の性能,負荷および機種を知る必要がない。
【0125】なお、本実施例では、計算機の負荷を実行
可能状態にあるプログラムの数で表現したが、実行可能
状態にあるプログラムの処理量または処理予測時間の和
で表現する方式もある。これにより、計算機の負荷計算
がより正確となり、より厳密なリアルタイム性保証を行
うことができる。また、本実施例では、各計算機の負荷
と性能の両者を考慮して優先順位を決定しているが、い
ずれか一方のみを考慮して決定することもできる。特
に、分散処理システムが同一計算機から構成される場
合、負荷のみを考慮すればよく、時間制約と優先順位と
の変換を効率的に行うことができる。
【0126】時間制約を用いて分散処理システムの各計
算機の優先順位管理を行う際に、計算機間の通信時間を
考慮するとさらに精密な優先順位管理を行うことができ
る。図29に、計算機間の通信時間を考慮した本発明の
第九の実施例を示す。符号100〜101,110,1
30〜136,142〜143,146〜147は図1
と同一である。計算機102〜103並びに計算機内の
詳細は省略している。符号570〜573,580〜5
81,590〜596,600は図22と同一である。
通信641〜642および645〜646における時間
制約と優先順位の変換過程は図26と同一である。
【0127】本実施例では、計算機間の通信時間を予測
する通信時間予測手続き手段670〜671を設ける。
通信時間予測手続き手段670〜671は優先順位変換
手続き手段572〜573,優先順位変更手続き手段1
46〜147等とは独立に動作する。通信時間予測手続
き手段670〜671は、内部に通信時間表680〜6
81を有し、計算機の番号が与えられると、該計算機と
自己の計算機との通信時間を出力する。通信時間表68
0〜681の設定方式として、例えば、次の二つのいず
れかの方法を採用するとよい。
【0128】(1)計算機立上げ時に他全ての計算機と
通信を行い、該通信の実行時間を記憶する。
【0129】(2)通信時間予測要求があるまで通信時
間表の設定は行わない。最初に通信時間予測要求があっ
た時点で、要求された計算機と通信を行い、該通信の実
行時間を記憶する。
【0130】図29は、通信時間予測手続き手段670
〜671を用いて処理依頼を行う場合の通信の流れも示
している。図26と同様、ユーザプログラム133がユ
ーザプログラム136に対して時間制約を指定して処理
を依頼する例を示す。ユーザプログラム133はユーザ
プログラム136の行うべき処理に関して8.14 ミリ
秒の時間制約を課したいとする。このとき、ユーザプロ
グラム133は図25の630あるいは631に示した
形式で時間制約指定通信690を行う。このとき、ユー
ザプログラム133から見れば、計算機間通信に要する
時間も含めて時間制約を課したと見なしている。すなわ
ち、この時間制約8.14 ミリ秒から計算機間通信に要
する時間を差し引くことにより、ユーザプログラム13
6から見た時間制約を得ることができる。ユーザプログ
ラム136は通信時間予測手続き手段671に対して、
計算機100との通信時間を尋ねる(通信691)。こ
れに対して通信時間予測手続き手段671は通信時間表
681を参照し、指定された計算機との通信時間を返答
する(通信692)。図29に示した数値例では、計算
機100との通信時間は1.57 ミリ秒である。ユーザ
プログラム136はこの通信時間を差し引くことによ
り、自己に課せられた時間制約を知ることができる。こ
こでは、8.14 ミリ秒から、通信時間1.57×2=
3.14ミリ秒(処理依頼と結果返却とにそれぞれ通信
時間を要するものとする)を差し引いた5ミリ秒を時間
制約として得ることになる。以降の処理は、図26と同
様である。
【0131】なお、ここでは、処理依頼先プログラムが
通信時間を差し引く方法を示したが、処理依頼元プログ
ラムが予め通信時間予測手続き手段670に通信時間を
尋ね、該通信時間を差し引いておく方法もある。
【0132】上記した第九の実施例を用いることによ
り、前記第八の実施例で用いる時間制約をさらに正確な
ものに変換し、使用することができる。特に、計算機間
の通信時間が大きく、無視できない場合に有効である。
【0133】なお、第八および第九の実施例において、
優先順位変換手続き手段572〜573を各計算機に分
散配置する実施例を示したが、図10と同様、優先順位
変換手続きを一つの計算機上に纏めて配置することは可
能である。
【0134】次に、時間制約を用いて、個々のプログラ
ムの重要性を加味した負荷分散を行うための実施例(第
十の実施例)を説明する。第十の実施例では、時間制約
を指標として負荷分散を行うことにより、一つの計算機
に時間制約の短いプログラムが集中するといったことを
避けることができる。図30に本実施例の構成図を示
す。符号100〜101,110,130〜136,1
42〜143,146〜147は図1と同一であり、そ
の動作も同様である。計算機102〜103および計算
機内部の詳細は省略している。また符号137,290
〜291は図11と同一、符号296〜299,330
〜331,334〜335は図16と同一であり、その
動作も同様である。プライオリティキュー570〜57
1,優先順位変換手続き手段572〜573,優先順位
対応表580〜581,プログラム構造体590〜59
6,処理量データ600は図22と同一である。また、
ユーザプログラム137はプログラム構造体597によ
って管理されている。
【0135】計算機情報330〜331は、それぞれ、
計算機負荷情報370〜371と計算機性能情報334
〜335とから成る。計算機負荷情報370〜371は
各計算機の負荷を単位処理量当たりの時間制約毎に記憶
したものである。本実施例では、計算機負荷情報中の単
位処理量当たりの時間制約の区切りを等間隔に設定して
いないが、これを等間隔に設定し、負荷分散処理を容易
にすることは可能である。
【0136】本実施例の動作を図30乃至図34を用い
て説明する。まず、新たにプログラムを起動する場合の
処理について説明する。プログラムの起動は、例えば、
ユーザがプログラムの実行可能ファイル名と時間制約と
を指定したコマンドを入力すると、オペレーティングシ
ステムがそのコマンドを解析し、オペレーティングシス
テム中のプログラム実行・移動手続き手段290〜29
1にプログラム起動を依頼することにより可能となる。
ここでは時間制約50ミリ秒のプログラムの起動コマン
ドが計算機100で入力され、プログラム実行・移動手
続き手段290がプログラムの起動処理を行う場合につ
いて、以下説明する。
【0137】プログラム起動処理340の動作を図31
により説明する。まず、プログラム実行・移動手続き手
段290が計算機選択手続き手段298に依頼して、新
たに起動されるプログラムが計算機負荷情報中、どの時
間制約間隔に含まれるかを決定する(処理341)。例
えば、プログラムの処理量が128千命令と見積もられ
ると仮定すると、単位処理量当たりの時間制約は50/
128=0.39 ミリ秒である。計算機負荷情報370
〜371で時間制約0.39 ミリ秒を含む時間制約間隔
は0.05〜1.00の範囲に当たる。次に、全ての計算
機上の計算機選択手続き手段298〜299に依頼し
て、単位処理量当たりの時間制約の範囲が0ミリ秒から
処理341で決定した範囲までの負荷/性能値を算出さ
せる(処理342)。算出は図30に示した計算機負荷
情報370〜371と計算機性能情報334〜335を
読み出して行う。図30の状態の各計算機の負荷情報,
負荷量,負荷/性能値を図32に示す。計算機負荷情報
370〜371は単位処理量当たりの時間制約ごとの実
行可能状態のプログラム数を表わしているが、時間制約
0ミリ秒から特定の時間制約の範囲に含まれる実行可能
状態のプログラム数が負荷量380〜381であり、こ
れを計算機の性能で割ったものが負荷/性能値382〜
383である。ここでは新たに起動するプログラムが時
間制約0.39ミリ秒の場合について考えているので、
この値を含む最小の時間制約範囲0〜1ミリ秒の負荷/
性能値を算出すると、計算機100の負荷/性能値は
1.10 ,計算機101の負荷/性能値は0.67とな
る。
【0138】次に、計算機選択手続き手段298〜29
9は互いに通信しあって、最も負荷/性能値が低い計算
機を、起動すべきプログラムを実行する計算機として選
択する(処理343)。図32では計算機102以降に
ついては省略しているが、計算機101の負荷/性能値
0.67 が最も小さいとすると、計算機101が選択さ
れる。最後にプログラム実行・移動手続きは、選択した
計算機でプログラムを起動する処理を行う(処理34
4)。これは、プログラム起動処理を開始した計算機の
プログラム実行・移動手続きが、選択した計算機のプロ
グラム実行・移動手続きに、プログラムを実行可能状態
にするよう依頼することにより行う。この場合、計算機
100のプログラム実行・移動手続き手段290が、計
算機101内のプログラム実行・移動手続き手段291
に対して、通信を行い、プログラムを実行可能状態にす
るよう依頼する。
【0139】次に、実行可能状態のプログラムを移動す
る処理について説明する。本実施例では、プログラム移
動決定手続き手段296〜297が定期的に起動され、
互いに通信しあって各計算機の負荷を確認し、各計算機
の負荷が性能に見合って均等に分散されていない場合、
均等になるようにプログラムを移動することを決定し、
プログラム実行・移動手続き手段290〜291に移動
を依頼する。プログラム実行・移動手続き手段290〜
291は、計算機選択手続き手段298〜299に依頼し
て、移動先の計算機を決定し、移動先の計算機のプログ
ラム実行・移動手続きと協調して、プログラムの移動処
理を行う。本実施例では計算機の負荷が性能に見合って
均等であるかどうかを判定するための値として、前述の
負荷/性能値を用いる。
【0140】プログラム移動処理350の動作を図33
を用いて説明する。まず、プログラム移動決定手続きは
時間制約の範囲を表わす変数に0.05 ミリ秒を代入す
る(処理351)。この値は、計算機負荷情報370〜
371において、単位処理量当たりの時間制約が最も小
さくなる範囲の上限値である。そして、時間制約範囲が
0からtミリ秒までについて、各計算機の負荷/性能値
を算出する(処理352)。前述のように図30の状態
の負荷/性能値の値は図32の負荷/性能値382〜3
83のようになる。次に全ての計算機のうち、該時間制
約範囲の最大の負荷/性能値と最小の負荷/性能値の差
Dを算出する(処理353)。図32では計算機102以
降については省略しているが、tが0.05 ミリ秒の場
合、計算機101の負荷/性能値0.33 が最も大き
く、計算機100の負荷/性能値0.30が最も小さい
とすると、Dの値は0.03となる。このDの値が閾値
Dtを越えているかどうかを調べる(処理354)。本
実施例では閾値Dtとして0.3 という値を用いるもの
とする。Dの値が閾値Dtを越えている場合には処理3
55に移り、越えていない場合には処理358に移る。
ここでは、nが0の場合にはDの値はDtを越えていな
いので、処理358に移り、tの値が時間制約範囲の最
大値(図30の例では、200ミリ秒)であるか否かを
判定する。tの値が時間制約範囲の最大値であれば処理
を終了し、最大値でなければ、処理359に移行し、変
数tに次の時間制約範囲の上限を代入する。ここではt
が0.05 ミリ秒なので、処理359に移行して1ミリ
秒を代入することになる。ここで処理352に戻り、各
計算機の負荷/性能値を算出し、次に処理353でDの
値を算出する。図32では計算機102以降については
省略しているが、tが1ミリ秒の場合、計算機100の
負荷/性能値1.10 が最も大きく、計算機101の負
荷/性能値0.67が最も小さいとすると、Dの値は0.
43となる。したがってtが1ミリ秒の時、Dの値は閾
値Dtを越えている。Dの値が閾値Dtを越えている場
合には負荷が均等ではないものと判定し、移動すべきプ
ログラムを決定する(処理355)。本実施例では、負
荷/性能値が最大の計算機の、単位処理量当たりの時間
制約tミリ秒以下に対応する実行可能状態のプログラム
のうち、プライオリティキューにおける実行順位が最後
尾のプログラムを選択することとする。この場合、図3
0に示したように、計算機100の時間制約0.05 〜
1ミリ秒に対応する優先順位は2〜4であり、そのうち
実行順位が最後尾なのはK(プログラム構造597)な
ので、これを移動対象プログラムとする。
【0141】移動対象プログラムが決定したら、移動対
象プログラムが存在する計算機のプログラム移動決定手
続きは、同一計算機上のプログラム実行・移動手続き
に、移動対象プログラムの移動処理を依頼する。この場
合は計算機100のプログラム実行・移動手続き手段2
90がプログラム移動処理を行う。まず、プログラム実
行・移動手続き手段290は計算機選択手続き手段29
8に依頼して、移動対象プログラムの移動先の計算機を
選択する(処理356)。計算機選択手続き手段298は
他の計算機上の計算機選択手続きと通信しあって移動先
計算機を決定する。本実施例では負荷/性能値が最小の
計算機を移動先とする。したがってこの場合、tが1ミ
リ秒の場合の最小負荷/性能値の計算機101を移動先
とする。移動先が決定したらプログラム実行・移動手続
きがプログラム移動処理を実行する(処理357)。こ
の場合、計算機100のプログラム実行・移動手続き手
段290は、プログラム移動先計算機101のプログラ
ム実行・移動手続き手段291と協調して、プログラム
移動処理を実行する。プログラムの移動が行われると、
それによる計算機の負荷の状態は計算機負荷情報370
〜371に反映される。この場合、計算機負荷情報37
0〜371は図34に示すように、単位処理量当たりの
時間制約0.05 〜1ミリ秒の実行可能状態のプログラ
ムの数が、計算機100では7,計算機101では2に
なる。
【0142】このようにして、プログラムの移動が行わ
れると、処理352に戻り、もう一度各計算機の負荷性
能値を算出する。この場合には図34に示すような負荷
量380〜381、および負荷/性能値382〜383
になる。図34では計算機102以降については省略し
ているが、tが1ミリ秒の場合、まだDの値がDtを越
えている場合には、さきほどと同様にプログラムの移動
処理を行う。Dの値がDt以下となったとすると、処理
358に移る。
【0143】以上述べた処理をtの値が時間制約範囲の
最大値となるまで行うことにより、全ての時間制約範囲
について、負荷分散、すなわち計算機性能に見合った負
荷の均等化のためのプログラム移動が行われる。
【0144】以上、本発明の第十の実施例について説明
した。本実施例によれば、計算機の負荷が各計算機の性
能に見合って均等にユーザプログラムを割り当てること
ができ、計算機資源を有効に活用できるという効果があ
る。ここで、本実施例では、計算機の負荷量と性能の両
者を考慮して、負荷の均等性の評価を行っており、計算
機の性能が変化しても、負荷の評価を平等に行えるとい
う効果がある。
【0145】また、本実施例によれば、プログラムの各
時間制約範囲において、各計算機の性能に見合って均等
にユーザプログラムを割り当てることができ、分散処理
システム全体で統一的な時間制約によってリアルタイム
処理が可能になるという効果がある。特に、プログラム
の時間制約を考慮して負荷分散を行うため、一つの計算
機に時間制約の短い処理が集中することがなくなり、よ
り厳密なリアルタイム性保証を行うことができる。
【0146】なお、図30〜図34では、優先順位変換
手続き手段572〜573,計算機選択手続き手段29
8〜299,計算機情報330〜331を各計算機に分
散させた構成を採用しているが、これを一つの計算機に
配置し、集中管理させることは可能である。
【0147】図17〜図21では、複数の同一処理を行
うプログラムを複数の計算機上で動作させ、緊急度を指
定して処理依頼を行うことにより、該同一処理を行うプ
ログラムの中から依頼元プログラムに望ましい優先順位
を有するプログラムを選択する方法を示した。次に、時
間制約を用いてこのプログラム選択処理を行う本発明の
第十一の実施例について示す。図35に時間制約を用い
て処理依頼を分散させるための実施例を示す。図35は
図17に示した分散処理システムにおいて、緊急度の代
わりに時間制約を用いる方法である。図35中、符号1
00〜103,110,140〜143は図1と同一で
ある。計算機100〜101のハードウェア詳細につい
ては省略してある。符号430〜442,450〜45
1,454〜458,460〜462,470〜479
は図17と同一である。優先順位変換手続き手段720
および優先順位対応表730は図22における優先順位
変換手続き手段572〜573および優先順位対応表5
80〜581を纏めて一つの手続き、データ構造で管理
するように変更したものである。優先順位変換手続き手
段720は図24に示した変換手続き手段620を使用
することにより、指定された時間制約に対する各計算機
上での優先順位を求めることができる。
【0148】700はプログラム選択手続き手段であ
り、指定された時間制約を用いて依頼元に最適なプログ
ラムを選択する。このための管理用データ構造として、
プログラム位置データベース710を設ける。プログラ
ム位置データベース710は、同一処理を行うプログラ
ムの動作している計算機,優先順位を記憶するプログラ
ム位置情報470〜479を管理する。プログラム位置
情報470〜479は同一処理を行うプログラム毎にプ
ログラムリスト711〜716として管理される。本実
施例では、プログラムリスト711〜716自体が図2
2で示した該プログラムの処理量データ600を記憶す
るものとしている。これにより、指定された時間制約と
プログラムリスト711〜716で指定される処理量デ
ータ600とから単位処理量当たりの時間制約を導き出
すことができる。なお、図22と同様に、処理量データ
600をプログラム構造体内に記憶させ、優先順位変換
手続き手段720が処理量データ600を読み出して単
位処理量当たりの時間制約を導出することも可能であ
る。プログラム選択手続き手段700に登録されている
プログラムの優先順位が各計算機で変更された場合や、
該プログラムが存在しなくなった場合、および、登録す
べきプログラムが新たに起動された場合には、それぞれ
のプログラムの動作している計算機,優先順位をプログ
ラム選択手続き手段700に通知し、プログラム位置デ
ータベースの内容を変更させる。
【0149】次に、優先順位変換手続き手段720とプ
ログラム選択手続き手段700を用いて、時間制約を用
いた処理依頼先選択方法について示す。図36がプログ
ラム選択手法の一例である。本実施例では、ユーザプロ
グラム440がプログラムD(ユーザプログラム435
またはユーザプログラム436)に対して処理を依頼す
るものと仮定する。ユーザプログラム440は、第一
に、プログラム選択手続き手段700に対し、時間制約
5ミリ秒を満たすプログラムDの位置を尋ねる(通信7
50)。プログラム選択手続き手段700はプログラム
Dに関するプログラムリスト714から処理量データ6
00を取り出す(処理751)。ここで、プログラムD
の処理量が128千命令であったと仮定する。与えられ
た時間制約と処理量データ600から、単位処理量当た
りの時間制約は、5.00/128=0.039 ミリ秒で
あると計算することができる(計算752)。プログラ
ム選択手続き手段700は計算752で得た結果を優先
順位変換手続き手段720に通知し、優先順位への変換
を依頼する(通信753)。優先順位変換手続き手段72
0は図24に示す手続き620を実行することにより、
時間制約0.039ミリ秒に対応する各計算機の優先順
位を決定し、これを優先順位リスト492として、プロ
グラム選択手続き手段700に通知する(通信75
4)。優先順位リスト492の内容は、指定された時間
制約に対応する各計算機の優先順位を示している。本実
施例では、時間制約0.039 ミリ秒が計算機100で
は優先順位1に、計算機101では優先順位0に対応す
ることを示す優先順位リストが通信754でプログラム
選択手続き手段700に返される。プログラム選択手続
き手段700では、プログラム位置データベース710
の内容と優先順位リスト492の内容とを比較して、処理
依頼先プログラムを決定する。プログラムリスト711〜
716と優先順位リスト492との比較を行い、指定さ
れた優先順位の範囲内に存在するプログラムを見つける
ためには図19の処理500を使用すれば良い。図36
の実施例では、プログラムDのプログラムリスト714
の中で、優先順位リスト492で指定される範囲の優先
順位に対応するプログラム位置情報は476(ユーザプ
ログラム436に対応)のみである。したがって、計算
機101に存在するユーザプログラム436が処理依頼
先であると判断し、これをユーザプログラム440に通
知する(通信755)。ユーザプログラム440は通信
755で得られたプログラム436に対して処理を依頼
する(通信756)。なお、ここで、プログラム選択手
続き手段700がユーザプログラム440からの通信7
50を、直接、ユーザプログラム436に対して送信す
るという通信仲介方法を採用することも可能である(通
信757)。
【0150】本発明の第十一の実施例を用いることによ
り、優先順位の異なった複数の同一処理を行うプログラ
ムを分散処理システムの計算機上に分散させ、時間制約
に応じた処理依頼の負荷分散を行うことができる。処理
依頼は同一内容の処理を依頼する場合であっても、依頼
元によって、その時間制約が異なる場合が多く、本実施
例の効果が期待できる。
【0151】さらにまた、本第十一の実施例によれば、
該複数の同一処理を行うプログラムの優先順位を予め違
ったレベルに設定しておくことにより、前記優先順位変
更手続きを使用することなく、異なった時間制約で同一
内容の処理を依頼することができ、第八の実施例と同程
度のリアルタイム性保証を実現することができる。
【0152】図37に前述のプログラム選択を行うため
のさらに別の実施例である第十二の実施例を示す。図3
7の実施例は、各計算機に分散させて設けた優先順位変
換手続き手段572〜573と、同一処理を行うプログ
ラムが動作している計算機と時間制約とを記憶して処理
依頼先を決定するプログラム選択手続き手段760を組
み合わせて構築した分散処理システムである。図37
中、符号100〜103,110,140〜143は図
1と同一である。計算機100〜101のハードウェア
詳細については省略してある。ユーザプログラム430
〜442並びにプログラム構造体450〜462は、図
17と同一の内容を示している。ユーザプログラム43
2〜433,439に対応するプログラム構造体は省略
してある。優先順位変換手続き手段572〜573,優
先順位対応表580〜581,処理量データ600は図
22と同一の手続き,データ構造である。
【0153】プログラム選択手続き手段760はこれら
のプログラムが動作している計算機,時間制約を管理
し、最適な時間制約を有するプログラムの決定を行う。
このための管理用データ構造として、プログラム位置デ
ータベース770を設ける。プログラム位置データベー
ス770は、同一処理を行うプログラムの動作している
計算機,時間制約(この場合、時間制約は処理予測時間
の意味合いが強い)を記憶するプログラム位置情報78
0〜789を管理する。プログラム位置情報780〜78
9はそれぞれ、同一処理を行うプログラム毎にプログラ
ムリスト771〜776を構成する。図35におけるプ
ログラム位置情報470〜479は、プログラムの動作
している計算機,優先順位を記憶するが、プログラム位
置情報780〜789は優先順位の代わりに時間制約を記
憶する。時間制約は、プログラムの優先順位に対応する
単位処理量当たりの時間制約にプログラムの処理量を掛
け合わせることによって得ることができる。例えば、ユ
ーザプログラム436(プログラムD)は計算機101
の優先順位0で動作している。プログラムDの処理量が
128千命令であると仮定すると、その時間制約は、0.0
34×128=4.35ミリ秒となる。この値がプログラム
位置情報786(ユーザプログラム436に対応する位
置情報)に記憶されている。プログラム選択手続き手段
760に登録されているプログラムの処理量が各計算機
で変更された場合や、該プログラムが存在しなくなった
場合、また、登録すべきプログラムが新たに起動された
場合には、それぞれのプログラムの動作している計算
機,単位処理量当たりの時間制約をプログラム選択手続
き手段760に通知し、プログラムリストの内容を変更
させる。また、各計算機上での優先順位と時間制約との
対応関係が変化した場合にも、優先順位変換手続き手段
572〜573は対応関係の変化をプログラム選択手続
き手段760に通知し、プログラム位置情報780〜7
89に記憶されている時間制約を変更させる。
【0154】図37は、さらに、優先順位変換手続き手
段572〜573とプログラム選択手続き手段760を
用いて、時間制約を用いた処理依頼先選択方法について
も示している。図36と同様、ユーザプログラム440
がプログラムD(ユーザプログラム435またはユーザ
プログラム436)に対して処理を依頼するものと仮定
する。ユーザプログラム440は、第一に、プログラム
選択手続き手段760に対し、時間制約5ミリ秒に対応
するプログラムDの位置を尋ねる(通信790)。プログ
ラム選択手続き手段760は各プログラムの動作してい
る計算機と時間制約とを認識しているため、この時点
で、プログラムDかつ時間制約5ミリ秒以下という条件
を満たすプログラムの位置を認識できる。本実施例で
は、二つのプログラムDの内、プログラム位置情報78
6(ユーザプログラム436に対応)のみである。した
がって、計算機101に存在するユーザプログラム43
6が処理依頼先であると判断し、これをユーザプログラ
ム440に通知する(通信791)。ユーザプログラム44
0は通信791で得られたユーザプログラム436に対
して処理を依頼する(通信792)。なお、ここで、プ
ログラム選択手続き手段760がユーザプログラム44
0からの通信790を、直接、ユーザプログラム436
に対して送信するという通信仲介方法を採用することも
可能である(通信793)。
【0155】本発明の第十二の実施例は、第十一の実施
例の効果に加え、さらに、プログラム選択手続き手段7
60が優先順位変換手続き手段572〜573に対して
時間制約から優先順位への変換を行わせないため、プロ
グラム選択を図35〜図36に示した方式に比べて高速
化することができる。ただし、プログラム位置情報78
0〜789において時間制約を記憶するため、各計算機
の負荷の変化等によって時間制約と優先順位との対応関
係が変化した場合、各プログラム位置情報の時間制約を
変化させなければならない可能性がある。このため、各
計算機上の負荷が時間によって大きく変化する場合に
は、図35〜図36に示した方式が有利となる。
【0156】図35〜図36に示した方式,図37に示
した方式の他に、プログラム選択手続き手段760と優
先順位変換手続き手段720とを組み合わせて構築する
方式,プログラム選択手続き手段700と優先順位変換
手続き手段572〜573とを組み合わせて構築する方
式を実現することは可能である。なお、図35乃至図3
7においてはプログラムの優先順位を変更して動作させ
ることを考慮していないため、優先順位変更手続き手段
146〜147を記述していないが、この手続きを追加
して優先順位変更を行えるようにすることも可能であ
る。
【0157】最後に、図21に示した分散処理システム
と同様、時間制約を使用して、一つのプログラムに対し
て依頼された処理を別の同一処理を行うプログラムに対
して転送する本発明の第十三の実施例を図38に示す。
図38中、符号100〜103,110,140〜143は
図1と同一である。計算機100〜101のハードウェ
ア詳細については省略してある。優先順位変換手続き手
段572〜573および優先順位対応表580〜58
1,処理量データ600は図22と同一の手続き,デー
タ構造を使用する。ユーザプログラム430〜442,
プログラム構造体450〜462は、図17と同一の内
容を示している。ユーザプログラム432〜433,4
39に対応するプログラム構造体は省略してある。ま
た、符号760,770〜776,780〜789は図37
と同一である。ユーザプログラム438内に記述されてい
る処理転送手続き手段550,待ち行列551,処理依
頼552〜553は図21と同一である。
【0158】時間制約を使用する場合には、依頼された
処理を別のプログラムに転送する条件として以下の2種
類を代表例として挙げることができる。
【0159】(1)処理実行中に新たに処理が依頼され
た場合。
【0160】(2)現在実行中の処理が時間制約内に間
に合わないと認識した場合。
【0161】前者については、図21と同様にして、処
理転送手続き手段550および待ち行列551によって
処理依頼を別プログラムに転送させることができる。た
だし、この場合の相違点として、処理転送手続き手段5
50はプログラム選択手続き手段760に時間制約を指
定する。
【0162】後者の場合の処理転送は、プログラム内に
処理時間予測手続き手段800および時間制約設定手続
き手段802を設けることによって達成することができ
る。処理時間予測手続き手段800は現在実行中の処理
が完了するまでの時間を予測する手段である。これは、
プログラムの残り処理量801を記憶すること等によっ
て予測することができる。例えば、ユーザプログラム4
38の残り処理量801が60である場合、ユーザプログ
ラム438(計算機101上での優先順位1)の単位処
理量当たりの時間制約が0.074 ミリ秒なので、0.
074×60=4.44 ミリ秒と予測することができ
る。時間制約設定手続き手段802は新たに別プログラ
ムに対して処理を依頼する際に、新たな時間制約を計算
する手段である。これは、処理依頼を受理した時点から
の経過時間803等を記憶することによって達成でき
る。
【0163】通信810〜816の流れは、上記処理依
頼の転送を行う際に、どのように処理依頼が別プログラ
ムに送られるかを示したものである。本実施例では、ユ
ーザプログラム440がユーザプログラム438(プロ
グラムFの一つ)に対して時間制約5ミリ秒で処理依頼
を行い(通信810)、これが別プログラムに転送され
る過程を例として示している。ここで、処理依頼552
の実行開始から経過時間1.8 ミリ秒後に残り処理量が
60千命令であったと仮定する。処理時間予測手続き手
段800は、優先順位変換手続き手段573から自己の
プログラムの優先順位1に対応する単位処理量当たりの
時間制約0.074 ミリ秒を受け取り(通信811)、
上述の計算を行って処理予測時間4.44 ミリ秒を計算
する(通信812)。時間制約設定手続き手段802は
時間制約5ミリ秒と経過時間1.8 ミリ秒とから新たな
時間制約3.2 ミリ秒を計算する(通信813)。新た
な時間制約内に残っている処理を完了することができな
いと予測されるので、この処理依頼を別プログラムに転
送する。このため、新たに計算された時間制約3.2 ミ
リ秒を指定して、該時間制約を満たすプログラムFが別
に存在するかどうかをプログラム選択手続き手段760
に尋ねる(通信814)。プログラム選択手続き手段7
60はプログラムFのプログラムリスト776から時間
制約3.2ミリ秒を満たすプログラム位置情報を調べる。
図38の例では、プログラム位置情報789(計算機1
03上のユーザプログラム439に対応)を見つけるこ
とができる。プログラム選択手続き手段760はプログ
ラム位置情報789に対応するユーザプログラム439
の位置を処理転送手続き手段550に通知する(通信8
15)。これを受けた処理転送手続き手段550がユー
ザプログラム439に対して、時間制約に間に合わない
と判断した処理552を依頼することになる(通信81
6)。
【0164】本第十三の実施例を用いれば、個々のプロ
グラムに対して依頼された処理を他の同一時間制約を持
つプログラムに転送することができ、特定のプログラム
に対して処理が集中することなく、処理依頼を複数のプ
ログラムで分散させることができる。さらにまた、新た
に依頼された処理が、実行中の処理の完了を待つ必要が
なく、リアルタイム性保証をさらに向上させることが可
能となる。
【0165】さらに、本実施例によれば、あるプログラ
ムに対して依頼された処理が時間制約に間に合わないと
認識した時点で、他のより高速に処理を完了できるプロ
グラムに処理依頼を転送させることができ、処理依頼の
時間制約内の完了をさらに厳密に保証することができ
る。このような場合の処理依頼転送は、何らかの突発的
な事故によりプログラムの実行が遅れた場合にも、時間
制約を保証できるようにしたものである。
【0166】図38では、処理転送手続き手段550,
待ち行列551,処理時間予測手続き手段800,時間
制約設定手続き手段802をプログラム内部に配置した
が、これをプログラム外部に配置し、複数のプログラム
が共通に使用する手続き並びにデータ構造として実現す
ることも可能である。また、本実施例では、プログラム
選択手続き手段760と優先順位変換手続き手段572
〜573との組み合わせから構成される図37の分散処
理システムに処理転送手続き手段550,待ち行列55
1,処理時間予測手続き手段800,時間制約設定手続
き手段802を追加した構成となるが、プログラム選択
手続き手段700と優先順位変換手続き手段720との
組み合わせから構成される図35の分散処理システムに
これらの手続き,データ構造を追加しても同様の処理を
行うことができる。
【0167】以上述べた本発明の第十三の実施例には、
別の実施例がある。第十三の実施例は、あるプログラム
に対して依頼された処理が時間制約に間に合わないと判
断された場合、該処理を別のプログラムに転送するとい
うものであったが、該処理を転送せず、処理を実行する
プログラムにより高い優先順位を与え、実行中の処理を
より迅速に処理させるという方式を採用することも可能
である。この方式は、図38の例では、新たな時間制約
3.2 ミリ秒と残り処理量60千命令とから、単位処理
量当たりの時間制約3.2/60=0.053ミリ秒を計
算し、ユーザプログラム438の優先順位を該単位処理
量当たりの時間制約を満たす優先順位0に高め、処理を
続けるものである。これにより、処理を別プログラムに
転送することなく、望ましいリアルタイム性を保証する
ことができる。なお、この方式を採用するためには、優
先順位変更手続き手段146〜147を各計算機上に配
置させる必要がある。
【0168】なお、図30乃至図38において、図29
の通信時間予測手続き手段670〜671を導入し、時
間制約をより厳密に判断させることは可能である。
【0169】以上の第一乃至第十三の実施例に述べたよ
うに、本発明は、緊急度または時間制約を用いて分散処
理システムの各計算機の優先順位を統一的に管理し、よ
り厳密なリアルタイム性保証を実現するものである。
【0170】緊急度を用いて優先順位管理を行う本発明
によれば、優先順位変換手段と優先順位変更手段を用い
ることにより、同一緊急度を有する処理が性能,負荷の
異なるいずれの計算機においても同程度の迅速さで実行
されることを保証できるようになる。
【0171】また、計算機選択手段を用いることによ
り、緊急度の高い処理が一つの計算機に集中するといっ
た現象がなくなり、各計算機におけるリアルタイム性保
証をより厳密に行うことが可能となる。
【0172】さらにまた、プログラム選択手段を用いる
ことにより、前記優先順位変更手段が存在しない場合で
も、複数の緊急度の異なるプログラムを用意して、これ
らのうちから最も適した緊急度のプログラムに対して処
理を依頼し、望ましい迅速さで処理を実行させることが
可能となる。
【0173】さらにまた、処理転送手段を用いることに
より、処理実行中のプログラムに新たに依頼された処理
を、該プログラムの処理が終了するまで待たせることな
く、別の同程度の迅速さで処理できるプログラムで実行
させることが可能となり、より厳密なリアルタイム性保
証を実現することができる。
【0174】時間制約を用いて優先順位管理を行う本発
明によれば、優先順位変換手段と優先順位変更手段を用
いることにより、処理を時間制約に対応した各計算機の
優先順位で実行させ、時間制約の短い処理を他のより時
間制約の緩い処理の前に実行させるといったことが可能
となり、分散処理システムにおける各処理のリアルタイ
ム性をより厳密に保証することができる。また、時間制
約の長い処理であっても、他処理を優先的に処理させて
いる間に、処理が行われないまま該時間制約が近付いて
くることがあり、この際には、短くなった時間制約に応
じて優先順位をより高く再設定し、この優先順位で処理
を実行させることが可能となる。
【0175】また、通信時間予測手段を用いることによ
り、計算機間の通信時間が無視できない場合に、処理の
時間制約をより厳密に設定することが可能となる。
【0176】さらにまた、計算機選択手段を用いること
により、処理の時間制約の短い処理が一つの計算機に集
中するといった現象がなくなり、各計算機におけるリア
ルタイム性保証をより厳密に行うことが可能となる。
【0177】さらにまた、プログラム選択手段を用いる
ことにより、前記優先順位変更手段が存在しない場合で
も、複数の時間制約の異なるプログラムを用意して、こ
れらのうちから最も適した時間制約のプログラムに対し
て処理を依頼し、望ましい迅速さで処理を実行させるこ
とが可能となる。
【0178】さらにまた、処理転送手段を用いることに
より、処理実行中のプログラムに新たに依頼された処理
を、該プログラムの処理が終了するまで待たせることな
く、別の同程度の時間制約を有するプログラムで実行さ
せることが可能となり、より厳密なリアルタイム性保証
を実現することができる。
【0179】さらにまた、処理時間予測手段と時間制約
設定手段を用いることにより、プログラムが現在の優先
順位で実行される場合に処理の時間制約を満たすか否か
を判定し、時間制約を満たせないと判定される場合に
は、より短い時間制約を設定できる。新たに設定した時
間制約を用いて、前記優先順位変換手段と優先順位変更
手段がより高い優先順位をプログラムに与えることや、
該新しい時間制約を満たし得る別の同一プログラムに処
理を転送,実行させることができ、結果的に最初に与え
られた時間制約を満たすように管理することが可能とな
る。
【0180】
【発明の効果】本発明によれば、分散処理システムにお
いて、処理の各計算機における優先順位を統一的に管理
できる。さらに、性能,負荷および機種の異なる計算機
を含み得る分散処理システムにおいて、より厳密なリア
ルタイム性の保証を行うことが可能となる。
【図面の簡単な説明】
【図1】本発明の第一の実施例の構成図である。
【図2】緊急度と優先順位との対応を示す優先順位対応
表のデータ構造を示す図である。
【図3】優先順位変換手段の別の実現例を示す図であ
る。
【図4】緊急度を指定して処理依頼を行う際のプログラ
ム形式を示す図である。
【図5】本発明の第一の実施例において、緊急度指定通
信を行う際の処理の流れを示す図である。
【図6】緊急度と優先順位との対応を示す優先順位対応
表の内容を負荷に応じて変更するためのフローチャート
である。
【図7】緊急度と優先順位との対応を示す優先順位対応
表を、負荷の増減によって変更する形式を示す図であ
る。
【図8】緊急度と優先順位との対応を示す優先順位対応
表を、負荷の増減によって変更するプログラムを示す図
である。
【図9】緊急度と優先順位との対応を示す優先順位対応
表の変更に伴って、プログラムの優先順位を変更するた
めのフローチャートである。
【図10】本発明の第二の実施例、並びに、該実施例に
おける緊急度指定通信の処理の流れを示す図である。
【図11】本発明の第三の実施例の構成図である。
【図12】本発明の第三の実施例において、プログラム
起動処理の流れを示すフローチャートである。
【図13】本発明の第三の実施例において、計算機負荷
情報,負荷量,負荷/性能値の計算例を示す図である。
【図14】本発明の第三の実施例において、プログラム
移動処理の流れを示すフローチャートである。
【図15】本発明の第三の実施例において、計算機負荷
情報,負荷量,負荷/性能値の別の計算例を示す図であ
る。
【図16】本発明の第四の実施例の構成図である。
【図17】本発明の第五の実施例の構成図である。
【図18】本発明の第五の実施例において、プログラム
選択を行う際の処理の流れを示す図である。
【図19】指定優先順位のプログラムを見つける処理の
流れを示すフローチャートである。
【図20】本発明の第六の実施例、並びに、該実施例に
おけるプログラム選択処理の流れを示す図である。
【図21】本発明の第七の実施例、並びに、該実施例に
おける処理依頼転送の流れを示す図である。
【図22】本発明の第八の実施例の構成図である。
【図23】時間制約と優先順位との対応を示す優先順位
対応表のデータ構造を示す図である。
【図24】時間制約から優先順位を導くプログラムを示
す図である。
【図25】時間制約を指定して処理依頼を行う際のプロ
グラム形式を示す図である。
【図26】本発明の第八の実施例において、時間制約指
定通信を行う際の処理の流れを示す図である。
【図27】時間制約と優先順位との対応を示す優先順位
対応表の内容を負荷に応じて変更するためのフローチャ
ートである。
【図28】時間制約と優先順位との対応を示す優先順位
対応表を、負荷の増減によって変更する形式を示す図で
ある。
【図29】本発明の第九の実施例、並びに、該実施例に
おいて通信時間を考慮した時間制約指定通信を行う際の
処理の流れを示す図である。
【図30】本発明の第十の実施例の構成図である。
【図31】本発明の第十の実施例において、プログラム
起動処理の流れを示すフローチャートである。
【図32】本発明の第十の実施例において、計算機負荷
情報,負荷量,負荷/性能値の計算例を示す図である。
【図33】本発明の第十の実施例において、プログラム
移動処理の流れを示すフローチャートである。
【図34】本発明の第十の実施例において、計算機負荷
情報,負荷量,負荷/性能値の別の計算例を示す図であ
る。
【図35】本発明の第十一の実施例の構成図である。
【図36】本発明の第十一の実施例において、プログラ
ム選択を行う際の処理の流れを示す図である。
【図37】本発明の第十二の実施例、並びに、該実施例
におけるプログラム選択処理の流れを示す図である。
【図38】本発明の第十三の実施例、並びに、該実施例
における処理依頼転送の流れを示す図である。
【符号の説明】
100〜103…計算機、110…ネットワーク、13
0〜137,430〜442…ユーザプログラム、14
0〜141,570〜571…プライオリティキュー、
142〜143…スケジューラ、144〜145,26
0,572〜573,720…優先順位変換手続き手
段、146〜147…優先順位変更手続き手段、150
〜151,270,580〜581,730…優先順位
対応表、290〜291…プログラム実行・移動手続き
手段、292,296〜297…プログラム移動決定手
続き手段、294,298〜299…計算機選択手続き
手段、300,330〜331…計算機情報、410,
510,700,760…プログラム選択手続き手段、
420,520,710,770…プログラム位置デー
タベース、490〜492…優先順位リスト、550…
処理転送手続き手段、551…待ち行列、600…処理
量データ、670〜671…通信時間予測手続き手段、
680〜681…通信時間表、800…処理時間予測手
続き手段、802…時間制約設定手続き手段。
───────────────────────────────────────────────────── フロントページの続き (72)発明者 恒冨 邦彦 茨城県日立市大みか町七丁目1番1号 株 式会社日立製作所日立研究所内 (72)発明者 中村 智明 茨城県日立市大みか町五丁目2番1号 株 式会社日立製作所大みか工場内

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】複数の計算機上で複数のプログラムが動作
    する分散処理システムにおいて、各計算機の性能,負荷
    の少なくとも一方と、プログラムが実行する処理の緊急
    度とを考慮して、プログラムの実行の優先順位を決定す
    る優先順位決定手段を設けたことを特徴とする分散処理
    システム。
  2. 【請求項2】複数の計算機上で複数のプログラムが動作
    する分散処理システムにおいて、各計算機の性能,負荷
    の少なくとも一方と、プログラムが実行する処理の時間
    制約,処理量とを考慮して、プログラムの実行の優先順
    位を決定する優先順位決定手段を設けたことを特徴とす
    る分散処理システム。
  3. 【請求項3】複数の計算機上で複数のプログラムが動作
    する分散処理システムにおいて、各計算機は、該計算機
    の性能と負荷に応じて、処理の緊急度と優先順位との変
    換を行う優先順位変換手段と、該優先順位変換手段が示
    す優先順位にしたがって、処理を実行するプログラムの
    優先順位を変更する優先順位変更手段とを設けたことを
    特徴とする分散処理システム。
  4. 【請求項4】複数の計算機上で複数のプログラムが動作
    する分散処理システムにおいて、各計算機は、該計算機
    の性能と負荷に応じて、処理の時間制約,処理量と優先
    順位との変換を行う優先順位変換手段と、該優先順位変
    換手段が示す優先順位にしたがって、処理を実行するプ
    ログラムの優先順位を変更する優先順位変更手段とを設
    けたことを特徴とする分散処理システム。
  5. 【請求項5】請求項3に示す分散処理システムにおい
    て、該優先順位変換手段は、処理の緊急度と優先順位と
    の対応を示す優先順位対応表を有することを特徴とする
    分散処理システム。
  6. 【請求項6】請求項3に示す分散処理システムにおい
    て、該優先順位変換手段は、計算機の負荷に応じて、処
    理の緊急度と優先順位との対応関係を変更することを特
    徴とする分散処理システム。
  7. 【請求項7】請求項6に示す分散処理システムにおい
    て、前記優先順位変更手段は、計算機の負荷に応じて、
    計算機上の各プログラムの優先順位を変更することを特
    徴とする分散処理システム。
  8. 【請求項8】複数の計算機上で複数のプログラムが動作
    する分散処理システムにおいて、各計算機は、該計算機
    の性能と負荷に応じて、処理の緊急度と優先順位との変
    換を行う優先順位変換手段と、該優先順位変換手段が示
    す優先順位にしたがって、処理を実行するプログラムの
    優先順位を変更する優先順位変更手段とを有し、該複数
    のプログラムは、別プログラムに対して処理を依頼する
    際に、処理の緊急度を指定することを特徴とする分散処
    理システム。
  9. 【請求項9】複数の計算機上で複数のプログラムが動作
    する分散処理システムにおいて、各計算機は、該計算機
    の性能と負荷に応じて、処理の時間制約,処理量と優先
    順位との変換を行う優先順位変換手段と、該優先順位変
    換手段が示す優先順位にしたがって、処理を実行するプ
    ログラムの優先順位を変更する優先順位変更手段とを有
    し、該複数のプログラムは、別プログラムに対して処理
    を依頼する際に、処理の時間制約を指定することを特徴
    とする分散処理システム。
  10. 【請求項10】複数の計算機上で複数のプログラムが動
    作する分散処理システムにおいて、各計算機は、該計算
    機の性能と負荷に応じて、処理の時間制約,処理量と優
    先順位との変換を行う優先順位変換手段と、該優先順位
    変換手段が示す優先順位にしたがって、処理を実行する
    プログラムの優先順位を変更する優先順位変更手段と、
    他計算機との通信時間を予測する通信時間予測手段とを
    有し、該複数のプログラムは、別プログラムに対して処
    理を依頼する際に、該別プログラムの動作する計算機と
    の通信予測時間を該通信予測手段から入手し、該通信予
    測時間を考慮して、処理の時間制約を指定することを特
    徴とする分散処理システム。
  11. 【請求項11】複数の計算機上で複数のプログラムが動
    作する分散処理システムにおいて、各計算機の性能,負
    荷の少なくとも一方と、プログラムが実行する処理の緊
    急度とを考慮して、プログラムの実行に適した計算機を
    決定する計算機選択手段と、該計算機の性能と負荷に応
    じて、処理の緊急度と該計算機上の優先順位との変換を
    行う優先順位変換手段を設けたことを特徴とする分散処
    理システム。
  12. 【請求項12】複数の計算機上で複数のプログラムが動
    作する分散処理システムにおいて、各計算機の性能,負
    荷の少なくとも一方と、プログラムが実行する処理の時
    間制約,処理量とを考慮して、プログラムの実行に適し
    た計算機を決定する計算機選択手段と、該計算機の性能
    と負荷に応じて、処理の時間制約,処理量と該計算機上
    の優先順位との変換を行う優先順位変換手段を設けたこ
    とを特徴とする分散処理システム。
  13. 【請求項13】複数の計算機上で複数のプログラムが動
    作する分散処理システムにおいて、1の計算機上で実行
    中のプログラムを他の計算機上に移動する際に、各計算
    機の性能,負荷の少なくとも一方と、該プログラムが実
    行する処理の緊急度とを考慮して、プログラム移動先計
    算機を決定する計算機選択手段と、該移動先計算機の性
    能と負荷に応じて、処理の緊急度と該移動先計算機上の
    優先順位との変換を行う優先順位変換手段を設けたこと
    を特徴とする分散処理システム。
  14. 【請求項14】複数の計算機上で複数のプログラムが動
    作する分散処理システムにおいて、各計算機の性能と負
    荷に応じて、プログラムが実行する処理の緊急度と各計
    算機上での優先順位との変換を行う優先順位変換手段
    と、各計算機の負荷と該優先順位変換手段が示す各計算
    機での優先順位を考慮して、該プログラムの実行に適し
    た計算機を決定する計算機選択手段を有したことを特徴
    とする分散処理システム。
  15. 【請求項15】複数の計算機上で複数のプログラムが動
    作する分散処理システムにおいて、複数の同一処理を行
    うプログラムが存在し、かつ、該プログラムに処理を依
    頼する際に、各計算機の性能,負荷の少なくとも一方
    と、処理の緊急度とを考慮して、該複数の同一処理を行
    うプログラムの中から最適な優先順位を有するプログラ
    ムを決定するプログラム選択手段を設けたことを特徴と
    する分散処理システム。
  16. 【請求項16】複数の計算機上で複数のプログラムが動
    作する分散処理システムにおいて、複数の同一処理を行
    うプログラムが存在し、かつ、該プログラムに処理を依
    頼する際に、各計算機の性能,負荷の少なくとも一方
    と、処理の時間制約,処理量とを考慮して、該複数の同
    一処理を行うプログラムの中から最適な優先順位を有す
    るプログラムを決定するプログラム選択手段を設けたこ
    とを特徴とする分散処理システム。
  17. 【請求項17】複数の計算機上で複数のプログラムが動
    作する分散処理システムにおいて、複数の同一処理を行
    うプログラムが存在し、かつ、該プログラムが処理を実
    行中に新たに処理を依頼された際に、各計算機の性能,
    負荷の少なくとも一方と、処理の緊急度とを考慮して、
    該複数の同一処理を行うプログラムの中から最適な優先
    順位を有するプログラムを決定するプログラム選択手段
    と、該プログラム選択手段が示すプログラムに対して新
    たに依頼された処理を転送する処理転送手段を設けたこ
    とを特徴とする分散処理システム。
  18. 【請求項18】複数の計算機上で複数のプログラムが動
    作する分散処理システムにおいて、複数の同一処理を行
    うプログラムが存在し、かつ、該プログラムが処理を実
    行中に新たに処理を依頼された際に、各計算機の性能,
    負荷の少なくとも一方と、処理の時間制約,処理量とを
    考慮して、該複数の同一処理を行うプログラムの中から
    最適な優先順位を有するプログラムを決定するプログラ
    ム選択手段と、該プログラム選択手段が示すプログラム
    に対して新たに依頼された処理を転送する処理転送手段
    を設けたことを特徴とする分散処理システム。
  19. 【請求項19】複数の計算機上で複数のプログラムが動
    作する分散処理システムにおいて、複数の同一処理を行
    うプログラムが存在する際に、計算機の性能,負荷,処
    理量に応じて、該プログラムが実行中の処理の処理時間
    を予測する処理時間予測手段と、該処理時間予測手段が
    示す予測処理時間が該処理に要求される時間制約を満足
    しない際に、該処理が要求された時点からの経過時間と
    該要求される時間制約から新たに時間制約を設定する時
    間制約設定手段と、該新たな時間制約,処理量と各計算
    機上での優先順位との変換を行う優先順位変換手段と、
    該複数の同一処理を行うプログラムの中から該優先順位
    変換手段が示す優先順位と同一若しくは高い優先順位を
    有するプログラムを決定するプログラム選択手段と、該
    プログラム選択手段が示すプログラムに対して処理を転
    送する処理転送手段を設けたことを特徴とする分散処理
    システム。
  20. 【請求項20】複数の計算機上で複数のプログラムが動
    作する分散処理システムにおいて、計算機の性能,負
    荷,処理量に応じて、該複数のプログラムが実行中の処
    理の処理時間を予測する処理時間予測手段と、該処理時
    間予測手段が示す予測処理時間が該処理に要求される時
    間制約を満足しない際に、該処理が要求された時点から
    の経過時間と該要求される時間制約から新たに時間制約
    を設定する時間制約設定手段と、該新たな時間制約,処
    理量と各計算機上での優先順位との変換を行う優先順位
    変換手段と、該優先順位変換手段が示す優先順位にした
    がって、処理を実行するプログラムの優先順位を変更す
    る優先順位変更手段を設けたことを特徴とする分散処理
    システム。
JP07561094A 1994-04-14 1994-04-14 分散処理システム Expired - Fee Related JP3658420B2 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
JP07561094A JP3658420B2 (ja) 1994-04-14 1994-04-14 分散処理システム
DE19513922A DE19513922A1 (de) 1994-04-14 1995-04-12 Verteiltes Computersystem
US08/421,249 US5845116A (en) 1994-04-14 1995-04-13 Distributed computing system
US09/167,498 US6578064B1 (en) 1994-04-14 1998-10-07 Distributed computing system
US10/342,272 US6957434B2 (en) 1994-04-14 2003-01-15 Distributed computing system
US10/965,847 US20050050544A1 (en) 1994-04-14 2004-10-18 Distributed computing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP07561094A JP3658420B2 (ja) 1994-04-14 1994-04-14 分散処理システム

Publications (2)

Publication Number Publication Date
JPH07282013A true JPH07282013A (ja) 1995-10-27
JP3658420B2 JP3658420B2 (ja) 2005-06-08

Family

ID=13581159

Family Applications (1)

Application Number Title Priority Date Filing Date
JP07561094A Expired - Fee Related JP3658420B2 (ja) 1994-04-14 1994-04-14 分散処理システム

Country Status (3)

Country Link
US (4) US5845116A (ja)
JP (1) JP3658420B2 (ja)
DE (1) DE19513922A1 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000242512A (ja) * 1999-02-19 2000-09-08 Hitachi Ltd 複数のオペレーティングシステムを実行する計算機
JP2003256328A (ja) * 2001-12-27 2003-09-12 Nec Corp サーバ構築支援システム、サービス方法定義装置、プログラム自動生成装置、配信管理装置及びプログラム
US7080379B2 (en) 2002-06-20 2006-07-18 International Business Machines Corporation Multiprocessor load balancing system for prioritizing threads and assigning threads into one of a plurality of run queues based on a priority band and a current load of the run queue
JP2007133481A (ja) * 2005-11-08 2007-05-31 Yokogawa Electric Corp 分散システム
JP2007156976A (ja) * 2005-12-07 2007-06-21 Hitachi Kokusai Electric Inc 情報処理システム
WO2009069573A1 (ja) * 2007-11-26 2009-06-04 Nec Corporation 仮想計算機移行システム、仮想計算機移行方法および仮想計算機移行プログラム
JP2009199499A (ja) 2008-02-25 2009-09-03 Fujitsu Ltd リソース制御プログラム及びリソース制御方法
WO2013038566A1 (ja) * 2011-09-16 2013-03-21 富士通株式会社 コンピュータシステム
US9684536B2 (en) 2011-08-09 2017-06-20 Fujitsu Limited Scheduling method and scheduling system

Families Citing this family (87)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3658420B2 (ja) * 1994-04-14 2005-06-08 株式会社日立製作所 分散処理システム
JPH08263481A (ja) * 1995-03-22 1996-10-11 Hitachi Ltd 電子化文書回覧システム
US5754776A (en) * 1995-12-28 1998-05-19 Intel Corporation Re-prioritizing background data transfers in multipoint conferencing
US6412017B1 (en) * 1996-07-01 2002-06-25 Microsoft Corporation Urgent replication facility
US6542610B2 (en) * 1997-01-30 2003-04-01 Intel Corporation Content protection for digital transmission systems
US6223243B1 (en) * 1997-06-12 2001-04-24 Nec Corporation Access control method with plural users having I/O commands prioritized in queues corresponding to plural memory units
DE19744230B4 (de) * 1997-10-07 2007-10-25 Robert Bosch Gmbh Steuergeräte für ein System und Verfahren zum Betrieb eines Steuergeräts
US6148324A (en) * 1998-01-05 2000-11-14 Lucent Technologies, Inc. Prioritized load balancing among non-communicating processes in a time-sharing system
US20050204388A1 (en) * 1998-06-11 2005-09-15 Knudson Edward B. Series reminders and series recording from an interactive television program guide
US6269274B1 (en) * 1998-09-09 2001-07-31 Honeywell International Inc System and method for balancing and distributing control algorithm processing load and real time plant control system employing the same
US6363445B1 (en) 1998-10-15 2002-03-26 Micron Technology, Inc. Method of bus arbitration using requesting device bandwidth and priority ranking
US6874144B1 (en) * 1999-04-05 2005-03-29 International Business Machines Corporation System, method, and program for implementing priority inheritance in an operating system
DE19930119C2 (de) * 1999-06-30 2001-06-07 Siemens Ag Prioritätsverwaltungsverfahren
US6754848B1 (en) * 1999-09-30 2004-06-22 International Business Machines Corporation Method, system and program products for operationally migrating a cluster through emulation
US6748413B1 (en) * 1999-11-15 2004-06-08 International Business Machines Corporation Method and apparatus for load balancing of parallel servers in a network environment
US6738972B1 (en) * 1999-12-30 2004-05-18 Opentv, Inc. Method for flow scheduling
JP4475614B2 (ja) * 2000-04-28 2010-06-09 大正製薬株式会社 並列処理方法におけるジョブの割り当て方法および並列処理方法
EP1301846A4 (en) * 2000-06-19 2006-03-22 P C Krause And Associates Inc DISTRIBUTED SIMULATION
JP2002024194A (ja) * 2000-07-05 2002-01-25 Matsushita Electric Ind Co Ltd ジョブ分散処理方法および分散処理システム
US6886045B1 (en) * 2000-08-14 2005-04-26 At&T Corp. Subscription-based priority interactive help services on the internet
US6971101B1 (en) * 2000-09-12 2005-11-29 Motorola, Inc. Managing asynchronous requests for user interface resources in an information system
US6957433B2 (en) * 2001-01-08 2005-10-18 Hewlett-Packard Development Company, L.P. System and method for adaptive performance optimization of data processing systems
JP3716753B2 (ja) * 2001-03-21 2005-11-16 日本電気株式会社 マルチプロセッサ構成の計算機間におけるトランザクション負荷分散方法及び方式並びにプログラム
US7751314B2 (en) * 2001-03-28 2010-07-06 Telefonaktiebolaget Lm Ericsson (Publ) Load distribution between nodes in communication networks
US6820126B2 (en) * 2001-04-02 2004-11-16 Motorola, Inc. System for dynamic process assignment in a local area network and method therefor
JP2003029989A (ja) * 2001-07-16 2003-01-31 Matsushita Electric Ind Co Ltd 分散処理システムおよびジョブ分散処理方法
US6922791B2 (en) * 2001-08-09 2005-07-26 Dell Products L.P. Failover system and method for cluster environment
JP2003091424A (ja) * 2001-09-18 2003-03-28 Matsushita Electric Ind Co Ltd 分散処理システムおよびジョブ分散処理方法
JP2003256222A (ja) * 2002-03-04 2003-09-10 Matsushita Electric Ind Co Ltd 分散処理システム、ジョブ分散処理方法およびプログラム
JP3986346B2 (ja) * 2002-03-28 2007-10-03 富士通株式会社 処理装置、サーバ、およびプログラム
US7529822B2 (en) * 2002-05-31 2009-05-05 Symantec Operating Corporation Business continuation policy for server consolidation environment
US8020114B2 (en) * 2002-06-07 2011-09-13 Sierra Wireless, Inc. Enter-then-act input handling
WO2004001585A1 (en) * 2002-06-24 2003-12-31 Docomo Communications Laboratories Usa, Inc. Mobile application environment
JP4505707B2 (ja) * 2003-02-13 2010-07-21 株式会社白子 血管拡張による肩凝り又は冷え症治療用の医薬組成物
US7437556B2 (en) * 2003-05-09 2008-10-14 Sun Microsystems, Inc. Global visibility controls for operating system partitions
US7461080B1 (en) 2003-05-09 2008-12-02 Sun Microsystems, Inc. System logging within operating system partitions using log device nodes that are access points to a log driver
US7188120B1 (en) 2003-05-09 2007-03-06 Sun Microsystems, Inc. System statistics virtualization for operating systems partitions
US20040226015A1 (en) * 2003-05-09 2004-11-11 Leonard Ozgur C. Multi-level computing resource scheduling control for operating system partitions
US8892878B2 (en) * 2003-05-09 2014-11-18 Oracle America, Inc. Fine-grained privileges in operating system partitions
US7389512B2 (en) * 2003-05-09 2008-06-17 Sun Microsystems, Inc. Interprocess communication within operating system partitions
US7337445B1 (en) 2003-05-09 2008-02-26 Sun Microsystems, Inc. Virtual system console for virtual application environment
US7203944B1 (en) * 2003-07-09 2007-04-10 Veritas Operating Corporation Migrating virtual machines among computer systems to balance load caused by virtual machines
DE10345816A1 (de) * 2003-09-30 2005-05-25 Rexroth Indramat Gmbh Kombination aus Steuerung und Antrieb
US7146511B2 (en) * 2003-10-07 2006-12-05 Hewlett-Packard Development Company, L.P. Rack equipment application performance modification system and method
US20050155032A1 (en) * 2004-01-12 2005-07-14 Schantz John L. Dynamic load balancing
US7080178B2 (en) * 2004-02-09 2006-07-18 Arm Limited Interrupt pre-emption and ordering within a data processing system
US7900206B1 (en) 2004-03-31 2011-03-01 Symantec Operating Corporation Information technology process workflow for data centers
US20050240934A1 (en) * 2004-04-21 2005-10-27 Hewlett-Packard Development Company, L.P. Task management based on system utilization
US8181182B1 (en) 2004-11-16 2012-05-15 Oracle America, Inc. Resource allocation brokering in nested containers
US7954062B2 (en) * 2005-01-03 2011-05-31 International Business Machines Corporation Application status board mitigation system and method
US8108871B2 (en) * 2005-01-13 2012-01-31 Hewlett-Packard Development Company, L.P. Controlling computer resource utilization
US8245230B2 (en) * 2005-03-14 2012-08-14 Qnx Software Systems Limited Adaptive partitioning scheduler for multiprocessing system
US8387052B2 (en) 2005-03-14 2013-02-26 Qnx Software Systems Limited Adaptive partitioning for operating system
US9361156B2 (en) 2005-03-14 2016-06-07 2236008 Ontario Inc. Adaptive partitioning for operating system
CA2538503C (en) * 2005-03-14 2014-05-13 Attilla Danko Process scheduler employing adaptive partitioning of process threads
US8589944B2 (en) * 2005-03-16 2013-11-19 Ricoh Production Print Solutions Method and system for task mapping to iteratively improve task assignment in a heterogeneous computing system
US8392927B2 (en) * 2005-05-19 2013-03-05 Hewlett-Packard Development Company, L. P. System and method for determining a partition of a consumer's resource access demands between a plurality of different classes of service
US8326990B1 (en) 2005-07-15 2012-12-04 Symantec Operating Corporation Automated optimal workload balancing during failover in share-nothing database systems
JP4871546B2 (ja) * 2005-08-22 2012-02-08 株式会社日立製作所 ストレージシステム
DE102005046072B4 (de) * 2005-09-27 2009-04-02 Daimler Ag Verfahren und Vorichtung zur Prozeßregelung
US7975269B2 (en) * 2005-09-27 2011-07-05 Sony Computer Entertainment Inc. Parallel processor methods and apparatus
US8539496B1 (en) * 2005-12-12 2013-09-17 At&T Intellectual Property Ii, L.P. Method and apparatus for configuring network systems implementing diverse platforms to perform business tasks
US7885975B2 (en) 2006-02-23 2011-02-08 Oracle America, Inc. Mechanism for implementing file access control using labeled containers
US8938473B2 (en) 2006-02-23 2015-01-20 Oracle America, Inc. Secure windowing for labeled containers
US7882227B2 (en) 2006-02-23 2011-02-01 Oracle America, Inc. Mechanism for implementing file access control across a network using labeled containers
US8938554B2 (en) 2006-03-02 2015-01-20 Oracle America, Inc. Mechanism for enabling a network address to be shared by multiple labeled containers
US7760743B2 (en) * 2006-03-06 2010-07-20 Oracle America, Inc. Effective high availability cluster management and effective state propagation for failure recovery in high availability clusters
JP2008040645A (ja) * 2006-08-03 2008-02-21 Hitachi Ltd Nasマイグレーションによる負荷分散方法、並びに、その方法を用いた計算機システム及びnasサーバ
JP2008084009A (ja) * 2006-09-27 2008-04-10 Toshiba Corp マルチプロセッサシステム
DE102006052757B4 (de) * 2006-11-08 2014-10-09 Siemens Aktiengesellschaft Verfahren zum Betrieb eines Automatisierungsgerätes mit einer Verarbeitungseinheit mit mehreren Verarbeitungskernen
US8190561B1 (en) * 2006-12-06 2012-05-29 At&T Mobility Ii Llc LDAP replication priority queuing mechanism
US8589534B2 (en) * 2007-09-13 2013-11-19 Ricoh Company, Ltd. Device information management apparatus, device information management method, and storage medium which operates during a failure
JP2010204876A (ja) * 2009-03-03 2010-09-16 Hitachi Ltd 分散システム
JP5347648B2 (ja) * 2009-03-30 2013-11-20 富士通株式会社 プログラム、情報処理装置及び状態出力方法
US8223693B2 (en) * 2009-06-23 2012-07-17 Mediatek Inc. PTA method and apparatus utilizing the same
WO2011158405A1 (ja) * 2010-06-18 2011-12-22 パナソニック株式会社 優先度情報生成装置、情報処理装置
JP5582016B2 (ja) * 2010-12-15 2014-09-03 ソニー株式会社 タスク管理装置、タスク管理方法、及びプログラム
US20130073600A1 (en) * 2011-09-21 2013-03-21 Jonathan A. Jenkins Remote process execution management
DE102012011295A1 (de) * 2012-06-08 2013-12-12 Robert Bosch Gmbh Vorrichtung und verfahren für eine maschine, feldgerät für eine maschine und steuergerät für eine maschine
US9477529B2 (en) 2012-06-20 2016-10-25 International Business Machines Corporation Job distributed within a grid environment using mega-host groupings of execution hosts based on resource attributes
US10547693B2 (en) * 2012-09-07 2020-01-28 Avigilon Corporation Security device capability discovery and device selection
US9575760B2 (en) * 2013-05-17 2017-02-21 Nvidia Corporation Techniques for sharing priorities between streams of work and dynamic parallelism
US20150081400A1 (en) * 2013-09-19 2015-03-19 Infosys Limited Watching ARM
US9660878B2 (en) * 2014-03-14 2017-05-23 International Business Machines Corporation Managing fabric priorities across heterogeneous server platforms
US9619012B2 (en) * 2014-05-30 2017-04-11 Apple Inc. Power level control using power assertion requests
US10111273B2 (en) * 2016-05-24 2018-10-23 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Communication paths hierarchy for managed computing device
US10637736B2 (en) 2016-06-06 2020-04-28 Lenovo Enterprise Solutions (Singapore) Pte. Ltd Acquisition of information from managed computing device not communicatively connected to management computing device

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5168566A (en) * 1983-11-25 1992-12-01 Sharp Kabushiki Kaisha Multi-task control device for central processor task execution control provided as a peripheral device and capable of prioritizing and timesharing the tasks
US4794517A (en) * 1985-04-15 1988-12-27 International Business Machines Corporation Three phased pipelined signal processor
US4796178A (en) * 1985-10-15 1989-01-03 Unisys Corporation Special purpose processor for off-loading many operating system functions in a large data processing system
US5025369A (en) * 1988-08-25 1991-06-18 David Schwartz Enterprises, Inc. Computer system
CA1318409C (en) * 1988-10-27 1993-05-25 Dennis L. Debruler Multiprocessor load sharing arrangement
US5179702A (en) * 1989-12-29 1993-01-12 Supercomputer Systems Limited Partnership System and method for controlling a highly parallel multiprocessor using an anarchy based scheduler for parallel execution thread scheduling
JP2829078B2 (ja) * 1990-02-05 1998-11-25 株式会社日立製作所 プロセス分散方法
US5243531A (en) * 1990-09-28 1993-09-07 Volt Information Sciences, Inc. Method for routing and scheduling operations on elements of a work product in a production system
US5504899A (en) * 1991-10-17 1996-04-02 Digital Equipment Corporation Guaranteeing global serializability by applying commitment ordering selectively to global transactions
JPH05128077A (ja) * 1991-11-06 1993-05-25 Hitachi Ltd 複数計算機システムの分散処理方法
JPH05282256A (ja) 1991-12-27 1993-10-29 Nec Eng Ltd プロセッサ間メッセージ通信方法
US5640563A (en) * 1992-01-31 1997-06-17 International Business Machines Corporation Multi-media computer operating system and method
US5522070A (en) * 1992-03-19 1996-05-28 Fujitsu Limited Computer resource distributing method and system for distributing a multiplicity of processes to a plurality of computers connected in a network
JPH05324358A (ja) * 1992-05-20 1993-12-07 Hitachi Ltd 性能予測装置
US6125196A (en) * 1992-10-02 2000-09-26 Unisys Corporation Method for identifying suspect items in an out-of-balance transaction
JPH06250928A (ja) * 1993-02-24 1994-09-09 Matsushita Electric Ind Co Ltd 情報処理装置
JP3658420B2 (ja) * 1994-04-14 2005-06-08 株式会社日立製作所 分散処理システム
US5590323A (en) * 1994-05-13 1996-12-31 Lucent Technologies Inc. Optimal parallel processor architecture for real time multitasking
JP3486308B2 (ja) 1996-10-30 2004-01-13 三菱レイヨン・エンジニアリング株式会社 膜処理装置

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000242512A (ja) * 1999-02-19 2000-09-08 Hitachi Ltd 複数のオペレーティングシステムを実行する計算機
KR100759280B1 (ko) * 1999-02-19 2007-09-17 가부시키가이샤 히타치세이사쿠쇼 복수의 오퍼레이팅 시스템을 실행하는 계산기
US7584247B2 (en) 2001-12-27 2009-09-01 Nec Corporation Server construction support technique
JP2003256328A (ja) * 2001-12-27 2003-09-12 Nec Corp サーバ構築支援システム、サービス方法定義装置、プログラム自動生成装置、配信管理装置及びプログラム
US7080379B2 (en) 2002-06-20 2006-07-18 International Business Machines Corporation Multiprocessor load balancing system for prioritizing threads and assigning threads into one of a plurality of run queues based on a priority band and a current load of the run queue
JP2007133481A (ja) * 2005-11-08 2007-05-31 Yokogawa Electric Corp 分散システム
CN101305348A (zh) * 2005-11-08 2008-11-12 横河电机株式会社 分布式系统
US8296770B2 (en) 2005-11-08 2012-10-23 Yokogawa Electric Corporation Systems and methods for allocation of hardware resource to tasks accordance with the device-based relative value for each of the field devices
JP2007156976A (ja) * 2005-12-07 2007-06-21 Hitachi Kokusai Electric Inc 情報処理システム
WO2009069573A1 (ja) * 2007-11-26 2009-06-04 Nec Corporation 仮想計算機移行システム、仮想計算機移行方法および仮想計算機移行プログラム
JP5382449B2 (ja) * 2007-11-26 2014-01-08 日本電気株式会社 仮想計算機移行システム、仮想計算機移行方法および仮想計算機移行プログラム
JP2009199499A (ja) 2008-02-25 2009-09-03 Fujitsu Ltd リソース制御プログラム及びリソース制御方法
US9684536B2 (en) 2011-08-09 2017-06-20 Fujitsu Limited Scheduling method and scheduling system
WO2013038566A1 (ja) * 2011-09-16 2013-03-21 富士通株式会社 コンピュータシステム
JPWO2013038566A1 (ja) * 2011-09-16 2015-03-23 富士通株式会社 コンピュータシステム
US9400691B2 (en) 2011-09-16 2016-07-26 Fujitsu Limited Process allocation management apparatus, system and method

Also Published As

Publication number Publication date
US6578064B1 (en) 2003-06-10
US5845116A (en) 1998-12-01
US6957434B2 (en) 2005-10-18
DE19513922A1 (de) 1995-10-19
US20050050544A1 (en) 2005-03-03
JP3658420B2 (ja) 2005-06-08
US20030115241A1 (en) 2003-06-19

Similar Documents

Publication Publication Date Title
JPH07282013A (ja) 分散処理システム
Ge et al. GA-based task scheduler for the cloud computing systems
US20190324819A1 (en) Distributed-system task assignment method and apparatus
Wang et al. Maptask scheduling in mapreduce with data locality: Throughput and heavy-traffic optimality
KR100420421B1 (ko) 계산환경의 논리 프로세서들을 관리하는 방법, 시스템 및 기록매체
KR100420420B1 (ko) Cpu 자원 관리 방법 및 시스템과 기록 매체
WO2017167025A1 (zh) 一种实现任务调度的方法、装置及计算机存储介质
Cheng et al. Cross-platform resource scheduling for spark and MapReduce on YARN
KR100420419B1 (ko) 계산 환경의 분할들의 그룹들을 관리하는 방법, 시스템 및 기록 매체
CN102388381B (zh) 用于分配共享存储资源的系统和方法
CN110297699B (zh) 调度方法、调度器、存储介质及系统
JP5684629B2 (ja) ジョブ管理システム及びジョブ管理方法
JPH09167141A (ja) 負荷分散制御方法
US20200174844A1 (en) System and method for resource partitioning in distributed computing
KR20010050504A (ko) 계산 환경의 코프로세서내에서의 비동기 요청들의 관리방법 및 시스템, 프로그램 기억 장치
CN110221920B (zh) 部署方法、装置、存储介质及系统
Gabi et al. Systematic review on existing load balancing techniques in cloud computing
CN111143036A (zh) 一种基于强化学习的虚拟机资源调度方法
CN116010064A (zh) Dag作业调度和集群管理的方法、系统及装置
JP2013210833A (ja) ジョブ管理装置、ジョブ管理方法、及びプログラム
Ramezani et al. Task Scheduling in cloud environments: a survey of population‐based evolutionary algorithms
JP3429582B2 (ja) マルチプロセッサシステム
Patil et al. Resource allocation and scheduling in the cloud
Maniyar et al. Review on round robin algorithm for task scheduling in cloud computing
CN114968512A (zh) 一种基于区块链智能合约的能量感知调度方法

Legal Events

Date Code Title Description
A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050314

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090318

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090318

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100318

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110318

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110318

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees