JP2004502235A - スケジュール決定方法、スケジューラ及びシステム - Google Patents
スケジュール決定方法、スケジューラ及びシステム Download PDFInfo
- Publication number
- JP2004502235A JP2004502235A JP2002506413A JP2002506413A JP2004502235A JP 2004502235 A JP2004502235 A JP 2004502235A JP 2002506413 A JP2002506413 A JP 2002506413A JP 2002506413 A JP2002506413 A JP 2002506413A JP 2004502235 A JP2004502235 A JP 2004502235A
- Authority
- JP
- Japan
- Prior art keywords
- task
- time
- constraints
- determining
- window
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/11—Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
- G06F17/12—Simultaneous equations, e.g. systems of linear equations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Business, Economics & Management (AREA)
- Software Systems (AREA)
- Human Resources & Organizations (AREA)
- General Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Mathematical Physics (AREA)
- Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Pure & Applied Mathematics (AREA)
- Operations Research (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- Computational Mathematics (AREA)
- Game Theory and Decision Science (AREA)
- Development Economics (AREA)
- Educational Administration (AREA)
- Data Mining & Analysis (AREA)
- Marketing (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Databases & Information Systems (AREA)
- Algebra (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Multi Processors (AREA)
Abstract
複数のリソースを有するシステムにおいて複数のタスクを実行するためのフレキシブルなスケジュールを決定する方法を実施するスケジューラである。スケジュールは、各タスクについて、開始時間、終了時間、当該タスクに対するリソースの割当て、並びに、時間及び処理速度の集まりを含む。この情報を用いて、例えば多数のタスクが同一のリソースを必要とするとき、タスクの実行の速度は変更されうる。このために、スケジューラはまずウィンドウを用いて部分的なスケジュールを決定し、次に、線形計画及び列発生を用いてウィンドウの長さ及び各ウィンドウにおける各タスクの処理速度を決定する。
Description
【0001】
本発明は、複数のリソースを必要とする複数のタスクを実行するためのスケジュールを決定する方法に関する。
【0002】
本発明は、更に、複数のリソースを必要とする複数のタスクを実行するためのスケジュールを決定するスケジューラに関する。
【0003】
本発明は、更に、かかるスケジューラを有するシステムに関する。
【0004】
多数のリソースを用いて多数のタスクを実行しようとする場合、タスクの実行についての要件や、リソースの容量の制限条件があることが多い。例えば、ディジタル伝送システムでは、ビデオストリームの伝送には、ストリームを発生させるビデオサーバ、不法な視聴を防止するためにストリームを暗号化する条件付きアクセスモジュール、伝送媒体へのゲートウエイ、及び、ストリームを受信者へ送信する衛星といった送信器を必要とする。これらのリソースは全て限られた帯域幅容量を有し、ビデオストリームには多くの要件が課されうる。ストリームは9時に開始することが要求されることがあり、又は、送信ビット速度は少なくとも28キロビット毎秒であることが要求されることがある。例えば多数の機械で多数の製品を製造する工場や、例えば学級の生徒が教育を受けうるように教室に教師や備品を割り当てねばならない学校といった他の分野では、同様に、リソースの容量は限られ、タスクは一定の要件を有する。例えば、学校環境におかれている教師は、一度に25人の生徒しか教えることができないという制限を有しうる。タスクを十分に行うことを確実とするために更なるリソースを追加すること、例えば工場に更なる機械又はより容量の大きい伝送線を追加することは、非常に費用がかかるため、常に可能であるわけではない。
【0005】
従って、タスクを実行せねばならないシステムが、利用可能なリソースについての限界及びタスク自体から導出される実行のための要件を満たしつつ、いつ、どのように多数を実行するかを決定するための、スケジューリングの問題がある。タスクを実行するために出来る限り良いパフォーマンスを得るために、利用可能なリソースを最適に使用することが必要である。従って、これらのタスクの実行についてのスケジューリングは非常に重要である。
【0006】
現在のスケジューリング技術の欠点は、実行されるべき各タスクの処理速度が通常は予め決定され当該タスクの実行中は一定に維持されることである。このように、2以上のタスクが同一のリソースを同時に占有する場合、そのリソースの処理能力は少なくとも考慮されているタスクの処理速度の和でなくてはならない。しかしながら、幾つかの種類のタスクは、実行中に処理速度が変化されることを許容している。例えば、ディジタルビデオコンテンツの伝送は、幾らかの最低ビットレートが達成されている限りは、可変ビットレートで行われうる。現在のスケジューリング技術は、この性質を利用するのに十分にフレキシブルではない。このようなスケジューリング技術によって生成されるスケジュールを用いるシステムの操作者は、負荷が高すぎる場合は手動で介入しいくらかのタスクの処理速度を変化させ、新しい状況のためのスケジュールを再び計算せねばならない。
【0007】
本発明は、複数のリソースを必要とする複数のタスクを実行するためのフレキシブル且つ効率的なスケジュールを決定しうる冒頭の段落に記載の方法を提供することを目的とする。
【0008】
この目的を達成するため、本発明による方法は、
(a)各タスクの所与の要件及び各リソースについての所与の制限条件から一組の制約条件を構築する段階と、
(b)上記一組の制約条件に含まれる制約条件に基づいて、各タスクについて相対開始時間、相対終了時間、及びリソースの割当てを決定する段階と、
(c)上記タスクについて決定された相対開始時間、相対終了時間、及びリソースの割当てに基づいて、上記一組の制約条件に含まれる制約条件の違反を最小限としつつ、各タスクについて絶対開始時間、絶対終了時間、並びに、時間及び関連付けられるタスク処理速度の集まりを決定する段階と、
(d)各タスクについて上記決定された絶対開始時間、絶対終了時間、時間及び関連するタスク処理速度の集まり、並びに、上記タスクに対するリソースの割当てを含むスケジュールを決定する段階とを含む。
【0009】
本発明の方法によって生成されるスケジュールは、各タスクについての絶対開始時間及び絶対終了時間を与えるだけでなく、リソースの割当て、及び、時間や関連するタスク処理速度の集まりを与える。この集まりは、各タスクの処理について所望のフレキシビリティを与える。集まりのうちの時間は、当該のタスクの処理速度がその時点に関連付けられるタスク処理速度へ変化されねばならない時点であると理解されうる。タスク処理速度は、次の時点まで少量ずつ任意に変化されうる。或いは、集まりのうちの2つの連続する時間は、タスク処理速度が、2つの時間のうちの低い方に関連付けられる所与のタスク処理速度のレベルに一定に維持されねばならない時間間隔を指すものと理解されうる。
【0010】
タスクに対するリソースの割当ては、そのタスクの実行に使用されるべき特定のリソースを同定する。授業タスクは、例えば、教師、教室、及び、オーバーヘッドプロジェクタを必要とするという要件を有し、この場合、リソースの割当ては、教師Johnsonが教室3BでオーバーヘッドプロジェクタTHX1138を使用しうることを指定する。
【0011】
本発明の方法の実施例では、段階(c)は、
ウィンドウの系列、上記系列のうちタスクの相対開始時間及び相対終了時間のうちの一つに対応するウィンドウの開始時間、及び、上記ウィンドウの終了時間であり上記系列のうちの次のウィンドウの開始時間に対応する終了時間を決定する段階と、
上記一組の制約条件に含まれる制約条件に対する違反を最小限としつつ、上記系列のうちのウィンドウの絶対長さを決定する段階と、
上記一組の制約条件に含まれる制約条件に対する違反を最小限としつつ、各ウィンドウについて、各タスクに対する処理速度を決定し、各タスクについて時間及びそれに基づく関連するタスク処理速度の集まりを生成する段階と、
各タスクについて、上記ウィンドウの絶対長さから絶対開始時間及び絶対終了時間を決定する段階とを含む。
【0012】
タスクの開始時間と終了時間の間の時間期間であるウィンドウを導入すると、本実施例の方法は、制約条件に対する違反を最小限にしつつ、ウィンドウの絶対長さを計算することができる。開始時間及び終了時間に対する要件が非常に厳しい場合、可能な解はわずかである。各ウィンドウについて、各タスクについての処理速度が計算され、ウィンドウの長さが所与であれば、上述の時間と関連するタスク処理速度の集まりが容易に導出される。ウィンドウの開始時間は、そのウィンドウについてのタスク処理速度が関連付けられる時点として使用されえ、又は、ウィンドウの長さはタスク処理速度が計算されたタスク処理速度のレベルに一定とされねばならない時間期間を導出するために使用されうる。タスクについての絶対開始時間及び絶対終了時間は、ウィンドウ長さから決定される。ウィンドウの開始時間はタスクの開始時間及び終了時間に対応し、ウィンドウの絶対長さは予め計算されているため、1つの固定の時点のみが必要である。操作者によって入力されうる、又は、スケジュールが計算される場合は現在時間又は将来の特定の時間として定義されうる、この時点が所与であれば、全ての絶対窓幅はタスクについての絶対開始時間及び絶対終了時間へ容易に変換されうる。
【0013】
更なる実施例では、上記制約条件に対する違反が生じているか否か判定する段階を更に含み、生じていれば、
タスクについての新しい相対開始時間、タスクについての新しい相対終了時間、及びタスクについての新しいリソースの割当てのうちの少なくとも一つを決定し、
上記段階(c)を実行する。
【0014】
本発明による方法によって得られるスケジュールは、理想的には制約条件を完全に満たすべきである。特定の解は、開始時間及び終了時間が特定の順序とされている場合、又は、リソースの割当てが所与である場合は、回避することが不可能な多くの違反を有しうる。その場合、タスクの順序を入れ替えること、又はリソースの割当てを変更することが有利である。すると、新しい順序又は割当て、又はその両方が与えられれば、新しいスケジュールが決定されうる。このスケジュールがやはり幾つかの制約条件に違反する場合、更に順序を入れ替えること、又は割当ての更新が行われうる。幾らかの時間に亘って方法を実行してもスケジュールが完全には制約条件を満たさない場合は、スケジュール問題に対する可能な解がない可能性がある。その場合、違反が最小限となるスケジュールが選択されるべきである。更に、制約条件は、例えば更なるリソースを追加すること又は既存のリソースに更なる容量を追加することによって緩和されうる。
【0015】
本発明の更なる実施例では、上記系列のうちのウィンドウの絶対長さを決定する段階は、線形計画問題を解くことによって行われる。この実施例の利点は、線形計画が上述の種類の問題の解を得るために簡単且つ高速な方法であることである。
【0016】
本発明の更なる実施例では、方法は、上記各ウィンドウについて各タスクに対するタスク処理速度を決定する段階は、線形計画問題を解くことによって行われる。この実施例の利点は、この段階をウィンドウの絶対長さを決定する段階と組み合わせて双一次計画問題とすることにより、列発生を用いた線形計画法によって解を得ることができることである。
【0017】
本発明は、複数のリソースを必要とする複数のタスクを実行するためのフレキシブル且つ効率的なスケジュールを決定しうる冒頭の段落に記載のスケジュールを提供することを更なる目的とする。
【0018】
この目的を達成するため、スケジューラは、
各タスクの所与の要件及び各リソースに対する所与の制限から一組の制約条件を構築する構築手段と、
上記一組の制約条件に含まれる制約条件に基づいて、各タスクについて相対開始時間、相対終了時間及びリソースの割当てを決定する順序づけ手段と、
上記一組の制約条件に含まれる制約条件に対する違反を最小限としつつ、上記タスクについて決定された相対開始時間、相対終了時間、及びリソースの割当てに基づいて、各タスクについて絶対開始時間、絶対終了時間、及び時間及び関連付けられるタスク処理速度の集まりを決定するタイミング手段と、
各タスクについて上記決定された絶対開始時間、絶対終了時間、時間及び関連するタスク処理速度の集まり、並びに、上記タスクに対するリソースの割当てを含むスケジュールを決定するスケジューリング手段とを含む。
【0019】
スケジューラの1つの実施例では、タイミング手段は、
ウィンドウの系列、上記系列のうちタスクの相対開始時間及び相対終了時間のうちの一つに対応するウィンドウの開始時間、及び、上記ウィンドウの終了時間であり上記系列のうちの次のウィンドウの開始時間に対応する終了時間を決定し、
上記一組の制約条件に含まれる制約条件に対する違反を最小限としつつ、上記系列のうちのウィンドウの絶対長さを決定し、
上記一組の制約条件に含まれる制約条件に対する違反を最小限としつつ、各ウィンドウについて、各タスクに対する処理速度を決定し、各タスクについて時間及びそれに基づく関連するタスク処理速度の集まりを生成し、
各タスクについて、上記ウィンドウの絶対長さから絶対開始時間及び絶対終了時間を決定するよう配置される。
【0020】
更なる実施例では、スケジューラは、
上記制約条件に対する違反が生じているか否か判定する段階を更に含み、生じていれば、
タスクについての新しい相対開始時間、タスクについての新しい相対終了時間、及びタスクについての新しいリソースの割当てのうちの少なくとも一つを決定し、
上記タイミング手段を作動させる。
【0021】
更なる実施例では、スケジューラは、線形計画問題を解くための線形計画手段を更に含む。
【0022】
本発明の更なる目的は、かかるスケジューラを有するシステムを提供することである。
【0023】
本発明の上述及び他の面は、添付の図面に示される実施例を参照して明らかとなろう。全ての図面を通じて、同一の参照番号は同様の又は対応する特徴を示す。図示される幾つかの特徴は、一般的にはソフトウエア上で実施され、それ自体として例えばソフトウエアモジュール又はオブジェクトといったソフトウエアエンティティを表わす。
【0024】
図1は、スケジューラ100及び複数のリソース101、102、103、109、110、111、112、113、114、115を有するシステムを示すブロック図である。図1のシステムは、ビデオサーバ101、カルセルサーバ102又はIPトンネル103といった複数のソースから受信器114へコンテンツを伝送しうるディジタルビデオ伝送システムである。送信の前に、コンテンツは不法なアクセスを防止するために暗号化されうる。このために、コンテンツはIP暗号化器109を通される。その後、コンテンツは、様々なコンテンツ部分を伝送に適した1つのディジタルビデオストリームへ多重化するIP−DVBゲートウエイ110を通される。多重化されたストリームは、従来の地上回線又は衛星接続といった様々な手段を通じて受信器114へ伝送される。送信器113は地上回線へのアクセス手段として用いられ、アップリンク111はストリームを衛星112へ伝送することができる。受信器114は、これらの様々な手段からストリームを受信し、要求に応じてコンテンツを多重化し、復号化し、処理する。例えば様々な受信器114へのコンテンツの部分に対するアクセス権を管理するために、条件付きアクセスモジュール115が設けられてもよい。スケジューラ100は、これら全てのリソース上で全てのタスクを最も効率的に実行するためのスケジュールを決定する。システムは、スケジューラ100から得られるスケジュールに従ってタスクを実行するよう配置される。
【0025】
ここでは、スケジューラ100はディジタルビデオ伝送システムの一部として示されているが、多様な他のシステムにも適用されうる。例えば学校では、スケジューラ100は、様々な教室、教師、並びに、黒板、オーバーヘッドプロジェクタ、及び、テレビジョンシステムといった利用可能な備品の利用を効率的に計画するために使用されうる。工場では、スケジューラ100から得られるスケジュールは、備品、リソース、及び労働者を効率的に用いて、利用可能な機械で様々な製造工程を実行するために使用されうる。
【0026】
タスクの実行に必要とされる全てのリソースは、実行中全て同時に占有されると想定する。例えば工場では、製品を製造するためには、労働者と、幾つかの機器と、塗料といった幾らかの消耗品の供給とを必要としうる。学校環境では、各教師は、教室と、黒板、オーバーヘッドプロジェクタ、又は多数のコンピュータといった備品とを必要とする。これら全てのリソースは、一クラスの生徒が授業を受けているときに同時に占有される。
【0027】
各タスクは、必要とされるリソースの種類の関連付けられたリストを有する。従って、タスクに対してリソースを割り当てるということは、必要とされる種類を有するリソースを選択することを含む。学校環境では、一つの授業タスクは、教室、教師、及び黒板を必要とするものでありうる。この授業タスクに対して、実際の割当てでは、10番教室に、教師Bowmanと、黒板H9000が選択されうる。他の授業タスクは、やはり教室と教師を必要とするが、黒板の代わりにオーバーヘッドプロジェクタを必要とするものでありうる。この授業タスクに対して、割当ては、11番教室に、教師Lucasと、オーバーヘッドプロジェクタTHX1138が選択されるものでありうる。この場合、適当なリソースが割り当てられ要件が満たされるためには、各リソースについてその種類が知られていることが必要である。
【0028】
複数のリソースを、夫々が同様の特徴のリソースを有する幾つかの別個の組へ分割することが有利な場合がある。例えば、学校環境では、一組の教室、一組の教師、及び、一組のオーバーヘッドプロジェクタが存在しうる。このとき、各タスクに対するリソースの割当ては、各組から1つの要素を選択するように単純にされうる。これにより、割当てにおいて各リソースの種類を調べねばならないという手間が省ける。図1中、ソース101、102、103は、第1のグループ104を成す。IP暗号化器109は1つしかないため、第2のグループ105は1つの構成要素のみを有する。同様に第3のグループ106は、構成要素としてIP−DVBゲートウエイ110のみを有する。第4のグループ107は、伝送手段111、113によって形成される。コンテンツの各部分は、各グループ104、105、106、107の様々なリソースのうちの1つで実行されねばならない。
【0029】
図2は、スケジューラ100について詳細に示す図である。スケジューラ100は、構築モジュール201、順序づけモジュール202、タイミングモジュール203、及び、スケジューリングモジュール204を含む。スケジューラ100は、更に、スケジューリング問題を解決するために用いられる線形計画モジュール206を含みうる。
【0030】
構築モジュール201は、ソース200から、各タスクの一連の要件及び各リソースについての制限条件を受け取り、それらに基づいて一組の制約条件を構築する。
【0031】
タスクの集合Aのうちのタスクaの要件は、少なくとも、リリース時間r(a)及び締切又は期限時間d(a)を含む。これらの時間は、タスクaの実行が開始しうる最も早い時間と、タスクaの実行が終了していなければならない時間とを夫々示す。タスクaの処理速度について更なる要件があってもよい。タスクaの最小処理速度はpmin(a)で与えられ、最大処理速度はpmax(a)で与えられる。タスクaは、処理されているタスクの部分についての下界を有し、例えば、ディジタルビデオ伝送では伝送されるコンテンツのサイズについての下界がありうる。これは、c(a)によって示される。タスクaは、更に、v(a)で示される値を有しうる。タスクの値は、スケジュールされるべき異なる実行の間にトレードオフを与えるために使用されうる。以下に定義されるような第1のスケジューリングの目的は、スケジュールされた実行の加重和を最大化することであり、上述の値はそれらの重み計数である。尚、この値は、優先度の高いクラスの値を優先度の低いクラスよりもはるかに大きく選定することにより、異なる優先度のクラスを示すためにも使用されうる。
【0032】
タスクの実行が行われる時間は、ウィンドウの系列へ分割されうる。タスクaは、その実行の時間の長さに対して下界tmin(a)及び上界tmin(a)を有しうる。ウィンドウの概念については、以下詳述する。
【0033】
タスクは、何らかの方法で関連付けられうる。即ち、1つのタスクが他のタスクの前又は後に開始するよう要求される、2つのタスクが同時に又はその間に特定の時間をおいて開始される、又は、1つのタスクは他のタスクが完了するまで待機せねばならない、等である。このために、開始−開始を示すTss、開始−完了を示すTsc、完了−開始を示すTcs、完了−完了を示すTccという4つのタイミング関係を定義する。これらについては、以下の説明のうち、先行制約条件についての説明において詳述する。
【0034】
リソースrの制限条件は、少なくとも、その処理能力についての上界p(r)と、同時に実行されうるタスク数についての限界n(r)とを含む。リソースがグループ化されるとき、各グループ中のリソースは、グループjについてはRjのように示される。タスクに割り当てられたリソースはρi(a)と示され、これはRjのうちの要素である。
【0035】
タスクa及び各グループjに対しては、更に、リードイン時間lin j(a)とリードアウト時間lout j(a)があってもよく、これは、そのグループから選択されたリソース上でのタスクの実行の直前及び直後に、そのリソースがやはりそのタスクによって使用されることを示す。各リソースrは、関連付けられた利用可能性ウィンドウを更に有しうる。この利用可能性ウィンドウの開始時間はs(r)で示され、終了時間はe(r)で示される。リソースは、使用可能性ウィンドウの持続時間に亘ってのみ利用可能である。リソースが多数回利用可能及び利用可能でない状況をモデル化するために、リソースは異なる利用可能性ウィンドウを用いて2回定義されねばならない。
【0036】
リソースrは、更に、幾つかの種類のオーバヘッドを有しうる。固定のオーバヘッドはo(r)で示され、可変のオーバヘッドはq(r)で示される。従って、ビデオ伝送の場合は、ビットレートxの入力ストリームはビットレートo+qxの出力ストリームを生じさせる。
【0037】
幾つかのリソースが共に使用されること、又は特定の組合せが禁止されることが要求されることがある。この制限条件は、グループjのリソースrがグループj’のリソースr’と組み合わされる場合に、要素(r、r’)のみを有する集合Cを追加することによってモデル化される。同様に、1つのグループの同じリソースを使用する2つのタスクが、他のグループの同じリソースも使用せねばならないことが要求又は禁止されることがある。これは、グループjの同一のリソースを幾つかのタスクに割り当てることがグループj’の同一のリソースをこれらのタスクに割り当てることを意味する場合、(j,j’)のみを有する集合Uによってモデル化される。
【0038】
スケジュールは、いつ実行が行われるか、及び各実行の際にどのリソースが使用されるかを決定する。更に、スケジュールは、実行中に用いられるタスク処理速度を決定する。処理速度の決定のために、実行プロファイルは時点τとタスク処理速度πの集まり(τ0,π1,τ1,π2,...τm,πm)として定義され、時間間隔(τk−1,τk)の間はタスク処理速度がπkであることを示す。タスクaの絶対開始時間はτst(a)で示され、絶対終了時間はτcp(a)で示される。
【0039】
このように、スケジュールは、絶対開始時間τst(a)、絶対終了時間τcp(a)、時間及び関連するタスク処理速度の集まり(τ0,π1,τ1,π2,...τm,πm)、並びに、各グループjに対するリソースρj(a)の割当てを含む。例えば要求されるリソースが利用可能でないことにより、幾つかのタスクがスケジュールできない場合がある。それでも、これらのタスクをスケジュールに入れ、スケジュールされていないタスクとスケジュールされたタスクとの間の相互関係が保たれるようにすることが有利である。例えば、第1のスケジュールされたタスクがスケジュールされていないタスクの後に置かれ、そのスケジュールされていないタスクが第2のスケジュールされたタスクの後に置かれる場合、スケジュールされていないタスクを完全に除去することにより第2のタスクの後に置かれる第1のタスクの制約条件が失われることとなる。スケジュールされたタスクの集合はA*によって示される。完全集合A又は制限された集合A*のタスクとの差は、特筆しない限り本発明に関連性がないものとする。
【0040】
スケジュールが満たさねばならない制約条件には、幾つかの種類がある。第1の種類の制約条件は、実行時間制約条件であり、各タスクaに対して、以下の関係、
【0041】
【数1】
が成り立たねばならない。即ち、絶対開始時間は最小でもリリース時間であり、絶対終了時間は最大でも期限時間でなくてはならない。絶対開始時間と絶対終了時間の差として定義される実行の持続時間は、所与の最小実行時間と最大実行時間の間でなくてはならない。
【0042】
第2の種類の制約条件は、先行制約条件である。2つのタスクa及びbについて、以下の制約条件、
【0043】
【数2】
が構築され、ただし、Tss、Tsc、Tcs、Tccは、タスクの実行間の開始−開始、開始−完了、完了−開始、完了−完了のタイミング関係を示す。aの開始とbの開始の間に時間xがなくてはならない場合は、要素(a,b,x)は集合Tssの中にある。aの開始とbの終了の間に時間xがなくてはならない場合は、要素(a,b,x)は集合Tscの中にあり、他の2つの集合Tcs、Tccについても同様である。即ち、これらの制約条件はタスクの間のタイミング関係を強制するものである。
【0044】
第3の種類の制約条件は、実行制約条件であり、リソースrについて、リソースrを同時に占有するタスクaの数が限界n(r)を超えてはならないことを指定する。また、考慮すべきリードイン時間lin j(a)とリードアウト時間lout j(a)がある。タスクaがグループjからのリソースを占有する時間を与える占有関数αj(a,t)は、
【0045】
【数3】
によって定義される。この関数より、実行制約条件は以下の式、
【0046】
【数4】
のように定義される。
【0047】
第4の種類の制約条件は、タスクaの各実行について実行プロファイル(τ0,π1,τ1,π2,...τm,πm)が以下の関係、
【0048】
【数5】
を満たさねばならないことを指定するものである。
【0049】
第5の種類の制約条件は、リソース処理制約条件である。任意の時点においてタスクa∈A*の処理速度を与える処理速度関数は、実行プロファイル(τ0,π1,τ1,π2,...τm,πm)を有するタスクaについては、以下の式、
【0050】
【数6】
で与えられる。リソース中のオーバヘッドは、グループjのリソースρj(a)について出力タスク処理速度関数を、以下の式、
【0051】
【数7】
、但し、全てのタスクa及び時間tについてπ0(a,t)=π(a,t)、によってモデル化されうる。タスク処理速度関数を用いると、リソース処理制約条件は、各グループk、グループjの全てのリソースr、及び全てのtについて、以下の式、
【0052】
【数8】
が成り立たねばならない。
【0053】
第6の種類の制約条件は、必要であれば正しい組合せのリソースが使用されることを確実とするリソース組合せ制約条件であり、以下の式、
【0054】
【数9】
で表せる。
【0055】
第7の種類の制約条件は、単一性制約条件である。これらは、全てのグループ対(j,j’)∈U及び全てのタスクa,a’に対して、以下の式、
【0056】
【数10】
が成り立たねばならないことを指定する。理想的には、上述の全ての制約条件を満たしつつ全てのタスクを含むスケジュールを見つけることを目的とする。しかしながら、他の制約条件に違反することなく全てのタスクが実行されうる解は存在しない可能性が高い。その場合、スケジュールされたタスクの加重和を最大化することが目的となり、即ち、スケジュールσに対して
【0057】
【数11】
を最大とすることが目的となる。fの最大値に対して1つ以上のスケジュールσが存在する場合、割り当てられたタスク処理速度は最適化されるべきである。第3の目的は、タスクの実行時間を最小化することでありうる。
【0058】
図3は、スケジューラ100から得ることができるスケジュールの例を示す図である。スケジュールには、複数のタスク301、302、303、304、305、306、307、308がある。垂直軸は、任意の目盛りでタスク処理速度を示す。水平軸は、時間を示す。図1に示される実施例では、これらのタスクは、例えば、第1の映画301、金融ファイルの伝送302、スポーツの生放送イベント303、第2の映画304、幾つかのニュース放送304、306、307、308である。
【0059】
所与のリリース時間及び期限時間が非常に厳しいタスク、例えば9時に開始し10分間放送されるニュース放送といったタスク以外は、絶対的な開始時間及び終了時間は知られていないが、開始時間及び終了時間の相対的な順序付けは可能である。順序付けモジュール202はこのような相対的な順序を生成し、この順序から相対的な開始時間及び相対的な終了時間を導出する。
【0060】
これらの実行が行われる時間は、ウィンドウの系列w0,w1,...,w15へ分割される。この系列w0,...,w15のうちの1つのウィンドウの開始時間はタスクの相対開始時間及び相対終了時間のうちの1つに対応し、このウィンドウの終了時間はこの系列のうちの次のウィンドウの開始時間に対応する。図3中、ウィンドウw0の開始時間は第1の映画301の相対開始時間に対応し、その終了時間はウィンドウw1の開始時間に対応する。このウィンドウの開始時間は、次に、放送303の開始時間に対応し、ウィンドウw2が始まるときに終了する。このウィンドウは、ニュース放送305が終了するときに開始する。第1のウィンドウw0は、特別な場合である。このウィンドウの開始時間は、スケジュールされたタスクの実行が開始されねばならない時間に対応する。最も早く開始するタスクが、この時間よりも遅く開始することがある。その場合、最も早く開始するタスクが開始する前に幾らかの余分な時間が存在しうる。すると、ウィンドウw0を用いてモデル化される。ウィンドウはゼロの持続時間を有しうる。1つのタスクの絶対終了時間と他のタスクの絶対開始時間が同じであると決定される場合、1つのタスクの終了時間と他のタスクの開始時間の間のウィンドウはゼロとなる。しかしながら、概念上はこのウィンドウはなお存在し考慮に入れられねばならない。
【0061】
図3から、幾つかのタスクの処理速度は時間と共に変化することが容易にわかる。例えば、スポーツの生放送イベント303の放送は、ウィンドウw2中はビット速度が2倍であり、ウィンドウw3中はその開始ビットレートへ戻る。しかしながら、ニュース放送305、306、307、308は一定のビットレートを維持する。
【0062】
順序付けモジュール202は、構築モジュール201によって構築される制約条件に基づいて、各タスクについて、相対開始時間、相対終了時間、及びリソースの割当てを決定する。相対的な順序付けは、スケジュール中で使用される値を計算するタイミングモジュール203のための入力として使用されるため、理想的には制約条件を満たさねばならない。制約条件を満たさない相対的な順序付けを用いるということは、タイミングモジュール203によって行われる計算から導出されるスケジュールが有用でないことを意味する。
【0063】
各タスクに対するリソースの割当てについても同じことが言える。順序付けモジュール202は、この割当てを決定するために任意の方法を、例えばランダム・アルゴリズムをも使用しうるが、関係のある制約条件を満たすことを確実とするために割当てが確かめられることが望ましい。
【0064】
タイミングモジュール203は、各タスクについて、絶対開始時間、絶対終了時間、並びに、時間及び関連付けられるタスク処理速度の集まりを決定するタスクを有する。タイミングモジュール203は、入力として、各タスクについて、相対開始時間、相対終了時間、及び、順序付けモジュール2020からのリソースの割当てを受け取る。スケジュール205を構築するために用いられる上述の情報を決定する間、タイミングモジュール203は構築モジュール201から受け取る制約条件に対する違反を最小限とするべきであり、全ての制約条件を満たす出力を生成することが理想的である。
【0065】
タイミングモジュール203が上記の情報を決定した後、スケジューラ100は制約条件に対する違反が生じたか否かを任意に判定しうる。そうであれば、例えば順序付けモジュール202を作動させ新しい相対的な順序又は割当てを生成させることにより、タスクについての新しい相対開始時間、タスクについての新しい相対終了時間、及びタスクに対するリソースの新しい割当てのうちの少なくとも1つを決定する。スケジューラ100は、単純に2つの相対時点又は2つの割当てを入れ替えること、又は順序付けモジュール202の元の出力を変化させるために他の技術を適用することができる。これに関しては、ローカル探索アプローチが良い結果を与える。ローカル探索アプローチは、例えば、E.H.L.Aarts及びJ.K. Lenstra編集のLocal Search in Combinatorial Optimization, John Wiley & Sons, 1997, ISBN 0−471−94822−5, pp. 361−414のE.J. Anderson, C.A. Glass and C.N. Pottsによる”Machine scheduling”に記載されている。部分的なスケジュールを変更するために1つのかかる技術を適用した後、スケジューラ100は、スケジュール205を構築するために使用される新しい情報を得るためにタイミングモジュール203を作動させる。
【0066】
タイミングモジュール203は、線形計画法を用いてスケジューリング問題を解いてもよく、そのために線形計画モジュール206が設けられる。線形計画法を用いると、ウィンドウw0,...,w15の絶対長さが決定される。各ウィンドウについて、各ウィンドウのタスク処理速度が計算され、これは各タスクに対して、時間及び関連付けられるタスク処理速度の集まりを作成するための入力となる。解は、構築モジュール201によって与えられる制約条件を満たすことが理想的であるが、そうでなくとも制約条件の違反が最小限となるべきである。
【0067】
順序付けモジュール202は、タイミングモジュール203にタスクの実行についての相対的な順序を与えると共にタスクに対するリソースの割当てを与える。タイミングモジュール203は、タスクの開始時間及び終了時間に対応するウィンドウの系列w0,...,w15を生成する。絶対開始時間及び絶対終了時間を決定するために、ウィンドウw0,...,w15の絶対長さが決定されねばならない。ウィンドウw0,...,w15の絶対長さがわかると、各タスクについての絶対開始時間及び絶対終了時間は容易に計算されうる。まず、適当な時点ゼロを定義せねばならない。これは、現在時間であっても、スケジュールが実行さえるべき所与の時間であってもよい。この時点ゼロは、ウィンドウw0の開始に対応する。ウィンドウw0,...,w15の長さは、夫々の絶対開始時間を決定するために使用されうる。ウィンドウw0,...,w15の開始時間はタスクの開始時間又は終了時間に対応するため、単純にウィンドウ開始時間を適当なタスク開始時間又は終了時間に割り当てるだけで十分である。
【0068】
順序付けモジュール202によって導出される制約条件は、ウィンドウを考慮に入れるために変換されねばならない。実行時間及び先行制約条件のために、w変数に対する線形制約条件は、
【0069】
【数12】
の形である。上述の制約条件を組み合わせることにより、任意の行列Dと定数のベクトルdに対してDw≧dという系が得られる。
【0070】
タスク処理限界及び処理能力制約条件について、p変数についての線形制約条件は、
【0071】
【数13】
であり、ただし、I(r)はリソースrに割り当てられたスケジュールされた活動の添え字であり、活動のボックス外の最小及び最大タスク処理速度はゼロであるよう選定される。上述の制約条件は、各ウィンドウj=0,...,15に対して成り立たねばならない。これにより、任意の行列Aj及び定数のベクトルejについて、π・jは行列πの列を示すとすると、Ajπ・ j≧ejという系が得られる。尚、図3中、16のウィンドウがあるため、以下では、jは常にゼロから15の範囲である。ウィンドウの数が異なる場合、jの上限もまた調整されねばならない。
【0072】
動作のコンテンツ全体に対する制約条件は、wkβik+...+wlβil≧ciと表わすことができ、これにより、πw≧cという系が生ずる。これは、π変数とw変数の間のクロス乗積を与える。
【0073】
残る制約条件は、時間及びタスク処理速度の絶対値には依存しないため、相対的な時間順序及びリソース割当てが分かっているときに既に調べることができ、従ってこの副次的な問題からは排除されうる。概説するに、副次的な問題は以下の一組の制約条件、
【0074】
【数14】
によって定式化されうる。式1の問題は、列発生を伴う線形計画によって解くことができる。列発生は、例えば、Schrijver, Linear and Integer Programming, John Wiley & Sons, 1986, ISN 0−471−90854−1, pp. 147−148に記載されている。
【0075】
問題を解くために、上述の制約条件の組は、以下の式、
【0076】
【数15】
と書き換えることができ、各ウィンドウjに対して、
【0077】
【数16】
で表わされる一組の可能なタスク処理速度割当てが導入される。式中、数字8が用いられているのは、8つのスケジュールされたタスク301、302、303、304、305、306、307、308があるためである。1つのウィンドウにつき1つのタスク処理速度割当てπ・ j∈Pjを考慮する代わりに、全ての可能なタスク処理速度割当てが考慮される。各ウィンドウについて、ここで各ウィンドウj=0,...,15に対して、
【0078】
【数17】
を満たさねばならない変数wjpと、各タスク処理速度割当てp∈Pjがある。この問題の解は、
【0079】
【数18】
とすることにより、式2の解を容易に決定するために使用されえ、即ち、副次的なウィンドウの幅が加算され、使用されるタスク処理速度の平均がとられる。代入により、この解が式2の第2の不等式を満たすことが明らかである。更に、構築されたπ・ jは凸集合Pjの要素の凸組合せであるため、この式の第1の不等式もまた満たされ、π・ j自体もまたPjの要素である。従って、Ajπ・ j≧ejが成り立つ。
【0080】
式3を解くためには、各集合Pjが無数の要素を含むため、無数の変数wjpが決定されねばならない。ポリトープPjの端点に対して、一般性を失うことのない制約条件を課すことができるが、それでもやはり対応する線形計画表のためにあまりにも多くの変数及びあまりにも多くの列を発生させることを必要とする。これは、各ウィンドウjに対して
【0081】
【外1】
のみを考慮する列発生技術を用いることによって克服される。部分集合は、初期的には空であり、新しい要素が反復的に追加される。
【0082】
従って、これにより、
【0083】
【数19】
という派生的な問題が与えられ、ここで、任意の時点で利用可能な系を与えるためにペナルティ変数x及びyが追加されている。初期的には、全てのウィンドウjに対して
【0084】
【外2】
であり、上述の系は最適化される。次に、各ウィンドウwjは、
【0085】
【外3】
に追加したときに全体のペナルティーを減少させうるPjの要素、即ち上述の系の最適化された表において負の減少された費用を有するかかどうか反復的に調べられる。これは、集合Pjが線形制約条件によって与えられているため、線形計画問題を解くことによって調べられうる。このような要素が存在すれば、その要素は
【0086】
【外4】
に加えられ、上述の系は再び最適化される。この処理は、全てのウィンドウwjに対して改善する要素が存在しなくなるまで繰り返される。結果としての全体のペナルティがゼロであれば、式(3)の解が存在し、ゼロでなければ可能な解は存在しない。
【0087】
ここで、タスクの開始時間及び終了時間の相対的な順序が、リソース割当てと共に与えられていれば、上述の技術によって、制約条件を満たすか少なくとも制約条件に対する違反を最小限とする絶対開始時間、終了時間、及びタスク処理速度が存在するかどうか判定することが可能である。順序付けモジュール202から得られた相対順序又はリソース割当てを、タスクについての新しい相対開始時間、タスクについての新しい終了時間、及び、タスクについての新しいリソース割当てのうちの少なくとも1つを決定することにより変更し、最小の制約条件の違反が減少されうるか、又は、一組のスケジュールされた作動を増加させることが可能であるかを調べることが可能である。これらの変更は小さく、従って副次的な問題において生ずる変更も小さく、絶対的な時間及びタスク処理速度の増分的な計算を可能とする。
【0088】
スケジューリングモジュール204は、タイミングモジュール203の出力に基づいてスケジュール205を決定する。このスケジュール205は、各タスクaに対して決定された開始時間τst(a)及び絶対終了時間τcp(a)、時間及び関連するタスク処理速度の集まり(τ0,π1,τ1,π2,...τm,πm)、並びに、各グループjについてのリソースの割当てρj(a)を含む。
【0089】
スケジュール205は、人間の監視者に提示されるか、スケジュールに従ってリソース上のタスクを実行するために図1のシステムにおいて自動的に利用されうる。
【図面の簡単な説明】
【図1】本発明によるスケジューラを有する伝送システムを示すブロック図である。
【図2】本発明によるスケジューラを示すブロック図である。
【図3】スケジュールの一例を示す図である。
本発明は、複数のリソースを必要とする複数のタスクを実行するためのスケジュールを決定する方法に関する。
【0002】
本発明は、更に、複数のリソースを必要とする複数のタスクを実行するためのスケジュールを決定するスケジューラに関する。
【0003】
本発明は、更に、かかるスケジューラを有するシステムに関する。
【0004】
多数のリソースを用いて多数のタスクを実行しようとする場合、タスクの実行についての要件や、リソースの容量の制限条件があることが多い。例えば、ディジタル伝送システムでは、ビデオストリームの伝送には、ストリームを発生させるビデオサーバ、不法な視聴を防止するためにストリームを暗号化する条件付きアクセスモジュール、伝送媒体へのゲートウエイ、及び、ストリームを受信者へ送信する衛星といった送信器を必要とする。これらのリソースは全て限られた帯域幅容量を有し、ビデオストリームには多くの要件が課されうる。ストリームは9時に開始することが要求されることがあり、又は、送信ビット速度は少なくとも28キロビット毎秒であることが要求されることがある。例えば多数の機械で多数の製品を製造する工場や、例えば学級の生徒が教育を受けうるように教室に教師や備品を割り当てねばならない学校といった他の分野では、同様に、リソースの容量は限られ、タスクは一定の要件を有する。例えば、学校環境におかれている教師は、一度に25人の生徒しか教えることができないという制限を有しうる。タスクを十分に行うことを確実とするために更なるリソースを追加すること、例えば工場に更なる機械又はより容量の大きい伝送線を追加することは、非常に費用がかかるため、常に可能であるわけではない。
【0005】
従って、タスクを実行せねばならないシステムが、利用可能なリソースについての限界及びタスク自体から導出される実行のための要件を満たしつつ、いつ、どのように多数を実行するかを決定するための、スケジューリングの問題がある。タスクを実行するために出来る限り良いパフォーマンスを得るために、利用可能なリソースを最適に使用することが必要である。従って、これらのタスクの実行についてのスケジューリングは非常に重要である。
【0006】
現在のスケジューリング技術の欠点は、実行されるべき各タスクの処理速度が通常は予め決定され当該タスクの実行中は一定に維持されることである。このように、2以上のタスクが同一のリソースを同時に占有する場合、そのリソースの処理能力は少なくとも考慮されているタスクの処理速度の和でなくてはならない。しかしながら、幾つかの種類のタスクは、実行中に処理速度が変化されることを許容している。例えば、ディジタルビデオコンテンツの伝送は、幾らかの最低ビットレートが達成されている限りは、可変ビットレートで行われうる。現在のスケジューリング技術は、この性質を利用するのに十分にフレキシブルではない。このようなスケジューリング技術によって生成されるスケジュールを用いるシステムの操作者は、負荷が高すぎる場合は手動で介入しいくらかのタスクの処理速度を変化させ、新しい状況のためのスケジュールを再び計算せねばならない。
【0007】
本発明は、複数のリソースを必要とする複数のタスクを実行するためのフレキシブル且つ効率的なスケジュールを決定しうる冒頭の段落に記載の方法を提供することを目的とする。
【0008】
この目的を達成するため、本発明による方法は、
(a)各タスクの所与の要件及び各リソースについての所与の制限条件から一組の制約条件を構築する段階と、
(b)上記一組の制約条件に含まれる制約条件に基づいて、各タスクについて相対開始時間、相対終了時間、及びリソースの割当てを決定する段階と、
(c)上記タスクについて決定された相対開始時間、相対終了時間、及びリソースの割当てに基づいて、上記一組の制約条件に含まれる制約条件の違反を最小限としつつ、各タスクについて絶対開始時間、絶対終了時間、並びに、時間及び関連付けられるタスク処理速度の集まりを決定する段階と、
(d)各タスクについて上記決定された絶対開始時間、絶対終了時間、時間及び関連するタスク処理速度の集まり、並びに、上記タスクに対するリソースの割当てを含むスケジュールを決定する段階とを含む。
【0009】
本発明の方法によって生成されるスケジュールは、各タスクについての絶対開始時間及び絶対終了時間を与えるだけでなく、リソースの割当て、及び、時間や関連するタスク処理速度の集まりを与える。この集まりは、各タスクの処理について所望のフレキシビリティを与える。集まりのうちの時間は、当該のタスクの処理速度がその時点に関連付けられるタスク処理速度へ変化されねばならない時点であると理解されうる。タスク処理速度は、次の時点まで少量ずつ任意に変化されうる。或いは、集まりのうちの2つの連続する時間は、タスク処理速度が、2つの時間のうちの低い方に関連付けられる所与のタスク処理速度のレベルに一定に維持されねばならない時間間隔を指すものと理解されうる。
【0010】
タスクに対するリソースの割当ては、そのタスクの実行に使用されるべき特定のリソースを同定する。授業タスクは、例えば、教師、教室、及び、オーバーヘッドプロジェクタを必要とするという要件を有し、この場合、リソースの割当ては、教師Johnsonが教室3BでオーバーヘッドプロジェクタTHX1138を使用しうることを指定する。
【0011】
本発明の方法の実施例では、段階(c)は、
ウィンドウの系列、上記系列のうちタスクの相対開始時間及び相対終了時間のうちの一つに対応するウィンドウの開始時間、及び、上記ウィンドウの終了時間であり上記系列のうちの次のウィンドウの開始時間に対応する終了時間を決定する段階と、
上記一組の制約条件に含まれる制約条件に対する違反を最小限としつつ、上記系列のうちのウィンドウの絶対長さを決定する段階と、
上記一組の制約条件に含まれる制約条件に対する違反を最小限としつつ、各ウィンドウについて、各タスクに対する処理速度を決定し、各タスクについて時間及びそれに基づく関連するタスク処理速度の集まりを生成する段階と、
各タスクについて、上記ウィンドウの絶対長さから絶対開始時間及び絶対終了時間を決定する段階とを含む。
【0012】
タスクの開始時間と終了時間の間の時間期間であるウィンドウを導入すると、本実施例の方法は、制約条件に対する違反を最小限にしつつ、ウィンドウの絶対長さを計算することができる。開始時間及び終了時間に対する要件が非常に厳しい場合、可能な解はわずかである。各ウィンドウについて、各タスクについての処理速度が計算され、ウィンドウの長さが所与であれば、上述の時間と関連するタスク処理速度の集まりが容易に導出される。ウィンドウの開始時間は、そのウィンドウについてのタスク処理速度が関連付けられる時点として使用されえ、又は、ウィンドウの長さはタスク処理速度が計算されたタスク処理速度のレベルに一定とされねばならない時間期間を導出するために使用されうる。タスクについての絶対開始時間及び絶対終了時間は、ウィンドウ長さから決定される。ウィンドウの開始時間はタスクの開始時間及び終了時間に対応し、ウィンドウの絶対長さは予め計算されているため、1つの固定の時点のみが必要である。操作者によって入力されうる、又は、スケジュールが計算される場合は現在時間又は将来の特定の時間として定義されうる、この時点が所与であれば、全ての絶対窓幅はタスクについての絶対開始時間及び絶対終了時間へ容易に変換されうる。
【0013】
更なる実施例では、上記制約条件に対する違反が生じているか否か判定する段階を更に含み、生じていれば、
タスクについての新しい相対開始時間、タスクについての新しい相対終了時間、及びタスクについての新しいリソースの割当てのうちの少なくとも一つを決定し、
上記段階(c)を実行する。
【0014】
本発明による方法によって得られるスケジュールは、理想的には制約条件を完全に満たすべきである。特定の解は、開始時間及び終了時間が特定の順序とされている場合、又は、リソースの割当てが所与である場合は、回避することが不可能な多くの違反を有しうる。その場合、タスクの順序を入れ替えること、又はリソースの割当てを変更することが有利である。すると、新しい順序又は割当て、又はその両方が与えられれば、新しいスケジュールが決定されうる。このスケジュールがやはり幾つかの制約条件に違反する場合、更に順序を入れ替えること、又は割当ての更新が行われうる。幾らかの時間に亘って方法を実行してもスケジュールが完全には制約条件を満たさない場合は、スケジュール問題に対する可能な解がない可能性がある。その場合、違反が最小限となるスケジュールが選択されるべきである。更に、制約条件は、例えば更なるリソースを追加すること又は既存のリソースに更なる容量を追加することによって緩和されうる。
【0015】
本発明の更なる実施例では、上記系列のうちのウィンドウの絶対長さを決定する段階は、線形計画問題を解くことによって行われる。この実施例の利点は、線形計画が上述の種類の問題の解を得るために簡単且つ高速な方法であることである。
【0016】
本発明の更なる実施例では、方法は、上記各ウィンドウについて各タスクに対するタスク処理速度を決定する段階は、線形計画問題を解くことによって行われる。この実施例の利点は、この段階をウィンドウの絶対長さを決定する段階と組み合わせて双一次計画問題とすることにより、列発生を用いた線形計画法によって解を得ることができることである。
【0017】
本発明は、複数のリソースを必要とする複数のタスクを実行するためのフレキシブル且つ効率的なスケジュールを決定しうる冒頭の段落に記載のスケジュールを提供することを更なる目的とする。
【0018】
この目的を達成するため、スケジューラは、
各タスクの所与の要件及び各リソースに対する所与の制限から一組の制約条件を構築する構築手段と、
上記一組の制約条件に含まれる制約条件に基づいて、各タスクについて相対開始時間、相対終了時間及びリソースの割当てを決定する順序づけ手段と、
上記一組の制約条件に含まれる制約条件に対する違反を最小限としつつ、上記タスクについて決定された相対開始時間、相対終了時間、及びリソースの割当てに基づいて、各タスクについて絶対開始時間、絶対終了時間、及び時間及び関連付けられるタスク処理速度の集まりを決定するタイミング手段と、
各タスクについて上記決定された絶対開始時間、絶対終了時間、時間及び関連するタスク処理速度の集まり、並びに、上記タスクに対するリソースの割当てを含むスケジュールを決定するスケジューリング手段とを含む。
【0019】
スケジューラの1つの実施例では、タイミング手段は、
ウィンドウの系列、上記系列のうちタスクの相対開始時間及び相対終了時間のうちの一つに対応するウィンドウの開始時間、及び、上記ウィンドウの終了時間であり上記系列のうちの次のウィンドウの開始時間に対応する終了時間を決定し、
上記一組の制約条件に含まれる制約条件に対する違反を最小限としつつ、上記系列のうちのウィンドウの絶対長さを決定し、
上記一組の制約条件に含まれる制約条件に対する違反を最小限としつつ、各ウィンドウについて、各タスクに対する処理速度を決定し、各タスクについて時間及びそれに基づく関連するタスク処理速度の集まりを生成し、
各タスクについて、上記ウィンドウの絶対長さから絶対開始時間及び絶対終了時間を決定するよう配置される。
【0020】
更なる実施例では、スケジューラは、
上記制約条件に対する違反が生じているか否か判定する段階を更に含み、生じていれば、
タスクについての新しい相対開始時間、タスクについての新しい相対終了時間、及びタスクについての新しいリソースの割当てのうちの少なくとも一つを決定し、
上記タイミング手段を作動させる。
【0021】
更なる実施例では、スケジューラは、線形計画問題を解くための線形計画手段を更に含む。
【0022】
本発明の更なる目的は、かかるスケジューラを有するシステムを提供することである。
【0023】
本発明の上述及び他の面は、添付の図面に示される実施例を参照して明らかとなろう。全ての図面を通じて、同一の参照番号は同様の又は対応する特徴を示す。図示される幾つかの特徴は、一般的にはソフトウエア上で実施され、それ自体として例えばソフトウエアモジュール又はオブジェクトといったソフトウエアエンティティを表わす。
【0024】
図1は、スケジューラ100及び複数のリソース101、102、103、109、110、111、112、113、114、115を有するシステムを示すブロック図である。図1のシステムは、ビデオサーバ101、カルセルサーバ102又はIPトンネル103といった複数のソースから受信器114へコンテンツを伝送しうるディジタルビデオ伝送システムである。送信の前に、コンテンツは不法なアクセスを防止するために暗号化されうる。このために、コンテンツはIP暗号化器109を通される。その後、コンテンツは、様々なコンテンツ部分を伝送に適した1つのディジタルビデオストリームへ多重化するIP−DVBゲートウエイ110を通される。多重化されたストリームは、従来の地上回線又は衛星接続といった様々な手段を通じて受信器114へ伝送される。送信器113は地上回線へのアクセス手段として用いられ、アップリンク111はストリームを衛星112へ伝送することができる。受信器114は、これらの様々な手段からストリームを受信し、要求に応じてコンテンツを多重化し、復号化し、処理する。例えば様々な受信器114へのコンテンツの部分に対するアクセス権を管理するために、条件付きアクセスモジュール115が設けられてもよい。スケジューラ100は、これら全てのリソース上で全てのタスクを最も効率的に実行するためのスケジュールを決定する。システムは、スケジューラ100から得られるスケジュールに従ってタスクを実行するよう配置される。
【0025】
ここでは、スケジューラ100はディジタルビデオ伝送システムの一部として示されているが、多様な他のシステムにも適用されうる。例えば学校では、スケジューラ100は、様々な教室、教師、並びに、黒板、オーバーヘッドプロジェクタ、及び、テレビジョンシステムといった利用可能な備品の利用を効率的に計画するために使用されうる。工場では、スケジューラ100から得られるスケジュールは、備品、リソース、及び労働者を効率的に用いて、利用可能な機械で様々な製造工程を実行するために使用されうる。
【0026】
タスクの実行に必要とされる全てのリソースは、実行中全て同時に占有されると想定する。例えば工場では、製品を製造するためには、労働者と、幾つかの機器と、塗料といった幾らかの消耗品の供給とを必要としうる。学校環境では、各教師は、教室と、黒板、オーバーヘッドプロジェクタ、又は多数のコンピュータといった備品とを必要とする。これら全てのリソースは、一クラスの生徒が授業を受けているときに同時に占有される。
【0027】
各タスクは、必要とされるリソースの種類の関連付けられたリストを有する。従って、タスクに対してリソースを割り当てるということは、必要とされる種類を有するリソースを選択することを含む。学校環境では、一つの授業タスクは、教室、教師、及び黒板を必要とするものでありうる。この授業タスクに対して、実際の割当てでは、10番教室に、教師Bowmanと、黒板H9000が選択されうる。他の授業タスクは、やはり教室と教師を必要とするが、黒板の代わりにオーバーヘッドプロジェクタを必要とするものでありうる。この授業タスクに対して、割当ては、11番教室に、教師Lucasと、オーバーヘッドプロジェクタTHX1138が選択されるものでありうる。この場合、適当なリソースが割り当てられ要件が満たされるためには、各リソースについてその種類が知られていることが必要である。
【0028】
複数のリソースを、夫々が同様の特徴のリソースを有する幾つかの別個の組へ分割することが有利な場合がある。例えば、学校環境では、一組の教室、一組の教師、及び、一組のオーバーヘッドプロジェクタが存在しうる。このとき、各タスクに対するリソースの割当ては、各組から1つの要素を選択するように単純にされうる。これにより、割当てにおいて各リソースの種類を調べねばならないという手間が省ける。図1中、ソース101、102、103は、第1のグループ104を成す。IP暗号化器109は1つしかないため、第2のグループ105は1つの構成要素のみを有する。同様に第3のグループ106は、構成要素としてIP−DVBゲートウエイ110のみを有する。第4のグループ107は、伝送手段111、113によって形成される。コンテンツの各部分は、各グループ104、105、106、107の様々なリソースのうちの1つで実行されねばならない。
【0029】
図2は、スケジューラ100について詳細に示す図である。スケジューラ100は、構築モジュール201、順序づけモジュール202、タイミングモジュール203、及び、スケジューリングモジュール204を含む。スケジューラ100は、更に、スケジューリング問題を解決するために用いられる線形計画モジュール206を含みうる。
【0030】
構築モジュール201は、ソース200から、各タスクの一連の要件及び各リソースについての制限条件を受け取り、それらに基づいて一組の制約条件を構築する。
【0031】
タスクの集合Aのうちのタスクaの要件は、少なくとも、リリース時間r(a)及び締切又は期限時間d(a)を含む。これらの時間は、タスクaの実行が開始しうる最も早い時間と、タスクaの実行が終了していなければならない時間とを夫々示す。タスクaの処理速度について更なる要件があってもよい。タスクaの最小処理速度はpmin(a)で与えられ、最大処理速度はpmax(a)で与えられる。タスクaは、処理されているタスクの部分についての下界を有し、例えば、ディジタルビデオ伝送では伝送されるコンテンツのサイズについての下界がありうる。これは、c(a)によって示される。タスクaは、更に、v(a)で示される値を有しうる。タスクの値は、スケジュールされるべき異なる実行の間にトレードオフを与えるために使用されうる。以下に定義されるような第1のスケジューリングの目的は、スケジュールされた実行の加重和を最大化することであり、上述の値はそれらの重み計数である。尚、この値は、優先度の高いクラスの値を優先度の低いクラスよりもはるかに大きく選定することにより、異なる優先度のクラスを示すためにも使用されうる。
【0032】
タスクの実行が行われる時間は、ウィンドウの系列へ分割されうる。タスクaは、その実行の時間の長さに対して下界tmin(a)及び上界tmin(a)を有しうる。ウィンドウの概念については、以下詳述する。
【0033】
タスクは、何らかの方法で関連付けられうる。即ち、1つのタスクが他のタスクの前又は後に開始するよう要求される、2つのタスクが同時に又はその間に特定の時間をおいて開始される、又は、1つのタスクは他のタスクが完了するまで待機せねばならない、等である。このために、開始−開始を示すTss、開始−完了を示すTsc、完了−開始を示すTcs、完了−完了を示すTccという4つのタイミング関係を定義する。これらについては、以下の説明のうち、先行制約条件についての説明において詳述する。
【0034】
リソースrの制限条件は、少なくとも、その処理能力についての上界p(r)と、同時に実行されうるタスク数についての限界n(r)とを含む。リソースがグループ化されるとき、各グループ中のリソースは、グループjについてはRjのように示される。タスクに割り当てられたリソースはρi(a)と示され、これはRjのうちの要素である。
【0035】
タスクa及び各グループjに対しては、更に、リードイン時間lin j(a)とリードアウト時間lout j(a)があってもよく、これは、そのグループから選択されたリソース上でのタスクの実行の直前及び直後に、そのリソースがやはりそのタスクによって使用されることを示す。各リソースrは、関連付けられた利用可能性ウィンドウを更に有しうる。この利用可能性ウィンドウの開始時間はs(r)で示され、終了時間はe(r)で示される。リソースは、使用可能性ウィンドウの持続時間に亘ってのみ利用可能である。リソースが多数回利用可能及び利用可能でない状況をモデル化するために、リソースは異なる利用可能性ウィンドウを用いて2回定義されねばならない。
【0036】
リソースrは、更に、幾つかの種類のオーバヘッドを有しうる。固定のオーバヘッドはo(r)で示され、可変のオーバヘッドはq(r)で示される。従って、ビデオ伝送の場合は、ビットレートxの入力ストリームはビットレートo+qxの出力ストリームを生じさせる。
【0037】
幾つかのリソースが共に使用されること、又は特定の組合せが禁止されることが要求されることがある。この制限条件は、グループjのリソースrがグループj’のリソースr’と組み合わされる場合に、要素(r、r’)のみを有する集合Cを追加することによってモデル化される。同様に、1つのグループの同じリソースを使用する2つのタスクが、他のグループの同じリソースも使用せねばならないことが要求又は禁止されることがある。これは、グループjの同一のリソースを幾つかのタスクに割り当てることがグループj’の同一のリソースをこれらのタスクに割り当てることを意味する場合、(j,j’)のみを有する集合Uによってモデル化される。
【0038】
スケジュールは、いつ実行が行われるか、及び各実行の際にどのリソースが使用されるかを決定する。更に、スケジュールは、実行中に用いられるタスク処理速度を決定する。処理速度の決定のために、実行プロファイルは時点τとタスク処理速度πの集まり(τ0,π1,τ1,π2,...τm,πm)として定義され、時間間隔(τk−1,τk)の間はタスク処理速度がπkであることを示す。タスクaの絶対開始時間はτst(a)で示され、絶対終了時間はτcp(a)で示される。
【0039】
このように、スケジュールは、絶対開始時間τst(a)、絶対終了時間τcp(a)、時間及び関連するタスク処理速度の集まり(τ0,π1,τ1,π2,...τm,πm)、並びに、各グループjに対するリソースρj(a)の割当てを含む。例えば要求されるリソースが利用可能でないことにより、幾つかのタスクがスケジュールできない場合がある。それでも、これらのタスクをスケジュールに入れ、スケジュールされていないタスクとスケジュールされたタスクとの間の相互関係が保たれるようにすることが有利である。例えば、第1のスケジュールされたタスクがスケジュールされていないタスクの後に置かれ、そのスケジュールされていないタスクが第2のスケジュールされたタスクの後に置かれる場合、スケジュールされていないタスクを完全に除去することにより第2のタスクの後に置かれる第1のタスクの制約条件が失われることとなる。スケジュールされたタスクの集合はA*によって示される。完全集合A又は制限された集合A*のタスクとの差は、特筆しない限り本発明に関連性がないものとする。
【0040】
スケジュールが満たさねばならない制約条件には、幾つかの種類がある。第1の種類の制約条件は、実行時間制約条件であり、各タスクaに対して、以下の関係、
【0041】
【数1】
が成り立たねばならない。即ち、絶対開始時間は最小でもリリース時間であり、絶対終了時間は最大でも期限時間でなくてはならない。絶対開始時間と絶対終了時間の差として定義される実行の持続時間は、所与の最小実行時間と最大実行時間の間でなくてはならない。
【0042】
第2の種類の制約条件は、先行制約条件である。2つのタスクa及びbについて、以下の制約条件、
【0043】
【数2】
が構築され、ただし、Tss、Tsc、Tcs、Tccは、タスクの実行間の開始−開始、開始−完了、完了−開始、完了−完了のタイミング関係を示す。aの開始とbの開始の間に時間xがなくてはならない場合は、要素(a,b,x)は集合Tssの中にある。aの開始とbの終了の間に時間xがなくてはならない場合は、要素(a,b,x)は集合Tscの中にあり、他の2つの集合Tcs、Tccについても同様である。即ち、これらの制約条件はタスクの間のタイミング関係を強制するものである。
【0044】
第3の種類の制約条件は、実行制約条件であり、リソースrについて、リソースrを同時に占有するタスクaの数が限界n(r)を超えてはならないことを指定する。また、考慮すべきリードイン時間lin j(a)とリードアウト時間lout j(a)がある。タスクaがグループjからのリソースを占有する時間を与える占有関数αj(a,t)は、
【0045】
【数3】
によって定義される。この関数より、実行制約条件は以下の式、
【0046】
【数4】
のように定義される。
【0047】
第4の種類の制約条件は、タスクaの各実行について実行プロファイル(τ0,π1,τ1,π2,...τm,πm)が以下の関係、
【0048】
【数5】
を満たさねばならないことを指定するものである。
【0049】
第5の種類の制約条件は、リソース処理制約条件である。任意の時点においてタスクa∈A*の処理速度を与える処理速度関数は、実行プロファイル(τ0,π1,τ1,π2,...τm,πm)を有するタスクaについては、以下の式、
【0050】
【数6】
で与えられる。リソース中のオーバヘッドは、グループjのリソースρj(a)について出力タスク処理速度関数を、以下の式、
【0051】
【数7】
、但し、全てのタスクa及び時間tについてπ0(a,t)=π(a,t)、によってモデル化されうる。タスク処理速度関数を用いると、リソース処理制約条件は、各グループk、グループjの全てのリソースr、及び全てのtについて、以下の式、
【0052】
【数8】
が成り立たねばならない。
【0053】
第6の種類の制約条件は、必要であれば正しい組合せのリソースが使用されることを確実とするリソース組合せ制約条件であり、以下の式、
【0054】
【数9】
で表せる。
【0055】
第7の種類の制約条件は、単一性制約条件である。これらは、全てのグループ対(j,j’)∈U及び全てのタスクa,a’に対して、以下の式、
【0056】
【数10】
が成り立たねばならないことを指定する。理想的には、上述の全ての制約条件を満たしつつ全てのタスクを含むスケジュールを見つけることを目的とする。しかしながら、他の制約条件に違反することなく全てのタスクが実行されうる解は存在しない可能性が高い。その場合、スケジュールされたタスクの加重和を最大化することが目的となり、即ち、スケジュールσに対して
【0057】
【数11】
を最大とすることが目的となる。fの最大値に対して1つ以上のスケジュールσが存在する場合、割り当てられたタスク処理速度は最適化されるべきである。第3の目的は、タスクの実行時間を最小化することでありうる。
【0058】
図3は、スケジューラ100から得ることができるスケジュールの例を示す図である。スケジュールには、複数のタスク301、302、303、304、305、306、307、308がある。垂直軸は、任意の目盛りでタスク処理速度を示す。水平軸は、時間を示す。図1に示される実施例では、これらのタスクは、例えば、第1の映画301、金融ファイルの伝送302、スポーツの生放送イベント303、第2の映画304、幾つかのニュース放送304、306、307、308である。
【0059】
所与のリリース時間及び期限時間が非常に厳しいタスク、例えば9時に開始し10分間放送されるニュース放送といったタスク以外は、絶対的な開始時間及び終了時間は知られていないが、開始時間及び終了時間の相対的な順序付けは可能である。順序付けモジュール202はこのような相対的な順序を生成し、この順序から相対的な開始時間及び相対的な終了時間を導出する。
【0060】
これらの実行が行われる時間は、ウィンドウの系列w0,w1,...,w15へ分割される。この系列w0,...,w15のうちの1つのウィンドウの開始時間はタスクの相対開始時間及び相対終了時間のうちの1つに対応し、このウィンドウの終了時間はこの系列のうちの次のウィンドウの開始時間に対応する。図3中、ウィンドウw0の開始時間は第1の映画301の相対開始時間に対応し、その終了時間はウィンドウw1の開始時間に対応する。このウィンドウの開始時間は、次に、放送303の開始時間に対応し、ウィンドウw2が始まるときに終了する。このウィンドウは、ニュース放送305が終了するときに開始する。第1のウィンドウw0は、特別な場合である。このウィンドウの開始時間は、スケジュールされたタスクの実行が開始されねばならない時間に対応する。最も早く開始するタスクが、この時間よりも遅く開始することがある。その場合、最も早く開始するタスクが開始する前に幾らかの余分な時間が存在しうる。すると、ウィンドウw0を用いてモデル化される。ウィンドウはゼロの持続時間を有しうる。1つのタスクの絶対終了時間と他のタスクの絶対開始時間が同じであると決定される場合、1つのタスクの終了時間と他のタスクの開始時間の間のウィンドウはゼロとなる。しかしながら、概念上はこのウィンドウはなお存在し考慮に入れられねばならない。
【0061】
図3から、幾つかのタスクの処理速度は時間と共に変化することが容易にわかる。例えば、スポーツの生放送イベント303の放送は、ウィンドウw2中はビット速度が2倍であり、ウィンドウw3中はその開始ビットレートへ戻る。しかしながら、ニュース放送305、306、307、308は一定のビットレートを維持する。
【0062】
順序付けモジュール202は、構築モジュール201によって構築される制約条件に基づいて、各タスクについて、相対開始時間、相対終了時間、及びリソースの割当てを決定する。相対的な順序付けは、スケジュール中で使用される値を計算するタイミングモジュール203のための入力として使用されるため、理想的には制約条件を満たさねばならない。制約条件を満たさない相対的な順序付けを用いるということは、タイミングモジュール203によって行われる計算から導出されるスケジュールが有用でないことを意味する。
【0063】
各タスクに対するリソースの割当てについても同じことが言える。順序付けモジュール202は、この割当てを決定するために任意の方法を、例えばランダム・アルゴリズムをも使用しうるが、関係のある制約条件を満たすことを確実とするために割当てが確かめられることが望ましい。
【0064】
タイミングモジュール203は、各タスクについて、絶対開始時間、絶対終了時間、並びに、時間及び関連付けられるタスク処理速度の集まりを決定するタスクを有する。タイミングモジュール203は、入力として、各タスクについて、相対開始時間、相対終了時間、及び、順序付けモジュール2020からのリソースの割当てを受け取る。スケジュール205を構築するために用いられる上述の情報を決定する間、タイミングモジュール203は構築モジュール201から受け取る制約条件に対する違反を最小限とするべきであり、全ての制約条件を満たす出力を生成することが理想的である。
【0065】
タイミングモジュール203が上記の情報を決定した後、スケジューラ100は制約条件に対する違反が生じたか否かを任意に判定しうる。そうであれば、例えば順序付けモジュール202を作動させ新しい相対的な順序又は割当てを生成させることにより、タスクについての新しい相対開始時間、タスクについての新しい相対終了時間、及びタスクに対するリソースの新しい割当てのうちの少なくとも1つを決定する。スケジューラ100は、単純に2つの相対時点又は2つの割当てを入れ替えること、又は順序付けモジュール202の元の出力を変化させるために他の技術を適用することができる。これに関しては、ローカル探索アプローチが良い結果を与える。ローカル探索アプローチは、例えば、E.H.L.Aarts及びJ.K. Lenstra編集のLocal Search in Combinatorial Optimization, John Wiley & Sons, 1997, ISBN 0−471−94822−5, pp. 361−414のE.J. Anderson, C.A. Glass and C.N. Pottsによる”Machine scheduling”に記載されている。部分的なスケジュールを変更するために1つのかかる技術を適用した後、スケジューラ100は、スケジュール205を構築するために使用される新しい情報を得るためにタイミングモジュール203を作動させる。
【0066】
タイミングモジュール203は、線形計画法を用いてスケジューリング問題を解いてもよく、そのために線形計画モジュール206が設けられる。線形計画法を用いると、ウィンドウw0,...,w15の絶対長さが決定される。各ウィンドウについて、各ウィンドウのタスク処理速度が計算され、これは各タスクに対して、時間及び関連付けられるタスク処理速度の集まりを作成するための入力となる。解は、構築モジュール201によって与えられる制約条件を満たすことが理想的であるが、そうでなくとも制約条件の違反が最小限となるべきである。
【0067】
順序付けモジュール202は、タイミングモジュール203にタスクの実行についての相対的な順序を与えると共にタスクに対するリソースの割当てを与える。タイミングモジュール203は、タスクの開始時間及び終了時間に対応するウィンドウの系列w0,...,w15を生成する。絶対開始時間及び絶対終了時間を決定するために、ウィンドウw0,...,w15の絶対長さが決定されねばならない。ウィンドウw0,...,w15の絶対長さがわかると、各タスクについての絶対開始時間及び絶対終了時間は容易に計算されうる。まず、適当な時点ゼロを定義せねばならない。これは、現在時間であっても、スケジュールが実行さえるべき所与の時間であってもよい。この時点ゼロは、ウィンドウw0の開始に対応する。ウィンドウw0,...,w15の長さは、夫々の絶対開始時間を決定するために使用されうる。ウィンドウw0,...,w15の開始時間はタスクの開始時間又は終了時間に対応するため、単純にウィンドウ開始時間を適当なタスク開始時間又は終了時間に割り当てるだけで十分である。
【0068】
順序付けモジュール202によって導出される制約条件は、ウィンドウを考慮に入れるために変換されねばならない。実行時間及び先行制約条件のために、w変数に対する線形制約条件は、
【0069】
【数12】
の形である。上述の制約条件を組み合わせることにより、任意の行列Dと定数のベクトルdに対してDw≧dという系が得られる。
【0070】
タスク処理限界及び処理能力制約条件について、p変数についての線形制約条件は、
【0071】
【数13】
であり、ただし、I(r)はリソースrに割り当てられたスケジュールされた活動の添え字であり、活動のボックス外の最小及び最大タスク処理速度はゼロであるよう選定される。上述の制約条件は、各ウィンドウj=0,...,15に対して成り立たねばならない。これにより、任意の行列Aj及び定数のベクトルejについて、π・jは行列πの列を示すとすると、Ajπ・ j≧ejという系が得られる。尚、図3中、16のウィンドウがあるため、以下では、jは常にゼロから15の範囲である。ウィンドウの数が異なる場合、jの上限もまた調整されねばならない。
【0072】
動作のコンテンツ全体に対する制約条件は、wkβik+...+wlβil≧ciと表わすことができ、これにより、πw≧cという系が生ずる。これは、π変数とw変数の間のクロス乗積を与える。
【0073】
残る制約条件は、時間及びタスク処理速度の絶対値には依存しないため、相対的な時間順序及びリソース割当てが分かっているときに既に調べることができ、従ってこの副次的な問題からは排除されうる。概説するに、副次的な問題は以下の一組の制約条件、
【0074】
【数14】
によって定式化されうる。式1の問題は、列発生を伴う線形計画によって解くことができる。列発生は、例えば、Schrijver, Linear and Integer Programming, John Wiley & Sons, 1986, ISN 0−471−90854−1, pp. 147−148に記載されている。
【0075】
問題を解くために、上述の制約条件の組は、以下の式、
【0076】
【数15】
と書き換えることができ、各ウィンドウjに対して、
【0077】
【数16】
で表わされる一組の可能なタスク処理速度割当てが導入される。式中、数字8が用いられているのは、8つのスケジュールされたタスク301、302、303、304、305、306、307、308があるためである。1つのウィンドウにつき1つのタスク処理速度割当てπ・ j∈Pjを考慮する代わりに、全ての可能なタスク処理速度割当てが考慮される。各ウィンドウについて、ここで各ウィンドウj=0,...,15に対して、
【0078】
【数17】
を満たさねばならない変数wjpと、各タスク処理速度割当てp∈Pjがある。この問題の解は、
【0079】
【数18】
とすることにより、式2の解を容易に決定するために使用されえ、即ち、副次的なウィンドウの幅が加算され、使用されるタスク処理速度の平均がとられる。代入により、この解が式2の第2の不等式を満たすことが明らかである。更に、構築されたπ・ jは凸集合Pjの要素の凸組合せであるため、この式の第1の不等式もまた満たされ、π・ j自体もまたPjの要素である。従って、Ajπ・ j≧ejが成り立つ。
【0080】
式3を解くためには、各集合Pjが無数の要素を含むため、無数の変数wjpが決定されねばならない。ポリトープPjの端点に対して、一般性を失うことのない制約条件を課すことができるが、それでもやはり対応する線形計画表のためにあまりにも多くの変数及びあまりにも多くの列を発生させることを必要とする。これは、各ウィンドウjに対して
【0081】
【外1】
のみを考慮する列発生技術を用いることによって克服される。部分集合は、初期的には空であり、新しい要素が反復的に追加される。
【0082】
従って、これにより、
【0083】
【数19】
という派生的な問題が与えられ、ここで、任意の時点で利用可能な系を与えるためにペナルティ変数x及びyが追加されている。初期的には、全てのウィンドウjに対して
【0084】
【外2】
であり、上述の系は最適化される。次に、各ウィンドウwjは、
【0085】
【外3】
に追加したときに全体のペナルティーを減少させうるPjの要素、即ち上述の系の最適化された表において負の減少された費用を有するかかどうか反復的に調べられる。これは、集合Pjが線形制約条件によって与えられているため、線形計画問題を解くことによって調べられうる。このような要素が存在すれば、その要素は
【0086】
【外4】
に加えられ、上述の系は再び最適化される。この処理は、全てのウィンドウwjに対して改善する要素が存在しなくなるまで繰り返される。結果としての全体のペナルティがゼロであれば、式(3)の解が存在し、ゼロでなければ可能な解は存在しない。
【0087】
ここで、タスクの開始時間及び終了時間の相対的な順序が、リソース割当てと共に与えられていれば、上述の技術によって、制約条件を満たすか少なくとも制約条件に対する違反を最小限とする絶対開始時間、終了時間、及びタスク処理速度が存在するかどうか判定することが可能である。順序付けモジュール202から得られた相対順序又はリソース割当てを、タスクについての新しい相対開始時間、タスクについての新しい終了時間、及び、タスクについての新しいリソース割当てのうちの少なくとも1つを決定することにより変更し、最小の制約条件の違反が減少されうるか、又は、一組のスケジュールされた作動を増加させることが可能であるかを調べることが可能である。これらの変更は小さく、従って副次的な問題において生ずる変更も小さく、絶対的な時間及びタスク処理速度の増分的な計算を可能とする。
【0088】
スケジューリングモジュール204は、タイミングモジュール203の出力に基づいてスケジュール205を決定する。このスケジュール205は、各タスクaに対して決定された開始時間τst(a)及び絶対終了時間τcp(a)、時間及び関連するタスク処理速度の集まり(τ0,π1,τ1,π2,...τm,πm)、並びに、各グループjについてのリソースの割当てρj(a)を含む。
【0089】
スケジュール205は、人間の監視者に提示されるか、スケジュールに従ってリソース上のタスクを実行するために図1のシステムにおいて自動的に利用されうる。
【図面の簡単な説明】
【図1】本発明によるスケジューラを有する伝送システムを示すブロック図である。
【図2】本発明によるスケジューラを示すブロック図である。
【図3】スケジュールの一例を示す図である。
Claims (10)
- 複数のリソースを必要とする複数のタスクを実行するスケジュールを決定する方法であって、
(a)各タスクの所与の要件及び各リソースについての所与の制限条件から一組の制約条件を構築する段階と、
(b)上記一組の制約条件に含まれる制約条件に基づいて、各タスクについて相対開始時間、相対終了時間、及びリソースの割当てを決定する段階と、
(c)上記タスクについて決定された相対開始時間、相対終了時間、及びリソースの割当てに基づいて、上記一組の制約条件に含まれる制約条件の違反を最小限としつつ、各タスクについて絶対開始時間、絶対終了時間、並びに、時間及び関連付けられるタスク処理速度の集まりを決定する段階と、
(d)各タスクについて上記決定された絶対開始時間、絶対終了時間、時間及び関連するタスク処理速度の集まり、並びに、上記タスクに対するリソースの割当てを含むスケジュールを決定する段階とを含む方法。 - 上記段階(c)は、
ウィンドウの系列、上記系列のうちタスクの相対開始時間及び相対終了時間のうちの一つに対応するウィンドウの開始時間、及び、上記ウィンドウの終了時間であり上記系列のうちの次のウィンドウの開始時間に対応する終了時間を決定する段階と、
上記一組の制約条件に含まれる制約条件に対する違反を最小限としつつ、上記系列のうちのウィンドウの絶対長さを決定する段階と、
上記一組の制約条件に含まれる制約条件に対する違反を最小限としつつ、各ウィンドウについて、各タスクに対する処理速度を決定し、各タスクについて時間及びそれに基づく関連するタスク処理速度の集まりを生成する段階と、
各タスクについて、上記ウィンドウの絶対長さから絶対開始時間及び絶対終了時間を決定する段階とを含む、請求項1記載の方法。 - 上記制約条件に対する違反が生じているか否か判定する段階を更に含み、生じていれば、
タスクについての新しい相対開始時間、タスクについての新しい相対終了時間、及びタスクについての新しいリソースの割当てのうちの少なくとも一つを決定し、
上記段階(c)を実行する、請求項1又は2記載の方法。 - 上記系列のうちのウィンドウの絶対長さを決定する段階は、線形計画問題を解くことによって行われる、請求項2記載の方法。
- 上記各ウィンドウについて各タスクに対するタスク処理速度を決定する段階は、線形計画問題を解くことによって行われる、請求項2又は4記載の方法。
- 複数のリソースを必要とする複数のタスクを実行するスケジュールを決定するスケジューラであって、
各タスクの所与の要件及び各リソースに対する所与の制限から一組の制約条件を構築する構築手段と、
上記一組の制約条件に含まれる制約条件に基づいて、各タスクについて相対開始時間、相対終了時間及びリソースの割当てを決定する順序づけ手段と、
上記一組の制約条件に含まれる制約条件に対する違反を最小限としつつ、上記タスクについて決定された相対開始時間、相対終了時間、及びリソースの割当てに基づいて、各タスクについて絶対開始時間、絶対終了時間、及び時間及び関連付けられるタスク処理速度の集まりを決定するタイミング手段と、
各タスクについて上記決定された絶対開始時間、絶対終了時間、時間及び関連するタスク処理速度の集まり、並びに、上記タスクに対するリソースの割当てを含むスケジュールを決定するスケジューリング手段とを含むスケジューラ。 - 上記タイミング手段は、
ウィンドウの系列、上記系列のうちタスクの相対開始時間及び相対終了時間のうちの一つに対応するウィンドウの開始時間、及び、上記ウィンドウの終了時間であり上記系列のうちの次のウィンドウの開始時間に対応する終了時間を決定し、
上記一組の制約条件に含まれる制約条件に対する違反を最小限としつつ、上記系列のうちのウィンドウの絶対長さを決定し、
上記一組の制約条件に含まれる制約条件に対する違反を最小限としつつ、各ウィンドウについて、各タスクに対する処理速度を決定し、各タスクについて時間及びそれに基づく関連するタスク処理速度の集まりを生成し、
各タスクについて、上記ウィンドウの絶対長さから絶対開始時間及び絶対終了時間を決定するよう配置される、請求項6記載のスケジューラ。 - 上記制約条件に対する違反が生じているか否か判定する段階を更に含み、生じていれば、
タスクについての新しい相対開始時間、タスクについての新しい相対終了時間、及びタスクについての新しいリソースの割当てのうちの少なくとも一つを決定し、
上記タイミング手段を作動させる、請求項6又は7記載のスケジューラ。 - 線形計画問題を解くための線形計画手段を更に含む、請求項7記載のスケジューラ。
- 請求項6乃至9のうちいずれか一項記載のスケジューラと、複数のリソースとを含むシステムであって、
上記スケジューラから得られるスケジュールに従って上記複数のリソース上でタスクを実行するよう配置されるシステム。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP00202245 | 2000-06-27 | ||
PCT/EP2001/007068 WO2002001344A2 (en) | 2000-06-27 | 2001-06-20 | Method of determining a schedule, scheduler and system |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004502235A true JP2004502235A (ja) | 2004-01-22 |
Family
ID=8171707
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002506413A Withdrawn JP2004502235A (ja) | 2000-06-27 | 2001-06-20 | スケジュール決定方法、スケジューラ及びシステム |
Country Status (6)
Country | Link |
---|---|
US (1) | US20020156669A1 (ja) |
EP (1) | EP1297414A2 (ja) |
JP (1) | JP2004502235A (ja) |
KR (1) | KR20020035580A (ja) |
CN (1) | CN1316361C (ja) |
WO (1) | WO2002001344A2 (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009020609A (ja) * | 2007-07-10 | 2009-01-29 | Ricoh Co Ltd | 画像形成装置、プログラム制御方法及びプログラム |
US7685599B2 (en) | 2003-09-26 | 2010-03-23 | Kabushiki Kaisha Toshiba | Method and system for performing real-time operation |
JP2010515155A (ja) * | 2006-12-26 | 2010-05-06 | クラスター リソーセス インク | 異なるコンピュータリソースタイプにわたる予約の同時割当 |
US8832695B2 (en) | 2011-08-19 | 2014-09-09 | Fujitsu Limited | Method of scheduling jobs and information processing apparatus implementing same |
WO2018198745A1 (ja) * | 2017-04-27 | 2018-11-01 | 日本電気株式会社 | 計算資源管理装置、計算資源管理方法、及びコンピュータ読み取り可能な記録媒体 |
WO2024181010A1 (ja) * | 2023-02-27 | 2024-09-06 | モルゲンロット株式会社 | 情報処理装置、情報処理方法、及びプログラム |
Families Citing this family (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7502747B1 (en) * | 2001-11-29 | 2009-03-10 | Microsoft Corporation | Automated job scheduling based on resource availability |
US7559062B2 (en) * | 2003-10-30 | 2009-07-07 | Alcatel Lucent | Intelligent scheduler for multi-level exhaustive scheduling |
US7292904B2 (en) * | 2003-10-31 | 2007-11-06 | International Business Machines Corporation | Method for sizing production lot starts within a linear system programming environment |
US7769709B2 (en) * | 2004-09-09 | 2010-08-03 | Microsoft Corporation | Method, system, and apparatus for creating an archive routine for protecting data in a data protection system |
EP1894094A1 (en) * | 2005-06-03 | 2008-03-05 | Nxp B.V. | Data processing system and method for scheduling the use of at least one exclusive resource |
WO2007056665A2 (en) * | 2005-11-02 | 2007-05-18 | Logistical Athletic Solutions, Llc | Student athlete scheduling and data storage software system and method |
US20070282476A1 (en) * | 2006-06-06 | 2007-12-06 | Siemens Corporate Research, Inc | Dynamic Workflow Scheduling |
ATE519155T1 (de) * | 2006-12-21 | 2011-08-15 | Software Ag | Verfahren zur ausführung von in einer prozessbeschreibungssprache definierten aufgaben |
US7982894B2 (en) * | 2007-03-20 | 2011-07-19 | Kabushiki Kaisha Toshiba | Digital multiple apparatus |
CN101290585B (zh) * | 2007-04-19 | 2011-09-21 | 中兴通讯股份有限公司 | 一种嵌入式系统实时任务的调度方法 |
US8984520B2 (en) * | 2007-06-14 | 2015-03-17 | Microsoft Technology Licensing, Llc | Resource modeling and scheduling for extensible computing platforms |
CN101106734B (zh) * | 2007-08-09 | 2010-12-08 | 中兴通讯股份有限公司 | 智能网系统任务调度系统及方法 |
CN101414958B (zh) * | 2007-10-18 | 2011-02-09 | 华为技术有限公司 | 一种业务调度方法及装置 |
US8561072B2 (en) * | 2008-05-16 | 2013-10-15 | Microsoft Corporation | Scheduling collections in a scheduler |
US20100097932A1 (en) * | 2008-10-15 | 2010-04-22 | Viasat, Inc. | Satellite traffic and congestion-based upstream scheduler |
CN101901164B (zh) * | 2009-05-27 | 2012-07-04 | 北京金山软件有限公司 | 时间计划调度模块和方法 |
US8719435B2 (en) | 2009-08-21 | 2014-05-06 | The Chinese University Of Hong Kong | Devices and methods for scheduling transmission time of media data |
KR20120067133A (ko) * | 2010-12-15 | 2012-06-25 | 한국전자통신연구원 | 서비스 제공 방법 및 장치 |
US8856415B2 (en) | 2012-02-01 | 2014-10-07 | National Instruments Corporation | Bus arbitration for a real-time computer system |
CN103870327A (zh) * | 2012-12-18 | 2014-06-18 | 华为技术有限公司 | 一种实时多任务调度方法和装置 |
KR20140093508A (ko) * | 2013-01-18 | 2014-07-28 | 한국과학기술원 | 근접질의 연산 가속화 시스템 |
US10768984B2 (en) * | 2015-06-11 | 2020-09-08 | Honeywell International Inc. | Systems and methods for scheduling tasks using sliding time windows |
KR20200046168A (ko) * | 2018-10-17 | 2020-05-07 | 삼성전자주식회사 | 모듈화된 신경망의 데이터 처리를 제어하는 전자 장치 및 그 제어 방법 |
CN109785178B (zh) * | 2019-01-31 | 2021-03-26 | 百度在线网络技术(北京)有限公司 | 用于生成信息的方法和装置 |
CN112532427B (zh) * | 2020-11-05 | 2023-03-14 | 中国航空工业集团公司西安航空计算技术研究所 | 一种时间触发通信网络的规划调度方法 |
CN112416589A (zh) * | 2020-11-21 | 2021-02-26 | 广州西麦科技股份有限公司 | 一种用于运维平台定时作业错峰执行的方法 |
CN115225587B (zh) * | 2022-07-05 | 2023-08-15 | 国家电网有限公司 | 基于约束规划的异步终端系统调度优化方法 |
CN116011792B (zh) * | 2023-02-21 | 2023-06-27 | 中国人民解放军国防科技大学 | 基于约束层次网络的任务时间逻辑约束推理方法及装置 |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4642758A (en) * | 1984-07-16 | 1987-02-10 | At&T Bell Laboratories | File transfer scheduling arrangement |
US6948172B1 (en) * | 1993-09-21 | 2005-09-20 | Microsoft Corporation | Preemptive multi-tasking with cooperative groups of tasks |
FR2723653B1 (fr) * | 1994-08-11 | 1996-09-13 | Cegelec | Procede pour ordonnancer des taches successives qui ne subissent que des contraintes du type delais |
FR2723652B1 (fr) * | 1994-08-11 | 1996-09-13 | Cegelec | Procede pour ordonnancer des taches successives |
US5758257A (en) * | 1994-11-29 | 1998-05-26 | Herz; Frederick | System and method for scheduling broadcast of and access to video programs and other data using customer profiles |
US5920701A (en) * | 1995-01-19 | 1999-07-06 | Starburst Communications Corporation | Scheduling data transmission |
JPH0954699A (ja) * | 1995-08-11 | 1997-02-25 | Fujitsu Ltd | 計算機のプロセススケジューラ |
US6003061A (en) * | 1995-12-07 | 1999-12-14 | Microsoft Corporation | Method and system for scheduling the use of a computer system resource using a resource planner and a resource provider |
US5812844A (en) * | 1995-12-07 | 1998-09-22 | Microsoft Corporation | Method and system for scheduling the execution of threads using optional time-specific scheduling constraints |
JPH09261617A (ja) * | 1996-01-19 | 1997-10-03 | Matsushita Electric Ind Co Ltd | オンデマンド通信システム |
US6049332A (en) * | 1996-10-07 | 2000-04-11 | Sony Corporation | Method and apparatus for the scheduling and ordering of elements in a multimedia environment |
US5875175A (en) * | 1997-05-01 | 1999-02-23 | 3Com Corporation | Method and apparatus for time-based download control |
US6571215B1 (en) * | 1997-01-21 | 2003-05-27 | Microsoft Corporation | System and method for generating a schedule based on resource assignments |
US6385638B1 (en) * | 1997-09-04 | 2002-05-07 | Equator Technologies, Inc. | Processor resource distributor and method |
US6272483B1 (en) * | 1997-10-31 | 2001-08-07 | The State Of Oregon Acting By And Through The State Board Of Higher Education On Behalf Of The University Of Oregon | Cost-optimizing allocation system and method |
US6374405B1 (en) * | 1999-02-17 | 2002-04-16 | Opentv, Corp. | Module scheduling with a time interval and ending time |
US6438704B1 (en) * | 1999-03-25 | 2002-08-20 | International Business Machines Corporation | System and method for scheduling use of system resources among a plurality of limited users |
US6738972B1 (en) * | 1999-12-30 | 2004-05-18 | Opentv, Inc. | Method for flow scheduling |
US7150017B1 (en) * | 2000-08-29 | 2006-12-12 | International Business Machines Corporation | System and method for scheduling digital information transmission and retransmission on a network during time slots |
-
2001
- 2001-06-20 CN CNB018024785A patent/CN1316361C/zh not_active Expired - Fee Related
- 2001-06-20 US US10/069,742 patent/US20020156669A1/en not_active Abandoned
- 2001-06-20 EP EP01956496A patent/EP1297414A2/en not_active Withdrawn
- 2001-06-20 WO PCT/EP2001/007068 patent/WO2002001344A2/en not_active Application Discontinuation
- 2001-06-20 KR KR1020027002488A patent/KR20020035580A/ko not_active Application Discontinuation
- 2001-06-20 JP JP2002506413A patent/JP2004502235A/ja not_active Withdrawn
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7685599B2 (en) | 2003-09-26 | 2010-03-23 | Kabushiki Kaisha Toshiba | Method and system for performing real-time operation |
JP2010515155A (ja) * | 2006-12-26 | 2010-05-06 | クラスター リソーセス インク | 異なるコンピュータリソースタイプにわたる予約の同時割当 |
JP2009020609A (ja) * | 2007-07-10 | 2009-01-29 | Ricoh Co Ltd | 画像形成装置、プログラム制御方法及びプログラム |
US8832695B2 (en) | 2011-08-19 | 2014-09-09 | Fujitsu Limited | Method of scheduling jobs and information processing apparatus implementing same |
WO2018198745A1 (ja) * | 2017-04-27 | 2018-11-01 | 日本電気株式会社 | 計算資源管理装置、計算資源管理方法、及びコンピュータ読み取り可能な記録媒体 |
JPWO2018198745A1 (ja) * | 2017-04-27 | 2020-03-05 | 日本電気株式会社 | 計算資源管理装置、計算資源管理方法、及びプログラム |
US11204805B2 (en) | 2017-04-27 | 2021-12-21 | Nec Corporation | Computational resource management apparatus which optimizes computational resources to be allocated to tasks having a dependency relationship, computational resource management method and computer readable recording medium |
WO2024181010A1 (ja) * | 2023-02-27 | 2024-09-06 | モルゲンロット株式会社 | 情報処理装置、情報処理方法、及びプログラム |
Also Published As
Publication number | Publication date |
---|---|
EP1297414A2 (en) | 2003-04-02 |
CN1615471A (zh) | 2005-05-11 |
WO2002001344A3 (en) | 2002-08-01 |
US20020156669A1 (en) | 2002-10-24 |
KR20020035580A (ko) | 2002-05-11 |
WO2002001344A2 (en) | 2002-01-03 |
CN1316361C (zh) | 2007-05-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP2004502235A (ja) | スケジュール決定方法、スケジューラ及びシステム | |
US7801177B2 (en) | Method for equitable bandwidth allocation for content distribution networks | |
US8140698B2 (en) | Method and system for efficient data transmission in interactive networked environments | |
CN110351571B (zh) | 基于深度强化学习的直播视频云转码资源分配与调度方法 | |
Arbib et al. | On cutting stock with due dates | |
Schmidt et al. | Optimal message scheduling for the static segment of FlexRay | |
CN101194511A (zh) | 用于调度带宽消耗型媒体事件的策略 | |
Erlebach et al. | NP-hardness of broadcast scheduling and inapproximability of single-source unsplittable min-cost flow | |
Dai et al. | Bandwidth efficiency and service adaptiveness oriented data dissemination in heterogeneous vehicular networks | |
EP1390840B1 (en) | System and method for scheduling the distribution of assets from multiple asset providers to multiple receivers | |
Maksymyuk et al. | Software defined optical switching for cloud computing transport systems | |
Novak et al. | Efficient algorithm for jitter minimization in time-triggered periodic mixed-criticality message scheduling problem | |
JPH10243018A (ja) | 通信装置、帯域確保方法及び端末装置 | |
Ghasemi et al. | Asynchronous coded caching | |
Barshan et al. | Deadline-aware advance reservation scheduling algorithms for media production networks | |
Lee et al. | Cost-effective, quality-oriented transcoding of live-streamed video on edge-servers | |
Partheeban et al. | Versatile provisioning and workflow scheduling in WaaS under cost and deadline constraints for cloud computing | |
CN103686224A (zh) | 基于分布式锁的转码任务获取的方法和系统 | |
Patel et al. | A novel stochastic algorithm for scheduling QoS-constrained workflows in a Web service-oriented grid | |
Novak et al. | Scheduling of safety-critical time-constrained traffic with F-shaped messages | |
Erlebach | Call admission control for advance reservation requests with alternatives | |
Tyan et al. | On supporting temporal quality of service in WDMA-based star-coupled optical networks | |
US20110019672A1 (en) | System and method for assigning information categories to multicast groups | |
Eickermann et al. | Co-Allocating Compute and Network Resources | |
Woo et al. | Media streams scheduling for synchronization in distributed multimedia systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20080619 |
|
A711 | Notification of change in applicant |
Free format text: JAPANESE INTERMEDIATE CODE: A711 Effective date: 20090514 |
|
A761 | Written withdrawal of application |
Free format text: JAPANESE INTERMEDIATE CODE: A761 Effective date: 20091218 |