JP5628222B2 - スケジューラ - Google Patents

スケジューラ Download PDF

Info

Publication number
JP5628222B2
JP5628222B2 JP2012010331A JP2012010331A JP5628222B2 JP 5628222 B2 JP5628222 B2 JP 5628222B2 JP 2012010331 A JP2012010331 A JP 2012010331A JP 2012010331 A JP2012010331 A JP 2012010331A JP 5628222 B2 JP5628222 B2 JP 5628222B2
Authority
JP
Japan
Prior art keywords
activity
time
scheduling
schedule
available
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.)
Expired - Fee Related
Application number
JP2012010331A
Other languages
English (en)
Other versions
JP2012123816A (ja
Inventor
デイビッド・チャールズ・フィッシャー
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Raytheon Co
Original Assignee
Raytheon Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Raytheon Co filed Critical Raytheon Co
Publication of JP2012123816A publication Critical patent/JP2012123816A/ja
Application granted granted Critical
Publication of JP5628222B2 publication Critical patent/JP5628222B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06314Calendaring for a resource
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION 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/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling

Landscapes

  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Engineering & Computer Science (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Economics (AREA)
  • Strategic Management (AREA)
  • Operations Research (AREA)
  • Physics & Mathematics (AREA)
  • Educational Administration (AREA)
  • Marketing (AREA)
  • Development Economics (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Game Theory and Decision Science (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Meter Arrangements (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Description

本発明は、一般的にスケジュールにおける新規アクティビティ群のスケジューリングに関し、特に、優先順位の高いアクティビティ群を追い出すことなく、優先順位によって関係付けられる新規アクティビティ群の挿入を許すシステムに関する。
簡単に述べると、スケジュールは、何のアクティビティ/アクティビティ群が行われるか、いつ行われるか、誰が実行するのかを関係者へ通知する。スケジュールは1時間、1日、1週間、1月または他の時間の間走行する。一般的に、「いつ」の特性は、特定の時刻にアクティビティを開始させ、およびまたその後の特定の時刻に終了させる特定の基準である。
「何」の特性に関しては、スケジュールは、睡眠、食事、建築あるいはなにか他のアクティビティのような非常に一般的なアクティビティ情報を提供する。「何」の特性はまた、ベッド2での睡眠、テーブル5での食事、ステーション4での建築のようなリソース情報を提供する。
「誰」の特性に関しては、スケジュールは、誰がそのアクティビティを実行しているかについて、アクティビティのオブザーバに情報を提供する。あるいはスケジュールは、アクティビティを開始し、また終了させるため関係者に指示を与える。典型的には、スケジュールはまた、現在、アクティビティ群がスケジュールされている時間であるビジー時間はもちろん、スケジュールされていない時間である空き時間を指示する。
スケジュールは、アクティビティ群を受けとった順に、または論理的に発生する順にスケジュールすることによって組み立てられる。スケジュールはまた、優先の降順または昇順にアクティビティ群に優先順位をつけることによって組み立てられる。アクティビティが発生するまたは発生するかもしれない時間が重要である場合には、配置の焦点は、優先の単純な順序から特定な時間の優先順位のレベルに移る。
多くの実世界の設定では、スケジュールに対して特定の要求がある。どんな所定のリソース(航空機、人工衛星、コンピュータのような)に対しても、何かがどの位長くそしてどの位多く発生するかという両方の点で有限な有効性がある。コンピュータの速度は増加し続けている。しかし、時間の各瞬間には、CPUは実行すべき有限個の動作を保持している。さらに強力なコンピュータCPUリソースは、強力でないCPUリソースより多くの動作を実際に実行する。そして、そのような選択はスケジュールを立てるときに考慮されるあるいは考慮されないかも知れない。もう一つの例では、航空機あるいは人工衛星は、いつでも地球上の特定の地点の上方にあるわけではなく、航空機あるいは人工衛星は、目標地域の上方であるときでさえ、基地に戻る前あるいは射程外を通過する前に、有限個のアクティビティを監視、配備、蓄積、実行することができるだけである。
スケジュールが作成された後には、新規のアクティビティあるいはアクティビティ群の挿入、既にスケジュールされている1以上のアクティビティの変更およびまたは、削除がしばしば必要になる。新規のアクティビティが、さもなければスケジュールに占有されない要求された性能の時間およびライフスパンを保持するとき、挿入は全く容易である。1以上の以前にスケジュールされたアクティビティ群が、新規アクティビティの要求された時間とライフスパンの一部または全てを妨げるとき、複雑な状況が起こる。新規のアクティビティの挿入の試みや可能性のある成功は、かなりの量のスケジュール変更を伴う。そのような変更がどのように実行されるかは、広く変化し多くの要因に依存する。
割り当て時間の間に、競合しているアクティビティ群でスケジュールを一杯にすること、あるいは新規のアクティビティ群が現存のスケジュールされているアクティビティ群と競合する場合に、現存のスケジュールに新規のスケジュール群を入れることは、決して容易ではない。多くの問題そしてそれらに適用されるアルゴリズムは、インプットを直線的に2倍、3倍にする。そして完了させるには2倍、3倍時間がかかる。他の問題は2次式、3次式、もう一つは多項式である。問題の種類が、解が多項式でない所に出会うとき、それはおそらく非決定性多項式であり、より一般に「NP困難」と呼ばれる。
スケジュールを一杯にし、スケジュールに新規のアクティビティ群を挿入することは、NP困難であるとみなされるアクティビティ群である。NP困難の問題は、良く知られており、しばしば出会う。しかしそれらを解くアルゴリズムは知られていない。高速アルゴリズムは、実際に有用であるべき解として十分速く最適解を返すものである。解を計算するのに年数がかかる場合、有用さの期間が長く期限切れになることはかなりあり得る。
そのようなNP困難の問題の有名な例は、旅行するセールスマンである。セールスマンは、各州都を訪問することを望み、運転時間を最小にすることを望んでいる。50州の範囲で49!の可能性のある選択がある。そしてこの問題を正確に解くアルゴリズムは知られていない。
スケジュールについては、無限の多量な時間が与えられれば、最適解は見つけられるかも知れない。しかしながら、スケジュールを具体化している間、そしてそれに続くスケジュールの変更の間、実際の時間は継続して進んでいる。その結果、最適解が見つかる時までに、あまりにも多くの時間が経過し、結果が疑わしいということが大いにあり得る。
特定のスケジュールの目的もまた、どのようにアクティビティ群をスケジュールするか、どのように新規のアクティビティを追加するかを操縦する。スケジュールの組み立て、変更で使用されてきた1つの普及している方法は、「英国的オークション」である。それはまた最高価格、公開入札オークションとしても知られている。
「英国的オークション」では、アクティビティ群は、リソ−スに値をつける。全ての使用可能なリソースと機会はオークションで考慮に入れられる。優先順位の低いアクティビティ群と優先順位の高いアクティビティ群はともに競り合う。優先順位の高いアクティビティ群はより高い最高の指値を持ち、そのため、ついに好ましい割り当て時間を確得する。しかし、優先順位の低いアクティビティを収容する前はできない。実際は、特定のタイムスロットに対して低い優先権を持つ優先順位の高いアクティビティは取って代わられる。そして、その特定のタイムスロットに対して高い優先権を持つ1以上の優先順位の低いアクティビティ群によって取って代わられ、もしかすると削除される。
別の方法で述べると、タイムスロットに対して高い優先権を持つ優先順位の低いアクティビティは、同じタイムスロットに対して低い優先権をもつ優先順位の高いアクティビティに取って代わる。さらに、複数の優先権の低いアクティビティ群は、結合された優先権が単独の優先順位の高い優先権より大きければ、力を結合させ、ひとまとめにして優先順位の高いアクティビティに取って代わる。
望むところは最大数のアクティビティ群をスケジュールすることであり、優先順位にかかわらず英国的オークションはかなり効果的である。しかしながら、優先順位の高いアクティビティのスケジューリング上に置かれたプレミアムがある場合、そのときは英国的オークションは最適解を提供しない可能性がある。実際は、できるだけ多くのイベントをスケジュールすることが命令であるが、しかし優先順位の高いアクティビティが1以上の優先順位の低いものによってこれまで取って代わられていない場合、そのときは英国的オークション手法は受け入れられない。
混合整数方法もまたスケジュール変更を行うために提案されてきた。しかしながら、混合整数方法では各々のかつあらゆる許容される可能なアクティビティ群の置換が考慮され評価される。現代のコンピュータの速度でさえも、比較のために全ての置換を試みることへの焦点は、全てのしかし一番単純なスケジュールに対して混合整数方式を非常に実用的でなくしている。
従って、現在のスケジューリングシステムに見られる1以上の技術的問題を克服するアドホックなスケジューラが必要とされている。
本発明は、アクティビティ群をスケジュールするための方法を提供する。
特に、そして単なる例示であるが、本発明の1実施形態に従って、アクティビティ群をスケジュールするために1つの方法が提供される。その方法は、
指定された優先順位と、ライフスパンまたは満了時間と、好ましいインプリメンテーション時刻と、スケジューリング時間の予算とを有しているアクティビティを受け取るステップと、
好ましいインプリメンテーション時刻が使用可能であるかどうかと、使用可能な実行時間の量とを決定するためにスケジュールをサーチするステップと、
好ましいインプリメンテーション時刻が使用可能であり、ライフスパンが使用可能な実行時間以内でれば、好ましいインプリメンテーション時刻に前記アクティビティを挿入するステップと、
使用できないインプリメンテーション時刻に応じて、あるいは使用可能な実行時間より長いライフスパンに応じてスケジュールを変更する方法であって、スケジュールされた同等以上の優先順位を持つアクティビティ群を保存する方法と、
経過したスケジューリング時間がスケジューリング時間予算を越えたとき前記方法を終了させるステップとを備えている。
1実施形態に従ったスケジューリングシステムの高レベルのブロック図。 1実施形態に従った高レベルの工程系統図。 1実施形態に従って、スケジューラが新規のアクティビティを受け取る例。 1実施形態に従って、図3のスケジュール変更を説明する工程系統図。 1実施形態に従って、スケジューラが新規のアクティビティを受け取る別の例。 1以上の実施形態に従って、スケジュールが変更を行う図5の別の例。 1以上の実施形態に従って、図5および図6に示されるスケジュール変更を説明する工程系統図。 1以上の実施形態に従ったコンピュータシステムのブロック図。
詳細な説明
詳細な説明を続ける前に、ここにおける説明は、限定ではなく、例示であることが認識されるべきである。ここでの概念は、特定の種類のスケジューラでの使用または応用に制限されない。このように、ここで説明される手段は、説明の便宜上、例示的な実施形態に関して説明、表示されているけれども、ここでの原理は他の種類のスケジューリングシステムに等しく適用されるということが認識されるべきである。
図1は、少なくとも1実施形態に従ったスケジューリングシステム100のコンピュータプログラム構成の高レベルのブロック図である。スケジューリングシステム100は、プロセッサ、メモリ、記憶装置、そして入出力装置のような典型的なコンピュータコンポーネントを有するコンピュータに実装される。動作中、スケジューリングシステム100は、増加された速度と効率でアクティブメモリ中で維持される。さらに、すくなくとも1実施形態では、スケジューリングシステム100は、コンピュータネットワーク上で動作し、分散したリソースを利用することができる。
スケジューリングシステム100は、以下の主要なしかし非排他的であるテナントに従って、新規のアクティビティをスケジュールに挿入するために使用される。即ち、第一に、高い優先順位を持つアクティビティ群は、スケジュール内に維持される。単一の優先順位の低いアクティビティまたは優先順位の低いアクティビティ群のグループは、優先順位の高いアクティビティに取って代わることはできない。第二に、現存のスケジュールへの影響は最小にされる。現存のスケジュールされているアクティビティ群は、再スケジュールすることを要求される。現存の優先順位の低いアクティビティの削除は、再スケジュールする要求が新規のアクティビティのスケジューリングを許可することに失敗するときにだけ実行される。第三に、新規のアクティビティがスケジューリング時間予算画面でスケジュールされることができない場合、スケジューリングシステム100は終了する。
以下の説明をさらに助けるために、以下の定義された用語が提供される。
「優先順位」−アクティビティの数値的優先順位の評価(優先順位1のアクティビティ>優先順位2のアクティビティ)。
「ライフスパン」−アクティビティに要求される実行時間であり、最小値と最大値を持つ。
「インプリメンテーション時刻」−アクティビティが実行を開始する特定の時刻。
「スケジューリング時間予算」−スケジュールの中にアクティビティの挿入を試みるために割り当てられる時間の量。
「実行時間」−アクティビティの実行のために使用可能な時間の量あるいはアクティビティのためにスケジュールの中で使用可能なライフスパン。
「フラッフィング」−規定するとしたら、スケジュールされたアクティビティのライフスパンを最小値のライフスパンから最大値のライフスパンに向けて増加させる行動。
「クリーンアップ」−移動させられたアクティビティまたはアクティビティ群を最初のインプリメンテーション時刻あるいは、できるだけ最初のインプリメンテーション時刻に近い時間に戻して復元する行動。
図1に戻り、スケジューリングシステム100は、入力ルーチン102、サーチルーチン104、挿入ルーチン106、再配置ルーチン108、ランダム化ルーチン110、タイミングルーチン112を含む。少なくとも1実施形態では、スケジューリングシステム100は、コンピュータデータファイルあるいは複数のコンピュータデータファイルとして格納されているスケジュール中にアクティビティ挿入する動作が可能である。データファイルの種類は重要でなく、データベース、リレーショナルデータベース、ストリングファイル、あるいはスケジューリングシステム100が使用されるデータおよびシステムにとって適正である他の形式でも良い。
入力ルーチン102は、ユーザがスケジュールに入力されるべきアクティビティを入力することを許可する入力装置と適切に連結している。各アクティビティは、少なくとも優先順位、ライフスパン、好ましいインプリメンテーション時刻およびスケジュール時間予算を持っている。ある実施形態では、例えば特定のリソ-スのような追加情報が同様に提供される。
サーチルーチン104は、好ましいインプリメンテーション時刻の使用可能性あるいは、代りのインプリメンテーション時刻、使用可能な実行時間の数量と、ブロッキングアクティビティの可能な存在を決定するために、スケジュールをサーチするように動作することが可能である。挿入ルーチン106は、使用可能な実行時間がライフスパン以上であれば、決定された使用可能な好ましいインプリメンテーション時刻、あるいは代りのインプリメンテーション時刻にアクティビティを挿入する。
再配置ルーチン106は、好ましいインプリメンテーション時刻、あるいは代りのインプリメンテーション時刻に近い時間にスケジュールされたブロッキングアクティビティの決定に応じて、ブロッキングアクティビティを代りのインプリメンテーション時刻に再配置する動作を行う。ランダム化ルーチン110は、アクティビティあるいは、ブロッキングアクティビティのために代りのインプリメンテーション時刻を選択する動作が可能である。タイミングルーチン112は、経過スケジューリング時間をスケジューリング時間予算と比較する動作が可能であり、経過スケジューリング時間がスケジューリング時間予算を越える場合にはプログラムの実行を終了させる。
一番単純な本質において、スケジューリングシステム100は、スケジュールに対するアクティビティ挿入システムとして説明される。スケジューリングシステム100は、空いているスケジュール中にアクティビティ群を挿入するために使用される。このように新規のスケジュールを生成し、あるいは前に存在していたスケジュール中にアクティビティ群を挿入する。スケジュールの一般的な動作は図2のフローチャートに示されている。
少なくとも1実施形態において、スケジューリングシステム100は、優先順位、ライフスパン、好ましいインプリメンテーション時刻、およびスケジューリング時間予算を持った新規のアクティビティを受け取る(ブロック200)。アクティビティに応じて、1つ以上のこれ等項目がユーザ規定される。
最初に、システムは好ましいインプリメンテーション時刻が使用可能かどうか調べるためにスケジュールをサーチする(ブロック202)。インプリメンテーション時刻が使用可能であり、ライフスパンが使用可能な実行時間(スペース)以下であれば(判断204)、スケジューリングシステム100は、スケジュールにアクティビティを挿入することを実行する(ブロック206)。インプリメンテーション時刻とスペースが使用可能でなければ(判断204)、スケジューリングシステム100は、スケジュールを変更することを実行する(ブロック208)。
上述したように、現存のスケジュールに新規のアクティビティをスケジュールする処理は、しばしばNP困難問題とみなされる。時間とリソースの無限の量が与えられれば最適解が見つけられるが、しかしながらそのような時間フレームは、人間の寿命のような実用的な期間をかなり超えている。良い解を捜すことは、最適解を捜すことよりしばしばより賢い行動の方向である。あるケースでは、良い解は、解が見つけられないということが単純に知られていることであってもよく、従って別のオプションを考慮すべきである。スケジューリング時間予算をスケジューリングシステム100に負わせることにより、スケジューリングシステム100は、スケジュールにアクティビティを差し込む試みが成功あるいは失敗するユーザに助言をする。
その結果、スケジューリングシステム100は、アクティビティ群をスケジュールする試みに費やした時間を追跡する。判断210は、時間の認識を表している。より明確には、スケジューリングシステム100は、どちらか1つの解が見つけられるか、あるいはスケジューリング時間予算が超過するまで、解を捜すことを継続する。
経過時間がスケジューリング時間予算より短い間は、システムは、スケジュールを変更し、アクティビティを挿入しようと試みる。使用できないインプリメンテーション時刻あるいは使用可能な実行時間より長いライフスパンに応じて、スケジュールを変更する方法は、同等以上の優先順位でスケジュールされたアクティビティ群を保存する。最も基本的な変更は、アクティビティのために代りのインプリメンテーション時刻を選択し、再度スケジュールをサーチすることである(ブロック202へ戻る)。
図3は、スケジュールが12:00から4:00に発生している4つのスケジュールされたアクティビティ、アクティビティA−12:00、アクティビティB−1:30、アクティビティC−3:00、アクティビティD−3:30を有する簡単な例の一部分を示している。ライフスパンは分で測定される。アクティビティEはスケジュールに挿入されるべきアクティビティとして提供される。示されているように、アクティビティEのライフスパンは60分である。アクティビティEの好ましいインプリメンテーション時刻は、1:00である。示されているように、1:00に現在使用可能な実行時間は30分である。従って、スケジュール変更を行わずにアクティビティEを1:00にスケジュールすることはできない。
図4は、図2のブロック208で表した、スケジュールを変更する方法の1実施形態を詳細に説明し、アクティビティEがどのように挿入されるかを説明している。変更は代りのインプリメンテーション時刻をランダムに選択することによって(ブロック300)、例えば2:30に始まる。次に代りの実行時間において、使用可能な実行時間の量、およびまたはブロッキングアクティビティの存在をスケジューラに照会する(ブロック302)。図3で表示されているように、2:30は、アクティビティCが3:00に始まる前に30分の使用可能な実行時間を有している。
アクティビティがあるリソースを必要とすれば、そのリソースの使用可能性は、代りのインプリメンテーション時刻の容認性を決定する追加要因になることは言うまでもない。換言すれば、スケジュールされるべきアクティビティが20分の露光でカメラを用いて月を観察していれば、月が観察できないあるいはカメラが使用できないときには、代りの時間期間は、20分の実行時間が使用可能であっても選択されない。
ブロッキングアクティビティがなく(決定304)、かつアクティビティのライフスパンが使用可能な実行時間以下である場合(決定306)、スケジューリングシステム100は、アクティビティを挿入し(ブロック308)、終了する。ブロッキングアクティビティが存在する場合(決定304)、ブロッキングアクティビティは移動するよう要求される(ブロック310)。移動する要求は反復行動である。より明確には、スケジューリングシステムは、ブロッキングアクティビティをスケジュールすべき新規のアクティビティとして取り扱い、代りのインプリメンテーション時刻を選択する。スケジュール変更処理の複数の具体例(instantiations)は、スケジューリングシステム100が受け入れ可能な解を見つける作業をするように実質上同時に発生する。
アクティビティCはアクティビティEにとってブロッキングアクティビティである。表示されている例では、アクティビティCはまたアクティビティEの優先順位より低い優先順位を持っている。同等以上の優先順位でスケジュールされたアクティビティ群は、スケジュール内で保存される。少なくとも1実施形態では、この保存は、同等以上の優先順位を持った現存のアクティビティ群を移動しないことを要求する。少なくとも1つの別の実施形態では、同等以上の優先順位でスケジュールされたアクティビティ群は、移動されるがしかし、削除されることはない。
アクティビティCは、ブロッキングアクティビティであり、それ故、スケジュールすべき新規のアクティビティとしてシステムに渡される。代りのインプリメンテーション時刻が例えば1:00と選択されると、スケジュールは、使用可能性を決定するためにサーチされる。1:00は使用可能であり、30分の実行時間を提供すると、アクティビティCは、1:00に移動される。ブロッキングアクティビティが移動され(アクティビティC)(決定312)、使用可能な実行時間がライフスパンと今同じであると(ブロック306)、アクティビティEは、2:30に挿入される(ブロック308)。
ブロッキングアクティビティが移動されないと(決定312)、再度試みる前に、スケジューリング予算時間に対して経過スケジューリング時間が検査される(ブロック314)。ブロッキングアクティビティは、例えば適当な代りのインプリメンテーション時刻が使用可能ではなかったため、移動されなかったかもしれない。この例では、アクティビティEがうまく追加されるまで、あるいは経過スケジューリング時間がスケジューリング時間予算を越えるまで処理は継続する。
図5〜6の見本のスケジュールと図7のフローチャートはさらに、同等以上の優先順位を持つスケジュールされたアクティビティ群がどのようにスケジュールの中で保存されるかを説明している。図5で表示されるように、アクティビティFからKまでがスケジュールされている。アクティビティLが挿入されるべきである。再度、議論と説明を容易にするため、リソースのような追加要因は表示されていないが、しかし確かに含まれているかも知れない。
図7のフローチャートと図5に関して、アクティビティLは、ブロック700で、優先優位が5、ライフスパンが60、インプリメンテーション時刻が1:00、そして時間予算が2である新規のアクティビティとして受け取られる。ブロック702で、アクティビティLは、ペンディングアクティビティになる。ブロック704で、インプリメンテーション時刻に、使用可能な実行時間および、ブロッキングアクティビティの存在をスケジューラに照会する。
図5で示されているように、スケジュール時間1:00は、アクティビティGが開始のためにスケジュールされる前に、30分の使用可能な実行時間を提供する。このように、ライフスパンは、使用可能な時間より大きく(決定706)、そしてブロッキングアクティビティが存在する(ブロック708)。ブロッキングアクティビティ(アクティビティG,優先順位が3)の優先順位は、ブロック710に表示されるように獲得される。
ブロッキングアクティビティGを移動するための試みがなされる(決定712)。この試みを成し遂げるため、ペンディングアクティビティLは、1:00に仮にスケジュールされ、ブロッキングアクティビティGは、スケジューリングシステムの新規の具体例では新規のペンディングアクティビティになる(図6参照)。少なくとも1実施形態では、アクティビティLの詳細をデータベースのような仮ログレコードに記録することによって、仮のスケジューリングが成し遂げられる。仮にスケジュールされたアクティビティ群に対する情報を含むことにより、仮のログレコードは、全体のスケジュールよりさらに容易にレビューされ、そして迅速に、サーチされ、仮のアクティビティ群を認めるあるいは否認するためにレビューされる。
少なくとも1実施形態では、ファイルはまた、各々のそしてあらゆる移動されたブロッキングアクティビティの詳細について維持される。仮のログレコードについて、移動されたブロッキングアクティビティレコードは、データベースとして維持される。最も明確には、少なくとも1実施形態において、移動されたブロッキングアクティビティレコードは、ペンディングアクティビティをスケジュールする試みで移動された各ブロッキングアクティビティに対する最初のインプリメンテーション時刻の記録を提供する。
少なくとも1つの代りの実施形態において、移動されたブロッキングアクティビティと仮のログレコードは、組み合わされたファイルである。1つの仮の実施形態において、例えば、スケジュールがリレーショナルデータベースとして維持されると、移動されたブロッキングアクティビティレコードと仮のログレコードは、連合したリレーショナルデータベース要素である。
この反復スケジューリング試行では、ペンディングアクティビティGは、アクティビティLの低い優先順位になることに注意することが重要である。より明確には、アクティビティGの再スケジューリング移動試行のためには、アクティビティGは優先順位が5になる(再度、図6を参照)。
図7のフローチャートに関して、時間予算に対する経過時間の検査は、決定716で実行される。そして、代りのインプリメンテーション時刻を許可する時間が、ブロック718で表示されるように選択される。システムはブロック704の照会動作に戻る。第1例のために、アクティビティGに対する代りのインプリメンテーション時刻は、2:30である。図6で示されるように、スケジュール時刻2:30は、アクティビティHが開始のためにスケジュールされる前に、30分の使用可能な実行時間を提供する。アクティビティHは、それ故ブロッキングアクティビティである。
この実例では、例示のために、アクティビティHは移動しない(決定712)。ペンディングアクティビティGとブロッキングアクティビティHの優先順位が比較される(決定720)。ブロッキングアクティビティHの優先順位が小さいため(6<5)、ブロッキングアクティビティHは、印を付けられる(ブロック722)。
仮のログレコードと移動されたブロッキングアクティビティレコードでは、少なくとも1実施形態では、印を付けられたアクティビティレコードが維持される。この印を付けられたアクティビティレコードは、分離ファイル、連合ファイル(すなわちリレーショナルデータベースにおいて)として、あるいはスケジューリングデータベースの一部の一部として維持される。印を付けられたファイルレコードの目的は、以後の使用のために、印を付けられたファイルの容易にサーチ可能なリストを提供することである。さらに以下に説明するように。
優先順位の発行と、それがどのようにスケジュールに保存されるかは、ほかの例をしばらく考慮するつることにより最もよく説明される。別の第2例では、ブロック718で選択される代りのインプリメンテーション時刻は、4:30である。図6に表示されるように、アクティビティJは、4:30に始まるためにスケジュールされている。アクティビティJは、それ故ブロッキングアクティビティである。
この実例では、例のために、アクティビティJは移動しない(決定712)。ペンディングアクティビティGとブロッキングアクティビティJの優先順位が比較される(決定720)。ブロッキングアクティビティJの優先順位が大きいため(4>5)、ブロッキングアクティビティJは、印を付けられない。
いくつかの実例では、代りのインプリメンテーション時刻に単純にアクティビティ群を移動することは、与えられたスケジューリング時間予算内でのスケジューリング解にならない。それらの実例では、ユーザによって提供されるアクティビティがスケジュールされるべきであれば、1以上の現在スケジュールされているアクティビティは削除されなければならない。
優先順位の低いアクティビティに印を付ける目的は、優先順位の高いアクティビティがスケジュール内に保存されることを保証することである。優先順位の低いアクティビティが優先順位の高いアクティビティを間接的に削除しないことを保証するように移動することを試みるとき、優先順位の高いアクティビティは、優先順位の低いアクティビティの優先順位になる。印を付けられたアクティビティは、必要であれば削除されるアクティビティとして書き留められる。
より明確には、上記の第1例では、アクティビティGは、ブロッキングアクティビティHに出会い、そしてアクティビティGの付与された優先順位5は、アクティビティHの優先順位6より大きかったため、アクティビティHは印を付けられた。上記の第2例では、アクティビティGは、ブロッキングアクティビティJに出会った。ここで、アクティビティGの付与された優先順位5は、アクティビティJの優先順位4より小さかった。そしてアクティビティJは印を付けられなかった。もし、アクティビティGがアクティビティLからの優先順位にならなかった場合、アクティビティGの最初の優先順位3は、アクティビティJの優先順位より大きいと評価され、アクティビティJは印を付けられたであろう。優先順位の各評価は、1対1の比較であるため、優先順位の低いアクティビティ群の組み合わせが1以上の優先順位の高いアクティビティ群に取って代わることはない。
ユーザに提供されたアクティビティがスケジュールされると、どんな付与された優先順位も下がり、最初の優先順位に戻される。ユーザに提供されたアクティビティがスケジューリング時間予算内でスケジュールされない場合には、どんな付与された優先順位もまた下がり、最初の優先順位に戻される。
図7のフローチャートに戻ると、ブロッキングアクティビティの印付け、あるいは印付けをしない後で、時間予算は再度評価される(決定724)。少なくとも1実施形態では、スケジューリング時間予算のある割合が経過した後に、スケジューリングシステム100がユーザに提供されたアクティビティを挿入できない場合、(決定726)スケジューリングシステム100は、優先順位の最も低い印を付けられたアクティビティ(群)を取り消すように動く(ブロック728)。換言すれば、スケジューリング時間予算は、少なくとも2つの部分に分割される。優先順位の低いブロッキングアクティビティ群は第1部分で出会ったとき印を付けられ、印を付けられた優先順位の低いアクティビティ群は第2部分で削除される。解放された時間は、新規の実行時間としてひとまとめに集められ、スケジュールで使用可能である。
少なくとも1実施形態では、アクティビティ群を削除する前に経過するスケジューリング時間予算の割合は、ユーザが用意する値である。少なくとも1つの別の実施形態では、スケジューリング時間予算の割合はシステムで定義される。しかし、別の実施形態では、システムは、アクティビティを削除する前に全体のスケジューリング予算を利用する。
このことは、ユーザのスケジューリング時間予算の内訳と合致しないように見えるかも知れないが、一方アクティビティ群を削除する処理ためのユーザの認識時間は、機会をサーチするためのユーザの認識時間に対してほとんど無視できるということが理解され、了解される。例えば、スケジューリング時間予算として10分が指定され、スケジューリングシステム100は、まる10分かけてスケジュールをサーチした後、1秒もかけずにいくつかの印を付けられたアクティビティ群を削除し、ユーザに提供されたアクティビティを挿入する。
上記の実例1つからのアクティビティHのような、削除された印を付けられたアクティビティについて、ライフスパンは、現在使用可能な実行時間に対して評価される(決定730)。ライフスパンが実行時間以下であれば、アクティビティはスケジュールされる(ブロック732)。
ユーザに提供されるアクティビティがスケジュールされようとされまいと、少なくとも1実施形態では、スケジューリングシステム100が動作を終了させる前に、2つの行動方針が講じられる。1つの例では、ユーザは、強い影響がある追加動作として、スケジューリングシステムに新規のアクティビティを提供する。強い影響がある追加動作では、ユーザに提供されるアクティビティを挿入する試みで必要であるため、スケジューリングシステム100は、ブロッキングアクティビティを比較し、印を付け、削除する。さらに、上述の処理は、少なくとも1実施形態では、強い影響がある追加動作である。
別の例では、ユーザは、中程度の影響がある追加動作として、スケジューリングシステム100に新規のアクティビティを提供する。スケジューリングシステムが中程度の影響がある追加動作としてユーザに提供されたアクティビティで動作している場合(ブロック734)、ブロッキングアクティビティを比較し、印を付け、移動し、削除することに加えて、スケジューリングシステム100はまた、クリーンアップする。さらに、上述の処理は、クリーンアップ動作によって増大しているとき、中程度の影響がある追加動作である。
クリーンアップ動作を行っているとき、スケジューリングシステム100は、それらの動きの逆の順序でアクティビティ群を最初の実行時間に戻す。ユーザに提供されるアクティビティがうまくスケジュールされない場合、クリーンアップ動作は一般的に大体成功する。もちろん、スケジューリングを試みる時の経過が、再スケジュールされなければ始まるべきアクティビティのための時間の期間に進まない限り。
スケジューリングシステム100は反復システムであり、実質上同時に走行する複数の具体例を有していることは言うまでもない。演算において、多重タスク処理は、プロセスとしても知られている複数のタスクがCPUのような共通処理リソースを共有するための方法である。時間のどの時点でも、ただ1つのタスクが実際には走行しているといえる。CPUはそのタスクに対する実際に実行する命令であるということを意味している。多重タスク処理は、どのタスクがどこか所定の時間に走行する1つのタスクであるか、そしていつ別の待ちタスクが順番を得るかをスケジューリングすることによって問題を解く。CPUを1つのタスクから別のタスクに再割り当てする行動は、コンテキストスイッチと呼ばれる。コンテキストスイッチが実にたびたび発生するとき、各処理が増加的に進行するように、動作の同時実行の錯覚が生じる。
スケジューリングシステム100は、多重タスク処理動作として実行される。ブロッキングアクティビティに出会うとき、スケジューリングシステム100は、ブロッキングアクティビティを移動することを試みる目的のために、1つの動作処理を開始する。実質上同時に、ペンディングアクティビティのためにさらに別の代りのインプリメンテーション時刻をランダムに選択するために、スケジューリングシステム100は、第2の動作処理を開始する。並行処理の動作では、1処理の成功は、全体の動作を終了させる。同様に、スケジューリング時間予算が超過すると、全ての処理は終了させられる。オペレーティングシステムが違えば、並行処理の認識を管理するために、違った仕組みのものが提供される。少なくとも1実施形態では、そのような並行管理は、コンピュータシステムのCMOSに設定される信号フラグによって実現される。
ユーザに提供されるアクティビティがうまくスケジュールされた場合、少なくとも1つのブロッキングアクティビティに出会い移動されれば、クリーンアップ動作は、全く成功しない。代りのインプリメンテーション時刻はランダムに選択されるため、代りのランダムに選択されるインプリメンテーション時刻が、再配置の努力を要求しないであろう異なった解を提供する前に、ブロッキングアクティビティに出会い、再スケジュールされる可能性がある。それ等の例では、クリーンアップ動作は、移動されたブロッキングアクティビテフィ群を最初のインプリメンテーション時刻にできるだけ近い時間に復元する。クリーンアップ動作は、上述した移動されたブロッキングアクティビティ群の記録や仮のログによって容易になる。
少なくとも1実施形態では、スケジューリング時間予算が超過しない場合(決定738)、システムはどれか取り消されたアクティビティの存在を評価する(決定740)。取り消されたアクティビティ群が存在する場合、スケジューリングシステム100は、これ等のアクティビティ群を新規のペンディングアクティビティ群として再スケジュールしようと努力して、残っているスケジューリング時間予算を利用する(ブロック742)。
少なくとも1実施形態では、スケジュールにあるアクティビティ群は、最小存続期間と最大存続期間を更に含むライフスパンを有している。アクティビティ群がスケジュールされると、最小存続期間で挿入される。換言すれば、使用可能な実行時間に対するライフスパンのどのそして全ての評価も、最小存続期間に基づく。アクティビティの挿入が成功した後に、スケジューリングシステムは任意のフラッフィング動作を実行する。
フラッフィングのとき、スケジューリングシステム100は、追加の実行時間が、スケジュールされたライフスパンが最小存続期間値から最大存続期間値に向けて増加しているようなスケジュールされたインプリメンテーション時刻に使用可能かを調べるために、各スケジュールされたアクティビティを再評価する。
記述した処理は、記述した順序で実行される必要はないことが理解され了解される。しかしむしろ、上述した順序は、少なくとも1実施形態の1例である。さらに、コンピュータ環境で実行されると、異なったコンピュータシステムや環境に好まれるように、本処理は、コードや命令の多様な異なった形式で実行される。
現在認識されているように、英国的オークションのようなシステムは、いくつかの場合、多くのアクティビティ群をスケジュールにうまくスケジュールするとはいえ、維持されるべき優先順位の高いアクティビティ群を要求するアプリケーションにとって、本スケジューリングシステムは大変都合がよい。加えて、スケジューリングはNP困難アクティビティであると理解され了解されるとはいえ、スケジューリングシステム100は、新規のアクティビティの挿入を都合よく試みる能力と既知の時間の値での試みの結果を知る能力をユーザに提供する。
少なくとも1実施形態では、スケジューリングシステム100は、アクティビティ群をスケジュールするコンピュータシステムとしてインプリメント(実装)される。図8は、例示的なコンピュータシステム800の高レベルのブロック図である。コンピュータシステム800は、メインボード804を囲むケース802を有している。メインボードは、システムバス806、接続ポート808、中央演算処理装置(CPU)810のような演算処理装置、主記憶装置812のような主記憶格納装置、ハードドライブ814、CD/DVD ROMドライブ816を有している。
メモリバス818は、主記憶装置812をCPU810につなぐ。システムバス806は、ハードドライブ814、CD/DVD ROMドライバ816、そして接続ポート808をCPU810につなぐ。例えばマウス820、キーボード822のような複数の入力装置が提供される。例えばビデオモニタ824やプリンタ(図示されていない)のような複数の出力装置が提供される。
コンピュータシステム800は、IBM、DeLLコンピュータ、ゲートウェイ、アップル、サンマイクロシステムズ、あるいは他のコンピュータシステムプロバイダによって提供されるディスクトップワークステーション装置のような市販しているシステムである。コンピュータシステム800はまた、ネットワーク接続されたコンピュータシステムであり、ハードドライブ814、追加CPU810のような記憶格納コンポーネントおよび、プリンタのような出力装置は、一般にネットワークで一緒に結ばれた物理的に離れたコンピュータシステムによって提供される。当業者は、コンポーネントとコンポーネントの相互接続の物理的な合成がコンピュータシステム800を備え、そして設置され、維持されるべくスケジュールに適したコンピュータシステム800を選択することを理解し認識する。
コンピュータシステム800が起動されると、好ましくはオペレーティングシステム826がブートストラップ スタートアップ シーケンスの一部として主記憶装置812にロードされ、動作できるようコンピュータシステム800を準備する。一番簡単なレベルでかつもっとも一般的な意味で、オペレーティングシステムのタスクは、特定のカテゴリ−プロセス管理、デバイス管理(アプリケーションおよびユーザインタフェース管理を含む)および記憶域管理−となる。
そのようなコンピュータシステム800では、CPU800は、上述した1以上のスケジューリング実施形態を実行することが可能である。当業者は、スケジュールにアクティビティ群を追加するためのコンピュータプログラム830が存在するコンピュータ読み取り可能な媒体828が、コンピュータシステム800に用意されていることを理解する。媒体828の形式とプログラム830の言語はコンピュータシステム800にとって適切であることが理解される。例えば、1以上のハードドライブ814および主記憶装置812のような記憶装置を使用して、動作可能なCPU802は、上述したようにコンピュータプログラム830によって提供される命令を読み、スケジューリングシステム100を実行するよう動作する。
本発明の技術的範囲を逸脱することなく、上述の方法、システム、および構造に変更を行ってもよい。上記の記述に含まれている事項およびまたは添付の図面に表示されている事項は、例示として解釈されるべきであり、限定的な意味では解釈されてはならいということに注意すべきである。以下の請求項は、与えられた方法、システム、構造の技術的範囲の全ての主張はもちろん、ここで記述された全ての一般的および限定的機能も対象にすることを目的にしている。言語の問題として、それらの間で行われる可能性もある。

Claims (15)

  1. コンピュータシステムを用いてアクティビティ群をスケジュールする方法において、
    指定された優先順位と、ライフスパンと、ユーザにより指定されたインプリメンテーション時刻と、スケジューリング時間予算とを有するアクティビティを表わす情報を、コンピュータシステムの通信手段によって受け取り(200)、前記スケジューリング時間予算はスケジュールの中に前記アクティビティの挿入を試みるために割り当てられた時間の量であり、
    コンピュータシステムにより、ユーザにより指定されたインプリメンテーション時刻が使用可能であるかどうかと、使用可能な実行時間の量とを決定するためにスケジュールの情報をサーチし(202)、
    ユーザにより指定されたインプリメンテーション時刻が挿入には使用できないこと、および、ユーザにより指定されたインプリメンテーション時刻において前記スケジュール上で、前記ライフスパンが使用可能な実行時間の量より大きいこと、をコンピュータシステムによって決定し、
    ユーザにより指定されたインプリメンテーション時刻が挿入には使用できないという決定、あるいは、前記ライフスパンが使用可能な実行時間の量より大きいという決定に基づいて、前記アクティビティを前記スケジュールに挿入する複数回の変更の試みをコンピュータシステムによって処理し、
    前記複数回の変更の試みの処理に基づいて、前記アクティビティの経過スケジューリング時間をコンピュータシステムによって追跡し、
    前記アクティビティの経過スケジューリング時間を前記アクティビティのスケジューリング時間予算と比較し、
    前記経過スケジューリング時間が前記スケジューリング時間予算を超過するとき、あるいは、前記複数回の変更の試みのうちの特定の変更の試みが前記アクティビティを前記スケジュールに挿入するのに成功するとき、前記アクティビティを前記スケジュールに挿入する複数回の変更の試みの処理をコンピュータシステムによって終了する、ステップを含んでおり、
    前記スケジューリング時間予算が少なくとも2つの部分に分割され、優先順位の低いブロッキングアクティビティ群は、スケジューリング時間予算の第1の部分の間に印を付けられ、スケジューリング時間予算の第1の部分が経過した後の第2の部分において削除され、前記スケジューリング時間予算が超過しない場合、残っているスケジューリング時間予算を利用して削除されたブロッキングアクティビティが新しいペンディングアクティビティとして再スケジュールされる、
    方法。
  2. 前記複数回の変更の試みの処理は、
    第1の代りのインプリメンテーション時刻をランダムに選択し、
    前記第1の代わりのインプリメンテーション時刻が使用可能であるかどうかを決定するために前記スケジュールの情報をサーチし、
    第1のブロッキングアクティビティが原因で、前記第1の代わりのインプリメンテーション時刻が挿入には使用できないことを決定し、前記第1のブロッキングアクティビティは、前記第1の代わりのインプリメンテーション時刻から始まる期間の少なくとも一部の期間の間にスケジュールされている第1の付加的なアクティビティであり、
    前記第1のブロッキングアクティビティの指定された優先順位を決定し、
    第2の代りのインプリメンテーション時刻をランダムに選択し、
    前記第2の代わりのインプリメンテーション時刻が使用可能であるかどうかと、前記第2の代わりのインプリメンテーション時刻における使用可能な実行時間の量とを決定するために前記スケジュールの情報をサーチし、
    前記第2の代わりのインプリメンテーション時刻が使用可能であることを決定し、
    前記ライフスパンが前記使用可能な実行時間の量以下のとき、前記スケジュール上の前記第2の代りのインプリメンテーション時刻に前記アクティビティを挿入することを含んでいる、請求項1記載のスケジューリング方法。
  3. 前記複数回の変更の試みの処理は、前記アクティビティの指定された優先順位より同等以上の優先順位を有するスケジュールされたアクティビティ群を保存することを含んでいる、請求項1記載のスケジューリング方法。
  4. 移動することを要求されたブロッキングアクティビティが新規のアクティビティの優先順位より高い優先順位をもつ場合、移動することを要求されたブロッキングアクティビティは新規のアクティビティの優先順位になり、その優先順位を持ったブロッキングアクティビティがスケジュールの変更を開始し、移動される請求項2記載のスケジューリング方法。
  5. 前記第1の代わりのインプリメンテーション時刻および前記第2の代わりのインプリメンテーション時刻が使用可能であるかどうかを決定するために前記スケジュールの情報をサーチすることは、同時に発生する請求項2記載のスケジューリング方法。
  6. 前記アクティビティを挿入するために移動させられた各ブロッキングアクティビティは、経過スケジューリング時間がスケジューリング予算時間を越えるとき、最初のインプリメンテーション時刻に復元される請求項1記載のスケジューリング方法。
  7. 前記ライフスパンは、予め定められた最小存続期間と最大存続期間の間の範囲にある請求項1記載のスケジューリング方法。
  8. アクティビティ群は最小存続期間で挿入される請求項7記載のスケジューリング方法
  9. 前記特定の変更の試みが前記アクティビティを前記最小存続期間で前記スケジュールに挿入するのに成功するとき、最大存続期間に向けて前記アクティビティをフラッフィングすることをさらに含む請求項7記載のコンピュータにより実行されるスケジューリング方法。
  10. スケジュールにアクティビティ群を付加するためのコンピュータプログラムにおいて、
    コンピュータを、
    ユーザが、ユーザが指定する優先順位と、ライフスパンと、ユーザにより指定されたインプリメンテーション時刻と、アクティビティに対するスケジューリング時間予算とを有するアクティビティを表わす情報を入力することを許容する入力装置と動作的に連係しており、前記スケジューリング時間予算はスケジュールの中に前記アクティビティの挿入を試みるために割り当てられた時間の量である、入力手段、
    ユーザにより指定されたインプリメンテーション時刻、またはユーザにより指定されたインプリメンテーション時刻の代りのインプリメンテーション時刻が使用可能であるかどうかと、使用可能な実行時間の量と、ブロッキングアクティビティの可能な存在とを決定するためにスケジュールファイルをサーチするサーチ手段、
    ユーザにより指定されたインプリメンテーション時刻が挿入には使用可能でないこと、および、ユーザにより指定されたインプリメンテーション時刻において前記スケジュール上で、前記ライフスパンが使用可能な実行時間の量より大きいこと、を決定する決定手段、
    ユーザにより指定されたインプリメンテーション時刻が挿入には使用できないという決定、あるいは、前記ライフスパンが使用可能な実行時間の量より大きいという決定に基づいて、前記アクティビティを前記スケジュールに挿入する複数回の変更の試みを処理する処理手段、
    前記複数回の変更の試みの処理に基づいて、前記アクティビティの経過スケジューリング時間を追跡する追跡手段、
    前記アクティビティの経過スケジューリング時間を前記アクティビティのスケジューリング時間予算と比較する比較手段、
    前記経過スケジューリング時間が前記スケジューリング時間予算を超過するとき、あるいは、前記複数回の変更の試みのうちの特定の変更の試みが前記アクティビティを前記スケジュールに挿入するのに成功するとき、前記アクティビティを前記スケジュールに挿入する複数回の変更の試みの処理を終了する終了手段、
    として機能させ、
    前記スケジューリング時間予算が少なくとも2つの部分に分割され、優先順位の低いブロッキングアクティビティ群は、スケジューリング時間予算の第1の部分の間に印を付けられ、スケジューリング時間予算の第1の部分が経過した後の第2の部分において削除され、前記スケジューリング時間予算が超過しない場合、残っているスケジューリング時間予算を利用して削除されたブロッキングアクティビティが新しいペンディングアクティビティとして再スケジュールされる、
    コンピュータプログラム。
  11. 前記処理手段は、
    第1の代りのインプリメンテーション時刻をランダムに選択する手段と、
    前記第1の代わりのインプリメンテーション時刻が使用可能であるかどうかを決定するために前記スケジュールファイルをサーチする手段と、
    第1のブロッキングアクティビティが原因で、前記第1の代わりのインプリメンテーション時刻が挿入には使用できないことを決定し、前記第1のブロッキングアクティビティは、前記第1の代わりのインプリメンテーション時刻から始まる期間の少なくとも一部の期間の間にスケジュールされている第1の付加的なアクティビティである、手段と、
    前記第1のブロッキングアクティビティの指定された優先順位を決定する手段と、
    第2の代りのインプリメンテーション時刻をランダムに選択する手段と、
    前記第2の代わりのインプリメンテーション時刻が使用可能であるかどうかと、前記第2の代わりのインプリメンテーション時刻における使用可能な実行時間の量とを決定するために前記スケジュールファイルをサーチする手段と、
    前記第2の代わりのインプリメンテーション時刻が使用可能であることを決定する手段と、
    前記ライフスパンが前記使用可能な実行時間の量以下のとき、前記スケジュール上の前記第2の代りのインプリメンテーション時刻に前記アクティビティを挿入する手段と、
    を含んでいる、請求項10記載のコンピュータプログラム。
  12. 前記第1の代わりのインプリメンテーション時刻および前記第2の代わりのインプリメンテーション時刻が使用可能であるかどうかを決定するために前記スケジュールファイルをサーチすることは、同時に走行する請求項11記載のコンピュータプログラム。
  13. 前記処理手段は、前記アクティビティの指定された優先順位より同等以上の優先順位を有するスケジュールされたアクティビティ群を保存する手段を含んでいる、請求項10記載のコンピュータプログラム。
  14. さらに、コンピュータを、
    ユーザにより指定されたインプリメンテーション時刻、あるいはユーザにより指定されたインプリメンテーション時刻の代りのインプリメンテーション時刻にもっとも近い時刻にスケジュールされた優先順位の低いブロッキングアクティビティを削除する動作を行う削除手段、として機能させる請求項10記載のコンピュータプログラム。
  15. さらに、コンピュータを、
    前記アクティビティを挿入するために移動させられた各アクティビティをおおよそ各最初のインプリメンテーション時刻に復元する動作を行うクリーンアップ手段、として機能させる請求項10記載のコンピュータプログラム。
JP2012010331A 2005-01-28 2012-01-20 スケジューラ Expired - Fee Related JP5628222B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/045,419 2005-01-28
US11/045,419 US20060173723A1 (en) 2005-01-28 2005-01-28 Scheduler

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2007553206A Division JP2008532109A (ja) 2005-01-28 2006-01-25 スケジューラ

Publications (2)

Publication Number Publication Date
JP2012123816A JP2012123816A (ja) 2012-06-28
JP5628222B2 true JP5628222B2 (ja) 2014-11-19

Family

ID=36757776

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2007553206A Withdrawn JP2008532109A (ja) 2005-01-28 2006-01-25 スケジューラ
JP2012010331A Expired - Fee Related JP5628222B2 (ja) 2005-01-28 2012-01-20 スケジューラ

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2007553206A Withdrawn JP2008532109A (ja) 2005-01-28 2006-01-25 スケジューラ

Country Status (6)

Country Link
US (1) US20060173723A1 (ja)
EP (1) EP1849071A4 (ja)
JP (2) JP2008532109A (ja)
CA (1) CA2596074A1 (ja)
NO (1) NO20073195L (ja)
WO (1) WO2006083652A2 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090313044A1 (en) * 2005-12-05 2009-12-17 Koninklijke Philips Electronics, N.V. Flexible care plan methods and apparatuses
US20080147728A1 (en) * 2006-12-15 2008-06-19 Tal Reichert Exposure-based scheduling
US20090138822A1 (en) * 2007-11-28 2009-05-28 International Business Machines Corporation Method of flexibly blocking out busy-time in calendars
US7996522B2 (en) * 2007-12-04 2011-08-09 Novell, Inc. Persistent scheduling techniques
CN103092683B (zh) * 2011-11-07 2017-12-26 Sap欧洲公司 用于数据分析的基于启发式的调度
US10713743B1 (en) 2013-11-01 2020-07-14 Securus Technologies, Inc. Management of visitation sessions for residents of controlled-environment facilities

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63262754A (ja) * 1987-04-20 1988-10-31 Brother Ind Ltd スケジユ−ル管理装置
US5943653A (en) * 1989-09-21 1999-08-24 Ultradata Systems, Inc. Electronic coupon storage and retrieval system correlated to highway exit service availability information
US5311423A (en) * 1991-01-07 1994-05-10 Gte Service Corporation Schedule management method
US5406476A (en) * 1991-04-11 1995-04-11 Sun Microsystems, Inc. Method and apparatus for resource constraint scheduling
US5247677A (en) * 1992-05-22 1993-09-21 Apple Computer, Inc. Stochastic priority-based task scheduler
JPH064542A (ja) * 1992-06-16 1994-01-14 Ricoh Co Ltd スケジュール調整装置
US5467268A (en) * 1994-02-25 1995-11-14 Minnesota Mining And Manufacturing Company Method for resource assignment and scheduling
JP3136239B2 (ja) * 1994-06-21 2001-02-19 シャープ株式会社 スケジュール管理装置
DE69703938T3 (de) * 1996-11-22 2007-05-16 (at)Road Ltd., Ipswich Ressourcenzuordnung
US6571215B1 (en) * 1997-01-21 2003-05-27 Microsoft Corporation System and method for generating a schedule based on resource assignments
US6035278A (en) * 1997-07-08 2000-03-07 Netscape Communications Corporation Method and system for schedule and task management
JP2000090151A (ja) * 1998-09-10 2000-03-31 Ibm Japan Ltd スケジュール表示方法、スケジュール変更方法、スケジュール管理装置、スケジュール管理プログラムを格納した記憶媒体
JP2000090156A (ja) * 1998-09-14 2000-03-31 Ibm Japan Ltd スケジュール表示方法、スケジュール変更方法、スケジュール管理システム、スケジュール管理プログラムを格納した記憶媒体
US6490566B1 (en) * 1999-05-05 2002-12-03 I2 Technologies Us, Inc. Graph-based schedule builder for tightly constrained scheduling problems
US6708155B1 (en) * 1999-07-07 2004-03-16 American Management Systems, Inc. Decision management system with automated strategy optimization
US6606529B1 (en) * 2000-06-09 2003-08-12 Frontier Technologies, Inc. Complex scheduling method and device
US6584400B2 (en) * 2001-04-09 2003-06-24 Louis J C Beardsworth Schedule activated management system for optimizing aircraft arrivals at congested airports
US7386850B2 (en) * 2001-06-01 2008-06-10 Avaya Technology Corp. Arrangement for scheduling tasks based on probability of availability of resources at a future point in time
US6952828B2 (en) * 2001-09-26 2005-10-04 The Boeing Company System, method and computer program product for dynamic resource management
US20030065544A1 (en) * 2001-09-28 2003-04-03 Elzinga C. Bret Method and system for performing dynamic scheduling
US7502747B1 (en) * 2001-11-29 2009-03-10 Microsoft Corporation Automated job scheduling based on resource availability
JP3860521B2 (ja) * 2002-09-06 2006-12-20 財団法人鉄道総合技術研究所 スケジュール調整装置およびスケジュール調整方法、並びにスケジュール調整プログラム
US6895292B2 (en) * 2003-04-28 2005-05-17 Palo Alto Research Center Inc. Predictive and preemptive planning and scheduling for different job priorities system and method
US8407076B2 (en) * 2004-05-14 2013-03-26 International Business Machines Corporation Accommodating preparatory work for electronically scheduled meetings

Also Published As

Publication number Publication date
WO2006083652A2 (en) 2006-08-10
US20060173723A1 (en) 2006-08-03
EP1849071A2 (en) 2007-10-31
WO2006083652A3 (en) 2008-12-11
JP2008532109A (ja) 2008-08-14
EP1849071A4 (en) 2011-04-06
JP2012123816A (ja) 2012-06-28
CA2596074A1 (en) 2006-08-10
NO20073195L (no) 2007-07-09

Similar Documents

Publication Publication Date Title
JP5628222B2 (ja) スケジューラ
US10768987B2 (en) Data storage resource allocation list updating for data storage operations
US20200371879A1 (en) Data storage resource allocation by performing abbreviated resource checks of certain data storage resources to detrmine whether data storage requests would fail
US8392926B2 (en) Scheduling heterogeneous partitioned resources with sharing constraints
CN100487659C (zh) 用于优化分段资源分配的方法和设备
US8893118B2 (en) Migratable unit based application migration
US8566285B2 (en) Method and system for scheduling and controlling backups in a computer system
US7827167B2 (en) Database management system and method including a query executor for generating multiple tasks
US7958507B2 (en) Job scheduling system and method
US6070144A (en) System and process for job scheduling using limited discrepancy search
US8832695B2 (en) Method of scheduling jobs and information processing apparatus implementing same
US20090276781A1 (en) System and method for multi-level preemption scheduling in high performance processing
JP2004062853A (ja) データバックアップ方法およびシステム
US9052972B2 (en) Determining the processing order of a plurality of events
US20090307035A1 (en) Resolution of resource over-allocations in project plans
US20100161563A1 (en) Smart mediation system in a service oriented architecture
US8656395B2 (en) Method and system for optimizing a job scheduler in an operating system
US11023493B2 (en) Intelligently scheduling resynchronization jobs in a distributed object-based storage system
CN112363819A (zh) 大数据任务动态编排调度方法、装置及计算设备
WO2001025991A9 (en) Method and system for assignment of tasks to resources using displacement trees
JP2007156796A (ja) ネットワークオペレーションシステム

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130917

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140318

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140606

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140902

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141001

R150 Certificate of patent or registration of utility model

Ref document number: 5628222

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees