JP2002351678A - 連続メディアストリーム処理におけるスケジューリング方法 - Google Patents

連続メディアストリーム処理におけるスケジューリング方法

Info

Publication number
JP2002351678A
JP2002351678A JP2001158156A JP2001158156A JP2002351678A JP 2002351678 A JP2002351678 A JP 2002351678A JP 2001158156 A JP2001158156 A JP 2001158156A JP 2001158156 A JP2001158156 A JP 2001158156A JP 2002351678 A JP2002351678 A JP 2002351678A
Authority
JP
Japan
Prior art keywords
task
processing
time
message
equation
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.)
Withdrawn
Application number
JP2001158156A
Other languages
English (en)
Inventor
Yasuhisa Takizawa
泰久 滝沢
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.)
ATR Adaptive Communications Research Laboratories
Original Assignee
ATR Adaptive Communications Research Laboratories
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 ATR Adaptive Communications Research Laboratories filed Critical ATR Adaptive Communications Research Laboratories
Priority to JP2001158156A priority Critical patent/JP2002351678A/ja
Publication of JP2002351678A publication Critical patent/JP2002351678A/ja
Withdrawn legal-status Critical Current

Links

Abstract

(57)【要約】 【構成】 CPU12は、タスクが処理すべきメッセー
ジが到着すると、そのタスクを起動し、メッセージを処
理させる。メッセージ処理が完了すると、タスクにおけ
る実効未処理メッセージ数(メッセージ数)が取得され
る。次に、CPU12は、隣接する2つのタスクにおけ
る先行タスクのメッセージ数が後続タスクのメッセージ
数よりも多い場合には、先行タスクの処理遅延が大きい
と判断し、先行タスクの処理速度が速くされる。逆の場
合には、先行タスクの処理遅延が少ないと判断し、すな
わち後続タスクの処理遅延が大きいと判断し、先行タス
クの処理速度を遅くする。このように、隣接するタスク
間で処理遅延を均一化することにより、全タスクの処理
遅延が均等にされる。つまり、処理が遅いタスクに依存
してシステム全体の処理遅延を防止し、CPUを有効に
利用している。 【効果】 効率よくタスクをスケジューリングすること
ができる。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】この発明は連続メディアストリー
ム処理におけるスケジューリング方法に関し、特にたと
えばマルチメディアタスクをVBR(Variable Bit Rat
e) ストリーム処理に適応する、連続メディアストリー
ム処理におけるスケジューリング方法に関する。
【0002】ここで、VBRストリーム処理とは、動画
データや音声データのような圧縮/伸長或いは差分処理
に見られるような可変量を有する連続メディアデータを
パイプラインモデルにより順次処理することをいう。
【0003】
【従来の技術】近年、動画や音声などの連続メディア情
報を処理環境に適応した品質で送受信する研究が盛んに
行われている。それらの多くは、ネットワーク環境に適
応したQoSの研究、またはアプリケーション特性に適
応したQoSの研究である。また、エンド−エンドで処
理環境に適応した品質を提供するためには、実行タスク
のコンピューティング資源要求特性に適応したスケジュ
ーリング方式を提供する必要がある。現在のオペレーテ
ィングシステム(以下、単に「OS」という。)は、ビ
ジネスアプリケーションを実行目的とする商用OSとリ
アルタイムアプリケーションを実行目的とするリアルタ
イムOSとの2つに大別できる。
【0004】
【発明が解決しようとする課題】しかし、前者のスケジ
ューリング方式では、動的な資源要求に対応している
が、資源要求の時間特性を考慮していなかった。また、
後者のスケジューリング方式では、資源要求の時間特性
を考慮しているが、既知の処理環境でのみ使用可能であ
った。さらに、両者のスケジューリング方式では、資源
要求に対して実行タスク間の協調/抑制(通信依存関
係)が考慮されていなかった。したがって、上述のよう
な実行環境では、任意のタスクが任意の時間に生成お
よび消滅する。タスク間に依存関係がある。タスク
の資源要求は周期的特性を持つ。といった連続メディア
情報を扱うマルチメディアアプリケーションを正確に実
行できないという問題があった。
【0005】これに対して、周期タスク処理に適してい
るリアルタイムスケジューラとして、たとえば、Ear
liest Deadlin First(EDF)と
Rate Monotonic(RM)とがある。ED
FとRMとで用いられる周期タスクモデルは、固定周期
と周期内の実行時間とから構成され、数1に示すよう
に、タスクの時間属性が定義される。
【0006】
【数1】
【0007】このような周期タスクモデルとタスクの最
悪実行時間とに基づき、CPUの利用率(CPU利用率
n )の予約を行うシステムには、リアルタイムmac
hなどがあり、そのCPU利用率Un は数2のように定
義される。
【0008】
【数2】
【0009】しかし、VBRストリーム処理において、
多くのデータの処理時間は最悪実行時間より短い。すな
わち、数2で定義されるCPU利用率Un は、過渡な予
約量となる。このため、システム全体としてのCPU利
用率Un が大きく低下していた。
【0010】それゆえに、この発明の主たる目的は、効
率よくタスクをスケジューリングすることができる、V
BRストリーム処理するためのスケジューリング方法を
提供することである。
【0011】
【課題を解決するための手段】この発明は、マルチメデ
ィアタスクをVBRストリーム処理するための連続メデ
ィアストリーム処理におけるスケジューリング方法であ
って、(a) メッセージが到着したときにメッセージを処
理すべきタスクを起動するステップ、(b) タスクでメッ
セージの処理が終了した後タスクの実効未処理メッセー
ジ数を取得するステップ、および(c) 実効未処理メッセ
ージ数に応じて適応デッドラインを設定するステップを
含む、スケジューリング方法である。
【0012】
【作用】この発明のマルチメディアタスクをVBRスト
リーム処理するスケジューリング方法では、タスクが処
理すべきデータ(メッセージ)が到着すると、そのタス
クが起動される。したがって、タスクによってメッセー
ジが処理され、メッセージが処理されると、タスクが処
理すべきメッセージであり、たとえばバッファメモリに
保持されている処理されていない(処理待ち)のメッセ
ージの数(実効未処理メッセージ数)が取得される。こ
の実効未処理メッセージ数からタスクの処理速度を他の
タスクとの関係において知ることができ、したがって実
効未処理メッセージ数に応じて適応デッドラインが設定
(再設定)されることによって、処理遅延時間が調整さ
れる。このような処理を各タスクについて実行すること
により、各タスクの処理遅延時間が調整され、全タスク
の処理遅延を均一にすることができる。このため、処理
の遅いタスクによって、システム全体の処理が遅延する
ようなことがなくなり、結果的に、CPUを有効に使用
することができる。
【0013】たとえば、適応デッドラインは、少なくと
もタスクの重要度に従って設定或いは再設定されるの
で、マルチメディア情報を扱う動的な環境に適応するこ
とができる。
【0014】したがって、タスクを実行する毎に重要度
を更新すれば、適応デッドラインも更新される。
【0015】具体的には、重要度は隣接する2つのタス
クの重要度が同じにされ、他のタスクにおいても上述し
たような処理が実行され、他のタスクにおける実効未処
理メッセージ数が取得される。そして、隣接する2つの
タスクにおいて、先行するタスク(先行タスク)の実効
未処理メッセージ数が後続するタスク(後続タスク)の
実効未処理数よりも多い場合には、先行タスクの処理が
後続タスクよりも遅いと判断し、先行タスクの重要度が
高くされる。逆に、先行タスクの実効未処理メッセージ
数が後続タスクの実効未処理メッセージ数より少ない場
合には、先行タスクの処理が後続タスクよりも速い、す
なわち後続タスクの処理が遅いと判断し、先行タスクの
重要度が低くされる。このように、隣接するタスク間で
処理遅延を均一化することにより、システム全体の処理
遅延を均等にすることができる。
【0016】また、メッセージ処理完了後に実測された
処理遅延時間が推定デッドライン時刻を満たさない場合
には、大きく処理遅延が発生していると判断し、処理を
速めるため、重要度が高くされる。
【0017】さらに、メッセージ処理完了後に実測され
た処理遅延時間がメッセージ処理に要したCPU使用時
間に対する予約したCPU利用率の比より小さい場合に
は、処理が速いと判断して、重要度が低くされる。
【0018】このようなCPU使用率は、最悪実行時間
よりも短いCPU使用時間を用いて設定されるので、過
渡なCPU利用率を予約してしまうのを防止することが
できる。すなわち、CPUを有効利用することができ
る。
【0019】たとえば、タスクに加えられる力の和が正
であれば、重要度が高くされ、力の和が負であれば、重
要度が低くされる。
【0020】また、タスクに加えられる力には、外部入
力バイアスが含まれるので、処理環境の変化に適応する
ことができる。
【0021】この外部入力バイアスはタスクにおける実
効未処理メッセージ数を含むので、未処理メッセージ数
の変化すなわち処理環境の変化をタスクの重要度に反映
することができる。
【0022】また、たとえばネットワークの状態が準安
定状態と不安定状態との間で移動するように重要度が更
新されるので、短い周期で実行状況が変動する処理環境
に対して適応することができる。
【0023】具体的には、ネットワークの状態に関する
パラメータを制御すれば、2つの状態間を移動させるこ
とができる。
【0024】たとえば、パラメータは、ネットワークの
安定状態との距離によるネットワークの安定状態に向か
う確率である。
【0025】
【発明の効果】この発明によれば、CPUを有効に使用
することができるので、スケジューリング可能性の低下
を防止することができる。つまり、効率よくスケジュー
リングすることができる。
【0026】この発明の上述の目的,その他の目的,特
徴および利点は、図面を参照して行う以下の実施例の詳
細な説明から一層明らかとなろう。
【0027】
【実施例】図1を参照して、この実施例のパーソナルコ
ンピュータ(以下、単に「PC」という。)10は、C
PU12を含む。CPU12は、バス14を介してハー
ドディスクドライブ(HDD)16、RAM18および
インターフェイス20に接続される。なお、PC10
は、インターフェイス20を介して、他のPCなどのマ
ルチメディア(図示せず)に接続される。HDD16に
は、周期タスクのスケジューリングのためのソフトおよ
び他の複数のアプリケーションソフトがプログラミング
(またはインストール)されており、CPU12の指示
に従って処理が実行される。また、RAM18は、CP
U12のワーキングメモリとして使用され、さらに他の
マルチメディアからのデータ等を一時記録するためのバ
ッファメモリとしても使用される。
【0028】この実施例では、図1で示される構成で処
理される周期タスク(以下、単に「タスク」という。)
のスケジューリング方法は、以下に列挙するように定義
される。
【0029】第1に、予想最長処理時間(最悪実行時
間)より短い時間を用いてCPU利用率を予約する。第
2に、各タスクのメッセージ処理に必要なCPU使用時
間はランダム(可変量)である。第3に、各タスクは、
動画データや音声データのような連続メデイアデータを
図2に示すようなパイプラインモデルにより処理する。
第4に、連続メディアデータはそのパイプラインモデル
に示す入出力装置(連続メディアデータ入力装置および
連続メディアデータ出力装置)でVBR或いは固定周期
で生成および消費される。第5に、複数のストリーム処
理が混在する。
【0030】ここで、連続メディアデータは、上述のと
おり、動画データ或いは音声データなどの圧縮/伸長お
よび差分処理に見られるように可変量であるため、VB
Rデータであると言える。
【0031】また、この実施例では、ストリーム処理モ
デルとしての連続メディア資源モデル(Linear Bounded
Arrival Process: LBAP) に連続メディアデータす
なわちVBRデータ(以下、単に「データ」という。)
を処理するための変更を加えたモデルを用い、Para
llel Distributed Processi
ngモデル(以下、「PDPモデル」という。)と熱力
学モデルとを動作メカニズムとしている。これにより、
データに対して動的に適応するタスクスケジューリング
が可能となる。以下、具体的に説明する。
【0032】この実施例の周期タスクモデルでは、デー
タ到着が周期的であることを想定している。しかし、図
2で示したようなパイプラインモデルによるVBRスト
リーム処理においては、処理されるデータが可変量であ
り、処理遅延も可変するため、データ到着は周期性を失
う。具体的には、図3に示すように、タスクnに周期的
にデータが到着したとしても、データ毎に処理時間が異
なるため、タスクnの後続のタスクn+1では、データ
の到着時間間隔tiにばらつきが発生する。このため、
周期的なタスク到着とデータの到着とが同期せず、従っ
てタスクにデータ未到着による待ち時間が発生する。こ
の待ち時間は、優先度逆転に陥る可能性を高め、スケジ
ュール可能性を低下させる要因となる。
【0033】これを回避するためには、タスク到着時刻
以前にデータが到着する必要がある。すなわち、パイプ
ライン上の各タスクは、隣接する前方の(先行する)タ
スクとの間に十分な初期位相が必要である。周期タスク
モデルによるVBRストリーム処理において、従来のよ
うに、すなわち数2で示したように、最悪実行時間を用
いてCPU利用率を予約すると、連続メディアデータ出
力装置(以下、単に「出力装置]という。)の時間制約
を満たすのに必要なタスクの初期位相は、数3のように
示される。
【0034】
【数3】
【0035】したがって、出力装置の時間制約を保証す
る場合すなわち数3を満たすためには、大きなエンド−
エンドの遅延時間が必要となる。
【0036】次に、LBAPおよびそれに基づく従来の
処理モデルを説明した上で、VBRストリーム処理のモ
デルをLBAPに基づいて定義する。
【0037】LBAPでは、処理すべきデータを以下の
3つのパラメータにより特徴付けたデータ(メッセー
ジ)のストリームとしている。 <パラメータ(1)> Rmax :maximum message rate(messages/second) Wmax :maximum workahead messages(messages) Smax :maximum message size(bytes) また、LBAPでは、時間間隔tにおいて到着する最大
のメッセージ数はRma x +Wmax であると定義してい
る。すなわち、長期的なデータ処理レートはRma x
max 以下であるが、パラメータWmax により示されるバ
ースト的なデータ到着により、データ処理レートはR
max max を短期間だけ超えることを許容している。こ
のバースト的なデータ到着に伴う処理されていない (処
理待ち)メッセージ数(以下、「未処理メッセージ数」
という。)は、数4に示すように定義される。
【0038】
【数4】wn (m0 )=0 wn (mi )=max(0,wn (mi-1 )−(a
n (mi )−an (mi-1 ))Rmax +1) ただし、wn (mi )はタスクnにおけるi番目のメッ
セージ到着時の未処理メッセージ数、an (mi )はタ
スクnにおけるi番目のメッセージ到着時刻である。し
たがって、タスクnにおける未処理メッセージ数の最大
値Wmax は数5のように定義される。
【0039】なお、括弧内の“,”は“または”という
意味である。以下、この実施例において同じである。
【0040】
【数5】
【0041】ここで、到着したメッセージは、処理され
ていないメッセージ(未処理メッセージ)をすべて処理
完了した後に、初めて処理対象となる。したがって、L
BAPでは、メッセージが処理対象となる論理的な時刻
(論理的時刻)は、タスクnにおけるi番目のメッセー
ジが到着する論理的時刻(メッセージ論理到着時刻)l
n (mi )として数6に示すように定義される。
【0042】
【数6】 ln (mi )=an (mi )+wn (mi )/Rmaxn (m0 )=an (m0 ) ln (mi )=max(an (mi ),ln (mi-1
+1/Rmax ) また、LBAPでは、タスクnにおけるi番目のメッセ
ージにおける処理遅延時間Da (mi )、論理的な処理
遅延時間(論理処理遅延時間)Dl (mi )およびデッ
ドライン時刻dn (mi )は、メッセージ到着時刻とメ
ッセージ論理到着時刻とを用い、図4に示すLBAPの
時間属性から数7、数8および数9のように、それぞれ
定義される。
【0043】なお、図4に示すLBAPの時間属性で
は、i番目のメッセージmi がタスクnで処理された後
にタスクn+1に渡され、タスクn+1で処理されるタ
イミングが示される。
【0044】
【数7】
【0045】
【数8】
【0046】
【数9】
【0047】
【数10】
【0048】LBAPでは、このように特徴付けられた
メッセージストリームの処理において、以下に列挙する
ようにタスクが定義される。第1に、タスクの実行順
は、タスクのデッドライン時刻に基づき、EDFにより
決定される。第2に、第1のように定義されたタスクが
パイプラインモデルにより複数接続される。第3に、タ
スクはメッセージの到着時刻に起動される。すなわち、
メッセージ到着時にタスクがスケジューリング対象とな
る。第4に、タスクは、メッセージ処理完了時刻に未処
理メッセージがある場合、処理完了したメッセージのデ
ッドライン時刻を待たずに直ちに起動する。
【0049】上述したように、従来の方式では、ストリ
ームデータを一定のメッセージの到着レートと最悪実行
時間とにより特徴付け、CPU利用率を予約している。
すなわち、各タスクの時間制約を満たすために、すべて
のメッセージ処理時間が最悪実行時間である場合でも、
十分に処理できるCPU利用率を予約している。したが
って、従来の方式は、最悪実行時間に基づいたCons
tant Bit Rate(以下、「CBR」とい
う。)ストリーム処理として考えられる。このようなC
BRストリーム処理を、LBAPのパラメータを用いて
表すと、次のようになる。 <パラメータ(2)> Rc :constant message rate(messages/second) Wmax :maximum workahead messages(messages) Cmax :maximum processing time for a message(secon
ds/message) これにより、LBAPを用いた最悪実行時間に基づくC
BRストリーム処理モデルにおける未処理メッセージ数
およびメッセージの諭理到着時刻(メッセージ論理到着
時刻)は、それぞれ、数11および数12のように定義
される。
【0050】
【数11】wn (m0 )=0 wn (mi )=max((0,wn (mi-1 )−a
n (mi )−an (mi-1 ))Rc +1)
【0051】
【数12】 ln (mi )=an (mi )+wn (mi )/Rc さらに、この数12からメッセージ論理到着時刻は、数
13のようになる。
【0052】
【数13】ln (m0 )=an (m0 ) ln (mi )=max(an (mi ),ln (mi-1
+1/Rc ) その他の定義については、上述の場合と同様である。つ
まり、数5および数7〜数10の定義および第1〜第4
のタスクに関する定義がそのまま適用される。このよう
に定義された時間属性において、パラメータCmax とR
c とによりCPU利用率を予約する場合に、出力装置の
時間制約を保証するには、周期タスクモデル(パラメー
タ(1)を設定した場合)と同様に、隣接するタスク間
に十分な初期位相が必要である。その初期位相は、数1
4のようになる。
【0053】
【数14】
【0054】つまり、最悪実行時間に基づくCBRスト
リーム処理モデルにおいても、過度なCPU予約量とな
り、システム全体でのCPU利用率が低下する。
【0055】これを回避するため、この実施例では、メ
ッセージ処理時間は最悪実行時間C max より短い任意の
時間Creq に設定される。以下、Creq を含むパラメー
タを用いて、CPU利用率を予約する場合のVBR処理
モデルについて検討する。 <パラメータ(3)> Rc :constant message rate(messages/second) b :actual workahead messages(messages) Creq :request processing time for a message(secon
ds/message) タスクnにおいて、レートRc で最悪実行時間より短い
時間Creq を用いてCPU利用率を予約する場合、すべ
てのメッセージの処理時間が1/Rc 以下であることは
保証されない。したがって、数9〜数11で定義したよ
うに、未処理メッセージ数およびメッセージ論理到着時
刻を予測することは困難である。
【0056】そこで、VBRデータ処理モデルおける時
間属性は、変動する処理時間を考慮して定義することに
する。具体的には、未処理メッセージ数は、w
n (mi )に代えて、任意の時刻に実測された未処理メ
ッセージ数を用いる。つまり、タスクnにおいて、時刻
tに実測された未処理メッセージ数をbn (t)と表記
し、実効未処理メッセージ数と呼ぶことにする。
【0057】また、メッセージ論理到着時刻l
n (mi )に代えて、メッセージ実効到着時刻en (m
i )を定義する。つまり、メッセージ論理到着時刻ln
(mi )は、メッセージが初めて処理対象になると予測
される論理時刻である。このことから、メッセージ実効
到着時刻en (mi )は、タスクnにおいて、i番目の
メッセージが初めて処理対象になった実際の時刻とし、
数15のように定義する。
【0058】
【数15】en (m0 )=an (m0 ) en (mi )=max(an (mi ),f
n (mi-1 )) ただし、fn (mi-1 )は、タスクnにおけるi−1番
目のメッセージの処理完了時刻である。
【0059】続いて、デッドライン時刻について検討す
る。デッドライン時刻を算出するために、諭理処理遅延
時間を知る必要がある。しかし、時刻en (mi )にお
いて、i番目のメッセージは処理を完了していないた
め、論理処理遅延時間を知ることができない。
【0060】そこで、パイプラインモデルにおいて隣接
するタスクnとタスクn+1とについて考える。タスク
n+1におけるi番目のメッセージが処理対象となる時
刻は、タスクn+1におけるi−1番目のメッセージの
処理完了時刻fn+1 (mi-1)である。すなわち、タス
クnは、i番目のメッセージ処理を、タスクn+1にお
けるi−1番目のメッセージの処理完了時刻fn+1 (m
i-1 )までに完了すればよいと考えられる。したがっ
て、タスクnにおけるi番目のメッセージのデッドライ
ン時刻は、数16のように考えられる。
【0061】
【数16】dn (mi )=fn+1 (mi-1 ) しかし、時刻en (mi )において、fn+1 (mi-1
は、上述の論理処理遅延時間と同様に不明である。この
ため、時刻en (mi )におけるタスクn+1の実効未
処理メッセージ数からfn+1 (mi-1 )を数17で示す
ように想定(推測)する。なお、数17おけるfn+1
のバー(横棒)は、推測値であることを意味する。
【0062】
【数17】
【0063】この推定値を用いて、デッドライン時刻d
n (mi )は、数18に示すように定義される。
【0064】
【数18】dn (mi )=en (mi )+bn+1 (en
(mi ))/Rc ただし、その他の特性は上述した場合と同じである。つ
まり、数5および数7〜数10の定義およびタスクの定
義がそのまま適用される。
【0065】次に、VBRストリーム処理モデルにおい
て、最悪実行時間より短い処理時間に基づき、CPU利
用率を予約する場合におけるVBRストリーム処理モデ
ルの特性に関して検討する。具体的には、定理1〜3を
定義し、それぞれについて証明する。
【0066】[定理1]VBRストリーム処理モデルに
おいて、最悪実行時間より短い時間すなわちパラメータ
req とRc とによりCPU利用率を予約する場合、メ
ッセージの処理完了時刻は、数19で示される条件で、
デッドライン時刻を満たす。
【0067】
【数19】
【0068】[証明]メッセージの処理完了時刻が、デ
ッドライン時刻を満たすためには、数20で示すような
条件となる。
【0069】
【数20】fn ≦dn (mi ) 数20を数15で示したメッセージ実効到着時刻の定義
に従い、an (mi )がfn (mi-1 )より大きい場合
と、そうでない場合とに分けて考える。
【0070】まず、an (mi )≧fn (mi-1 )の場
合には、en (mi )はan (mi)となるので、数1
5により、数20は数21のようになる。
【0071】
【数21】fn (mi )≦an (mi )+bn+1 (en
(mi ))/Rc また、メッセージ処理完了時刻fn (mi )は、メッセ
ージ到着時刻an (m i )に処理遅延時間を加えた時刻
である。したがって、数21は数22のようになる。
【0072】
【数22】
【0073】したがって、an (mi )≧f
n (mi-1 )の条件下で、数22を満たす場合には、処
理モデルはデッドライン時刻を満たす。
【0074】次に、an (mi )<fn (mi-1 )の場
合について考える。この場合、en(mi )はfn (m
i-1 )となるので、数15により、数20は数23のよ
うにる。
【0075】
【数23】fn (mi )≦fn (mi-1 )+bn+1 (e
n (mi ))/Rc パイプラインモデルにおいて、タスクnのメッセージ処
理完了時刻fn (mi)は、タスクn+1のメッセージ
処理完了時刻an+1 (mi )と一致する。したがって、
数23は数24のようになる。
【0076】
【数24】an+1 (mi )≦an+1 (mi-1 )+bn+1
(en (mi ))/Rc すなわち、 bn+1 (en (mi ))/Rc ≧an+1 (mi )−a
n+1 (mi-1 ) また、場合分けの条件(fn (mi )<f
n (mi-1 ))も同様に、数25ののようになる。
【0077】
【数25】an (mi )<an+1 (mi-1 ) ここで、数24の右辺の式、an+1 (mi )−a
n+1 (mi-1 )について考える。この式を、処理遅延時
間を用いて表すと、数26のようになる。
【0078】
【数26】
【0079】数26は、数25によって、数27のよう
になる。
【0080】
【数27】
【0081】ただし、xは正の数である。
【0082】このことから、数25は数28のようにな
る。
【0083】
【数28】
【0084】したがって、an (mi )<f
n (mi-1 )の条件下で、数28を満たす場合には、処
理モデルはデッドライン時刻を満たす。
【0085】以上のように説明した2つの条件(場合分
けの条件)下で、デッドラインを満たすためには、数2
2および数28の両方を満たす必要がある。つまり、数
29に示すようになる。
【0086】
【数29】
【0087】したがって、定理1は成り立つ。
【0088】[定理2]定理1を満たすVBRストリー
ム処理モデルにおいて、数30を満たすならば、メッセ
ージ処理に必要なCPU利用率は、予約したCPU利用
率を超えない。
【0089】
【数30】
【0090】ただし、Cn (mi )は、タスクnにおけ
るi番目のメッセージ処理に使用するCPU時間(CP
U使用時間)である。
【0091】[証明]タスクnにおいて、1メッセージ
処理当たりに予約したCPU使用時間をYとすると、C
PU予約量はYRc である。したがって、タスクnにお
けるi番目のメッセージを処理するために使用(利用)
したCPU利用率Un (mi)は、数31のようにな
る。
【0092】
【数31】
【0093】上述したように、処理モデルは定理1を満
たすことから、メッセージ処理完了時刻はデッドライン
時刻より小さい。したがって、数31に示すa
n (mi )とdn (mi )との時間間隔は、数32のよ
うになる。
【0094】
【数32】
【0095】この数32を数31に適用すると、CPU
利用率Un (mi )は数33のようになる。
【0096】
【数33】
【0097】タスクnにおいて、処理に必要なCPU利
用率Un (mi )が、予約したCPU利用率YRc を越
えないためには、数32を満たす必要がある。
【0098】
【数34】
【0099】この数34から数35が成立する。
【0100】
【数35】
【0101】この数35は、処理遅延時間は、i番目の
メッセージ処理に要したCPU使用時間に対するCPU
利用率の比で表される時間以上であることを意味する。
さらに、定理1から数35は、数36のようになる。
【0102】
【数36】
【0103】したがって、定理2が成り立つ。
【0104】[定理3]VBRストリーム処理モデルに
おいて、パラメータCreq とRc とによりCPU利用率
を予約する場合、タスクnの初期位相が数37を満たす
ならば、出力装置の時間制約が満たされることが保証さ
れる。
【0105】
【数37】
【0106】[証明]出力装置の時間制約を満たすため
には、出力装置は1/Rc 時間毎にメッセージを必要と
することから、数38を成立させる必要がある。
【0107】
【数38】 aout (mi )≦aout (m0 )+i/Rc ただし、aout (mi )は、出力装置におけるi番目の
メッセージ到着時刻である。
【0108】出力装置をパイプライン上における終端タ
スクnの次のタスク、すなわちタスクn+1として考え
ると、数38は数39のようになる。
【0109】
【数39】 an+1 (mi )−an+1 (m0 )≦i/Rc パイプラインモデルの隣接する2つのタスクにおいて、
メッセージ到着時刻a n+1 (mi )とメッセージ処理完
了時刻fn (mi )とが一致することから、a n+1 (m
i )は数40のようになる。
【0110】
【数40】
【0111】この数40をnに関して展開すると、数4
1が得られる。
【0112】
【数41】
【0113】この数41のa0 (mi )は、タスク0に
おけるメッセージ到着時刻であるが、タスク0はパイプ
ラインの先頭のタスクである。したがって、タスク0の
メッセージは連続メディアデータ入力装置(以下、単に
「入力装置」という。)から得られる。入力装置におけ
るメッセージの到着時刻は周期的であることから、a 0
(mi )は数42のようになる。
【0114】
【数42】a0 (mi )=a0 (m0 )+i/Rc 以上より、an+1 (mi )は、数43のようになる。
【0115】
【数43】
【0116】この数43からan+1 (mi )−a
n+1 (m0 )を求めると、数44のようになる。
【0117】
【数44】
【0118】数44を数37に適用すると、数45が得
られる。
【0119】
【数45】
【0120】したがって、定理3が成り立つ。
【0121】このように定理1〜定理3で定義されるV
BRストリーム処理を前提として、出力装置の時間制約
を満たすタスク制御について考え、この実施例のスケジ
ューリング方法について説明する。
【0122】上述した定理3により、タスクの初期位相
が数35を満たすなら、最悪実行時間より短い時間を用
いてCPU利用率を予約する場合においても、出力装置
の時間制約が満たされる。しかし、出力装置の時間制約
を満たすためには、上述したように、各タスクに十分な
初期位相が必要であるため、エンド−エンドの処理遅延
時間が大きくなる。
【0123】しかし、たとえば、テレビ会議システムの
ようなライブによるシステムでは、エンド−エンドの処
理遅延時間が少ないことが要求される。したがって、十
分な初期位相がない場合において、出力装置の時間制約
を満たす可能性を高める制御について考える。
【0124】ここで、定理3で示した数35を見直すこ
とにする。数35に示したan (m i )に、パイプライ
ンモデル(VBRストリーム処理モデル)におけるメッ
セージ到着時刻と処理完了時刻との関係を適用すると、
数46が得られる。
【0125】
【数46】
【0126】ここで、(a0 (m0 )−a0 (mi ))
は、タスク0のメッセージ到着時刻の差である。タスク
0はパイプラインの最初のタスクであるため、メッセー
ジの到着時刻は、入力装置からのメッセージ出力時刻で
ある。したがって、メッセ一ジの到着時刻は周期的であ
り、(a0 (m0 )−a0 (mi ))は−i/Rc であ
る。このことから、数46は数47のようになる。
【0127】
【数47】
【0128】さらに、0番目のメッセージ到着時刻から
i番目のメッセージ到着時刻までの時間間隔をメッセー
ジの到着間隔ごとに分割すると、数47の括弧内は数4
8で示すようになる。
【0129】
【数48】
【0130】したがって、数47は、数49に示すよう
になる。
【0131】
【数49】
【0132】この数49から分かるように、各タスクに
おいて、メッセージ間での処理遅延時間を均等にすると
(数49の括弧内の演算結果を0にすると)、時間制約
が満たされる。しかし、各メッセージの処理遅延時間
は、そのメッセージ毎に変動するため、単一のタスク内
でメッセージ間の処理遅延時間を均等にすることは困難
である。そこで、各タスクのメッセージ間の処理遅延時
間の差異を、隣接する2つのタスク間で吸収することを
考える。まず、数49をタスクjに関して展開すると、
数50のようになる。
【0133】
【数50】
【0134】ここで、タスクnにおけるk+1番目のメ
ッセージ処理遅延時間は、タスクn+1におけるk番目
のメッセージ処理遅延時間と比較されるべきであるが、
タスクn+1は存在しない。しかし、タスクn+1は出
力装置として考えられるので、メッセージ処理遅延時間
の比較対象は出力装置におけるk番目のメッセージ処理
遅延時間とする。同様に、タスク0におけるk番目のメ
ッセージ処理遅延時間は、入力装置におけるk+1番目
のメッセージ処理遅延時間と比較する。したがって、数
50は数51のようになる。
【0135】
【数51】
【0136】このように、隣接する2つのタスク間のメ
ッセージ処理遅延時間を均等にすることにより、出力装
置の時間制約を満たすことが可能となる。これを実現さ
せるため、次のような制御を行う。第1に、パイプライ
ン上のタスクの実行機会が同じになるように各タスクの
優先度を連動させる。第2に、メッセージ処理遅延時間
は実効未処理メッセージ数bn (t)に依存することか
ら、タスクnのi番目のメッセージの処理時における実
効未処理メッセージ数bn (en (mi ))と後続のタ
スクn+1のi番目のメッセージの処理時における実効
未処理メッセージ数bn+1 (en (mi ))とを比較
し、前者の値が大きい場合には、タスクnに大きな遅延
が発生することが予想されるので、タスクnの優先度を
高め、処理を速める。一方、後者の値が大きい場合に
は、タスクnの処理遅延は小さいことが予想されるの
で、タスクnの優先度を低め、処理を遅らせる。
【0137】図5に示すように、タスク1〜タスク4が
パイプラインモデルに従って接続されているストリーム
処理を用いて具体的に説明する。このパイプラインモデ
ルでは、隣接するタスク1とタスク2とでは、バッファ
1に溜まっているメッセージすなわちデータの量(デー
タ量)がバッファ2に溜まっているデータ量よりも多い
ため、タスク1はタスク2より処理が速いと言える。ま
た、隣接するタスク2とタスク3とでは、バッファ2に
溜まっているデータ量がバッファ3に溜まっているデー
タ量よりも少ないため、タスク2はタスク3より処理が
遅いといえる。さらに、隣接するタスク3とタスク4と
では、バッファ3に溜まっているデータ量がバッファ4
に溜まっているデータ量よりも多いため、タスク3はタ
スク4より処理が速いといえる。
【0138】したがって、隣接する2つのタスクにおい
て、実効未処理データ数すなわちバッファに溜まってい
るデータ量を比較し、処理すべきデータのデータ量が多
いタスクについては処理を速めるように、重要度を高め
る。一方、処理すべきデータのデータ量が少ないタスク
については処理を遅くするように、重要度を低める。し
たがって、全てのタスクの処理遅延時間が均一化され、
処理が遅いタスクに依存して全体の処理が遅くなるのを
回避している。
【0139】さらに、第3に、メッセージ処理完了後
に、実測された処理遅延時間が定理1すなわち数29
(数19)を満たさないならば、処理遅延時間を小さく
するため、優先度を高める。第4にメッセージ処理完了
後に、実測された処理遅延時間が定理2すなわち数35
(数30)を満たさないならば、処理遅延時間を大きく
するため、優先度を低める。
【0140】以上のように制御することにより、予約し
たCPU利用率に基づいて、出力装置の時間制約を満た
し、かつエンド−エンドの処理遅延時間を小さくするこ
とが可能となる。
【0141】このようなVBRストリーム処理するタス
クは、横取り可能なタスクである。横取り可能なタスク
とは、その実行中に、より高い優先度を持つタスクが到
着した場合、実行権をより高い優先度を持つタスクに引
き渡すことが可能なタスクをいう。
【0142】また、VBRストリーム処理するタスク
は、航空システムや原子力システムに見られる処理完了
時刻に厳密なハードリアルタイムタスクと異なり、その
処理完了時刻には許容される遅延幅があるソフトリアル
タイムタスクとして考えられる。したがって、デッドラ
インに許容遅延幅を持たせることによって、タスクの優
先度として用いるデッドライン時刻は、数18で求めら
れる時刻に許容遅延幅内で、スケジュール可能性を高め
る制御による優先度の修正を行った時刻とする。この時
刻を適応デッドライン時刻と呼ぶことにする。
【0143】以上のように、スケジュール可能性を高め
る制御について説明したが、このような制御は、単一の
ストリーム処理における制御である。しかし、マルチメ
ディア環境においては、多地点のテレビ会議システムに
見られるように、複数のストリーム処理が混在する場合
が多い。すなわち、マルチメディア環境におけるストリ
ーム処理は、パイプラインモデルにより接続されたタス
ク群が複数混在するタスクセットとして考えられる。
【0144】このようなタスクセットでは、上述したよ
うな制御におけるスケジュールの問題は、複数のパイプ
ラインのタスク群で上述したような時間制約を同時に満
たすような状態を探し出す多重制約の問題(多重制約問
題)である。
【0145】この問題を回避するため、この実施例で
は、上述したように、PDPモデルを応用する。このP
DPモデルでは、多くの単純な情報処理ユニットが相互
に結合し、それぞれが他のユニットから信号を受け取
る。その入力信号が正の値である場合には、ユニットの
状態値を高める。一方、入力信号が負の値である場合に
は、ユニットの状態値を低める。さらに、ユニットの状
態値に応じた信号を他のユニットに送る。この相互作用
をユニット毎に非同期に繰り返すことにより情報処理を
行う。
【0146】各ユニットの相互結合により構成されるネ
ットワークは、多重制約の構造を表している。このネッ
トワークに、何らかの外部条件を与え、各ユニットで非
同期に相互作用の繰り返し処理を行う。すると、各ユニ
ットはある状態に落ち着く。その状態がある条件での制
約を最大に充足した状態を表している。
【0147】以上のことから、複数のパイプラインのタ
スク群における制約を充足する状態を算出するために、
タスク間の依存関係をPDPモデルの相互結合ネットワ
ーク(以下、単に「ネットワーク」という。)に次のよ
うに対応づける。
【0148】各ユニットの状態値(0から1までの連
続値)は、各タスクの重要度とする。タスクの重要度
は、最高値(1)を適応デッドライン時刻の最短時刻に
対応づけ、最低値(0)を適応デッドライン時刻の最長
時刻に対応づける。これにより、重要度から適応デッド
ライン時刻を算出する。
【0149】ユニット間の結合は、通信するタスク間
では、正の重みを持たせ、通信しないタスク間では、負
の重みを持たせる。したがって、正の重みを持つタスク
間の結合では、ユニットの状態値に比例した正の入力が
他のタスクに作用し、相互に近い状態値になる。一方、
負の重みを持つタスク間の結合では、ユニットの状態値
に比例した負の入力が他のタスクに作用し、互いに遠い
状態値になる。これにより、同一パイプライン上のタス
ク群の重要度が連動し、各タスクの実行機会を同じにす
ることができる。
【0150】各ユニットに与えられる外部条件は、変
動するタスク実行状況に対応してネットワークの動作を
修正する力とする。すなわち、外部条件は、各タスクの
変動する処理遅延時間に応じて、上述したような制御を
次のようにネットワークに作用させる。
【0151】(I)タスクnのi番目のメッセージの処理
時における実効未処理メッセージ数bn (e
n (mi ))と後続するタスクn+1のi番目のメッセ
ージの処理時における実効未処理メッセージ数b
n+1 (en (mi ))とを比較し、前者の値が大きい場
合には、正の入力とする。また、後者の値が大きい場合
には、負の入力とする。
【0152】(II)実測された処理遅延時間が定理1を
満たすならば、正の入力とする。
【0153】(III)実測された処理遅延時間が定理2を
満たすならば、負の入力とする。
【0154】以上により、複数のパイプラインのタスク
群における制約を、ネットワークを動作させて処理す
る。
【0155】しかし、PDPモデルは、ネットワークを
動作させると、その状態は初期値に依存して或る制約充
足度の高い状態に至り、動作は静止する。一方、ストリ
ーム処理環境において、各タスクの処理遅延時間は、処
理するメッセージによって常に変化する。ネットワーク
は、この変化に応じて、1つの状態に静止することな
く、いくつかの制約充足度の高い状態間を移動する必要
がある。
【0156】このため、PDPモデルに熱力学的モデル
を加える。熱力学的モデルは、温度による物質の熱揺動
(高温では分子間の結合が弱まり不安定であり、低温で
は分子間の結合が強まり安定する性質)をPDPモデル
の処理において擬似する。具体的には、焼き鈍し法が加
えられる。しかし、焼き鈍し法は、収束するのに時間が
かかるため、制約充足度の高い状態(安定状態)との距
離に応じて焼き鈍しの温度を制御する。すなわち、制約
充足度の高い状態から距離が離れている場合には温度を
高くし、制約充足度の高い状態に近い場合には温度を低
くする。すると、ネットワークワークは、制約充足度の
高い状態に素早く近づき、また外部条件の変化に敏感に
対応する。この温度による熱揺動制御により、PDPモ
デルを各タスクの変動する処理遅延時間に連続的に動作
するようにし、定理1と定理2とを満たし、かつタスク
間の処理遅延時間を均一にする適応デッドライン時刻を
探し続けることを可能とする。
【0157】以上のような考え方に基づいたアルゴリズ
ムで或るタスクの重要度の更新則(重要度更新則)につ
いて説明する。タスクの重要度は、PDPモデルにした
がって、他のタスクからの入力および外部条件としての
入力(外部入力)により決定する。しかし、その決め方
が焼き鈍し法により制御されるため、確率的に決定させ
る。この確率的な決定をPDPモデルの状態更新則に加
え、タスクの重要度更新則とする。具体的には、タスク
の重要度は、数52に従って決定される。
【0158】なお、これ以降では、ユニットをタスクに
対応づけるとともに、状態値を重要度に対応づけて説明
する。
【0159】
【数52】
【0160】この数52において、タスクの重要度を高
める方向へ更新する場合には、右辺の第2項の上式が採
用される。一方、タスクの重要度を低める方向経更新す
る場合には、右辺の第2項の下式が採用される。上下ど
ちらの式を採用するかは、後で詳細に説明する確率関数
(ボルツマン関数)によって決定される。すなわち、数
52の右方に示した不当式によって決定される。
【0161】また、タスクへの総入力は、図6のように
示され、他のタスクからの入力(他のタスクの出力)の
総和と外部入力とにより構成される。このタスクへの総
入力は、数53で示される。
【0162】
【数53】
【0163】数53から分かるように、他のタスクから
の入力は他のタスクの重要度とそのタスク間の結合重み
との積である。このため、正の結合重みを持つ、すなわ
ち通信するタスク(他のタスク)からはそのタスクの重
要度の高さに比例した正の入力が、入力を受けるタスク
に作用する。一方、負の結合重みを持つ、すなわち通信
しないタスク(他のタスク)からはそのタスクの重要度
の高さに比例した負の入力が、入力を受けるタスクに作
用する。
【0164】したがって、タスクへの総入力が大きな正
の値となると、重要度更新則は高い確率でタスクの重要
度を高める。逆の状態では、タスクへの総入力は大きな
負の値となり、重要度更新則は高い確率で重要度を低め
る。すなわち、相互通信するタスクの重要度は連動して
更新される可能性が高い。
【0165】この実施例では、接続要求を行うタスクと
その接続先のタスクとの間の結合を、正の重みを持つ結
合とする。また、接続関係のないタスク間の結合は負の
重みを持つ結合とする。これにより、タスク間の通信依
存関係を、相互結合ネットワークとして構築する。
【0166】また、上述したように、時刻en (mi
におけるタスクnの実効未処理メッセージ数とタスクn
+1の実効未処理メッセージ数との比較結果、に基づい
てネットワークの動作を修正する必要がある。その修正
を外部入力として対応づけることができる。具体的に
は、数54、数55および数56のように示される。
【0167】
【数54】
【0168】
【数55】
【0169】
【数56】
【0170】数54から分かるように、時刻e
n (mi )おけるタスクnの実効未処理メッセージ数が
タスクn+1の実効未処理メッセージ数以上である場合
には、タスクnにおいて処理遅延が発生し始めていると
判断する。このため、外部入力は、処理速度を速くする
ように適応デッドラインを算出するため、タスクnの重
要度を高める正の入力とする。一方、時刻en (mi
おけるタスクnの実効未処理メッセージ数がタスクn+
1の実効未処理メッセージ数より少ない場合には、タス
クnにおける処理遅延が小さいと判断する。逆に、タス
クn+1における処理遅延が発生し始めていると判断す
る。このため、外部入力は、処理速度を遅くするように
適応デッドラインを算出するため、タスクnの重要度を
低める負の入力とする。
【0171】また、数55から分かるように、処理遅延
時間が定理1を満たさない場合には、処理遅延時間を小
さくするように適応デッドラインを算出するため、タス
クnの重要度を高める正の入力とする。
【0172】さらに、数56から分かるように、処理遅
延時間が定理2を満たさない場合には、処理遅延時間を
大きくするように適応デッドラインを算出するため、タ
スクnの重要度を低める負の入力とする。
【0173】数53で示したように、数54〜数56の
総和が外部入力としてタスクに入力される。ただし、数
55および数56においては、処理遅延時間が定理1お
よび定理2をそれぞれ満たす場合には、適応デッドライ
ンを調整する必要がない。したがって、重要度を更新す
る必要がないので、0が入力されることになる。
【0174】なお、最初の周期では、タスクの実効未処
理メッセージ数は0であるため、数55において外部入
力を0とすると、タスクの重要度は数54の右辺の第1
項のみによって決定される。つまり、通信依存関係があ
るつまり協調関係にある他のタスクの重要度によってタ
スクの重要度が決定される。その結果として、通信する
タスクの実行開始時刻に近づけるように、タスクの適応
デッドラインを設定することができる。
【0175】さらに、上述したように、PDPモデルネ
ットワークは、初期値に依存して、ある制約充足度の高
い状態に至り、静止する。したがって、この実施例で
は、焼き鈍し法を加えることにより、これを回避してい
る。つまり、重要度を高めるかまたは低めるかを、数5
7で示すような確率関数で決定する。
【0176】
【数57】
【0177】なお、通常の焼き鈍し法では、熱力学的モ
デルを応用し、ある固定の外部条件で温度を高い状態
(様々な状態を激しく移動する)からゆっくりと温度を
下げ、最も安定する状態を探す。しかし、この実施例で
想定する動的な環境では、外部条件(外部入力)である
実行未処理メッセージ数が短時間に変動するため、この
方法をそのまま用いることができない。そこで、短時間
に変動する外部条件に対応するため、適度な充足度とす
ることで収束を途中までとし、また外部変化に敏感に反
応するようにしている。これを実現するため、この実施
例では、制約充足度の高い状態(安定状態)からの距離
により焼き鈍しの温度を制御している。
【0178】たとえば、PDPモデルにおける制約充足
度は、数58のように示される。
【0179】
【数58】
【0180】ここで、制約充足度G(t) は、次のように
すると、最大となる。つまり、外部入力が0の場合に
は、相互に通信するタスク集合におけるすべてのタスク
の重要度を1にし、通信しないタスク集合におけるすべ
てのタスクの重要度を0にする。これは、相互に通信す
るタスクは重要度を同時に高くして処理速度を早め、そ
の他の(通信しない)タスクは処理速度を遅らすことを
意味している。このような状態が制約充足度を高くす
る。また、制約充足度の高い状態は、相互に通信するタ
スクの集合毎に存在する。
【0181】この実施例では、外部入力である実行未処
理メッセージ数があるため、上述した制約充足度の高い
状態とは一致しない可能性が高い。しかし、相互に通信
するタスクを近い時刻で実行すると、通信待ち時間が減
少することから、この近傍に制約充足度の高い状態が存
在していると考えられる。
【0182】また、この実施例では、制約充足度の高い
状態を、接続要求を行うタスク毎に設定する。その状態
は、接続要求を行うタスクおよびその接続先のタスクの
重要度が1となり、その他のタスクの重要度が0となる
ようにする。これにより、制約充足度の高い状態が比較
的多く設定される。したがって、制約充足度の高い状態
間の距離が短くなり、状態間の移動が容易になる。
【0183】したがって、焼き鈍し温度は、数59に従
って制御される。
【0184】
【数59】
【0185】数59から分かるように、タスク間の相互
結合ネットワークの状態が制約充足度の高い状態に近い
場合には温度を低くする。その結果、確率関数は1に近
い値を出力し、タスクの重要度が制約充足度の高い状態
へ近づきすぎると、温度が小さな値となり、確率関数は
ほぼ1を出力し、タスクの重要度は制約充足度の高い特
定の状態に固定化する。
【0186】ただし、この実施例では、動的な環境であ
るため、制約充足度の高い状態は時間とともに変化す
る。そこで、焼き鈍し下限温度COOLにより、温度を
下げ止まりさせ、その近傍で小さく振動させる。したが
って、適度な制約充足と外部変化に敏感に反応する動作
を実現することができる。一方、距離が遠い場合には、
温度を高くし、大きく振動させ充足度の高い状態を発見
する可能性を高める。このように制御することにより、
タスクの重要度の初期値に依存することなく、外部環境
の変化に応じて複数の制約充足度の高い状態を移動する
ことができる。言い換えると、準安定状態と準安定状態
を探している状態(不安定状態)との2つの状態を移動
することができる。
【0187】このようなタスクの重要度更新則は、タス
クにおけるメッセージの実効到着時刻en (mi )にタ
スク毎に単独に適用する。これにより求められたタスク
の重要度αn (t)から数60で示すように、デッドラ
インを修正する時刻を算出する。
【0188】
【数60】 vn (mi )=hn −2hn αn (en (mi )) ただし、hn はタスクnにおける処理遅延許容幅、vn
(mi )はタスクnにおけるi番目のメッセージ処理に
おけるデッドライン時刻を修正する時間(−h n ≦vn
(mi )≦hn )である。
【0189】このvn から、タスクエヌにおけるi番目
のメッセージ処理の適応デッドライン時刻を数61によ
り求めることができる。
【0190】
【数61】
【0191】この数61によって算出された適応デッド
ライン時刻に基づいて、タスクの実効順をEDFにより
求める。
【0192】具体的には、図1で示したCPU12は、
タスク毎に、図7に示すデッドライン設定処理を実行
し、数61に示した適応デッドラインを設定(更新)す
る。ただし、簡単のため、タスクnについて処理した場
合を説明し、他のタスクについての説明は省略する。
【0193】PC10でタスクをスケジューリングする
ためのソフトが起動されると、CPU12はデッドライ
ン設定処理を開始し、ステップS1でタスクnが処理す
べきデータが到着したかどうかを判断する。ステップS
1で“NO”であれば、つまりタスクnが処理すべきデ
ータが到着しなければ、そのままステップS1に戻っ
て、データが到着するのを待つ。一方、ステップS1で
“YES”であれば、つまりタスクnが処理すべきデー
タが到着すれば、ステップS3でスケジューリング対象
のタスクnを起動する。したがって、到着したデータが
処理される。
【0194】続くステップS5では、タスクnの実効未
処理メッセージ数を取得し、ステップS7では、後で詳
細に説明する重要度更新処理を実効する。そして、ステ
ップS9では、ステップS7で更新された重要度に基づ
いて適応デッドラインを設定或いは再設定(更新)して
からステップS1に戻る。
【0195】図8を参照して、図7のステップS7の重
要度更新処理が開始されると、CPU12は、ステップ
S11で、タスクnとタスクn+1との優先度を同じ
(均一)にする。続くステップS13では、bn (en
(mi ))がbn+1 (en (m i ))以上かどうかを判
断する。つまり、同じ時間en (mi )におけるタスク
nの実効未処理タスク数とタスクn+1の実効未処理タ
スク数とを比較して、タスクnに大きな遅延が発生する
かどうかを予想している。
【0196】なお、タスクn+1における未実効処理タ
スク数は、タスクn+1についての図7で示したデッド
ライン設定処理において取得される。
【0197】ステップS13で“YES”であれば、つ
まりbn (en (mi ))がbn+1(en (mi ))以
上であれば、タスクnに大きな遅延が発生すると判断
し、ステップS15でタスクnの重要度を高めてからス
テップS19に進む。一方、ステップS13で“NO”
であれば、つまりbn (en (mi ))がbn+1 (en
(mi ))より小さければ、タスクnの処理遅延が小さ
いと判断し、ステップS17でタスクnの重要度を低め
てからステップS19に進む。
【0198】ステップS19では、処理遅延時間が数1
9を満たすかどうか、すなわち定理1を満たすかどうか
を判断する。ステップS19で“YES”であれば、つ
まり定理1を満たす場合には、タスクnにおけるメッセ
ージの処理完了時刻はデッドライン時刻を満たすと判断
し、そのままステップS23に進む。
【0199】一方、ステップS19で“NO”であれ
ば、つまり定理1を満たさない場合には、タスクnにお
けるメッセージの処理完了時刻がデッドライン時刻を越
えてしまうと判断し、ステップS21でタスクnの重要
度を高めてからステップS23に進む。
【0200】ステップS23では、処理遅延時間が数3
5を満たすかどうか、すなわち定理2を満たすかどうか
を判断する。ステップS23で“YES”であれば、つ
まり定理2を満たす場合には、タスクnにおけるメッセ
ージ処理に必要なCPU利用率が最悪実効時間より短い
時間を用いて予約したCPU利用率を越えないと判断
し、そのままリターンする。
【0201】一方、ステップS23で“NO”であれ
ば、つまり定理2を満たさない場合には、タスクnにお
けるメッセージ処理に必要なCPU利用率が予約したC
PU利用率を越えてしまうと判断し、ステップS25で
タスクnの重要度を低めてから処理を終了する。
【0202】このように、タスクnの重要度を修正(高
めたり低めたり)することによって、適応デッドライン
を速くしたり、遅くらせたりすることができる。したが
って、タスクnでの処理を速めたり遅らせたりすること
ができる。
【0203】この実施例によれば、実効未処理メッセー
ジ数に応じてタスクの重要度を修正して、隣接するタス
クにおける処理速度を調整するので、すべてのタスクに
おける処理遅延を均一化することができる。したがっ
て、処理の遅いタスクに依存してシステム全体の処理が
遅くなってしまうようなことがない。つまり、CPUを
有効に利用することができるので、効率よくタスクをス
ケジューリングすることができる。
【0204】また、最悪実行時間よりも短いCPU使用
時間を用いてCPU利用率を予約するので、予約量が過
負荷になることがなく、スケジューリング可能性を高め
ることができる。
【0205】このようなスケジューリング方法に従っ
て、本願発明者が行った評価実験の結果を以下に示す。
なお、このようなスケジューリング方法を、分散OSの
構成法の研究のために開発しているマイクロカーネルSo
lelc(アルテミス)上に実装して、性能評価を行った。
また、性能評価の環境として、次に示すようなハードウ
ェアおよびソフトウェアを使用した。
【0206】ハードウェアの環境としては、使用機種は
エプソン社製の「Endeavor ATX-7000 」であり、プロセ
ッサが「Pentium-S 200MHz」であり、キャッシュメモリ
が512KB であり、主記憶(HDD)が128MB である。
【0207】また、ソフトウェアの環境としては、上述
したように、OSにはSolelcを使用した。今回の評価実
験では、Solelcのディスパッチ機能およびメッセージ通
信機能のみを使用し、スケジューリング分解能は1msec
とした。また、コンパイラはgcc(version
egcs−2.91.60)を使用した。
【0208】また、性能評価に使用するパイプライン
は、図2で示したパイプラインモデルに基づいて構成す
る。具体的には、周期的にメッセージを生成する入力装
置、周期的にメッセージを消滅する出力装置およびメッ
セージ毎に処理時間が変動する入力サーバタスク、出力
サーバタスク、アプリケーションタスクによって、パイ
プラインが構成される。
【0209】ここで、上述の実施例におけるスケジュー
リング方法では、複数のストリーム処理が混在すること
を想定しているため、評価に用いるタスクセット(評価
タスクセット)は、上述したようなパイプライン処理を
行うタスクの組を3組とし、ランダムな負荷を生成する
周期タスクにより構成する。
【0210】評価方法は、周期タスクモデルによる方
式、LBAPによる方式および上述の実施例で示したス
ケジューリング方法による方式(実施例方式)の3つの
方式を、評価タスクセットの付加タスクとパイプライン
上のタスクのスケジューリング成功率で比較評価する。
また、各タスクの時間属性は表1のように設定した。た
だし、タスクの実行時間は、メッセージの処理毎に、最
大実行時間と最小実行時間との間をランダムに変動する
時間とした。
【0211】
【表1】
【0212】また、タスク重要度更新則のパラメータに
ついては、ネットワークの結合重みは通信関係がある場
合は5.0とし、通信関係がない場合は−5.0とし
た。温度制御パラメータにおいて、D はネットワーク
状態間の最大距離×0.2とし、D はネットワーク状
態間の最大距離×0.5とし、そして、r1、r2およ
びr3は、それぞれ、0.5、0.9および0.9とし
た。
【0213】このような評価タスクセットに関して、負
荷状況、初期位相状況を変動させ、スケジューリング成
功率を3つのスケジューリング方式について比較評価し
た。スケジューリングの成功率は、数62のように定義
し、評価期間は180,000msecとした。
【0214】
【数62】
【0215】ただし、Success(Load) はデッドライン時
刻までに処理を完了した負荷周期タスク数であり、Succ
ess(Msg)は出力装置の処理開始時刻までに出力装置に
到着したメッセージ数であり、Finish(Load)は処理完了
した負荷周期タスク数であり、そして、Finish(Msg) は
出力装置に到着したメッセージ数である。
【0216】負荷状況に応じたスケジューリングの成功
率が図9に示される。図9においては、縦軸にスケジュ
ーリング成功率を表し、横軸に負荷を表している。ただ
し、負荷は、すべての実行タスクにおける周期(1/R
c )に占める平均実行時間の割合の総和とした。また、
評価時の負荷量は、負荷周期タスクの最大実行時間と最
小実行時間により調整した。各タスク間の初期位相は、
各タスクの1周期分の時間とした。さらに、LBAPに
よる方式の最大処理遅延時間は初期位相と同じ時間と
し、その最大処理遅延時間によりデッドライン時刻を設
定した。
【0217】図9から分かるように、実施例方式は、他
の方式よりスケジューリングの成功率が常に高い。ま
た、過負荷の状況においても、スケジューリングの成功
率が高い。これは、タスク間の初期位相により発生した
未処理メッセージ数をタスクかんで均一にするメカニズ
ムが各タスクの処理遅延時間を均等にすることにするこ
とで、タスクの負荷を分散させているからである。一
方、他の方式は、負荷が高まると急激にスケジューリン
グの成功率が低下する。このように、未処理メッセージ
数をタスク間で均一にするメカニズムが高負荷時にスケ
ジュール可能性を高めるのに有効であることが分かる。
【0218】続いて、初期位相に応じたスケジューリン
グの成功率を図10に示す。図10においては、縦軸に
スケジューリングの成功率を表し、横軸に初期位相を表
している。ただし、負荷は1.03とし、初期位相は各
タスクの周期の倍数で設定した。
【0219】図10から分かるように、実施例方式およ
びLBAPによる方式では、初期位相を大きくすると、
スケジューリングの成功率が改善されるが、周期タスク
モデルによる方式では、スケジューリングの成功率が改
善されない。これは、周期タスクモデルによる方式は、
大きな初期位相により発生した多くの未処理メッセージ
数を考慮していないため、隣接するタスクがメッセージ
を必要とする時刻までに余裕があるにも拘わらず、固定
のレートで処理を実行していることに起因している。す
なわち、余裕があるにも拘わらず、固定のレートで処理
を実行するため、負荷周期タスクの実行機会が増えな
い。したがって、スケジューリングの成功率が改善され
ない。
【0220】一方、LBAPによる方式と実施例方式と
では、スケジューリングの成功率が改善されるが、両者
を比較すると、LBAPによる方式はスケジューリング
の成功率を改善するためにおおきな初期位相を必要とす
る。これは、LBAPによる方式が固定の処理遅延時間
に基づいてデッドライン時刻(優先度)を決めるため、
固定の処理遅延時間を越える未処理メッセージ数が発生
する場合、周期タスクモデルによる方式と同様の減少に
陥ることに起因する。この点、実施例方式は、変動する
処理遅延時間に適時対応してデッドライン時刻(優先
度)を決めるため、負荷周期タスクの時刻機会を増加さ
せることができる。このため、スケジューリングの成功
率が改善されている。
【0221】以上のことから、実施例方式は、従来の方
式と比較して、次のような特性を持つと言える。まず、
スケジューリング可能性が高く、特に高負荷時にその差
が著しい。したがって、CPU利用率を高めることがで
きる。また、少ない初期位相でスケジューリング成功率
が改善される。したがって、少なエンド−エンド処理遅
延時間でスケジューリングすることが可能である。
【0222】なお、実施例方式では、その計算量がスケ
ジュール対象のタスク総数に比例する。したがって、ス
ケジューリングオーバヘッドは、タスク総数が増えるに
連れて高くなる。このオーバヘッドの評価結果につい
て、図11のように、グラフで示す。この図11に示す
グラフから分かるように、タスク総数に応じて、オーバ
ヘッドは直線的に高くなっている。たとえば、プロセッ
サが「Pentium-S 200MHz 」であれば、タスク総数が1
0である場合には、オーバヘッドは平均約72μsec で
ある。現在の一般的なプロセッサのクロックは評価環境
の数倍であるため、一般的なPCでは、評価環境の2倍
のクロックを持つと仮定できる。したがって、タスク総
数が10である場合には、約36μsec の計算時間が必
要となる。ただし、この負荷は、タスクの重要度更新則
を適用するタスクの到着時のみに必要であり、それ以外
のコンテキストスイッチには不要である。
【0223】一方、マルチメディア環境で扱う音声、ア
ニメーションおよびビデオは、文献(B.Furth:Multimed
ia Systems:An Overview,IEEE Multimedia,Vol.1,No.1,
pp.47-59(1994)) によれば、最短周期が75Hz、すなわ
ち約13msecとなっている。この最短周期のタスクを1
0個スケジューリングする場合には、一般的なPC環境
においては1周期のスケジューリング計算に必要となる
時間は、上述したように約36μsec である。この時間
がタスクの周期を占める割合は、高々0.28%に過ぎ
ず、タスクを100個スケジューリングしたとしても
2.8%である。
【0224】以上のことから、実施例方式はタスク総数
に比例してオーバヘッドは高くなるが、タスクのスケジ
ューリング周期に占める割合は極微量であると言える。
したがって、実施例方式は、連続メディアをストリーム
処理するタスクのスケジューリングに十分に適用できる
と考えられる。
【図面の簡単な説明】
【図1】この発明方法を実施する際の構成の一実施例を
示す図解図である。
【図2】この発明方法が適用されるパイプラインモデル
の一例を示す図解図である。
【図3】周期タスクモデルにおけるメッセージ到着の非
周期性を示すためのタイミングチャートである。
【図4】LBAPにおけるタスクの時間属性を示すタイ
ミングチャートである。
【図5】パイプラインモデルの各タスクにおけるメッセ
ージ処理の一例を示す概念図である。
【図6】タスクへの総入力の構成を示す模式図である。
【図7】図1に示すCPUのデッドライン設定処理を示
すフロー図である。
【図8】図7に示すCPUの重要度更新処理を示すフロ
ー図である。
【図9】評価タスクセットにおける評価実験の結果を示
すグラフである。
【図10】評価タスクセットにおける他の評価実験の結
果を示すグラフである。
【図11】タスク総数と実施例方式によるスケジューリ
ングのオーバヘッドとの関係を示すグラフである。
【符号の説明】
10 …PC 12 …CPU 14 …バス 16 …HDD 18 …RAM 20 …インターフェイス

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】マルチメディアタスクをVBRストリーム
    処理するための連続メディアストリーム処理におけるス
    ケジューリング方法であって、 (a) メッセージが到着したときに前記メッセージを処理
    すべきタスクを起動するステップ、 (b) 前記タスクで前記メッセージの処理が終了した後前
    記タスクの実効未処理メッセージ数を取得するステッ
    プ、および(c) 前記実効未処理メッセージ数に応じて適
    応デッドラインを設定するステップを含む、スケジュー
    リング方法。
  2. 【請求項2】前記ステップ(c) は、(c1)少なくとも前記
    タスクの重要度に従って適応デッドラインを設定するス
    テップを含む、請求項1記載のスケジューリング方法。
  3. 【請求項3】前記ステップ(c1)は、(c2)前記重要度を更
    新するステップを含む、請求項2記載のスケジューリン
    グ方法。
  4. 【請求項4】前記ステップ(c1)は、(c3)隣接する2つの
    前記タスクの前記重要度を同じにするステップ、および
    (c4)前記2つのタスクにおける先行する前記タスクにお
    ける前記実効未処理メッセージ数が後続の前記タスクの
    前記実効未処理メッセージ数よりも多い場合に前記重要
    度を高くし、少ない場合に前記重要度を低くするステッ
    プを含む、請求項2または3記載のスケジューリング方
    法。
  5. 【請求項5】前記ステップ(c4)は、(c5)メッセージ処理
    完了後に実測された処理遅延時間が推定デッドライン時
    刻を満たさない場合に前記重要度を高めるステップを含
    む、請求項4記載のスケジューリング方法。
  6. 【請求項6】前記ステップ(c4)は、(c6)メッセージ処理
    完了後に実測された処理遅延時間が前記メッセージ処理
    に要したCPU使用時間に対する予約したCPU使用率
    の比より小さい場合に前記重要度を低めるステップをさ
    らに含む、請求項4または5記載のスケジューリング方
    法。
JP2001158156A 2001-05-28 2001-05-28 連続メディアストリーム処理におけるスケジューリング方法 Withdrawn JP2002351678A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2001158156A JP2002351678A (ja) 2001-05-28 2001-05-28 連続メディアストリーム処理におけるスケジューリング方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001158156A JP2002351678A (ja) 2001-05-28 2001-05-28 連続メディアストリーム処理におけるスケジューリング方法

Publications (1)

Publication Number Publication Date
JP2002351678A true JP2002351678A (ja) 2002-12-06

Family

ID=19001921

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001158156A Withdrawn JP2002351678A (ja) 2001-05-28 2001-05-28 連続メディアストリーム処理におけるスケジューリング方法

Country Status (1)

Country Link
JP (1) JP2002351678A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009087223A (ja) * 2007-10-02 2009-04-23 Fujitsu Ltd 処理性能調整機能を有するモジュール,処理性能調整方法および処理性能調整プログラム
JP2009116881A (ja) * 2008-11-07 2009-05-28 Hitachi Ltd データ処理装置およびその方法
CN109146212A (zh) * 2017-06-16 2019-01-04 佛山科学技术学院 众包系统中的大规模同构任务分配方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009087223A (ja) * 2007-10-02 2009-04-23 Fujitsu Ltd 処理性能調整機能を有するモジュール,処理性能調整方法および処理性能調整プログラム
JP2009116881A (ja) * 2008-11-07 2009-05-28 Hitachi Ltd データ処理装置およびその方法
CN109146212A (zh) * 2017-06-16 2019-01-04 佛山科学技术学院 众包系统中的大规模同构任务分配方法
CN109146212B (zh) * 2017-06-16 2022-03-25 佛山科学技术学院 众包系统中的大规模同构任务分配方法

Similar Documents

Publication Publication Date Title
Wei et al. QoS-aware resource allocation for video transcoding in clouds
US6477561B1 (en) Thread optimization
US8601181B2 (en) System and method for read data buffering wherein an arbitration policy determines whether internal or external buffers are given preference
US20030187907A1 (en) Distributed control method and apparatus
EP0682833B1 (en) Flow control by evaluating network load
Nakajima et al. A continuous media application supporting dynamic QoS control on real-time mach
JP2001103120A (ja) 通信ネットワークにおいてトラフィックをスケジュールする方法及び装置
WO2020238989A1 (zh) 一种调度任务处理实体的方法及装置
CN106775949B (zh) 感知复合应用特征与网络带宽的虚拟机在线迁移优化方法
CN115412497B (zh) 一种bbr拥塞控制算法的性能优化方法
JP2001350639A (ja) ソフトリアルタイムにおけるスケジューリング方法
JP2009541851A (ja) リソースに基づいたスケジューラ
JPH10240548A (ja) タスクスケジューリング装置及び方法
JP2002351678A (ja) 連続メディアストリーム処理におけるスケジューリング方法
Zhang et al. Service composition in multi-domain environment under time constraint
Wei et al. ORDER: A dynamic replication algorithm for periodic transactions in distributed real-time databases
JP3957055B2 (ja) タスクスケジューリング方法
CN116302578A (zh) 一种QoS约束的流应用延迟确保方法及系统
CN116450241A (zh) 基于图神经网络的多用户时序依赖型业务计算卸载方法
Poellabauer et al. Coordinated cpu and event scheduling for distributed multimedia applications
CN111611068B (zh) 分布式系统中的数据写方法、服务器及客户端
JP2001043096A (ja) ソフトリアルタイムにおけるスケジューリング方法
Cardei et al. Hierarchical feedback adaptation for real time sensor-based distributed applications
US7529228B2 (en) Scheduling method for multi-channel DSP (Digital signal Processor) algorithm, VoP (Voice over Packet) system, and recording medium
Wang et al. Real-time performance evaluation of urgent aperiodic messages in FF communication and its improvement

Legal Events

Date Code Title Description
A300 Withdrawal of application because of no request for examination

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080805