JPH10240548A - タスクスケジューリング装置及び方法 - Google Patents
タスクスケジューリング装置及び方法Info
- Publication number
- JPH10240548A JPH10240548A JP4799097A JP4799097A JPH10240548A JP H10240548 A JPH10240548 A JP H10240548A JP 4799097 A JP4799097 A JP 4799097A JP 4799097 A JP4799097 A JP 4799097A JP H10240548 A JPH10240548 A JP H10240548A
- Authority
- JP
- Japan
- Prior art keywords
- task
- scheduling
- executed
- priority
- service quality
- 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.)
- Pending
Links
Abstract
(57)【要約】
【課題】 固定優先順位スケジューリングを用いなが
ら、CPUを経済的に活用しつつ、所望のサービス品質
に対応するタスクスケジューリングを実現する。 【解決手段】 指定手段3が、タスクの実行によって提
供されるべきサービス品質を指定する。区分手段6が、
与えられた各タスクを、指定されたサービス品質を満足
するために必ず実行すべき必須部分と、可能ならば実行
すべきオプション部分に区分する。スケジューリング部
39が、必須部分のスケジューリングを行い、必須部分
の実行終了後にCPU時間が余る場合に限って、前記オ
プション部分をスケジューリングする。
ら、CPUを経済的に活用しつつ、所望のサービス品質
に対応するタスクスケジューリングを実現する。 【解決手段】 指定手段3が、タスクの実行によって提
供されるべきサービス品質を指定する。区分手段6が、
与えられた各タスクを、指定されたサービス品質を満足
するために必ず実行すべき必須部分と、可能ならば実行
すべきオプション部分に区分する。スケジューリング部
39が、必須部分のスケジューリングを行い、必須部分
の実行終了後にCPU時間が余る場合に限って、前記オ
プション部分をスケジューリングする。
Description
【0001】
【発明の属する技術分野】本発明は、マルチメディア・
ネットワーク等の高度な要求に柔軟に対応する組み込み
システム、及びマルチメディアデータ通信システムのた
めの、タスクスケジューリング技術に関わるもので、特
に、CPUを経済的に活用しつつ、所望のサービス品質
に対応するタスクスケジューリングを実現するものであ
る。
ネットワーク等の高度な要求に柔軟に対応する組み込み
システム、及びマルチメディアデータ通信システムのた
めの、タスクスケジューリング技術に関わるもので、特
に、CPUを経済的に活用しつつ、所望のサービス品質
に対応するタスクスケジューリングを実現するものであ
る。
【0002】
【従来の技術】コンピュータの急速な普及に伴って、コ
ンピュータを組み込みシステムとして普及する場合が増
大している。ここで、組み込みシステムとは、パーソナ
ルコンピュータのようにコンピュータとして独立して使
用されるものではなく、家電製品などの電気機器に組み
込まれる小規模で機能が制限されたコンピュータシステ
ムである。
ンピュータを組み込みシステムとして普及する場合が増
大している。ここで、組み込みシステムとは、パーソナ
ルコンピュータのようにコンピュータとして独立して使
用されるものではなく、家電製品などの電気機器に組み
込まれる小規模で機能が制限されたコンピュータシステ
ムである。
【0003】これまでの組み込みシステムは、冷蔵庫や
炊飯器のコントローラなど比較的単純なものが多く、8
ビット程度のCPUで十分実現可能であった。しかし最
近のマルチメディア・ネットワークの多様な普及につ
れ、生活環境のなかに存在する組み込みシステムへの要
求は高度化しつつある。将来的には家電製品もネットワ
ークに接続され、動画や音声などマルチメディアデータ
をやり取りすることになると思われる。これらの用途で
は、32ビット以上のCPUの使用が当然のこととなる
と思われる。高速で強力なCPUの使用は、これまでハ
ードウェアで実現してきた機能をソフトウェア化する可
能性をもたらすので、CPU上で多くのタスクを効率的
に実行するためのタスクのスケジューリング技術が一層
重要となってきている。
炊飯器のコントローラなど比較的単純なものが多く、8
ビット程度のCPUで十分実現可能であった。しかし最
近のマルチメディア・ネットワークの多様な普及につ
れ、生活環境のなかに存在する組み込みシステムへの要
求は高度化しつつある。将来的には家電製品もネットワ
ークに接続され、動画や音声などマルチメディアデータ
をやり取りすることになると思われる。これらの用途で
は、32ビット以上のCPUの使用が当然のこととなる
と思われる。高速で強力なCPUの使用は、これまでハ
ードウェアで実現してきた機能をソフトウェア化する可
能性をもたらすので、CPU上で多くのタスクを効率的
に実行するためのタスクのスケジューリング技術が一層
重要となってきている。
【0004】特に、動画や音声などマルチメディアを扱
うアプリケーションでは、性能の保証が重要である。動
画や音声データは、処理のデッドラインが守れない場
合、音声が途切れたり、動画がコマ落ちしたりして、品
質劣化としてユーザに容易に認識される。このため、こ
れらの分野において、デッドラインを意識したタスクス
ケジューリング、いわゆるリアルタイムスケジューリン
グが必要である。マルチメディアシステムをこの意味で
リアルタイムシステムと考えることも可能だが、マルチ
メディアシステムに課せられる時間制約は程度問題であ
って、エレベータ制御における安全管理機能など、これ
までの厳密なリアルタイムシステムの時間制約とは、基
本的に異なる。これまでのリアルタイムシステムにとっ
て、デッドラインは絶対であった。
うアプリケーションでは、性能の保証が重要である。動
画や音声データは、処理のデッドラインが守れない場
合、音声が途切れたり、動画がコマ落ちしたりして、品
質劣化としてユーザに容易に認識される。このため、こ
れらの分野において、デッドラインを意識したタスクス
ケジューリング、いわゆるリアルタイムスケジューリン
グが必要である。マルチメディアシステムをこの意味で
リアルタイムシステムと考えることも可能だが、マルチ
メディアシステムに課せられる時間制約は程度問題であ
って、エレベータ制御における安全管理機能など、これ
までの厳密なリアルタイムシステムの時間制約とは、基
本的に異なる。これまでのリアルタイムシステムにとっ
て、デッドラインは絶対であった。
【0005】例えば、戦闘機制御システムでは、外部セ
ンサーが一定時間毎にデータをサンプリング・処理す
る。デッドラインを守れないと、撃墜される可能性があ
るので、デッドラインを守ることが最重要課題である。
このように、デッドラインを守ることが最大の優先課題
であるようなシステムを、ハードリアルタイムシステム
という。これに対して、マルチメディアシステムでは、
ある処理をいつまでに必ず行う、という制約は少なく、
各種の再生などを一定の品質で行うことの方が重要であ
る。このように厳しいデッドライン制約を持たないリア
ルタイムシステムは、しばしばソフトリアルタイムシス
テムと呼ばれる。
ンサーが一定時間毎にデータをサンプリング・処理す
る。デッドラインを守れないと、撃墜される可能性があ
るので、デッドラインを守ることが最重要課題である。
このように、デッドラインを守ることが最大の優先課題
であるようなシステムを、ハードリアルタイムシステム
という。これに対して、マルチメディアシステムでは、
ある処理をいつまでに必ず行う、という制約は少なく、
各種の再生などを一定の品質で行うことの方が重要であ
る。このように厳しいデッドライン制約を持たないリア
ルタイムシステムは、しばしばソフトリアルタイムシス
テムと呼ばれる。
【0006】タスクスケジューリングは、オペレーティ
ングシステムの基礎であり、リアルタイムシステムに適
用可能なスケジューリングとしては、これまでに多くの
手法が提案されている。組み込みシステムに関連するリ
アルタイムスケジューリングについては、軍事・航空管
制などを主なターゲットにした方式がいくつか提案され
ている。
ングシステムの基礎であり、リアルタイムシステムに適
用可能なスケジューリングとしては、これまでに多くの
手法が提案されている。組み込みシステムに関連するリ
アルタイムスケジューリングについては、軍事・航空管
制などを主なターゲットにした方式がいくつか提案され
ている。
【0007】複数のタスクをスケジューリングする手法
としては、実行可能状態にある各タスクに優先順位(優
先度)を割当て、最も高い優先順位を持つタスクに、C
PU時間(実行権)を各タスクに与える優先順位スケジ
ューリングが一般的である。この方面で代表的な方式と
しては、周期的に発生するタスクを周期が短いものほど
優先順位を高く設定して、その優先順位に応じスケジュ
ーリングを行うレートモノトニック方式や、デッドライ
ンまでの残り時間が短いタスクほど優先順位を高く設定
し、その優先順位に応じスケジューリングを行うEDF
(Earliet Deadline First)方
式などがある(“Schedulingalgorit
hms for multi−programming
ina hard real−time envir
onment”by C.L. Liu and J.
W. Leyland,in Journal oft
he Association for Comput
ing Machinery 20, 1(Janua
ry 1973):40−61”)。
としては、実行可能状態にある各タスクに優先順位(優
先度)を割当て、最も高い優先順位を持つタスクに、C
PU時間(実行権)を各タスクに与える優先順位スケジ
ューリングが一般的である。この方面で代表的な方式と
しては、周期的に発生するタスクを周期が短いものほど
優先順位を高く設定して、その優先順位に応じスケジュ
ーリングを行うレートモノトニック方式や、デッドライ
ンまでの残り時間が短いタスクほど優先順位を高く設定
し、その優先順位に応じスケジューリングを行うEDF
(Earliet Deadline First)方
式などがある(“Schedulingalgorit
hms for multi−programming
ina hard real−time envir
onment”by C.L. Liu and J.
W. Leyland,in Journal oft
he Association for Comput
ing Machinery 20, 1(Janua
ry 1973):40−61”)。
【0008】このように、優先順位に基づくスケジュー
リング(優先順位スケジューリング)は、優先順位が固
定である固定優先順位スケジューリングと、優先順位が
動的に変化する動的優先順位スケジューリングに大別さ
れ、レートモノトニック方式は固定優先順位スケジュー
リングの、EDF方式は動的優先順位スケジューリング
の、それぞれ代表的な例となっている。
リング(優先順位スケジューリング)は、優先順位が固
定である固定優先順位スケジューリングと、優先順位が
動的に変化する動的優先順位スケジューリングに大別さ
れ、レートモノトニック方式は固定優先順位スケジュー
リングの、EDF方式は動的優先順位スケジューリング
の、それぞれ代表的な例となっている。
【0009】固定優先順位スケジューリングでは、タス
クに割り当てられた優先順位は、タスクの生成から消滅
まで不変である。レートモノトニックスケジューリング
は、周期的に実行が必要となるタスクのためのスケジュ
ーリング方式で、周期が短いタスクほど優先度を高く設
定するものである。例えば、画像データが50msec
に一度到達し、音声データ図30msecに一度到達す
るとしよう。この時レートモノトニックスケジューリン
グでは、周期のより短い音声データを音声化するタスク
の優先順位を、画像データを画像化するタスクの優先順
位よりも高く設定する。
クに割り当てられた優先順位は、タスクの生成から消滅
まで不変である。レートモノトニックスケジューリング
は、周期的に実行が必要となるタスクのためのスケジュ
ーリング方式で、周期が短いタスクほど優先度を高く設
定するものである。例えば、画像データが50msec
に一度到達し、音声データ図30msecに一度到達す
るとしよう。この時レートモノトニックスケジューリン
グでは、周期のより短い音声データを音声化するタスク
の優先順位を、画像データを画像化するタスクの優先順
位よりも高く設定する。
【0010】図9は、優先順位スケジューリングの一実
行例である。ここでは、三つの周期的タスクτ1 ,τ2
,τ3 があり、それぞれが周期15ms,25ms,
40msで、周期的に起動される。また、一度の周期
で、各タスクは7msだけ実行する。タスクの優先順位
は、タスクτ1 が一番高く、タスクτ2 が二番目、タス
クτ3 の優先順位が最も低い、と仮定する。この優先順
位は、レートモノトニック方式によるものである。
行例である。ここでは、三つの周期的タスクτ1 ,τ2
,τ3 があり、それぞれが周期15ms,25ms,
40msで、周期的に起動される。また、一度の周期
で、各タスクは7msだけ実行する。タスクの優先順位
は、タスクτ1 が一番高く、タスクτ2 が二番目、タス
クτ3 の優先順位が最も低い、と仮定する。この優先順
位は、レートモノトニック方式によるものである。
【0011】この場合、時点0で、全てのタスクが起動
されるが、優先順位の一番高いタスクτ1 にCPUでの
実行権が与えられ、7ms経過した後、最初の周期を終
了する。その後直ちに、タスクτ2 にCPUでの実行権
が与えられ、7ms経過した14msの時点でその最初
の周期を終了する。その後、タスクτ3 にCPUの実行
権が渡されるが、15ms時点でタスクτ1 がその二度
目の周期を開始するため、CPUでの実行権はタスクτ
3 からタスクτ1 へと移される。22ms時点までタス
クτ1 は実行し、そこで二度目の周期を終える。22m
s時点では、タスクτ2 の二度目の周期はまだ始まって
いないので、CPUはタスクτ3 に与えられる。しか
し、25ms時点でタスクτ2 が二度目の周期を開始す
るため、タスクτ3 は3msだけ実行した後、タスクτ
2 に実行権を譲り渡す。
されるが、優先順位の一番高いタスクτ1 にCPUでの
実行権が与えられ、7ms経過した後、最初の周期を終
了する。その後直ちに、タスクτ2 にCPUでの実行権
が与えられ、7ms経過した14msの時点でその最初
の周期を終了する。その後、タスクτ3 にCPUの実行
権が渡されるが、15ms時点でタスクτ1 がその二度
目の周期を開始するため、CPUでの実行権はタスクτ
3 からタスクτ1 へと移される。22ms時点までタス
クτ1 は実行し、そこで二度目の周期を終える。22m
s時点では、タスクτ2 の二度目の周期はまだ始まって
いないので、CPUはタスクτ3 に与えられる。しか
し、25ms時点でタスクτ2 が二度目の周期を開始す
るため、タスクτ3 は3msだけ実行した後、タスクτ
2 に実行権を譲り渡す。
【0012】このタスクτ2 も30ms時点でタスクτ
1 が三度目の周期を開始するため、5msだけ実行した
後、タスクτ1 にCPUを譲り渡す。37ms時点で、
タスクτ1 はその三度目の周期を終え、優先順位が二番
目であるタスクτ2 にCPUの実行権が与えられる。タ
スクτ2 は残っていた2msの仕事を行い、39ms時
点でその二度目の周期を終える。39msでタスクτ3
に実行権が戻ってきたが、その最初の周期が終わる40
msまでには、残された7−1−3=3ms分の実行は
行えず、タスクτ3 の二度目の周期が開始されてしま
い、40msの時点でこのデッドラインを破ってしま
う。もっとも、優先順位のいちばん高いタスクτ1 の実
行は確保されており、このことがこの種のスケジューリ
ングの特徴である。その後も、このように優先順位に基
づいてタスクがスケジューリングされていく。
1 が三度目の周期を開始するため、5msだけ実行した
後、タスクτ1 にCPUを譲り渡す。37ms時点で、
タスクτ1 はその三度目の周期を終え、優先順位が二番
目であるタスクτ2 にCPUの実行権が与えられる。タ
スクτ2 は残っていた2msの仕事を行い、39ms時
点でその二度目の周期を終える。39msでタスクτ3
に実行権が戻ってきたが、その最初の周期が終わる40
msまでには、残された7−1−3=3ms分の実行は
行えず、タスクτ3 の二度目の周期が開始されてしま
い、40msの時点でこのデッドラインを破ってしま
う。もっとも、優先順位のいちばん高いタスクτ1 の実
行は確保されており、このことがこの種のスケジューリ
ングの特徴である。その後も、このように優先順位に基
づいてタスクがスケジューリングされていく。
【0013】一般に、固定優先順位スケジューリングの
方が、実現の容易さ・過負荷時の挙動の予測可能性など
から選好される傾向があり、リアルタイムスケジューリ
ング理論ではレートモノトニック方式が主流になってい
る。マルチメディア関係でも、動画や音声は周期的に発
生・到着することから、ネットワークに接続されたマル
チメディアファイルサーバに対して、レートモノトニッ
ク方式を階層的ラウンドロビン方式と併せ適用しようと
いう提案(USP5528513)などがある。
方が、実現の容易さ・過負荷時の挙動の予測可能性など
から選好される傾向があり、リアルタイムスケジューリ
ング理論ではレートモノトニック方式が主流になってい
る。マルチメディア関係でも、動画や音声は周期的に発
生・到着することから、ネットワークに接続されたマル
チメディアファイルサーバに対して、レートモノトニッ
ク方式を階層的ラウンドロビン方式と併せ適用しようと
いう提案(USP5528513)などがある。
【0014】
【発明が解決しようとする課題】しかし、従来提唱され
ているリアルタイムスケジューリング技術は、マルチメ
ディアアプリケーション特有の要求を十分満たしてはい
ない。まず、マルチメディア対応の組み込みシステムで
は、コストの問題から、CPUの能力にはあまり余裕が
ないのが普通である。しかし、既存のリアルタイムスケ
ジューリング手法は、デッドラインを守るためCPUの
能力にはかなり余裕を持たせるのが通常であり、経済的
コストの面で不利益を生じる。このため、CPUを効率
よく利用するタスクスケジューリング装置が求められて
いた。
ているリアルタイムスケジューリング技術は、マルチメ
ディアアプリケーション特有の要求を十分満たしてはい
ない。まず、マルチメディア対応の組み込みシステムで
は、コストの問題から、CPUの能力にはあまり余裕が
ないのが普通である。しかし、既存のリアルタイムスケ
ジューリング手法は、デッドラインを守るためCPUの
能力にはかなり余裕を持たせるのが通常であり、経済的
コストの面で不利益を生じる。このため、CPUを効率
よく利用するタスクスケジューリング装置が求められて
いた。
【0015】また、マルチメディアアプリケーションに
特徴的なものとして、サービス品質(Quality
of Service,QoS)の保証がある。ユーザ
がマルチメディアアプリケーションにデータの再生要求
を出す際は、再生の質についての要求も行う。これをサ
ービス品質の指定というが、マルチメディアアプリケー
ションは、サービス品質の指定に応じたスケジューリン
グを行う必要がある(“Resource manag
ement in networked multim
edia systems”by K.Nahrste
dt andR.Steinmetz in IEEE
Computer 28,5(May 1995):
52−63)。
特徴的なものとして、サービス品質(Quality
of Service,QoS)の保証がある。ユーザ
がマルチメディアアプリケーションにデータの再生要求
を出す際は、再生の質についての要求も行う。これをサ
ービス品質の指定というが、マルチメディアアプリケー
ションは、サービス品質の指定に応じたスケジューリン
グを行う必要がある(“Resource manag
ement in networked multim
edia systems”by K.Nahrste
dt andR.Steinmetz in IEEE
Computer 28,5(May 1995):
52−63)。
【0016】これまでのリアルタイムスケジューリング
技術では、サービス品質の指定への対応は考えられてい
なかった。すなわち、レートモノトニック方式では、タ
スクの優先順位はその周期だけで決まってしまい、ユー
ザによるサービス品質指定を反映できない。
技術では、サービス品質の指定への対応は考えられてい
なかった。すなわち、レートモノトニック方式では、タ
スクの優先順位はその周期だけで決まってしまい、ユー
ザによるサービス品質指定を反映できない。
【0017】一方、優先順位が状況に応じて変化する動
的優先順位スケジューリングでは、固定優先順位スケジ
ューリングと比べ柔軟なスケジューリングが可能であ
り、サービス品質の指定への対応も可能と思われ、サー
ビス品質が重要なマルチメディアシステムでは、動的優
先順位に基づくスケジューリング手段(スケジューラ)
の使用も提案されている。しかし、動的優先順位スケジ
ューリングには、実現コストが大きい・過負荷時の挙動
が予測できないといった課題が残されている。
的優先順位スケジューリングでは、固定優先順位スケジ
ューリングと比べ柔軟なスケジューリングが可能であ
り、サービス品質の指定への対応も可能と思われ、サー
ビス品質が重要なマルチメディアシステムでは、動的優
先順位に基づくスケジューリング手段(スケジューラ)
の使用も提案されている。しかし、動的優先順位スケジ
ューリングには、実現コストが大きい・過負荷時の挙動
が予測できないといった課題が残されている。
【0018】優先順位スケジューリングではないが、要
求に柔軟に対応するスケジューリング手法としては、i
mprecise computationと呼ばれる
ものも存在する(“Imprecise comput
ations”by J.W.S.Liu et a
l.in Proceedings of the I
EEE82,1(January 1994):83−
94)。この手法は、それぞれのタスクを実行が必須な
部分とオプショナルの部分に分割し、必須部分の実行が
終了した後オプショナルの部分を実行する。オプショナ
ルの部分は、最後まで実行することなく途中で実行を中
止することが可能である。imprecise com
putationでは投入時間とサービス品質はトレー
ドオフの関係にあり、実行時間を長くするほど得られる
サービス品質は向上するが、利用できる時間には制限が
ある。この仮定は、動画再生など多くのアプリケーショ
ンに当てはまる。
求に柔軟に対応するスケジューリング手法としては、i
mprecise computationと呼ばれる
ものも存在する(“Imprecise comput
ations”by J.W.S.Liu et a
l.in Proceedings of the I
EEE82,1(January 1994):83−
94)。この手法は、それぞれのタスクを実行が必須な
部分とオプショナルの部分に分割し、必須部分の実行が
終了した後オプショナルの部分を実行する。オプショナ
ルの部分は、最後まで実行することなく途中で実行を中
止することが可能である。imprecise com
putationでは投入時間とサービス品質はトレー
ドオフの関係にあり、実行時間を長くするほど得られる
サービス品質は向上するが、利用できる時間には制限が
ある。この仮定は、動画再生など多くのアプリケーショ
ンに当てはまる。
【0019】しかし、タスクが複数個存在した場合、i
mprecise computationではオプシ
ョナルな部分をスケジュールするためには、非線形計画
法やマルコフ決定過程など大掛かりな数学的道具を必要
とする。また、imprecise computat
ionでは、スケジューリングを行うのに要する時間
が、タスクの個数について指数的に増加するので、組み
込みシステムのようにシステム自体は小規模だが、多く
のタスクが存在する場合への適用は困難である。
mprecise computationではオプシ
ョナルな部分をスケジュールするためには、非線形計画
法やマルコフ決定過程など大掛かりな数学的道具を必要
とする。また、imprecise computat
ionでは、スケジューリングを行うのに要する時間
が、タスクの個数について指数的に増加するので、組み
込みシステムのようにシステム自体は小規模だが、多く
のタスクが存在する場合への適用は困難である。
【0020】本発明は、上記のような従来技術の問題点
を解決するために提案されたもので、その目的は、優先
順位スケジューリングを用いながら、CPUを経済的に
活用しつつ、所望のサービス品質に対応するタスクスケ
ジューリングを実現することである。また、本発明の他
の目的は、従来のタスクスケジューリング装置を用いた
システムへの導入が容易なタスクスケジューリング装置
を提供することである。
を解決するために提案されたもので、その目的は、優先
順位スケジューリングを用いながら、CPUを経済的に
活用しつつ、所望のサービス品質に対応するタスクスケ
ジューリングを実現することである。また、本発明の他
の目的は、従来のタスクスケジューリング装置を用いた
システムへの導入が容易なタスクスケジューリング装置
を提供することである。
【0021】
【課題を解決するための手段】上記の目的を達成するた
め、請求項1のタスクスケジューリング装置は、与えら
れた複数のタスクを、サービス品質を満足するために必
ず実行すべき必須部分と、可能ならば実行すべきオプシ
ョン部分に区分する区分手段と、各タスクの前記必須部
分のスケジューリングと、各タスクの前記オプション部
分のスケジューリングを行うスケジューリング手段と、
を有することを特徴とする。請求項7のタスクスケジュ
ーリング方法は、請求項1の発明を方法の観点から把握
したものであって、与えられた複数のタスクを、サービ
ス品質を満足するために必ず実行すべき必須部分と、可
能ならば実行すべきオプション部分に区分するステップ
と、各タスクの前記必須部分のスケジューリングと、各
タスクの前記オプション部分のスケジューリングを行う
ステップと、を含むことを特徴とする。
め、請求項1のタスクスケジューリング装置は、与えら
れた複数のタスクを、サービス品質を満足するために必
ず実行すべき必須部分と、可能ならば実行すべきオプシ
ョン部分に区分する区分手段と、各タスクの前記必須部
分のスケジューリングと、各タスクの前記オプション部
分のスケジューリングを行うスケジューリング手段と、
を有することを特徴とする。請求項7のタスクスケジュ
ーリング方法は、請求項1の発明を方法の観点から把握
したものであって、与えられた複数のタスクを、サービ
ス品質を満足するために必ず実行すべき必須部分と、可
能ならば実行すべきオプション部分に区分するステップ
と、各タスクの前記必須部分のスケジューリングと、各
タスクの前記オプション部分のスケジューリングを行う
ステップと、を含むことを特徴とする。
【0022】請求項1,7の発明では、サービス品質を
指定することができ、タスクは、指定されたサービス品
質を満足するのに必須な必須部分と、それ以外のオプシ
ョン部分に区分される。そして、まず、必須部分のスケ
ジューリングを、レートモノトニック方式のような従来
の固定優先順位によって行う。レートモノトニック方式
のような従来のリアルタイムスケジューリング理論を用
いた部分は厳密なスケジューリング可能性解析が可能で
あり、このようなスケジューリングを必須部分に適用す
ることによって、サービス品質が確実に保証できる。オ
プション部分は、必須部分の実行が終了してなおかつ、
CPU時間が余る場合に限って実行する。このため、マ
ルチメディア・ネットワークなどにおいて負荷が過剰の
場合も、特に指定されたサービス品質に係る必須部分は
他の部分より優先実行されるので、サービス品質が保証
される。必須部分以外のオプション部分もCPU時間に
余裕がある場合は実行されるので、CPUが経済的・効
率的に有効活用され、サービス品質が一層向上する。
指定することができ、タスクは、指定されたサービス品
質を満足するのに必須な必須部分と、それ以外のオプシ
ョン部分に区分される。そして、まず、必須部分のスケ
ジューリングを、レートモノトニック方式のような従来
の固定優先順位によって行う。レートモノトニック方式
のような従来のリアルタイムスケジューリング理論を用
いた部分は厳密なスケジューリング可能性解析が可能で
あり、このようなスケジューリングを必須部分に適用す
ることによって、サービス品質が確実に保証できる。オ
プション部分は、必須部分の実行が終了してなおかつ、
CPU時間が余る場合に限って実行する。このため、マ
ルチメディア・ネットワークなどにおいて負荷が過剰の
場合も、特に指定されたサービス品質に係る必須部分は
他の部分より優先実行されるので、サービス品質が保証
される。必須部分以外のオプション部分もCPU時間に
余裕がある場合は実行されるので、CPUが経済的・効
率的に有効活用され、サービス品質が一層向上する。
【0023】請求項2の発明は、請求項1記載のタスク
スケジューリング装置において、前記スケジューリング
手段は、必須部分の優先順位をオプション部分の優先順
位よりも高く設定し、優先順位の高いタスクにCPUの
実行権を順次与え、全ての必須部分の実行が終了した場
合に、オプション部分を実行することを特徴とする。
スケジューリング装置において、前記スケジューリング
手段は、必須部分の優先順位をオプション部分の優先順
位よりも高く設定し、優先順位の高いタスクにCPUの
実行権を順次与え、全ての必須部分の実行が終了した場
合に、オプション部分を実行することを特徴とする。
【0024】請求項2の発明では、優先順位を可変とし
ておき、必須部分の優先順位をオプション部分よりも高
くしておく。この状態で、固定優先順位のスケジューリ
ングを行うことにより、必須部分のみが先に実行され
る。必須部分の実行が終了した場合は、今度はオプショ
ン部分が実行対象となる。このようにすれば、必須部分
とオプション部分に、一貫して固定優先順位スケジュー
リングを適用できる。このため、固定優先順位スケジュ
ーリングを用いた従来の組み込みシステムに、本発明を
適用しようとする場合も、最小限の追加・変更で済む。
ておき、必須部分の優先順位をオプション部分よりも高
くしておく。この状態で、固定優先順位のスケジューリ
ングを行うことにより、必須部分のみが先に実行され
る。必須部分の実行が終了した場合は、今度はオプショ
ン部分が実行対象となる。このようにすれば、必須部分
とオプション部分に、一貫して固定優先順位スケジュー
リングを適用できる。このため、固定優先順位スケジュ
ーリングを用いた従来の組み込みシステムに、本発明を
適用しようとする場合も、最小限の追加・変更で済む。
【0025】請求項3の発明は、請求項1又は2記載の
タスクスケジューリング装置において、区分された前記
オプション部分をスケジューリングするためのサブスケ
ジューリング手段を有することを特徴とする。請求項3
の発明では、オプション部分のスケジューリングを専用
のサブスケジューラに任せるので、必須部分をスケジュ
ーリングする主なスケジューラの負担が軽減され、より
経済的なスケジューリングが可能である。
タスクスケジューリング装置において、区分された前記
オプション部分をスケジューリングするためのサブスケ
ジューリング手段を有することを特徴とする。請求項3
の発明では、オプション部分のスケジューリングを専用
のサブスケジューラに任せるので、必須部分をスケジュ
ーリングする主なスケジューラの負担が軽減され、より
経済的なスケジューリングが可能である。
【0026】請求項4の発明は、請求項1,2又は3記
載のタスクスケジューリング装置において、区分された
必須部分の実行所要時間を見積る見積手段と、見積られ
た前記実行所要時間に基づいて、指定されたサービス品
質を満足するように各タスクがスケジューリング可能か
否かを判定する判定手段と、を有することを特徴とす
る。請求項4の発明では、必須部分の実行所要時間が見
積られ、さらに、見積られた実行所要時間を用いて、指
定されたサービス品質を満足するように各タスクがスケ
ジューリング可能か否かが判定される。すなわち、指定
されたサービス品質を前提として、スケジューリング可
能かどうかがシステムの稼働前に判断できるので、CP
Uの負担過剰によるシステム障害を事前に回避できる。
なお、見積られた実行所要時間は、指定したサービス品
質が実現できるかどうかや、オプション部分がどのくら
い実行できそうかをユーザなどが判断しようとする場合
に、CPU時間の余裕を容易に判断するために用いても
よい。
載のタスクスケジューリング装置において、区分された
必須部分の実行所要時間を見積る見積手段と、見積られ
た前記実行所要時間に基づいて、指定されたサービス品
質を満足するように各タスクがスケジューリング可能か
否かを判定する判定手段と、を有することを特徴とす
る。請求項4の発明では、必須部分の実行所要時間が見
積られ、さらに、見積られた実行所要時間を用いて、指
定されたサービス品質を満足するように各タスクがスケ
ジューリング可能か否かが判定される。すなわち、指定
されたサービス品質を前提として、スケジューリング可
能かどうかがシステムの稼働前に判断できるので、CP
Uの負担過剰によるシステム障害を事前に回避できる。
なお、見積られた実行所要時間は、指定したサービス品
質が実現できるかどうかや、オプション部分がどのくら
い実行できそうかをユーザなどが判断しようとする場合
に、CPU時間の余裕を容易に判断するために用いても
よい。
【0027】請求項5の発明は、請求項4記載のタスク
スケジューリング装置において、サービス品質と、タス
ク中の必須部分と、当該必須部分の実行所要時間との対
応関係をあらかじめ記憶させたデータベースを有し、前
記区分手段及び前記見積手段は、前記データベースに記
憶された対応関係を参照することによって、前記タスク
の区分及び前記実行所要時間の見積を行うように構成さ
れたことを特徴とする。請求項5の発明では、あらかじ
めデータベースに記憶させた情報を用いて、サービス品
質から必須部分を定めたり、必須部分の実行所要時間を
得ることができるので、処理が正確かつ迅速に行われ
る。
スケジューリング装置において、サービス品質と、タス
ク中の必須部分と、当該必須部分の実行所要時間との対
応関係をあらかじめ記憶させたデータベースを有し、前
記区分手段及び前記見積手段は、前記データベースに記
憶された対応関係を参照することによって、前記タスク
の区分及び前記実行所要時間の見積を行うように構成さ
れたことを特徴とする。請求項5の発明では、あらかじ
めデータベースに記憶させた情報を用いて、サービス品
質から必須部分を定めたり、必須部分の実行所要時間を
得ることができるので、処理が正確かつ迅速に行われ
る。
【0028】請求項6の発明は、請求項1,2,3,4
又は5記載のタスクスケジューリング装置において、前
記スケジューリング手段及び前記サブスケジューリング
手段のうち少なくとも一方は、所定量のCPU時間を与
えた場合に各タスクの実行によって生じる効用を、あら
かじめ所定の基準で計算したデータを記憶させた第2の
データベースを用い、次に実行するタスクを複数のタス
クから選択する場合に、前記複数のタスクのそれぞれに
CPU時間を与えた場合の効用を前記第2のデータベー
スから参照し、当該効用が最大のタスクを次に実行する
タスクとして選択するように構成されたことを特徴とす
る。請求項8の発明は、請求項6の発明を方法の観点か
ら把握したものであって、請求項7記載のタスクスケジ
ューリング方法において、前記スケジューリングの際
に、所定量のCPU時間を与えた場合に各タスクの実行
によって生じる効用を、あらかじめ所定の基準で計算し
たデータを記憶させた第2のデータベースを用い、次に
実行するタスクを複数のタスクから選択する場合に、前
記複数のタスクのそれぞれにCPU時間を与えた場合の
効用を前記第2のデータベースから参照し、当該効用が
最大のタスクを次に実行するタスクとして選択すること
を特徴とする。請求項6,8の発明では、CPU時間を
与えた場合の効用(効果)が最大のタスクが実行される
ので、システムの性能が最大限に発揮される。
又は5記載のタスクスケジューリング装置において、前
記スケジューリング手段及び前記サブスケジューリング
手段のうち少なくとも一方は、所定量のCPU時間を与
えた場合に各タスクの実行によって生じる効用を、あら
かじめ所定の基準で計算したデータを記憶させた第2の
データベースを用い、次に実行するタスクを複数のタス
クから選択する場合に、前記複数のタスクのそれぞれに
CPU時間を与えた場合の効用を前記第2のデータベー
スから参照し、当該効用が最大のタスクを次に実行する
タスクとして選択するように構成されたことを特徴とす
る。請求項8の発明は、請求項6の発明を方法の観点か
ら把握したものであって、請求項7記載のタスクスケジ
ューリング方法において、前記スケジューリングの際
に、所定量のCPU時間を与えた場合に各タスクの実行
によって生じる効用を、あらかじめ所定の基準で計算し
たデータを記憶させた第2のデータベースを用い、次に
実行するタスクを複数のタスクから選択する場合に、前
記複数のタスクのそれぞれにCPU時間を与えた場合の
効用を前記第2のデータベースから参照し、当該効用が
最大のタスクを次に実行するタスクとして選択すること
を特徴とする。請求項6,8の発明では、CPU時間を
与えた場合の効用(効果)が最大のタスクが実行される
ので、システムの性能が最大限に発揮される。
【0029】
【発明の実施の形態】以下、本発明の複数の実施形態に
ついて、図面を参照して詳細に説明する。
ついて、図面を参照して詳細に説明する。
【0030】1.第1実施形態 (1)構成 図1は、第1実施形態の全体構成を示すブロック図であ
り、具体的には、本発明によるスケジューリング装置と
ネットワーク及び周辺装置、典型的にはインターネット
端末やビデオオンデマンドなどのマルチメディア機器で
ある。ここでは説明を具体的にするため、ネットワーク
に接続されたマルチメディアクライアント・サーバシス
テムを題材にとり、図1のシステムは、マルチメディア
サーバ105、複数のマルチメディアクライアント10
7(請求項1にいうタスクスケジューリング装置に相当
するもの)、さらにそれらの間のネットワーク103な
どからなるものとする。
り、具体的には、本発明によるスケジューリング装置と
ネットワーク及び周辺装置、典型的にはインターネット
端末やビデオオンデマンドなどのマルチメディア機器で
ある。ここでは説明を具体的にするため、ネットワーク
に接続されたマルチメディアクライアント・サーバシス
テムを題材にとり、図1のシステムは、マルチメディア
サーバ105、複数のマルチメディアクライアント10
7(請求項1にいうタスクスケジューリング装置に相当
するもの)、さらにそれらの間のネットワーク103な
どからなるものとする。
【0031】マルチメディアサーバ105は、CPU1
10とメモリ112、タスクのスケジューラ114、ス
ケジューリング可能かどうかの判定部116、大規模な
DVDや光ディスクドライブなどからなる記憶装置(ス
トレージ)101を持ち、ネットワーク103で接続さ
れている。
10とメモリ112、タスクのスケジューラ114、ス
ケジューリング可能かどうかの判定部116、大規模な
DVDや光ディスクドライブなどからなる記憶装置(ス
トレージ)101を持ち、ネットワーク103で接続さ
れている。
【0032】マルチメディアクライアント107も、C
PU120とメモリ122、タスクのスケジューラ12
4、スケジューリング可能かどうかの判定部126を持
つ。さらに、クライアント107は、マルチメディアデ
ータの再生・表示用に、ディスプレー134・スピーカ
136などのAV機器に接続されている。なお、マルチ
メディアクライアント107も、ハードディスクドライ
ブ(HDD)など二次の補助記憶132を有し、マルチ
メディアサーバ105からのデータを格納する場合があ
る。マルチメディアクライアント107は、ネットワー
ク103を経由して、マルチメディアサーバ105とつ
ながっている。
PU120とメモリ122、タスクのスケジューラ12
4、スケジューリング可能かどうかの判定部126を持
つ。さらに、クライアント107は、マルチメディアデ
ータの再生・表示用に、ディスプレー134・スピーカ
136などのAV機器に接続されている。なお、マルチ
メディアクライアント107も、ハードディスクドライ
ブ(HDD)など二次の補助記憶132を有し、マルチ
メディアサーバ105からのデータを格納する場合があ
る。マルチメディアクライアント107は、ネットワー
ク103を経由して、マルチメディアサーバ105とつ
ながっている。
【0033】なお、ここでは、動画データ・音声データ
などのメディアデータの記録・再生を、コンピュータに
よって制御・統合するシステムをマルチメディアシステ
ムと呼んでいる。さらにここでは、マルチメディアシス
テムはスタンドアローンではなく、ネットワークによっ
て結合されていると想定している。このようなシステム
において、動画データ・音声データなどの送受信やそれ
に付随したデータの圧縮・伸長などが典型的なマルチメ
ディアタスクである。サーバーからは毎秒30フレーム
送り出される動画データなどがこれにあたる。この場合
の周期は33msで、一つのフレームをどの程度のサー
ビス品質で再生するかによって、CPU消費時間は異な
る。
などのメディアデータの記録・再生を、コンピュータに
よって制御・統合するシステムをマルチメディアシステ
ムと呼んでいる。さらにここでは、マルチメディアシス
テムはスタンドアローンではなく、ネットワークによっ
て結合されていると想定している。このようなシステム
において、動画データ・音声データなどの送受信やそれ
に付随したデータの圧縮・伸長などが典型的なマルチメ
ディアタスクである。サーバーからは毎秒30フレーム
送り出される動画データなどがこれにあたる。この場合
の周期は33msで、一つのフレームをどの程度のサー
ビス品質で再生するかによって、CPU消費時間は異な
る。
【0034】このようなデータを処理するマルチメディ
アアプリケーションでは、サーバからクライアントまで
の間で、サービス品質(QoS:Quality of
Service)の保証が要求される。QoSの保証
には、サーバやクライアント以外にも、ネットワークノ
ードの役割が大きいが、ここでは、主にサーバ・クライ
アントにおけるスケジューリングについて説明する。
アアプリケーションでは、サーバからクライアントまで
の間で、サービス品質(QoS:Quality of
Service)の保証が要求される。QoSの保証
には、サーバやクライアント以外にも、ネットワークノ
ードの役割が大きいが、ここでは、主にサーバ・クライ
アントにおけるスケジューリングについて説明する。
【0035】次に、図2は、クライアント107の具体
的な構成を示す機能ブロック図であり、スケジューラ1
24の構成要素を具体的にし、CPU120など、他の
要素と共に示したものである。すなわち、クライアント
107は、請求項1のタスクスケジューリング装置に対
応するもので、タスクの実行によって提供されるべきサ
ービス品質を指定するための指定手段3を有する。ま
た、クライアント107は、与えられた各タスクを、指
定されたサービス品質を満足するために必ず実行すべき
必須部分と、可能ならば実行すべきオプション部分に区
分する区分手段6と、この区分に用いるデータを格納し
ているシミュレーション結果データベース15(請求項
5にいうデータベースに相当するもの)と、を有する。
的な構成を示す機能ブロック図であり、スケジューラ1
24の構成要素を具体的にし、CPU120など、他の
要素と共に示したものである。すなわち、クライアント
107は、請求項1のタスクスケジューリング装置に対
応するもので、タスクの実行によって提供されるべきサ
ービス品質を指定するための指定手段3を有する。ま
た、クライアント107は、与えられた各タスクを、指
定されたサービス品質を満足するために必ず実行すべき
必須部分と、可能ならば実行すべきオプション部分に区
分する区分手段6と、この区分に用いるデータを格納し
ているシミュレーション結果データベース15(請求項
5にいうデータベースに相当するもの)と、を有する。
【0036】また、クライアント107は、区分された
必須部分の実行所要時間を見積る見積手段21(請求項
4)と、必須部分のスケジューリングを行い、必須部分
の実行終了後にCPU時間が余る場合に限って、前記オ
プション部分をスケジューリングするスケジューリング
部39(請求項1にいうスケジューリング手段に相当す
るもの)と、を有する。また、クライアント107は、
指定されたサービス品質を満足するように各タスクがス
ケジューリング可能か否かを判定する判定部126(請
求項4にいう判定手段に相当するもの)を有する。
必須部分の実行所要時間を見積る見積手段21(請求項
4)と、必須部分のスケジューリングを行い、必須部分
の実行終了後にCPU時間が余る場合に限って、前記オ
プション部分をスケジューリングするスケジューリング
部39(請求項1にいうスケジューリング手段に相当す
るもの)と、を有する。また、クライアント107は、
指定されたサービス品質を満足するように各タスクがス
ケジューリング可能か否かを判定する判定部126(請
求項4にいう判定手段に相当するもの)を有する。
【0037】また、クライアント107は、ネットワー
ク機器27から到着するタスクを検出する到着タスク検
出部33と、スケジューリング部39によるスケジュー
リングにしたがって、タスクを実行するCPU120
と、CPU120とともに情報処理や情報出力を行うた
めのメモリ122、ハードディスクユニット(HDD)
132、スピーカ136及びディスプレイ134を有す
る。
ク機器27から到着するタスクを検出する到着タスク検
出部33と、スケジューリング部39によるスケジュー
リングにしたがって、タスクを実行するCPU120
と、CPU120とともに情報処理や情報出力を行うた
めのメモリ122、ハードディスクユニット(HDD)
132、スピーカ136及びディスプレイ134を有す
る。
【0038】(2)作用及び効果 上記のような構成を有する第1実施形態は、次のような
作用を有する。すなわち、マルチメディアクライアント
107からは、マルチメディアサーバ105に対し、デ
ータの送信・停止・再送などの要求が送られる。マルチ
メディアサーバ105は、マルチメディアクライアント
107からの要求により、マルチメディアデータを記憶
装置101から検索し、ネットワーク103を通じてク
ライアント107に送信する。マルチメディアサーバ1
05からのデータの送信は、多くの場合、データを処理
するタスクの周期的な実行を必要とする。
作用を有する。すなわち、マルチメディアクライアント
107からは、マルチメディアサーバ105に対し、デ
ータの送信・停止・再送などの要求が送られる。マルチ
メディアサーバ105は、マルチメディアクライアント
107からの要求により、マルチメディアデータを記憶
装置101から検索し、ネットワーク103を通じてク
ライアント107に送信する。マルチメディアサーバ1
05からのデータの送信は、多くの場合、データを処理
するタスクの周期的な実行を必要とする。
【0039】マルチメディアサーバ105は、多数のマ
ルチメディアクライアント107からの要求に対応する
必要がある。これらのマルチメディアクライアント10
7の要求はユーザのサービス品質指定を反映したサービ
ス品質指定を持つので、マルチメディアサーバ105で
も、サービス品質保証を目的としたタスクスケジューリ
ングが必要である。またマルチメディアクライアント1
07は、ひとつのマルチメディアサーバ105から複数
のデータストリームを受信する場合も、複数のマルチメ
ディアサーバー105から同時にデータを受信する場合
もある。マルチメディアクライアント107のスケジュ
ーラは、それぞれのデータストリームに対し、ユーザが
指定したサービス品質が提供できるよう、タスクスケジ
ューリングを行う。このように、マルチメディアサーバ
105・マルチメディアクライアント107は、共にサ
ービス品質を保証するためのスケジューリングを必要と
するが、両者で共通のスケジューリング手法が適用でき
ること、構成が簡単であること、本実施形態での例が組
み込みシステムであることから、ここではマルチメディ
アクライアント107のCPUでのタスクスケジューリ
ングについて説明する。
ルチメディアクライアント107からの要求に対応する
必要がある。これらのマルチメディアクライアント10
7の要求はユーザのサービス品質指定を反映したサービ
ス品質指定を持つので、マルチメディアサーバ105で
も、サービス品質保証を目的としたタスクスケジューリ
ングが必要である。またマルチメディアクライアント1
07は、ひとつのマルチメディアサーバ105から複数
のデータストリームを受信する場合も、複数のマルチメ
ディアサーバー105から同時にデータを受信する場合
もある。マルチメディアクライアント107のスケジュ
ーラは、それぞれのデータストリームに対し、ユーザが
指定したサービス品質が提供できるよう、タスクスケジ
ューリングを行う。このように、マルチメディアサーバ
105・マルチメディアクライアント107は、共にサ
ービス品質を保証するためのスケジューリングを必要と
するが、両者で共通のスケジューリング手法が適用でき
ること、構成が簡単であること、本実施形態での例が組
み込みシステムであることから、ここではマルチメディ
アクライアント107のCPUでのタスクスケジューリ
ングについて説明する。
【0040】すなわち、マルチメディアクライアント1
07のCPUのスケジューラ124に求められるのは、
サービス品質指定を充足しつつ過負荷時にも破局的な結
果をもたらさないよう、マルチメディアアプリケーショ
ンをスケジューリングすることである。スケジューラ1
24の構成は、レートモノトニックスケジューリングを
ベースにしたものである。
07のCPUのスケジューラ124に求められるのは、
サービス品質指定を充足しつつ過負荷時にも破局的な結
果をもたらさないよう、マルチメディアアプリケーショ
ンをスケジューリングすることである。スケジューラ1
24の構成は、レートモノトニックスケジューリングを
ベースにしたものである。
【0041】(2−1)サービス品質の指定 まず、指定手段3により、サービス品質の指定が行われ
る。サービス品質の指定は、ユーザがその都度行っても
よいが、タスクやデータの種類によってデフォルト値が
自動的に選択されるようにしてもよい。ユーザによるサ
ービス品質指定は、以下により、本スケジューリング装
置に反映される。なお、サービス品質の例は、動画にお
ける1秒間のフレーム数や、音声におけるサンプリング
周波数などである。多くのタスクでは割り当てられたC
PU時間によって、サービス品質が定まると考えられ
る。ユーザの指定したサービス品質を保証するために必
要なCPU使用時間を、タスクの中での必須部分の消費
するCPU使用時間として設定する。
る。サービス品質の指定は、ユーザがその都度行っても
よいが、タスクやデータの種類によってデフォルト値が
自動的に選択されるようにしてもよい。ユーザによるサ
ービス品質指定は、以下により、本スケジューリング装
置に反映される。なお、サービス品質の例は、動画にお
ける1秒間のフレーム数や、音声におけるサンプリング
周波数などである。多くのタスクでは割り当てられたC
PU時間によって、サービス品質が定まると考えられ
る。ユーザの指定したサービス品質を保証するために必
要なCPU使用時間を、タスクの中での必須部分の消費
するCPU使用時間として設定する。
【0042】(2−2)タスクの区分 サービス品質が指定されると、区分手段6が、タスク
を、必須部分とオプション部分に区分する。この区分
は、例えば、次のように行うことができる。すなわち、
シミュレーション等を行うことによって、タスク中どこ
まで実行すればどの程度のサービス品質が得られるかの
データを収集してデータベース化し、要求されるサービ
ス品質と必須部分やその実行所要時間との対応関係を判
定しておく。この場合、必須部分の実行所要時間は、シ
ミュレーションで求めるだけでなく、プログラムの実行
時間を測定する従来の装置を用いて得ることができる。
そして、必須部分の量と実行所要時間との対応関係もデ
ータベースに保存しておく。
を、必須部分とオプション部分に区分する。この区分
は、例えば、次のように行うことができる。すなわち、
シミュレーション等を行うことによって、タスク中どこ
まで実行すればどの程度のサービス品質が得られるかの
データを収集してデータベース化し、要求されるサービ
ス品質と必須部分やその実行所要時間との対応関係を判
定しておく。この場合、必須部分の実行所要時間は、シ
ミュレーションで求めるだけでなく、プログラムの実行
時間を測定する従来の装置を用いて得ることができる。
そして、必須部分の量と実行所要時間との対応関係もデ
ータベースに保存しておく。
【0043】このような情報は、シミュレーション結果
データベース15(図2)に記憶させておく。ユーザが
サービス品質を指定すると、区分手段6がデータベース
15を照会してどの部分を必須部分に区分するかを決定
する。通常は、必須部分はタスクの最初の部分であり、
オプション部分はタスクのその後の部分である。さら
に、見積手段21が、必須部分ごとの実行所要時間を前
記データベースから読み出して実行時間を見積ることに
よって、サービス品質を充足するために必要なCPU時
間を計算する。
データベース15(図2)に記憶させておく。ユーザが
サービス品質を指定すると、区分手段6がデータベース
15を照会してどの部分を必須部分に区分するかを決定
する。通常は、必須部分はタスクの最初の部分であり、
オプション部分はタスクのその後の部分である。さら
に、見積手段21が、必須部分ごとの実行所要時間を前
記データベースから読み出して実行時間を見積ることに
よって、サービス品質を充足するために必要なCPU時
間を計算する。
【0044】なお、判定部126は、指定されたサービ
ス品質を満足するように各タスクがスケジューリング可
能か否かを判定し、可能と判定された場合に次のスケジ
ューリングが行われる(請求項4)。このように、第1
実施形態では、指定されたサービス品質を前提として、
スケジューリング可能かどうかがシステムの稼働前に判
断できるので、CPUの負担過剰によるシステム障害を
事前に回避できる。
ス品質を満足するように各タスクがスケジューリング可
能か否かを判定し、可能と判定された場合に次のスケジ
ューリングが行われる(請求項4)。このように、第1
実施形態では、指定されたサービス品質を前提として、
スケジューリング可能かどうかがシステムの稼働前に判
断できるので、CPUの負担過剰によるシステム障害を
事前に回避できる。
【0045】(2−3)スケジューリング 続いて、スケジューリング部39が、各タスクの必須部
分について、レートモノトニック方式に従ってスケジュ
ーリングを行う。レートモノトニックスケジューリング
は、スケジューリング可能性の厳密な判定が可能なの
で、必ず実行されるべき部分が実際スケジューリング可
能であること、言い換えれば指定されたサービス品質が
提供できることを厳密に保証できる。レートモノトニッ
ク方式では、スケジューリング部39は、必須部分の優
先順位をオプション部分の優先順位よりも高く設定し、
優先順位の高いタスクにCPUの実行権を順次与え、全
ての必須部分の実行が終了した場合に、オプション部分
を実行する(請求項2)。
分について、レートモノトニック方式に従ってスケジュ
ーリングを行う。レートモノトニックスケジューリング
は、スケジューリング可能性の厳密な判定が可能なの
で、必ず実行されるべき部分が実際スケジューリング可
能であること、言い換えれば指定されたサービス品質が
提供できることを厳密に保証できる。レートモノトニッ
ク方式では、スケジューリング部39は、必須部分の優
先順位をオプション部分の優先順位よりも高く設定し、
優先順位の高いタスクにCPUの実行権を順次与え、全
ての必須部分の実行が終了した場合に、オプション部分
を実行する(請求項2)。
【0046】すなわち、スケジューリング部39は、ま
ず、必須部分の優先順位を高く設定し、オプション部分
の優先順位を低く設定する。ここで、図3は、必須部分
とオプション部分に区分されたタスクを示す概念図であ
る。ここでは、3つのタスクτ1 、τ2 、τ3 が存在
し、タスクτ1 は必須部分τ′1及びオプション部分τ"
1に区分され、タスクτ2 は必須部分τ′2及びオプショ
ン部分τ"2に区分され、タスクτ3 は必須部分を含まず
にオプション部分τ"3のみから構成されるものとする。
この場合、実行対象は、図3に示すように、優先順位が
高い必須部分310と優先順位が低いオプション部分3
20の二つに分かれる。必須部分310は具体的には、
必須部分τ′1(312)及びτ′2(314)で、ユー
ザのサービス品質指定を保証するために必ず実行する必
要のある部分である。オプション部分320は具体的に
は、オプション部分τ"1(322)、τ"2(324)及
びτ"3(326)で、必須部分必須部分τ′1(31
2)及びτ′2(314)の実行が終了して余裕がある
場合に限り実行対象となる。
ず、必須部分の優先順位を高く設定し、オプション部分
の優先順位を低く設定する。ここで、図3は、必須部分
とオプション部分に区分されたタスクを示す概念図であ
る。ここでは、3つのタスクτ1 、τ2 、τ3 が存在
し、タスクτ1 は必須部分τ′1及びオプション部分τ"
1に区分され、タスクτ2 は必須部分τ′2及びオプショ
ン部分τ"2に区分され、タスクτ3 は必須部分を含まず
にオプション部分τ"3のみから構成されるものとする。
この場合、実行対象は、図3に示すように、優先順位が
高い必須部分310と優先順位が低いオプション部分3
20の二つに分かれる。必須部分310は具体的には、
必須部分τ′1(312)及びτ′2(314)で、ユー
ザのサービス品質指定を保証するために必ず実行する必
要のある部分である。オプション部分320は具体的に
は、オプション部分τ"1(322)、τ"2(324)及
びτ"3(326)で、必須部分必須部分τ′1(31
2)及びτ′2(314)の実行が終了して余裕がある
場合に限り実行対象となる。
【0047】タスクτ1 (312),τ2 (312)
が、ユーザ品質指定を保証するに十分なだけ実行してい
ない間は、必須部分τ′1(312),と必須部分τ′2
(312)を対象としてレートモノトニック方式でス
ケジューリングが行われる。この時点では、矢印316
及び318のように、必須部分τ′1(312),と必
須部分τ′2 (312)との間でタスクの切り替えが
行われる。しかし、タスクτ1 ,τ2 について、ユーザ
品質指定を保証するに十分なだけ必須部分τ′1及び
τ′2を実行したら、その後、実行対象タスクの切り替
えが矢印331,332のように行われ、オプション部
分τ"1、τ"2、τ"3が、高い優先順位で実行されるタス
クがない間だけ、実行される。
が、ユーザ品質指定を保証するに十分なだけ実行してい
ない間は、必須部分τ′1(312),と必須部分τ′2
(312)を対象としてレートモノトニック方式でス
ケジューリングが行われる。この時点では、矢印316
及び318のように、必須部分τ′1(312),と必
須部分τ′2 (312)との間でタスクの切り替えが
行われる。しかし、タスクτ1 ,τ2 について、ユーザ
品質指定を保証するに十分なだけ必須部分τ′1及び
τ′2を実行したら、その後、実行対象タスクの切り替
えが矢印331,332のように行われ、オプション部
分τ"1、τ"2、τ"3が、高い優先順位で実行されるタス
クがない間だけ、実行される。
【0048】図4は、本実施形態におけるスケジューリ
ングの処理の流れを表したフロー図である。すなわち、
スケジューリング部39は、現在実行可能なタスクのう
ち、最も高い優先順位の与えられたタスクを選びそのタ
スクにCPUの実行権を与える(ステップ420)。タ
スクはCPU120で実行されるが(ステップ43
0)、その間にネットワーク機器27から新しいタスク
が届いた場合は(ステップ440)、その到着を到着タ
スク検出部33が検出し、その新しく到着したタスクも
含めて優先順位最高のものを調べ直す(ステップ42
0)。また、CPUで実行していたタスクが終了したら
(ステップ450)、残りのタスクの中で優先順位最高
のものを選び直す(ステップ420)。また、高い優先
順位で実行される時間が終了したら(ステップ46
0)、必須部分の優先順位を下げた後(ステップ47
0)、どのタスクにCPUを与えるか決定するために優
先順位を調べ直す(ステップ420)。
ングの処理の流れを表したフロー図である。すなわち、
スケジューリング部39は、現在実行可能なタスクのう
ち、最も高い優先順位の与えられたタスクを選びそのタ
スクにCPUの実行権を与える(ステップ420)。タ
スクはCPU120で実行されるが(ステップ43
0)、その間にネットワーク機器27から新しいタスク
が届いた場合は(ステップ440)、その到着を到着タ
スク検出部33が検出し、その新しく到着したタスクも
含めて優先順位最高のものを調べ直す(ステップ42
0)。また、CPUで実行していたタスクが終了したら
(ステップ450)、残りのタスクの中で優先順位最高
のものを選び直す(ステップ420)。また、高い優先
順位で実行される時間が終了したら(ステップ46
0)、必須部分の優先順位を下げた後(ステップ47
0)、どのタスクにCPUを与えるか決定するために優
先順位を調べ直す(ステップ420)。
【0049】例えば、優先順位として、当初、必須部分
τ′1に1、必須部分τ′2に2、オプション部分τ"1に
3、オプション部分τ"2に4、オプション部分τ"3に5
を設定したとする。この場合、当初は、優先順位が高い
必須部分τ′1又は必須部分τ′2のうち、待ち状態では
なく実行可能状態にあるものが交互に実行される。もち
ろん、必須部分τ′1及びτ′2の双方が待ち状態の時
は、オプション部分τ"1などを実行してよい。必須部分
のための時間帯が終了すると、必須部分τ′1及びτ′2
はもはやCPUを要求しないので、実行対象がオプショ
ン部分τ"1、τ"2、τ"3に移る。なお、他の態様とし
て、必須部分τ′1及びτ′2の優先順位をそれぞれ6と
7に引き下げることによって優先順位を逆転させる手法
も考えられる。このようにすると、オプション部分τ"
1、τ"2、τ"3の優先順位の方が、必須部分τ′1及び
τ′2の優先順位よりも高くなるので、実行対象がオプ
ション部分τ"1、τ"2、τ"3に移る。
τ′1に1、必須部分τ′2に2、オプション部分τ"1に
3、オプション部分τ"2に4、オプション部分τ"3に5
を設定したとする。この場合、当初は、優先順位が高い
必須部分τ′1又は必須部分τ′2のうち、待ち状態では
なく実行可能状態にあるものが交互に実行される。もち
ろん、必須部分τ′1及びτ′2の双方が待ち状態の時
は、オプション部分τ"1などを実行してよい。必須部分
のための時間帯が終了すると、必須部分τ′1及びτ′2
はもはやCPUを要求しないので、実行対象がオプショ
ン部分τ"1、τ"2、τ"3に移る。なお、他の態様とし
て、必須部分τ′1及びτ′2の優先順位をそれぞれ6と
7に引き下げることによって優先順位を逆転させる手法
も考えられる。このようにすると、オプション部分τ"
1、τ"2、τ"3の優先順位の方が、必須部分τ′1及び
τ′2の優先順位よりも高くなるので、実行対象がオプ
ション部分τ"1、τ"2、τ"3に移る。
【0050】(2−4)スケジューリングに適した条件 なお、第1実施形態によるスケジューリングに適した条
件について説明する。各マルチメディアタスクτi (1
≦i≦n)が周期的に発生するとし、その周期をTiで
表わす。ユーザのサービス品質指定を満足するために最
低限実行する必要がある部分を実行するのに必要なCP
U使用時間を、Ci とする。ここで、Ci ≦Ti を仮定
するのは当然である。なぜなら、もしCi >Ti なら
ば、タスクの次の発生までのCPU時間を全てこのタス
クに割り当てても、ユーザが指定するサービス品質は得
られず、ユーザのサービス品質指定に達しないからであ
る。タスクの新しいインスタンスが発生した場合は、古
いインスタンスを破棄することも当然であり、我々はス
ケジューラにこの性質を仮定する。
件について説明する。各マルチメディアタスクτi (1
≦i≦n)が周期的に発生するとし、その周期をTiで
表わす。ユーザのサービス品質指定を満足するために最
低限実行する必要がある部分を実行するのに必要なCP
U使用時間を、Ci とする。ここで、Ci ≦Ti を仮定
するのは当然である。なぜなら、もしCi >Ti なら
ば、タスクの次の発生までのCPU時間を全てこのタス
クに割り当てても、ユーザが指定するサービス品質は得
られず、ユーザのサービス品質指定に達しないからであ
る。タスクの新しいインスタンスが発生した場合は、古
いインスタンスを破棄することも当然であり、我々はス
ケジューラにこの性質を仮定する。
【0051】タスクτi の、ユーザのサービス品質指定
を満足するため実行する必要がある部分を必須部分τ′
iで、それ以外の部分をオプション部分τ"iで表わす。
以下では説明を簡単にするため、必須部分τ′i,オプ
ション部分τ"iをタスクであるかのように議論する。以
下の議論では、タスク自体よりその消費時間を問題にし
ているので、必須部分τ′i,オプション部分τ"iを導
入することで議論が簡単になるからである。
を満足するため実行する必要がある部分を必須部分τ′
iで、それ以外の部分をオプション部分τ"iで表わす。
以下では説明を簡単にするため、必須部分τ′i,オプ
ション部分τ"iをタスクであるかのように議論する。以
下の議論では、タスク自体よりその消費時間を問題にし
ているので、必須部分τ′i,オプション部分τ"iを導
入することで議論が簡単になるからである。
【0052】次の量をユーザの指定するサービス品質に
関するCPU消費要求と呼び、μで表わす。
関するCPU消費要求と呼び、μで表わす。
【数1】 この値は、個々のタスクが要求するCPU占有割合の合
計であり、個々のタスクのCPU消費要求は、指定され
たサービス品質を確保するために必要なCPU使用時間
を、タスクの発生周期で除したものである。μ>1の場
合は、ユーザのサービス品質指定が実現が不可能である
ことが、直ちに分かる。さらに、前掲Liu−Layl
andの論文でも結果として示されているように、次の
関係が成り立つ場合は、各タスクτi の一部分必須部分
τ′iを、それぞれ周期Ti のタスクとみなし、周期の
短いものほど優先順位を高く設定して、優先順位に従っ
てスケジューリングを行うと、全ての必須部分τ′iは
次の周期までに実行される。
計であり、個々のタスクのCPU消費要求は、指定され
たサービス品質を確保するために必要なCPU使用時間
を、タスクの発生周期で除したものである。μ>1の場
合は、ユーザのサービス品質指定が実現が不可能である
ことが、直ちに分かる。さらに、前掲Liu−Layl
andの論文でも結果として示されているように、次の
関係が成り立つ場合は、各タスクτi の一部分必須部分
τ′iを、それぞれ周期Ti のタスクとみなし、周期の
短いものほど優先順位を高く設定して、優先順位に従っ
てスケジューリングを行うと、全ての必須部分τ′iは
次の周期までに実行される。
【数2】 これは、全てのタスクのCPU使用率の合計が約70%
までであれば、すべてのタスクτi について、指定のサ
ービス品質が提供される、すなわち、サービス品質指定
が必ず実現可能であることを意味する。すなわち、タス
ク数nを無限大にすると、μは0.697に収束する
が、第1実施形態ではμを0.697以下とする。これ
以上にした場合でも特定の条件の場合には、スケジュー
リング可能であるが、
までであれば、すべてのタスクτi について、指定のサ
ービス品質が提供される、すなわち、サービス品質指定
が必ず実現可能であることを意味する。すなわち、タス
ク数nを無限大にすると、μは0.697に収束する
が、第1実施形態ではμを0.697以下とする。これ
以上にした場合でも特定の条件の場合には、スケジュー
リング可能であるが、
【数3】 の場合は、組み合わせ的な性質により実現可能か否かが
微妙に影響されるため、スケジューリング可能であるた
めの必要十分条件を数値的に与えることはできない。こ
の点、安全サイドにたって、ユーザ品質指定の実現可能
性保証を与えるのは、
微妙に影響されるため、スケジューリング可能であるた
めの必要十分条件を数値的に与えることはできない。こ
の点、安全サイドにたって、ユーザ品質指定の実現可能
性保証を与えるのは、
【数4】 の場合に限ることが適当と考えられる。一方で、μを上
記の範囲以外にする場合を含め、実行が必要な部分がレ
ートモノトニック方式でスケジューリング可能かどうか
を判定するための必要十分条件も知られているので、そ
れを利用することも可能である。
記の範囲以外にする場合を含め、実行が必要な部分がレ
ートモノトニック方式でスケジューリング可能かどうか
を判定するための必要十分条件も知られているので、そ
れを利用することも可能である。
【0053】これまで述べてきたのは必須部分τ′iが
一つ以上実行可能状態な場合であり、実行可能な必須部
分τ′iが存在しないとき、オプション部分τ"i達をど
うスケジューリングするか、については、何も述べてい
ない。このような場合のスケジューリング方式は多数考
えられるが、ここでは必須部分τ′iの実行が終了した
時点で、オプション部分τ"iの優先順位を、必須部分
τ′i(1≦i≦n)で最大のものよりもさらに低いも
のに設定する。そのうえで、スケジューリングは、これ
まで通りの優先順位スケジューリングに基づいて行われ
る。この方式の利点は、これまでのシステムをそのまま
でサービス品質制御に転用できることである。この記述
から明らかなように、固定優先順位スケジューリング
(フラットスケジューリング方式)を応用した第1実施
形態は、従来技術とは異なった優れた効果を有するもの
である。特に、第1実施形態は、従来の固定優先順位ス
ケジューリングに、タスクの優先順位変更機能を追加す
ることによって、わずかの変更で実現できる点で優れて
いる。
一つ以上実行可能状態な場合であり、実行可能な必須部
分τ′iが存在しないとき、オプション部分τ"i達をど
うスケジューリングするか、については、何も述べてい
ない。このような場合のスケジューリング方式は多数考
えられるが、ここでは必須部分τ′iの実行が終了した
時点で、オプション部分τ"iの優先順位を、必須部分
τ′i(1≦i≦n)で最大のものよりもさらに低いも
のに設定する。そのうえで、スケジューリングは、これ
まで通りの優先順位スケジューリングに基づいて行われ
る。この方式の利点は、これまでのシステムをそのまま
でサービス品質制御に転用できることである。この記述
から明らかなように、固定優先順位スケジューリング
(フラットスケジューリング方式)を応用した第1実施
形態は、従来技術とは異なった優れた効果を有するもの
である。特に、第1実施形態は、従来の固定優先順位ス
ケジューリングに、タスクの優先順位変更機能を追加す
ることによって、わずかの変更で実現できる点で優れて
いる。
【0054】一方で問題となるのは、どのように優先度
を変更したらよいかである。組み込みシステムでは、コ
スト性能比が重要であり、必須部分τ′iがCPUを使
用していないときでも、できるだけ有効にCPU資源を
利用することが望ましい。
を変更したらよいかである。組み込みシステムでは、コ
スト性能比が重要であり、必須部分τ′iがCPUを使
用していないときでも、できるだけ有効にCPU資源を
利用することが望ましい。
【0055】なお、フラットスケジューリング方式の性
能は、優先順位決定アルゴリズムに依存する側面がある
ので、単にやみくもに優先度を下げるだけでは、ユーザ
にとり好ましいサービス品質を提供することは困難であ
る。一例として、タスク数をnとして、必須部分を終え
たら優先順位をn+1に設定する、などの単純な方法に
限定することは、サービス品質の視点からは必ずしも良
い選択ではない。優先順位を決定するアルゴリズムとし
て種々考えられるが、本来の優先度を考慮したり、タス
クの発生周期を考慮するなど、さまざまな手法がありう
る。選択肢の例として、タスク数をn、必須部分に設定
された優先度がiであったとき、必須部分の実行を終え
たら優先順位を ・n+1に設定する ・n+iに設定する ・2n+1−iに設定する などが考えられるが、他の様々なバリエーションも検討
すべきである。そして、サービス品質の支点からどれが
よい選択であるかは、具体的な適用対象や適用目的に応
じて、実験やシミュレーションなどを行い、具体的に決
定すべきである。
能は、優先順位決定アルゴリズムに依存する側面がある
ので、単にやみくもに優先度を下げるだけでは、ユーザ
にとり好ましいサービス品質を提供することは困難であ
る。一例として、タスク数をnとして、必須部分を終え
たら優先順位をn+1に設定する、などの単純な方法に
限定することは、サービス品質の視点からは必ずしも良
い選択ではない。優先順位を決定するアルゴリズムとし
て種々考えられるが、本来の優先度を考慮したり、タス
クの発生周期を考慮するなど、さまざまな手法がありう
る。選択肢の例として、タスク数をn、必須部分に設定
された優先度がiであったとき、必須部分の実行を終え
たら優先順位を ・n+1に設定する ・n+iに設定する ・2n+1−iに設定する などが考えられるが、他の様々なバリエーションも検討
すべきである。そして、サービス品質の支点からどれが
よい選択であるかは、具体的な適用対象や適用目的に応
じて、実験やシミュレーションなどを行い、具体的に決
定すべきである。
【0056】(2−5)第1実施形態の効果 以上説明したように、第1実施形態によれば、固定優先
順位スケジューリング手法と優先順位調整機能を利用す
ることで、既存のシステムに対する変更を最小限にとど
めつつ、これまでの組み込みシステムでは困難だったマ
ルチメディア・ネットワークアプリケーションにおける
サービス品質保証が可能になる。特に、第1実施形態に
おけるスケジューリング方式は、リアルタイムスケジュ
ーリング理論に根拠を置いており、厳密なサービス品質
を保証できる。
順位スケジューリング手法と優先順位調整機能を利用す
ることで、既存のシステムに対する変更を最小限にとど
めつつ、これまでの組み込みシステムでは困難だったマ
ルチメディア・ネットワークアプリケーションにおける
サービス品質保証が可能になる。特に、第1実施形態に
おけるスケジューリング方式は、リアルタイムスケジュ
ーリング理論に根拠を置いており、厳密なサービス品質
を保証できる。
【0057】すなわち、第1実施形態では、サービス品
質が指定される。タスクは、サービス品質の満足に必須
な必須部分と、それ以外のオプション部分に区分され
る。そして、まず、必須部分のスケジューリングを、レ
ートモノトニック方式のような従来の固定優先順位によ
って行う。レートモノトニック方式のような従来のリア
ルタイムスケジューリング理論を用いた部分は厳密なス
ケジューリング可能性解析が可能であり、このようなス
ケジューリングを必須部分に適用することによって、サ
ービス品質が確実に保証できる(請求項1,7)。オプ
ション部分は、必須部分の実行が終了してなおかつ、C
PU時間が余る場合に限って実行する。このため、マル
チメディア・ネットワークなどにおいて負荷が過剰の場
合も、特に指定されたサービス品質に係る必須部分は他
の部分より優先実行されるので、サービス品質が保証さ
れる。必須部分以外のオプション部分もCPU時間に余
裕がある場合は実行されるので、CPUが経済的・効率
的に有効活用され、サービス品質が一層向上する。
質が指定される。タスクは、サービス品質の満足に必須
な必須部分と、それ以外のオプション部分に区分され
る。そして、まず、必須部分のスケジューリングを、レ
ートモノトニック方式のような従来の固定優先順位によ
って行う。レートモノトニック方式のような従来のリア
ルタイムスケジューリング理論を用いた部分は厳密なス
ケジューリング可能性解析が可能であり、このようなス
ケジューリングを必須部分に適用することによって、サ
ービス品質が確実に保証できる(請求項1,7)。オプ
ション部分は、必須部分の実行が終了してなおかつ、C
PU時間が余る場合に限って実行する。このため、マル
チメディア・ネットワークなどにおいて負荷が過剰の場
合も、特に指定されたサービス品質に係る必須部分は他
の部分より優先実行されるので、サービス品質が保証さ
れる。必須部分以外のオプション部分もCPU時間に余
裕がある場合は実行されるので、CPUが経済的・効率
的に有効活用され、サービス品質が一層向上する。
【0058】また、第1実施形態におけるスケジューリ
ングでは、優先順位を可変としておき、必須部分の優先
順位をオプション部分よりも高くしておく。この状態
で、固定優先順位のスケジューリングを行うことによ
り、必須部分のみが先に実行される。必須部分の実行が
終了した場合は、今度はオプション部分が実行対象とな
る。このようにすれば、必須部分とオプション部分に、
一貫して固定優先順位スケジューリングを適用できる。
このため、固定優先順位スケジューリングを用いた従来
の組み込みシステムに、本発明を適用しようとする場合
も、最小限の追加・変更で済む(請求項2)。
ングでは、優先順位を可変としておき、必須部分の優先
順位をオプション部分よりも高くしておく。この状態
で、固定優先順位のスケジューリングを行うことによ
り、必須部分のみが先に実行される。必須部分の実行が
終了した場合は、今度はオプション部分が実行対象とな
る。このようにすれば、必須部分とオプション部分に、
一貫して固定優先順位スケジューリングを適用できる。
このため、固定優先順位スケジューリングを用いた従来
の組み込みシステムに、本発明を適用しようとする場合
も、最小限の追加・変更で済む(請求項2)。
【0059】また、第1実施形態では、必須部分の実行
所要時間が見積られ、さらに、見積られた実行所要時間
を用いて、指定されたサービス品質を満足するように各
タスクがスケジューリング可能か否かが判定される。す
なわち、指定されたサービス品質を前提として、スケジ
ューリング可能かどうかがシステムの稼働前に判断でき
るので、CPUの負担過剰によるシステム障害を事前に
回避できる(請求項4)。なお、見積られた実行所要時
間は、指定したサービス品質が実現できるかどうかや、
オプション部分がどのくらい実行できそうかをユーザな
どが判断しようとする場合に、CPU時間の余裕を容易
に判断するために用いてもよい。
所要時間が見積られ、さらに、見積られた実行所要時間
を用いて、指定されたサービス品質を満足するように各
タスクがスケジューリング可能か否かが判定される。す
なわち、指定されたサービス品質を前提として、スケジ
ューリング可能かどうかがシステムの稼働前に判断でき
るので、CPUの負担過剰によるシステム障害を事前に
回避できる(請求項4)。なお、見積られた実行所要時
間は、指定したサービス品質が実現できるかどうかや、
オプション部分がどのくらい実行できそうかをユーザな
どが判断しようとする場合に、CPU時間の余裕を容易
に判断するために用いてもよい。
【0060】また、第1実施形態では、あらかじめデー
タベース15に記憶させた情報を用いて、サービス品質
から必須部分を定めたり、必須部分の実行所要時間を得
ることができるので、処理が正確かつ迅速に行われる
(請求項5)。
タベース15に記憶させた情報を用いて、サービス品質
から必須部分を定めたり、必須部分の実行所要時間を得
ることができるので、処理が正確かつ迅速に行われる
(請求項5)。
【0061】特に、第1実施形態は通信ネットワークに
接続されているので、通信ネットワークを経由して画像
や音声などのマルチメディアデータが複数種類送信され
る場合も、画像や音声などに応じた複数のタスクをスケ
ジューリングすることによって、指定されたサービス品
質を保証することができる。
接続されているので、通信ネットワークを経由して画像
や音声などのマルチメディアデータが複数種類送信され
る場合も、画像や音声などに応じた複数のタスクをスケ
ジューリングすることによって、指定されたサービス品
質を保証することができる。
【0062】2.第2実施形態 (1)構成 第2実施形態のタスクスケジューリング装置は、第1実
施形態と略同様の構成を有するが、次の点で第1実施形
態と異なるので、第1実施形態との相違点を中心に説明
する。すなわち、図5は、第2実施形態のタスクスケジ
ューリング装置の構成を示す機能ブロック図である。こ
の図に示すように、第2実施形態は、第1実施形態と異
なり、区分された前記オプション部分をスケジューリン
グするためのサブスケジューリング部87(請求項3に
いうサブスケジューリング手段に相当するもの)と、サ
ブスケジューリング部87がタスクを選択するためのデ
ータを記録したタスク効用データベース93(請求項
6,8にいう第2のデータベースに相当するもの)と、
を有する。
施形態と略同様の構成を有するが、次の点で第1実施形
態と異なるので、第1実施形態との相違点を中心に説明
する。すなわち、図5は、第2実施形態のタスクスケジ
ューリング装置の構成を示す機能ブロック図である。こ
の図に示すように、第2実施形態は、第1実施形態と異
なり、区分された前記オプション部分をスケジューリン
グするためのサブスケジューリング部87(請求項3に
いうサブスケジューリング手段に相当するもの)と、サ
ブスケジューリング部87がタスクを選択するためのデ
ータを記録したタスク効用データベース93(請求項
6,8にいう第2のデータベースに相当するもの)と、
を有する。
【0063】(2)作用及び効果 第1実施形態においては、オプション部分τ"iは優先順
位を低く設定し、後に必須部分とオプション部分の優先
順位を逆転させたが、スケジューラ自体は、一貫して優
先順位に従い、優先順位の高い各必須部分τ′jと同様
の手法で、オプション部分τ"iをスケジューリングして
いた。このため、オプション部分τ"iにどのような優先
順位を与えるのが適当かが問題となる。
位を低く設定し、後に必須部分とオプション部分の優先
順位を逆転させたが、スケジューラ自体は、一貫して優
先順位に従い、優先順位の高い各必須部分τ′jと同様
の手法で、オプション部分τ"iをスケジューリングして
いた。このため、オプション部分τ"iにどのような優先
順位を与えるのが適当かが問題となる。
【0064】第2実施形態では、各オプション部分τ"i
をもっぱらスケジューリングする機構を導入する。第2
実施形態では、各オプション部分τ"iは、これまでのレ
ートモノトニック方式によるスケジューラの監督を離
れ、異なるスケジューラの監督下に入る。新たなスケジ
ューラとその監督下にある各オプション部分τ"iは、本
来のスケジューラからはひとつのタスクであるかのよう
に見えるという意味で、このスケジューリング方式は階
層的である。
をもっぱらスケジューリングする機構を導入する。第2
実施形態では、各オプション部分τ"iは、これまでのレ
ートモノトニック方式によるスケジューラの監督を離
れ、異なるスケジューラの監督下に入る。新たなスケジ
ューラとその監督下にある各オプション部分τ"iは、本
来のスケジューラからはひとつのタスクであるかのよう
に見えるという意味で、このスケジューリング方式は階
層的である。
【0065】この新たなスケジューラ(サブスケジュー
リング部87)を、ここではサブスケジューラと呼ぶ。
それに対し、いままで考えてきた本来のスケジューラ
(スケジューリング部39)を、主スケジューラと呼
ぶ。サブスケジューラが複数であることも可能である
し、サブスケジューラ自体がさらに階層的な構造を持つ
可能性もある。ここでは二階層からなる階層的スケジュ
ーリングを述べるが、本発明は三階層以上の階層的スケ
ジューリングに適用することもできる。
リング部87)を、ここではサブスケジューラと呼ぶ。
それに対し、いままで考えてきた本来のスケジューラ
(スケジューリング部39)を、主スケジューラと呼
ぶ。サブスケジューラが複数であることも可能である
し、サブスケジューラ自体がさらに階層的な構造を持つ
可能性もある。ここでは二階層からなる階層的スケジュ
ーリングを述べるが、本発明は三階層以上の階層的スケ
ジューリングに適用することもできる。
【0066】階層的スケジューリング方式の目的は、サ
ービス品質の一層の向上とCPU資源の有効利用であ
る。ユーザの指定した最低限のサービス品質を保証した
だけでは、最大の性能を発揮してユーザの期待に応える
ことはできない。CPUに余裕がある限り、より高いサ
ービス品質が提供されることがユーザにとって望まし
い。ユーザが指定した以上のサービス品質に対応する部
分をいかにスケジューリングするかも重要な問題にな
る。ここでは、全体としてのサービス品質を向上させる
ことを目的として、マルチメディアアプリケーションを
スケジューリングする階層的スケジューリング方式の一
実現方法を述べる。
ービス品質の一層の向上とCPU資源の有効利用であ
る。ユーザの指定した最低限のサービス品質を保証した
だけでは、最大の性能を発揮してユーザの期待に応える
ことはできない。CPUに余裕がある限り、より高いサ
ービス品質が提供されることがユーザにとって望まし
い。ユーザが指定した以上のサービス品質に対応する部
分をいかにスケジューリングするかも重要な問題にな
る。ここでは、全体としてのサービス品質を向上させる
ことを目的として、マルチメディアアプリケーションを
スケジューリングする階層的スケジューリング方式の一
実現方法を述べる。
【0067】図6は、第2実施形態におけるタスクの構
成を示す概念図である。この図に示すように、必須部分
τ′1(602),必須部分τ′2(604)は、ユーザ
の品質指定を満足するために割り当てられた時間をまだ
使いきっていない間、主スケジューラによってレートモ
ノトニック方式による優先順位が割り当てられ、スケジ
ューリングが行われている。図3に示した第1実施形態
の場合と異なるのは、ユーザの品質指定を満足するため
に割り当てられた時間を使いきった後、オプション部分
τ"1(612),オプション部分τ"2(614),オプ
ション部分τ"3(616)は、主スケジューラによるス
ケジューリングの対象とはならず、これら3つ合わせた
オプション部分群610として、一括してサブスケジュ
ーラによりスケジューリングされることである。オプシ
ョン部分τ"1,オプション部分τ"2,オプション部分
τ"3は、主スケジューラからは、サブスケジューラによ
ってまとめてスケジューリングされるため、ひとつのタ
スクのように見え、この意味で第2実施形態におけるス
ケジューリングは階層的である。
成を示す概念図である。この図に示すように、必須部分
τ′1(602),必須部分τ′2(604)は、ユーザ
の品質指定を満足するために割り当てられた時間をまだ
使いきっていない間、主スケジューラによってレートモ
ノトニック方式による優先順位が割り当てられ、スケジ
ューリングが行われている。図3に示した第1実施形態
の場合と異なるのは、ユーザの品質指定を満足するため
に割り当てられた時間を使いきった後、オプション部分
τ"1(612),オプション部分τ"2(614),オプ
ション部分τ"3(616)は、主スケジューラによるス
ケジューリングの対象とはならず、これら3つ合わせた
オプション部分群610として、一括してサブスケジュ
ーラによりスケジューリングされることである。オプシ
ョン部分τ"1,オプション部分τ"2,オプション部分
τ"3は、主スケジューラからは、サブスケジューラによ
ってまとめてスケジューリングされるため、ひとつのタ
スクのように見え、この意味で第2実施形態におけるス
ケジューリングは階層的である。
【0068】すなわち、必須部分τ′1(602)及び
τ′2(604)間での制御移転(606,608)は
主スケジューラによって行われるが、オプション部分
τ"1(612),τ"2(614)及びτ"3(616)へ
の制御移転(621,622)はサブスケジューラが行
う。
τ′2(604)間での制御移転(606,608)は
主スケジューラによって行われるが、オプション部分
τ"1(612),τ"2(614)及びτ"3(616)へ
の制御移転(621,622)はサブスケジューラが行
う。
【0069】図7は、第2実施形態におけるタスクスケ
ジューリングの処理手順を示すフローチャートである。
第2実施形態におけるスケジューリングでは、まず、主
スケジューラのタスクキューが空かどうか、すなわちユ
ーザの品質指定を満足するために割り当てられた時間を
まだ使いきっていない実行可能タスクがあるかどうかを
調べる(ステップ720)。もしタスクキューが空な
ら、サブスケジューラに制御が移る(ステップ752/
後述)。
ジューリングの処理手順を示すフローチャートである。
第2実施形態におけるスケジューリングでは、まず、主
スケジューラのタスクキューが空かどうか、すなわちユ
ーザの品質指定を満足するために割り当てられた時間を
まだ使いきっていない実行可能タスクがあるかどうかを
調べる(ステップ720)。もしタスクキューが空な
ら、サブスケジューラに制御が移る(ステップ752/
後述)。
【0070】もしタスクキューが空でなければ、その中
で最も優先順位の高いものにCPUでの実行権を与える
(ステップ725)。実行権を与えられたタスクはCP
U上で実行されるが(ステップ730)、新しく到着し
たタスクがあれば(ステップ735)、どのタスクにC
PUを与えるかを決定するために優先順位を再び比較す
る(ステップ725)。新しく到着したタスクがない場
合でも、現在のタスクが終了したなら(ステップ74
0)、主スケジューラのタスクキューが空であるかのチ
ェックに戻る(ステップ720)。
で最も優先順位の高いものにCPUでの実行権を与える
(ステップ725)。実行権を与えられたタスクはCP
U上で実行されるが(ステップ730)、新しく到着し
たタスクがあれば(ステップ735)、どのタスクにC
PUを与えるかを決定するために優先順位を再び比較す
る(ステップ725)。新しく到着したタスクがない場
合でも、現在のタスクが終了したなら(ステップ74
0)、主スケジューラのタスクキューが空であるかのチ
ェックに戻る(ステップ720)。
【0071】現在のタスクが終了しない場合でも、もし
現在のタスクに割り当てられた高い優先順位で実行する
時間が終了したら(ステップ745)、現在のタスクを
主スケジューラのタスクキューから外しサブスケジュー
ラのタスクキューに移し(ステップ750)、その後主
スケジューラのタスクキューが空かどうかのチェックに
戻る(ステップ720)。これらの条件がどれも成立し
ない限りは、このタスクをCPU上で実行し続ける(ス
テップ730)。
現在のタスクに割り当てられた高い優先順位で実行する
時間が終了したら(ステップ745)、現在のタスクを
主スケジューラのタスクキューから外しサブスケジュー
ラのタスクキューに移し(ステップ750)、その後主
スケジューラのタスクキューが空かどうかのチェックに
戻る(ステップ720)。これらの条件がどれも成立し
ない限りは、このタスクをCPU上で実行し続ける(ス
テップ730)。
【0072】ステップ720において、主スケジューラ
のタスクキューが空の場合、制御はサブスケジューラに
移る。この場合、まず、サブスケジューラのタスクキュ
ーが空かどうかを調べる(ステップ752)、もし空で
ない場合は、サブスケジューラは所定の基準に基づい
て、タスクキューからCPUを割り当てるタスクを選択
する(ステップ755)。選択されたタスクはCPU上
で実行されるが(ステップ760)、その間に新しいタ
スクが到着した場合は(ステップ765)、CPUを取
り上げられて、制御は主スケジューラに移され、主スケ
ジューラのタスクキューをチェックする(ステップ72
0)。
のタスクキューが空の場合、制御はサブスケジューラに
移る。この場合、まず、サブスケジューラのタスクキュ
ーが空かどうかを調べる(ステップ752)、もし空で
ない場合は、サブスケジューラは所定の基準に基づい
て、タスクキューからCPUを割り当てるタスクを選択
する(ステップ755)。選択されたタスクはCPU上
で実行されるが(ステップ760)、その間に新しいタ
スクが到着した場合は(ステップ765)、CPUを取
り上げられて、制御は主スケジューラに移され、主スケ
ジューラのタスクキューをチェックする(ステップ72
0)。
【0073】新しいタスクが到着せず、現在のタスクが
終了したら(ステップ770)、サブスケジューラのタ
スクキューをチェックし(ステップ652)、サブスケ
ジューラの基準にしたがって、どのタスク(オプション
部分)何をスケジューリングするかを決定する(ステッ
プ755)。そうでない場合、主スケジューラからサブ
スケジューラに移されたタスクがあれば(ステップ77
5)、再びスケジューラのポリシに従いどのタスクにC
PUを与えるかを選択する(ステップ755)。
終了したら(ステップ770)、サブスケジューラのタ
スクキューをチェックし(ステップ652)、サブスケ
ジューラの基準にしたがって、どのタスク(オプション
部分)何をスケジューリングするかを決定する(ステッ
プ755)。そうでない場合、主スケジューラからサブ
スケジューラに移されたタスクがあれば(ステップ77
5)、再びスケジューラのポリシに従いどのタスクにC
PUを与えるかを選択する(ステップ755)。
【0074】そうでない場合、クオンタを使い果たした
ら(ステップ780)、このタスクをCPUから外しサ
ブスケジューラの基準に基づいてどのタスクをスケジュ
ーリングするかを決定する(ステップ755)。このど
れも成立しない限り、タスクはCPU上で実行され続け
る(ステップ760)。ステップ752において、サブ
スケジューラのタスクキューが空である場合は(ステッ
プ753)、新しいタスクが到着したかどうかを調べ
(ステップ785)、もし到着すれば主スケジューラに
制御を移し(ステップ725)、到着しない間はこのチ
ェック(ステップ785)を繰り返す。
ら(ステップ780)、このタスクをCPUから外しサ
ブスケジューラの基準に基づいてどのタスクをスケジュ
ーリングするかを決定する(ステップ755)。このど
れも成立しない限り、タスクはCPU上で実行され続け
る(ステップ760)。ステップ752において、サブ
スケジューラのタスクキューが空である場合は(ステッ
プ753)、新しいタスクが到着したかどうかを調べ
(ステップ785)、もし到着すれば主スケジューラに
制御を移し(ステップ725)、到着しない間はこのチ
ェック(ステップ785)を繰り返す。
【0075】なお、サブスケジューラ87は、CPUで
実行するタスク(オプション部分)を、次のような基準
で選択すればよい。まず、全てのサービス品質は何等か
の形で定量化が可能で、異なるタスクのサービス品質が
比較できる、との仮定を置く。例えば、動画についての
サービス品質と音声についてのサービス品質が比較でき
るとする。もちろんこのような数量化は絶対的なもので
はありえないが、経済学ではしばしば用いられ、その比
較可能な量は効用(utility)と呼ばれているの
で、ここでもこの用語法を採用する。ユーザの指定する
サービス品質は、それぞれのタスクに関する、効用のし
きい値と考えられ、それ以下の効用はユーザに受け入れ
られない。
実行するタスク(オプション部分)を、次のような基準
で選択すればよい。まず、全てのサービス品質は何等か
の形で定量化が可能で、異なるタスクのサービス品質が
比較できる、との仮定を置く。例えば、動画についての
サービス品質と音声についてのサービス品質が比較でき
るとする。もちろんこのような数量化は絶対的なもので
はありえないが、経済学ではしばしば用いられ、その比
較可能な量は効用(utility)と呼ばれているの
で、ここでもこの用語法を採用する。ユーザの指定する
サービス品質は、それぞれのタスクに関する、効用のし
きい値と考えられ、それ以下の効用はユーザに受け入れ
られない。
【0076】マルチメディアアプリケーションでは、C
PU使用時間の割り当てを増加させても、サービス品質
はそれほど向上しないことがしばしばある。例えば、C
PU使用時間を倍にしても、音声再生のサービス品質は
倍にならない。本明細書にいう効用に対しても、経済学
で言うところの収穫逓減現象が当てはまると思われる。
PU使用時間の割り当てを増加させても、サービス品質
はそれほど向上しないことがしばしばある。例えば、C
PU使用時間を倍にしても、音声再生のサービス品質は
倍にならない。本明細書にいう効用に対しても、経済学
で言うところの収穫逓減現象が当てはまると思われる。
【0077】収穫逓減現象は、CPU消費時間に対して
サービス品質を描いたグラフは、上に凸である、と言い
換えられる。この性質は必ずしも成立する必要はない
が、以下に述べるタスクの選択基準は、このような場合
に最適なものとなっている。また、CPU消費時間と効
用の関係は既知であり、データベースもしくは計算式等
として、利用可能であると仮定する。
サービス品質を描いたグラフは、上に凸である、と言い
換えられる。この性質は必ずしも成立する必要はない
が、以下に述べるタスクの選択基準は、このような場合
に最適なものとなっている。また、CPU消費時間と効
用の関係は既知であり、データベースもしくは計算式等
として、利用可能であると仮定する。
【0078】すなわち、サブスケジューラは、現在実行
可能な各オプション部分τ"iそれぞれに対し、次のクオ
ンタ(固定の時間幅)を割り当てたときの効用の増加量
を計算し、増加量が最大になるオプション部分τ"iにC
PUを割り当てる。なお、このような効用の増加量はあ
らかじめ計算しておき、その情報をタスク効用データベ
ース93に記憶させておく。
可能な各オプション部分τ"iそれぞれに対し、次のクオ
ンタ(固定の時間幅)を割り当てたときの効用の増加量
を計算し、増加量が最大になるオプション部分τ"iにC
PUを割り当てる。なお、このような効用の増加量はあ
らかじめ計算しておき、その情報をタスク効用データベ
ース93に記憶させておく。
【0079】ここで、図8を参照して実例を説明する。
説明を単純にするため、二つのタスクτ"1とτ"2があっ
たとし、それぞれの効用と時間との関係が、図8(a)
のグラフ810及び図8(b)のグラフ830で与えら
れているとする。クオンタをδとし、効用の変化量を見
ると、タスクτ"1における変化量820の方がタスク
τ"2における変化量840よりも大きい。このため、最
初のクオンタはタスクτ"1に割り当てられる。しかし、
次のクオンタについては、タスクτ"1に割り当てた場合
の効用の変化量825よりもタスクτ"2に割り当てた場
合の変化量840の方が大きいので、次のクオンタはタ
スクτ"2に割り当てられる。さらにその次のクオンタに
ついても、同様にタスクτ"2に割り当てられる。このよ
うな手法によって、CPU時間を最も効果的に活用する
ことができる。
説明を単純にするため、二つのタスクτ"1とτ"2があっ
たとし、それぞれの効用と時間との関係が、図8(a)
のグラフ810及び図8(b)のグラフ830で与えら
れているとする。クオンタをδとし、効用の変化量を見
ると、タスクτ"1における変化量820の方がタスク
τ"2における変化量840よりも大きい。このため、最
初のクオンタはタスクτ"1に割り当てられる。しかし、
次のクオンタについては、タスクτ"1に割り当てた場合
の効用の変化量825よりもタスクτ"2に割り当てた場
合の変化量840の方が大きいので、次のクオンタはタ
スクτ"2に割り当てられる。さらにその次のクオンタに
ついても、同様にタスクτ"2に割り当てられる。このよ
うな手法によって、CPU時間を最も効果的に活用する
ことができる。
【0080】この方式は、効用に関して常に最適である
とは限らないが、効用がCPU消費時間の増加に対し非
減少かつ上に凸との性質を満たす場合には最適である。
もちろん、この方式によるスケジューリング結果は、効
用の与え方に大きく依存する。例えば、CPU消費時間
に対して定数であるとして、効用を与えることも可能で
あり、この場合はどのようにスケジュールしても良い。
とは限らないが、効用がCPU消費時間の増加に対し非
減少かつ上に凸との性質を満たす場合には最適である。
もちろん、この方式によるスケジューリング結果は、効
用の与え方に大きく依存する。例えば、CPU消費時間
に対して定数であるとして、効用を与えることも可能で
あり、この場合はどのようにスケジュールしても良い。
【0081】ここでは、サブスケジューラの用いるアル
ゴリズムとして、効用に基づくものを述べたが、それ以
外のアルゴリズムを採用することも当然に可能である。
例えば、タイムシェアリングシステムでよく用いられる
ラウンドロビン方式は、タスクに一定のクオンタを割り
当て、タスクがそのクオンタを使い果たすと、タスクキ
ューの最後に移され、次のタスクがCPUを割り当てら
れる、という手法であるが、サブスケジューラの方式と
して適用できる。
ゴリズムとして、効用に基づくものを述べたが、それ以
外のアルゴリズムを採用することも当然に可能である。
例えば、タイムシェアリングシステムでよく用いられる
ラウンドロビン方式は、タスクに一定のクオンタを割り
当て、タスクがそのクオンタを使い果たすと、タスクキ
ューの最後に移され、次のタスクがCPUを割り当てら
れる、という手法であるが、サブスケジューラの方式と
して適用できる。
【0082】以上のように、第2実施形態では、オプシ
ョン部分のスケジューリングを専用のサブスケジューラ
に任せるので、必須部分をスケジューリングする主なス
ケジューラの負担が軽減され、より経済的なスケジュー
リングが可能になるとともに、一層のサービス品質向上
が可能になる。また、第2実施形態では、CPU時間を
与えた場合の効用(効果)が最大のタスクが実行される
ので、システムの性能が最大限に発揮される(請求項
6,8)。
ョン部分のスケジューリングを専用のサブスケジューラ
に任せるので、必須部分をスケジューリングする主なス
ケジューラの負担が軽減され、より経済的なスケジュー
リングが可能になるとともに、一層のサービス品質向上
が可能になる。また、第2実施形態では、CPU時間を
与えた場合の効用(効果)が最大のタスクが実行される
ので、システムの性能が最大限に発揮される(請求項
6,8)。
【0083】3.他の実施形態 なお、本発明は上記実施形態に限定されるものではない
ので、次に例示するような他の実施形態をも包含するも
のである。例えば、上記各実施形態ではもっぱら組み込
みシステムを例に議論したが、この手法はマルチメディ
ア通信システムのスケジューリングにも等しく適用でき
ることは明らかである。
ので、次に例示するような他の実施形態をも包含するも
のである。例えば、上記各実施形態ではもっぱら組み込
みシステムを例に議論したが、この手法はマルチメディ
ア通信システムのスケジューリングにも等しく適用でき
ることは明らかである。
【0084】また、タスク管理には次のような手法を適
用することができる。例えば、区分された前記オプショ
ン部分ごとに生存期間を設定する。タスクのオプション
部分がCPUに割り当てられようとする場合には、生存
期間が所定の値を超えているか否かを判定する。この結
果、生存期間が所定の値を超えているタスクは廃棄す
る。このように、割り付けられそうになったタスクの生
存期間をチェックし、タスクが生存期間を越えていれば
それを廃棄することで、タスクの生成と消滅が繰り返さ
れるような場合でも、未処理のタスクが増大し続けない
ようにできる。
用することができる。例えば、区分された前記オプショ
ン部分ごとに生存期間を設定する。タスクのオプション
部分がCPUに割り当てられようとする場合には、生存
期間が所定の値を超えているか否かを判定する。この結
果、生存期間が所定の値を超えているタスクは廃棄す
る。このように、割り付けられそうになったタスクの生
存期間をチェックし、タスクが生存期間を越えていれば
それを廃棄することで、タスクの生成と消滅が繰り返さ
れるような場合でも、未処理のタスクが増大し続けない
ようにできる。
【0085】また、タスクの一部分が選択された場合
に、当該選択された部分によって、指定されたサービス
品質が満足できるか否かを判定する手段を設けてもよ
い。このようにすれば、スケジューリングの一部を手作
業で行ったり、タスクスケジューリング装置のデバッグ
を行うことが容易になる。なお、このような判定は、例
えば、サービス品質とその実現に必要なタスクの部分と
の対応関係をあらかじめ調べてデータとして記憶させて
おき、記憶されているタスクの部分が、選択された部分
に含まれているかどうかを調べることによって、実現す
ることができる。
に、当該選択された部分によって、指定されたサービス
品質が満足できるか否かを判定する手段を設けてもよ
い。このようにすれば、スケジューリングの一部を手作
業で行ったり、タスクスケジューリング装置のデバッグ
を行うことが容易になる。なお、このような判定は、例
えば、サービス品質とその実現に必要なタスクの部分と
の対応関係をあらかじめ調べてデータとして記憶させて
おき、記憶されているタスクの部分が、選択された部分
に含まれているかどうかを調べることによって、実現す
ることができる。
【0086】なお、本発明のタスクスケジューリング装
置及びタスクスケジューリング方法は、コンピュータプ
ログラムを用いて実現されることが一般的と考えられる
が、そのようなコンピュータプログラムを記録したフロ
ッピーディスクなどの記録媒体も本発明の一態様であ
る。
置及びタスクスケジューリング方法は、コンピュータプ
ログラムを用いて実現されることが一般的と考えられる
が、そのようなコンピュータプログラムを記録したフロ
ッピーディスクなどの記録媒体も本発明の一態様であ
る。
【0087】
【発明の効果】以上説明したように、本発明によれば、
CPUを経済的に活用しつつ、所望のサービス品質に対
応するタスクスケジューリングが実現される。
CPUを経済的に活用しつつ、所望のサービス品質に対
応するタスクスケジューリングが実現される。
【図1】本発明の第1実施形態におけるマルチメディア
クライアント・サーバシステム全体の概略適構成を示す
ブロック図。
クライアント・サーバシステム全体の概略適構成を示す
ブロック図。
【図2】本発明の第1実施形態におけるクライアントの
具体的構成を示す機能ブロック図。
具体的構成を示す機能ブロック図。
【図3】本発明の第1実施形態におけるタスクを示す概
念図。
念図。
【図4】本発明の第1実施形態におけるタスクスケジュ
ーリングの処理手順を示すフローチャート。
ーリングの処理手順を示すフローチャート。
【図5】本発明の第2実施形態におけるクライアントの
具体的構成を示す機能ブロック図。
具体的構成を示す機能ブロック図。
【図6】本発明の第2実施形態におけるタスクを示す概
念図。
念図。
【図7】本発明の第2実施形態におけるタスクスケジュ
ーリングの処理手順を示すフローチャート。
ーリングの処理手順を示すフローチャート。
【図8】本発明の第2実施形態における投入時間(クオ
ンタ)とそれによる効用との関係を示すグラフ。
ンタ)とそれによる効用との関係を示すグラフ。
【図9】レートモノトニックスケジューリングの例を示
すタイムチャート。
すタイムチャート。
3…指定手段 6…区分手段 15,93…データベース 21…見積手段 27…ネットワーク機器 33…到着タスク検出部 39…スケジューリング部 87…サブスケジューリング部 101…記憶装置 103…ネットワーク 105…サーバ 107…クライアント 110,120…CPU 112,122…メモリ 114,124…スケジューラ 116,126…判定部 130…キーボード 132…ハードディスクドライブ 134…ディスプレイ 136…スピーカ 310,602,603…必須部分 320,610…オプション部分 810,830…グラフ 820,825,940,945…変化量 STEP…手順の各ステップ
Claims (8)
- 【請求項1】 与えられた複数のタスクを、サービス品
質を満足するために必ず実行すべき必須部分と、可能な
らば実行すべきオプション部分に区分する区分手段と、 各タスクの前記必須部分のスケジューリングと、各タス
クの前記オプション部分のスケジューリングを行うスケ
ジューリング手段と、 を有することを特徴とするタスクスケジューリング装
置。 - 【請求項2】 前記スケジューリング手段は、 必須部分の優先順位をオプション部分の優先順位よりも
高く設定し、 優先順位の高いタスクにCPUの実行権を順次与え、 全ての必須部分の実行が終了した場合に、オプション部
分を実行することを特徴とする請求項1記載のタスクス
ケジューリング装置。 - 【請求項3】 区分された前記オプション部分をスケジ
ューリングするためのサブスケジューリング手段を有す
ることを特徴とする請求項1又は2記載のタスクスケジ
ューリング装置。 - 【請求項4】 区分された必須部分の実行所要時間を見
積る見積手段と、 見積られた前記実行所要時間に基づいて、指定されたサ
ービス品質を満足するように各タスクがスケジューリン
グ可能か否かを判定する判定手段と、 を有することを特徴とする請求項1,2又は3記載のタ
スクスケジューリング装置。 - 【請求項5】 サービス品質と、タスク中の必須部分
と、当該必須部分の実行所要時間との対応関係をあらか
じめ記憶させたデータベースを有し、 前記区分手段及び前記見積手段は、前記データベースに
記憶された対応関係を参照することによって、前記タス
クの区分及び前記実行所要時間の見積を行うように構成
されたことを特徴とする請求項4記載のタスクスケジュ
ーリング装置。 - 【請求項6】 前記スケジューリング手段及び前記サブ
スケジューリング手段のうち少なくとも一方は、 所定量のCPU時間を与えた場合に各タスクの実行によ
って生じる効用を、あらかじめ所定の基準で計算したデ
ータを記憶させた第2のデータベースを用い、 次に実行するタスクを複数のタスクから選択する場合
に、前記複数のタスクのそれぞれにCPU時間を与えた
場合の効用を前記第2のデータベースから参照し、 当該効用が最大のタスクを次に実行するタスクとして選
択するように構成されたことを特徴とする請求項1,
2,3,4又は5記載のタスクスケジューリング装置。 - 【請求項7】 与えられた複数のタスクを、サービス品
質を満足するために必ず実行すべき必須部分と、可能な
らば実行すべきオプション部分に区分するステップと、 各タスクの前記必須部分のスケジューリングと、各タス
クの前記オプション部分のスケジューリングを行うステ
ップと、 を含むことを特徴とするタスクスケジューリング方法。 - 【請求項8】 前記スケジューリングの際に、 所定量のCPU時間を与えた場合に各タスクの実行によ
って生じる効用を、あらかじめ所定の基準で計算したデ
ータを記憶させた第2のデータベースを用い、 次に実行するタスクを複数のタスクから選択する場合
に、前記複数のタスクのそれぞれにCPU時間を与えた
場合の効用を前記第2のデータベースから参照し、 当該効用が最大のタスクを次に実行するタスクとして選
択することを特徴とする請求項7記載のタスクスケジュ
ーリング方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4799097A JPH10240548A (ja) | 1997-03-03 | 1997-03-03 | タスクスケジューリング装置及び方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP4799097A JPH10240548A (ja) | 1997-03-03 | 1997-03-03 | タスクスケジューリング装置及び方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JPH10240548A true JPH10240548A (ja) | 1998-09-11 |
Family
ID=12790769
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP4799097A Pending JPH10240548A (ja) | 1997-03-03 | 1997-03-03 | タスクスケジューリング装置及び方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JPH10240548A (ja) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2000077599A1 (fr) * | 1999-06-16 | 2000-12-21 | Sony Corporation | Systeme et procede de traitement de l'information; procede et dispositif d'attribution de taches; programme de stockage de supports |
WO2003081429A1 (fr) * | 2002-03-22 | 2003-10-02 | Toyota Jidosha Kabushiki Kaisha | Procede et dispositif de gestion de taches, procede et dispositif d'evaluation de fonctionnement et programme devant etre evalue |
EP1851966A2 (en) * | 2004-12-22 | 2007-11-07 | Intel Corporation | Method for processing multimedia streams |
US7322033B2 (en) | 2002-03-29 | 2008-01-22 | Denso Corporation | Distributed control method and apparatus |
JP2008234285A (ja) * | 2007-03-20 | 2008-10-02 | Kyocera Mita Corp | ジョブスケジューラ、ジョブスケジュール方法、及び、ジョブ制御プログラム |
JP2009080820A (ja) * | 2008-10-31 | 2009-04-16 | Panasonic Corp | タスク切換装置、方法及びプログラム |
WO2010064420A1 (ja) * | 2008-12-03 | 2010-06-10 | 日本電気株式会社 | リソース割当システム、リソース割当方法、及びリソース割当プログラム |
JP2010133937A (ja) * | 2002-05-31 | 2010-06-17 | Brooks Instrument Llc | デジタルキャパシタンスダイヤフラムゲージ用システムおよび埋め込まれた当該システムの操作方法 |
US7900205B2 (en) | 2004-03-31 | 2011-03-01 | Toyota Jidosha Kabushiki Kaisha | System and method for executing selected task based on task management table having at least one task and at least two associated processors |
US8151274B2 (en) | 2003-12-05 | 2012-04-03 | Toyota Jidosha Kabushiki Kaisha | Task management system |
US8276156B2 (en) | 2003-03-13 | 2012-09-25 | Panasonic Corporation | Task switching based on assigned time slot |
US9462333B2 (en) | 2010-09-27 | 2016-10-04 | Intel Corporation | Method for processing multimedia streams |
-
1997
- 1997-03-03 JP JP4799097A patent/JPH10240548A/ja active Pending
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6834354B1 (en) | 1999-06-16 | 2004-12-21 | Sony Corporation | Method and apparatus for assigning tasks in an information processing system to optimize power consumption versus performance of the system |
WO2000077599A1 (fr) * | 1999-06-16 | 2000-12-21 | Sony Corporation | Systeme et procede de traitement de l'information; procede et dispositif d'attribution de taches; programme de stockage de supports |
WO2003081429A1 (fr) * | 2002-03-22 | 2003-10-02 | Toyota Jidosha Kabushiki Kaisha | Procede et dispositif de gestion de taches, procede et dispositif d'evaluation de fonctionnement et programme devant etre evalue |
US8589930B2 (en) | 2002-03-22 | 2013-11-19 | Toyota Jidosha Kabushiki Kaisha | Determining whether to execute a new task by deleting task objects of existing tasks |
US7322033B2 (en) | 2002-03-29 | 2008-01-22 | Denso Corporation | Distributed control method and apparatus |
JP2010133937A (ja) * | 2002-05-31 | 2010-06-17 | Brooks Instrument Llc | デジタルキャパシタンスダイヤフラムゲージ用システムおよび埋め込まれた当該システムの操作方法 |
US8276156B2 (en) | 2003-03-13 | 2012-09-25 | Panasonic Corporation | Task switching based on assigned time slot |
US8151274B2 (en) | 2003-12-05 | 2012-04-03 | Toyota Jidosha Kabushiki Kaisha | Task management system |
US7900205B2 (en) | 2004-03-31 | 2011-03-01 | Toyota Jidosha Kabushiki Kaisha | System and method for executing selected task based on task management table having at least one task and at least two associated processors |
EP1851966A2 (en) * | 2004-12-22 | 2007-11-07 | Intel Corporation | Method for processing multimedia streams |
JP2008527472A (ja) * | 2004-12-22 | 2008-07-24 | インテル・コーポレーション | マルチメディア・ストリームを処理する方法 |
JP2008234285A (ja) * | 2007-03-20 | 2008-10-02 | Kyocera Mita Corp | ジョブスケジューラ、ジョブスケジュール方法、及び、ジョブ制御プログラム |
JP2009080820A (ja) * | 2008-10-31 | 2009-04-16 | Panasonic Corp | タスク切換装置、方法及びプログラム |
WO2010064420A1 (ja) * | 2008-12-03 | 2010-06-10 | 日本電気株式会社 | リソース割当システム、リソース割当方法、及びリソース割当プログラム |
US9462333B2 (en) | 2010-09-27 | 2016-10-04 | Intel Corporation | Method for processing multimedia streams |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10185592B2 (en) | Network storage device using dynamic weights based on resource utilization | |
US6446125B1 (en) | Ripple scheduling for end-to-end global resource management | |
US6041354A (en) | Dynamic hierarchical network resource scheduling for continuous media | |
JP5041805B2 (ja) | データストレージシステムのサービス品質コントローラ及びサービス品質方法 | |
JP5752267B2 (ja) | 同時要求スケジューリング | |
US7388839B2 (en) | Methods, apparatus and computer programs for managing performance and resource utilization within cluster-based systems | |
KR101622168B1 (ko) | 실시간 스케쥴링 방법 및 이를 이용한 중앙처리장치 | |
US20080086734A1 (en) | Resource-based scheduler | |
JP2005071353A (ja) | 連続媒体優先順位を意識した記憶装置スケジューラ | |
JP2009541848A (ja) | コンピュータマイクロジョブを中断せずに実行するようスケジュールするための方法、システムおよび装置 | |
JPH10240548A (ja) | タスクスケジューリング装置及び方法 | |
AU2007261607B2 (en) | Resource-based scheduler | |
Cheng et al. | Dynamic quota-based admission control with sub-rating in multimedia servers | |
US20050007953A1 (en) | Resource management device, resource management method and recording medium | |
JP2007188452A (ja) | 入出力制御装置、入出力制御方法および入出力制御プログラム | |
JP5299869B2 (ja) | コンピュータマイクロジョブ | |
JP2011191856A (ja) | ファイルキャッシュの管理方法、ファイルキャッシュ装置、及び、プログラム | |
JP3975795B2 (ja) | タスク管理装置、同方法およびプログラム | |
JP3540835B2 (ja) | ビデオメモリ装置及びビデオサーバシステム | |
JP2007179359A (ja) | タスク制御方法およびタスク入力制御装置 | |
JP2001022595A (ja) | リアルタイム処理タスク制御装置及びそのプログラムを記録したコンピュータ読取り可能な記録媒体 | |
Chiang et al. | A load-based scheduling to improve performance in cloud systems | |
JP3957055B2 (ja) | タスクスケジューリング方法 | |
CN113835868B (zh) | 一种基于反馈和公平队列的服务质量感知的缓存调度方法 | |
US7444316B1 (en) | Method for scheduling jobs using distributed utility-based preemption policies |