JP2009541852A - コンピュータマイクロジョブ - Google Patents

コンピュータマイクロジョブ Download PDF

Info

Publication number
JP2009541852A
JP2009541852A JP2009516504A JP2009516504A JP2009541852A JP 2009541852 A JP2009541852 A JP 2009541852A JP 2009516504 A JP2009516504 A JP 2009516504A JP 2009516504 A JP2009516504 A JP 2009516504A JP 2009541852 A JP2009541852 A JP 2009541852A
Authority
JP
Japan
Prior art keywords
microjob
job
time
microjobs
computer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2009516504A
Other languages
English (en)
Other versions
JP5299869B2 (ja
JP2009541852A5 (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.)
Diskeeper Corp
Original Assignee
Diskeeper Corp
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
Priority claimed from US11/471,466 external-priority patent/US8239869B2/en
Priority claimed from US11/546,072 external-priority patent/US8056083B2/en
Application filed by Diskeeper Corp filed Critical Diskeeper Corp
Publication of JP2009541852A publication Critical patent/JP2009541852A/ja
Publication of JP2009541852A5 publication Critical patent/JP2009541852A5/ja
Application granted granted Critical
Publication of JP5299869B2 publication Critical patent/JP5299869B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5017Task decomposition

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Multi Processors (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

コンピュータマイクロジョブが開示される。コンピュータジョブは、マイクロジョブに分割される。1つの実施例では、マイクロジョブのサイズは、特定のマイクロジョブがそのマイクロジョブを実行するために使用されるリソースを所有する割当時間内にその特定のマイクロジョブが完了可能なサイズである。1つの実施例では、割当時間は量子である。1つの実施例では、コンピュータジョブ全体がマイクロジョブに分割され、コンピュータジョブはその後マイクロジョブごとに実行されて、コンピュータジョブ全体が完了する。1つの実施例では、マイクロジョブの各々が自身の量子内に実行を完了し得る。1つの実施例では、マイクロジョブの実行は、必要なリソースが1つ以上の遊休基準に準拠する時間に割当てられる。マイクロジョブとともに実行されるソフトウェアプログラムは、コンピュータの電源が入っている間は、同一のコンピュータシステム上で動作する他のソフトウェアプログラムの性能に影響を与えることなく常時動作可能である。

Description

発明の分野
この発明は、コンピュータ環境でソフトウェアアプリケーションを実行することに関する。特に、この発明の実施例は、アプリケーションのコンピュータまたは入出力ジョブをマイクロジョブに分割すること、およびそのマイクロジョブを実行することに関する。
背景
多くのマルチタスクオペレーティングシステムにおいて、プロセスはいくつかのスレッドに細かくされる。スレッドは、オペレーティングシステム(O/S)によって実行される1つのコードである。マルチスレッディングの概念は、1つのプロセス内のいくつかのコード(またはスレッド)を「同時に」動作可能にすることである。たとえば、ワードプロセッサが動作している場合、ユーザは「メニュー項目を探す」をクリックしてポップアップボックスを表示することができる。このポップアップは、メインのワードプロセッサウインドウから独立して移動および操作され得る。したがって、ポップアップのためにメインのワードプロセッサウインドウが非アクティブになることはない。これが、ワードプロセッサプロセス内で動作する2つの異なるスレッドの例である。
マルチタスキングの概念は、単一のコンピュータプロセッサ上で同時に実行されている複数のコードの見かけを与えるという点でマルチスレッディングと同様である。相違点は、マルチタスキングはコンピュータ上で動作する1つよりも多いプロセスを指し、マルチスレッディングは上記の例のように同一のプロセス内で動作する1つよりも多いスレッドを指すことである。
同時に動作する1つよりも多いプロセスまたはスレッドの見かけは、マルチタスクスケジューラが、スレッドを「量子」と称され得る非常に小さな時間増分で動作するようにスケジュールする結果である。量子は、スレッドに与えられ、かつその間はそのスレッドがCPUリソースを所有するタイムスライスである。量子の長さは、最近のオペレーティングシステムでは約20ミリ秒から約120ミリ秒の範囲内にある。正確な時間は、O/Sが動作しているハードウェアに依存して異なり得る。さらに、O/Sは、特定のスレッドに与えられる量子の値を変更することができる。たとえば、スレッドがその第1の量子中に完了しない場合、O/Sは、そのスレッドの実行がスケジュールされている次回に量子のサイズを増大または減少させ得る。
人間の時間感覚と比べて量子の長さが短いため、およびラウンドロビン方法でスレッドを実行することによって、スレッドは同時に動作するように見える。最近のマルチタスクO/Sスケジューラはスレッドに優先順位を加え、優先順位の低いスレッドの前に優先順位の高いスレッドを最適に動作させるためのさまざまなアルゴリズムが存在する。しかし、すべてのスレッドは即時実行のためにO/Sスケジューラに提示され、O/Sスケジューラはそれらの優先順位に基づいてできる限り速くすべてのスレッドに実行を完了させる。
しかし、この態様のスケジューリングの問題点は、コンピュータ性能が予想され得るより悪いということである。しばしば、プロセスは一瞬止まったり、動かなくなったりさえする。たとえば、ユーザ入力に基づいて表示画面に現われるプロセスはしばしば、別のプ
ロセスが消費しているプロセッサ時間が多過ぎるために、ユーザがデータを入力するように現れることができない。
この節で説明された方策は、追求され得る方策であるが、以前に着想または追求された方策であるとは限らない。したがって、特に明記しない限り、この節で説明された方策のいずれも、単にこの節に含まれているからといって先行技術と見なされると仮定されるべきではない。
この発明は、同様の参照番号が同様の要素を指す添付の図面において、限定的ではなく例示的に図示される。
この発明の実施例に従った、マイクロジョブを実行するためのアーキテクチャの図である。 この発明の実施例に従った、コンピュータジョブをマイクロジョブに分割するマイクロスケジューラの図である。 この発明の実施例に従った、コンピュータジョブをマイクロジョブに分割するプロセスのステップを図示するフローチャートである。 本発明の実施例が実現され得るコンピュータシステムを図示するブロック図である。
詳細な説明
以下の説明では、説明のために、多数の特定的な詳細が記載されてこの発明の完全な理解を与える。しかし、この発明はこれらの特定的な詳細がなくても実施され得ることが明らかになるであろう。他の場合では、この発明を不要に不明瞭にするのを避けるため、周知の構造および装置がブロック図形態で示される。
概要
大多数のコンピュータは、常に自身のリソース容量のすべてを利用しているとは限らない。これは典型的に、1日24時間、週7日よく使用されているように見えるコンピュータ、および毎日わずかな間しか立ち上げられないコンピュータについても当てはまる。したがって、コンピュータ時間およびリソースが無駄である。たとえば、24時間にわたって、かなり多用され、かつ活動時に短時間のスパイクを有し得るコンピュータシステムは、平均して約5から20パーセントのリソースしか使用していない可能性がある。
コンピュータジョブをマイクロジョブに分割することによってこれらの使われていないコンピュータリソースを利用するための方法、システム、および装置が本明細書中に開示される。マイクロジョブは、非常に小さなコンピュータコード(たとえば比較的少数の命令)であり得る。1つの実施例では、マイクロジョブのサイズは、そのマイクロジョブが処理リソースを割当てられた時間内にそのマイクロジョブが実行を終了するようなものである。たとえば、1つの実施例では、マイクロジョブ内の演算の数は、マイクロジョブが量子内に実行を完了するようなものである。マイクロジョブの長さは量子よりも短いことがある。
1つの実施例では、コンピュータジョブ全体がマイクロジョブに分割され、コンピュータジョブはその後マイクロジョブごとに実行されて、コンピュータジョブ全体が完了する。現在のリソース制約を考慮してコンピュータジョブをできる限り迅速に動作させようと試みること、または他のジョブおよびアプリケーションに重大な影響を与えるのを避けるためにジョブを「時間外」に動作するようにスケジュールすることとは異なり、コンピュ
ータジョブは継続的にコンピュータ上で動作し得るが、あまりに微小であるため、ユーザまたは他のコンピュータジョブには感知不可能であり得る。したがって、ジョブは、ユーザならびに他のジョブおよびアプリケーションにとって完全に透明であり得る。ユーザはジョブをスケジュールする必要はなく、この方法を用いれば、ジョブは性能臨界時間中を含むいつでも動作可能である。
1つの実施例では、マイクロジョブは、選択された基準に基づいて時々挿入されて実行される。1つの実施例では、マイクロのジョブの実行は、マイクロジョブどうしの間の間隔をあけるための何らかの時間間隔の判断に基づいて、ある時間にわたって分散される。時間間隔は、マイクロジョブの各々の間で同一である必要はない。1つの実施例では、マイクロジョブ実行の基準は、リソース可用性に基づく。たとえば、マイクロジョブを実行するために、そのマイクロジョブが使用する1つ以上のリソースが1つ以上の遊休基準に準拠しているかどうかについての判断が下される。遊休基準が満たされている場合、そのマイクロジョブが実行される。
マイクロジョブ
1つの実施例では、マイクロジョブのサイズは、特定のマイクロジョブが処理ジョブを実行するために使用されるリソースを所有する割当時間内にその特定のマイクロジョブが完了可能なサイズである。1つの実施例では、各マイクロジョブは、自身の割当時間内に完了するようなサイズである。しかし、マイクロジョブの中には、大きすぎて自身の割当時間内に実行を完了不可能なものもあり得る。
1つの実施例では、割当時間は量子である。上述のように、量子は、コンピュータコードの一部(たとえばスレッド)に与えられ、かつその間はそのコード部分がCPUリソースを所有するタイムスライスである。これも上述のように、異なるオペレーティングシステムは異なる量子を使用する。さらに、特定のコード部分に割振られる量子は、実行時間中に状況に基づいて変化し得る。たとえば、O/Sは、スレッドに割当てられる量子のサイズを増大または減少させ得る。1つの実施例では、コンピュータジョブは、そのコンピュータジョブに割当てられると予想される量子のサイズに基づいてマイクロジョブに分割される。別の実施例では、コンピュータジョブは、そのコンピュータジョブに割当てられた量子のサイズに基づいてマイクロジョブに分割される。コンピュータジョブのどの部分をマイクロジョブとして分けるべきかについての判断は、実行時間前または実行時間中のいずれかに下され得る。
マイクロジョブは、1つの実施例に従って、次のマイクロジョブが実行されるまでの実行の一時休止を安全に見込んでおきつつ単一の単位として完了され得る、実質的により小さい(たとえば最小の)作業単位である。実行の一時休止を安全に見込んでおくというのは、特定のマイクロジョブの実行を、すべてのマイクロジョブの実行から生じる結果に影響を及ぼすことなく遅らせることができるという意味である。
マイクロジョブはスレッドの一部であり得る。たとえば、スレッドが複数のマイクロジョブに分割され得る。これらのマイクロジョブは、スレッドがスケジュールされる方法と同様にスケジュールされ得る。しかし、上述のように、1つの実施例では、マイクロジョブは、自身が処理リソースを所有する量子または他の期間にわたって実行可能であれば実行を完了することになる。
マイクロジョブは、どの時点においても非常に少量のリソース(たとえばCPU時間、メモリ割当)しか必要とし得ない。どの時点においてもそのように最小限のリソースしか使用しないため、見えないプロセスになり得る。マイクロジョブを小さく保つことによって、コンピュータジョブが1度に使用するコンピュータリソースが少量で済むようになる
。したがって、この発明の1つの実施例に従って、マイクロジョブの実行は、コンピュータシステム内の他のアプリケーションの性能に重大な影響を与えないように十分少量のリソースを消費する。
コンピュータジョブのマイクロジョブへの分割
I) アプリケーションが自身のコンピュータジョブをマイクロジョブに分割する
1つの実施例では、アプリケーションプログラムが自身のコンピュータジョブを複数のマイクロジョブに分割する。本明細書中で用いられているように、複数という用語は、1よりも大きいいずれかの数を意味する。図1は、この発明の実施例に従った、マイクロジョブを実行するためのアーキテクチャ100の図である。各MJS対応のアプリケーション115(1)〜115(n)が、自身のコンピュータジョブをマイクロジョブ125に分割して実行する。たとえば、アプリケーションプログラマがアプリケーションコード内の適切な場所で、マイクロジョブ125を実行するMJS110の許可を要求する呼出しを行うことができ、これが事実上コンピュータジョブをマイクロジョブ125に分割する。例として、コンピュータジョブは、バックアップ、索引付け、ソフトウェア更新、ウイルスおよび有害ソフトスキャン、ならびにフラグメンテーション解消などのメンテナンスを行い得る。しかし、MJS対応のアプリケーション115(1)〜115(n)はメンテナンス以外のソフトウェアであってもよい。
引続き図1を参照して、マイクロジョブスケジューラ(MJS)110は、いつマイクロジョブ125が実行可能であるかを判断する。MJSとともに作動可能なアプリケーションを、本明細書中ではMJS対応のアプリケーション115と称する。この実施例では、MJS110は、特定のMJS対応のアプリケーション115(たとえば115(1))が、1つ以上のマイクロジョブ125を実行可能にするよう要求できるようにするためのアプリケーションプログラムインターフェイス(API)130を有する。API130はまた、以下により十分に説明されるように、MJS対応のアプリケーション115が、マイクロジョブ125がどれだけ分散され得るかを指定できるようにする。例示的なAPIが以下の本明細書中に含まれる。しかし、アーキテクチャ100はこの例示的なAPIに限定されない。
1つの実施例では、MJS110は、次にどのマイクロジョブ125を実行可能にすべきかを判断できるように、マイクロジョブ待ち行列を維持する。マイクロジョブ125の実行は、他のアプリケーションに対する影響が無視できるものであるようにMJS110によってタイミングが取られる。
マイクロジョブ125の実行は、アプリケーションとMJSとの間のAPIの呼出しまたは他の通信方法において、MJS対応のアプリケーション115によって指定され得る。スケジューラ105が、次のマイクロジョブ125が他のジョブに影響を与えることなく実行可能であると判断すると、MJS110は、MJS対応のアプリケーション115(1)にマイクロジョブ125を実行するよう命令することによって、MJS対応のアプリケーション115に応答する。
1つの実施例では、コンピュータリソース利用が監視および分析されて、リソース利用が1つ以上の遊休基準に準拠しているかどうかを判断する。MJSは、1つ以上の遊休基準が満たされるとマイクロジョブ125を実行させる。1つの実施例では、特定のマイクロジョブ125を実行させるのに必要な時間は量子より小さいかそれに等しいため、そのマイクロジョブ125が使用するいずれのリソースも、別のジョブがそのリソースを必要とする前に放棄される。したがって、マイクロジョブ125によるリソース利用は気づかれないことがあり、マイクロジョブ125はそのアプリケーションの環境には見えないことがある。1つの実施例では、MJSは、時間間隔に基づいてマイクロジョブ125をス
ケジュールする。時間間隔に基づいたスケジューリングが以下に説明される。
MJS110はまた、1つの実施例では、メモリマネージャ140も有する。MJS110は初期化されると、オペレーティングシステムによってメモリが割当てられ、そのうちのいくらかは自身の目的のために使用し、そのうちのいくらかはMJS対応のアプリケーション115に割当てる。MJS対応のアプリケーション115(1)は起動すると、MJS110からのメモリ割当てを要求する。MJS110は、すべてのプロセスによる現在のコンピュータシステムメモリ利用およびMJS対応のアプリケーション115(1)のニーズなどの要因に基づいて、どれくらいのメモリをMJS対応のアプリケーション115(1)に割当てるべきかを判断し得る。メモリ要件は、各MJS対応のアプリケーション115に特定的であってもよいし、コンピュータソフトウェアプログラマによってMJS対応のアプリケーション115にプログラムされてもよい。
II) スケジューラがコンピュータジョブをマイクロジョブに分割する
1つの実施例では、MJS110がコンピュータジョブをマイクロジョブ125に分割する。図2を参照して、MJS110は、コンピュータジョブ205をマイクロジョブ125に分割するマイクロジョブ分割ロジック210を有する。MJS110はまた、マイクロジョブ125を実行するためにスケジュールするマイクロジョブスケジューリングロジック220も有する。たとえば、MJS110は、MJS対応でないアプリケーションプログラムに巻付けられたシェルとして作動し得る。したがって、この例では、シェルMJS110は、それを通じて如何なる実行形式のファイルも動作させることが可能な完全なソフトウェアアプリケーションである。したがって、1つの実施例では、シェルMJS110は、コンピュータジョブを実行形式のファイルからマイクロジョブ125に自動的に分割する。換言すれば、この実施例では、アプリケーションプログラマはアプリケーションをマイクロジョブ125に分割する必要がない。
シェルMJS110は、1つの実施例では、リソース利用に基づいてコンピュータジョブを実行形式のファイルからマイクロジョブ125に分割する。シェルMJS110は、アプリケーションおよびそのアプリケーションがどのように動作するかを分析して、そのアプリケーションがどのリソースを使用するかを調べ得る。たとえば、シェルMJS110は、そのアプリケーションがどのリソースを使用するか、およびそのアプリケーションがどの程度までそのリソースを使用するかを分析する。たとえば、ディスクデフラグ用プログラムが動作すると、シェルMJS110は、アプリケーションがどのリソースを使用するか(たとえばCPU、ネットワーク、ディスクI/O)を判断することができる。シェルMJS110は、1つの実施例では、この分析に基づいてどのようにアプリケーションをマイクロジョブ125に分割するかを自動的に判断する。シェルMJS110はまた、この分析に基づいて、どのようにマイクロジョブ125をスケジュールするかも判断し得る。
シェルMJS110はさまざまなパラメータを使用して、どのようにコンピュータジョブをマイクロジョブ125に分割するかを判断し得、および/またはどのようにマイクロジョブ125を実行するためにスケジュールするかを判断し得る。これらのパラメータは、ユーザ入力に基づき得るか、またはシェルMJS110によって確立され得る。たとえば、ユーザは、特定のアプリケーションの優先順位が高いように指定し得る。
シェルMJS110は、1つの実施例では、時間間隔に基づいてマイクロジョブ125を実行するためにスケジュールする。
1つの実施例では、MJS110はオペレーティングシステムの一部である。この実施例では、オペレーティングシステム内のMJS110がコンピュータジョブをマイクロジ
ョブ125に分割し得る。
時間間隔に基づいたマイクロジョブのスケジューリング
1つの実施例では、マイクロジョブ125は時間間隔に基づいて実行される。たとえば、MJS110は時間間隔に基づいてマイクロジョブ125をスケジュールする。たとえば、MJS110はマイクロジョブ125の実行をある時間にわたって分散させる。たとえば、コンピュータジョブは、マイクロジョブ125に分割されていない場合、完了するのに12分かかり得る。しかし、マイクロジョブ125に分割された場合、コンピュータジョブ全体の実行を24時間にわたって分散させることができ、各特定のマイクロジョブ125は2,3秒に1度実行される。
特定の例として、量子が20ミリ秒である場合、コンピュータジョブ全体は約36,000量子で完了し得る。したがって、コンピュータジョブは約36,000個のマイクロジョブ125に分割される。マイクロジョブ125のいくつかが量子よりも小さい場合、マイクロジョブ125の数は若干多くなり得る。20ms量子であるとすると、24時間にわたって4,320,000量子が存在する。したがって、MJS110は、120量子ごと、または2.4秒ごとに1つのマイクロジョブ125を実行し得る。この特定の例では、マイクロジョブ対応のアプリケーションは完了するのに24時間かかることになるが、極端に繁忙のシステムでも検出不可能であり得る。
事象に基づいたマイクロジョブのスケジューリング
1つの実施例では、マイクロジョブ125は、事象に基づいて実行がスケジュールされる。たとえば、MJS110は、発生するある数の演算に基づいてマイクロジョブ125をスケジュールする。別の例として、MJS110は、発生するある数の量子に基づいてマイクロジョブ125をスケジュールする。異なる量子は異なるサイズであり得る。したがって、1つの実施例では、MJS110は事象に基づいてマイクロジョブ125の実行を分散させる。
リソースに基づいたマイクロジョブのスケジューリング
1つの実施例では、マイクロジョブ125はリソース利用に基づいてスケジュールされる。たとえば、1つの実施例では、MJS110はリソースに基づいたスケジューラである。たとえば、MJS110は、マイクロジョブ125が遊休リソースしか利用しないようにマイクロジョブ125をスケジュールする。MJS110は、リソース利用が1つ以上の遊休基準に準拠しているかどうかを判断してスケジューリング決定を下す。例として、MJS110はディスク使用率を分析し得る。マイクロジョブ125を有するアプリケーション以外のアプリケーションがそのディスクを使用している場合、MJS110は、この他のアプリケーションが終わるのを待ってからマイクロジョブ125をスケジュールする。MJS110はディスクI/O利用を監視し続け、ディスクI/Oへのアクセスを求めている他のアプリケーションがなければ、別のマイクロジョブ125をスケジュールできるようにする。しかし、別のアプリケーションがディスクI/Oの利用を求めている場合は、MJS110は別のマイクロジョブ125をスケジュールできないようにして、この他のアプリケーションがディスクI/Oを利用することができる。
別の例として、MJS110はネットワーク使用率を分析し得る。ネットワークトラフィックが高すぎる場合、MJS110はトラフィックが遅くなるまでマイクロジョブ125を1つもスケジュールしないことになる。ネットワークトラフィックが十分低い場合は、MJS110はマイクロジョブを実行するためにスケジュールする。MJS110は、ネットワークトラフィックが十分低くあり続けていることを確認し続ける。ネットワークトラフィックが十分低くあり続けている場合、別のマイクロジョブ125がスケジュールされ得る。しかし、トラフィックが高くなりすぎると、さらに他のマイクロジョブ125
は実行がスケジュールされない。
MJS110は、いずれかの種類のコンピュータリソースおよびリソースのいずれかの組合せに基づいて、リソースに基づいたスケジューリング決定を下し得る。1つの実施例では、MJS110は、実行される許可を待っているマイクロジョブ125の複数の待ち行列を有する。各待ち行列は特定のリソースに対応し得る。たとえば、ディスクI/Oを利用する必要があるマイクロジョブ125の待ち行列、ネットワークを利用する必要があるマイクロジョブ125の待ち行列、CPUを利用する必要があるマイクロジョブ125の待ち行列などがあり得る。リソースの組合せを利用するマイクロジョブ125の1つ以上の待ち行列もあり得る。MJS110は、特定のリソースまたはリソースの組合せが利用可能であればマイクロジョブ125を配布する。特定のマイクロジョブ125は、2つのリソースの使用を必要とし得る。たとえば、特定のマイクロジョブ125は、ネットワークリソースおよびディスクリソースの使用を必要とし得る。しかし、この特定のマイクロジョブ125はCPUリソースを必要としない。CPUリソース利用が現在高いとしても、この特定のマイクロジョブ125をスケジュールおよび実行することができる。
MJS対応のアプリケーション115は、この発明の実施例に従って、MJS110にパラメータを送ってリソース利用を制御する。リソース利用の制御は、ディスクI/O、CPUおよびネットワークを含むが、これらに限定されない。たとえば、MJS対応のアプリケーション115は、上記の3つのリソースの閾値レベルのいずれかの組合せが得られるまでは、マイクロジョブ125の実行を要求することができる。さらに、MJS対応のアプリケーション115は、異なるマイクロジョブ125に異なるリソース閾値レベルを指定することができる。たとえば、MJS対応のアプリケーション115は、1つの実施例に従って、各マイクロジョブ125に異なるリソース閾値レベルを指定する。したがって、細分化されたリソース管理が可能である。MJS110がリソース利用を計算する場合、この発明の1つの実施例に従うと、測定されるのは、MJS対応のアプリケーション115以外のプロセスのリソース利用である。CPU利用閾値が20パーセントに設定される以下の例を用いて説明する。MJS対応のアプリケーション115を実行可能にする前にCPU利用が20パーセント未満である場合、CPU利用は、マイクロジョブが実行されると20パーセントより高く増加し得る。この20パーセントを超える増加は、この例ではCPUリソース利用違反とはみなされない。同様の原理がネットワークおよびディスクI/Oリソースに当てはまる。
MJS110がオペレーティングシステムの外部で実行される場合、MJS110は、1つの実施例では、自身のリソース利用において自己制限する。たとえば、MJS110は自身のリソース利用を監視し、自身のリソース利用が高くなりすぎると、MJS110は、ある期間の間だけMJS110のスケジューリングを停止するようオペレーティングシステムに要求を出す。
プロセスフロー
図3は、この発明の実施例に従った、コンピュータジョブをマイクロジョブ125に分割することによってコンピュータジョブを実行するためのプロセス300のステップを図示するフローチャートである。ステップ302において、コンピュータジョブが開始される。コンピュータジョブは、MJS対応のアプリケーション115からのものであり得る。しかし、コンピュータジョブは、MJS対応のアプリケーション115に関連付けられなくてもよい。
例として、ステップ302において、1つの実施例では、コンピュータシステムが立ち上がるとMJS対応のアプリケーション115プログラムが起動される。MJS対応のアプリケーション115が行うべきコンピュータジョブを有していない場合、MJS対応の
アプリケーション115は、動作すべきコンピュータジョブを有するまで遊休状態にあり続ける。この遊休状態では、MJS対応のアプリケーション115は、時折の監視などのいくつかの機能を果たし得る。ある点で、MJS対応のアプリケーション115は、記憶媒体のデフラグ、またはウイルススキャンなどの行うべきコンピュータジョブを有する。コンピュータジョブは、単一のディスクまたはそれに記憶されるファイルをデフラグすることであり得、MJS対応のアプリケーション115は継続的にそのディスクをデフラグする。
MJS対応のアプリケーション115は、起動されると少量のメモリが割当てられ得る。MJS対応のアプリケーション115は典型的に、1度に単一のマイクロジョブ125しか実行しようとしないため、割当てられる量は非常に少量であり得る。しかし、場合によっては、MJS対応のアプリケーション115は、実行すべき他のプロセスを待たずに複数のマイクロジョブ125を実行しようとし得る。たとえば、必要なコンピュータシステムリソースが遊休状態にあるとMJS110が判断した場合、MJS110は、複数のマイクロジョブ125が利用するリソースを利用している別のプロセスがなければ、MJS対応のアプリケーション115がその複数のマイクロジョブ125を続けて実行できるようにし得る。
ステップ304において、コンピュータジョブはマイクロジョブ125に分割される。特定のマイクロジョブ125のサイズは、1つの実施例では、その特定のマイクロジョブ125が処理ジョブを実行するために使用されるリソースを所有する割当時間内にその特定のマイクロジョブ125が完了可能なサイズである。マイクロジョブ125は、マイクロジョブ125の実行が、コンピュータシステム内の他のジョブの性能に重大な影響を与えないよう十分少量のリソースを利用するようなサイズであり得る。1つの実施例では、コンピュータジョブをマイクロジョブ125に分割することは、各マイクロジョブ125が、そのコンピュータジョブにそのマイクロジョブ125を実行するために使用されるリソースの所有権が与えられる割当時間内に実行を完了できるように、マイクロジョブ125のサイズを選択することを備える。
1つの実施例では、コンピュータジョブは、そのコンピュータジョブを所有するアプリケーションによってマイクロジョブ125に分割される。コンピュータジョブのマイクロジョブ125への分割は、MJS対応のアプリケーション115内の命令によって達成され得る。一般に、これらの命令は、MJS対応のアプリケーション115内の決定点である。たとえば、命令は、マイクロジョブ125を実行する許可を要求する、MJS110へのAPIの呼出しであり得る。しかし、MJS110はMJS対応のアプリケーション115に統合されてもよく、その場合命令は、MJS対応のアプリケーション115内のスケジューリング機能への呼出しであり得る。他の技術を用いてコンピュータジョブをマイクロジョブ125に分割してもよい。たとえば、1つの実施例では、コンピュータジョブは、シェルMJS110内のマイクロジョブ分割ロジックによってマイクロジョブ125に分割される。
ステップ306はマイクロジョブ125の実行である。1つの実施例では、コンピュータジョブ全体がマイクロジョブ125に分割され、コンピュータジョブはその後マイクロジョブ125ごとに実行されて、コンピュータジョブ全体が完了する。たとえば、デフラグジョブ全体がマイクロジョブ125に分割され、それらが1度に1つずつ実行されて、デフラグジョブ全体が完了する。特定のマイクロジョブ125は、1つの実施例では、割当時間より短い時間で、または割当時間と等しい時間で実行を完了する。
マイクロジョブ125ごとの実行は、順次の1つずつの実行に限定されないが、順次の1つずつの実行を含む。複数のマイクロジョブ125が同時に実行され得る。たとえば、
複数のCPUがある場合、異なるマイクロジョブ125が異なるCPUで同時に実行され得る。
1つの実施例では、マイクロジョブ125のスケジューリングはリソース利用に基づく。この実施例では、マイクロジョブ125の各々について、特定のマイクロジョブ125が使用するコンピュータシステムの1つ以上のリソースの利用が1つ以上の遊休基準を満たすかどうかについての判断が下される。特定のリソースの遊休基準は1つ以上の要因に基づき得る。たとえば、1つの実施例では、CPUリソース利用の遊休基準としてCPU利用が使用される。したがって、マイクロジョブ125が実行されるのは、マイクロジョブ125が必要とするコンピュータシステムのリソースが十分遊休状態にあるときのみである。遊休基準は、1つの実施例では、リソース閾値に基づく。たとえば、MJS対応のアプリケーション115のマイクロジョブ125が、他のプロセスによるリソース利用がそのMJS対応のアプリケーション115が指定する閾値未満である場合にのみ実行されるようなリソース閾値が使用され得る。以下に説明される例示的なAPIは、いくつかのリソース閾値パラメータの一例を含む。しかし、プロセス300はこれらのリソース閾値パラメータに限定されない。
1つの実施例では、マイクロジョブ125のスケジューリングは時間間隔に基づく。1つの実施例では、コンピュータジョブの実行はある期間にわたって分散される。たとえば、コンピュータジョブは数時間にわたって分散され得る。コンピュータジョブがいくつのマイクロジョブ125に分割されるかに基づいて、どのようにマイクロジョブ125をある時間にわたって分散させるかについての判断が下され得る。連続するマイクロジョブ125どうしの間の時間は均一である必要はない。
1つの実施例では、コンピュータジョブを開始したアプリケーションプログラムは継続的に動作し、コンピュータシステムが立ち上がっているかぎり動作し続けるが、行わなければならない作業がない間は遊休状態にあり続ける。たとえば、ディスクデフラグ用プログラムからウイルス検出アプリケーションプログラムへと動作し続ける。したがって、コンピュータジョブが完了したとしても、アプリケーションプログラムは作業の次のセグメントを待ちながら遊休モードで動作し続ける。したがって、アプリケーションプログラムは、行うべき別のコンピュータジョブがあるときに再起動される必要がない。この結果、アプリケーションプログラムは、アプリケーションプログラムの起動に典型的な付加的なリソースを消費しない。アプリケーションプログラムが、行うべき別のコンピュータジョブを有すると判断した場合、コンピュータジョブはマイクロジョブ125に分割され、マイクロジョブ125はある時間にわたって実行される。たとえば、ディスクデフラグ用プログラムのアプリケーションプログラムは、コンピュータの記憶媒体に対する変更に基づいて付加的な記憶媒体デフラグがなされるべきであると判断し得る。
例示的なAPI
この発明の実施例は、MJS対応のアプリケーション115がMJS110とインターフェイス接続できるようにするためのAPIである。例示的なAPIは、CPU、ディスク、およびネットワークについて以下のリソース閾値パラメータを有する。
・CPU利用閾値
・保留ディスクI/Oカウント閾値
・ネットワーク利用閾値
各マイクロジョブ125について上記のパラメータが指定され得る。換言すれば、異なるマイクロジョブ125には異なるリソース閾値パラメータが割振られ得る。たとえば、ネットワークを使用するマイクロジョブ125については、ネットワーク閾値が使用され得る。しかし、ネットワークを使用しないマイクロジョブ125については、ネットワー
ク閾値はゼロであり得る。したがって、この発明の実施例に従って、細分化されたリソース管理が提供される。
特定の例として、MJS対応のアプリケーション115は、CPU利用が50%未満であり、I/Oディスク利用が40%未満であり、ネットワークトラフィックが60%未満である場合にのみ特定のマイクロジョブ125の実行を要求し得る。全く何もなしも含めて、リソース閾値因子のいずれかの組合せが用いられ得る。CPU利用閾値は、この発明の実施例に従って、いずれかの他のジョブの利用閾値とは対照的に、MJSのCPUの使用ごとに異なる。
以下の2つのパラメータを用いて、リソース利用をどれほど頻繁に測定すべきかを指定する。
・CPU利用ウィンドウ
・ネットワーク利用ウィンドウ
CPU利用ウィンドウパラメータは、それにわたるCPU利用が計算されるタイムウィンドウを規定する。たとえば、最新のnミリ秒にわたるCPU利用が平均化される。ネットワーク利用ウィンドウは、それにわたるネットワーク利用が計算されるタイムウィンドウを規定する。これらのパラメータはMJS110に内在し得る。しかし、MJS対応のアプリケーション115はこれらのパラメータをオーバーライドし得る。保留ディスクI/Oはどの時点においても絶対であり、したがって計算する必要はない。
必須の遊休時間パラメータがMJS対応のアプリケーション115からMJSに渡されて、どのようにマイクロジョブ125がある時間にわたって分散されるかを制御し得る。必須の遊休時間パラメータは任意である。さらに、使用時には、必須の遊休パラメータの値はゼロであり得る。
・必須の遊休時間
MJS110は、すべてのマイクロジョブ125が実行された後のシステム遊休時間であると規定される「遊休時間」を追跡する。上述のように、MJS対応のアプリケーション115(s)は、MJS110を用いてマイクロジョブ125を待ち行列に入れることができる。MJS待ち行列にマイクロジョブ125がない場合、MJS110は指定された必須の遊休時間だけ待ってから起きて、MJS対応のアプリケーション115(s)が付加的な作業を行なうことを認可する。たとえば、MJS対応のデフラグ用プログラムは、まずある数のマイクロジョブ125を実行してディスクドライブをデフラグし、その後MJS110によって休止され得る。指定された必須の遊休時間の後、MJS110は、MJS対応のデフラグ用プログラムを呼出して付加的な作業を認可する。たとえば、MJS対応のデフラグ用プログラムは、メモリの解放などのクリーンアップジョブを実行し得る。必須の遊休時間は、MJS対応のアプリケーション115によって調整され得るデフォルトパラメータであり得る。
以下のパラメータは、リソース利用が閾値を上回るときにマイクロジョブ125の実行を待つことに関する。
・待ち時間
・最大待ち時間
リソース利用が現在高すぎてマイクロジョブを実行できないとMJS110が判断した場合、MJS110は、指定された待ち時間だけ待ってから、リソース利用を再確認する。待ち時間パラメータは、MJS110がリソース利用が高すぎると判断するたびに増加され得る。たとえば、MJS110は、最大待ち時間に達するまで待ち時間パラメータを
増加させることができる。これらのパラメータは、MJS対応のアプリケーション115が最初に始動されるときにアプリケーション115によって指定され得る。MJS対応のアプリケーション115は、実行時間中にこれらのパラメータを調整することができる。
ハードウェア概要
図4は、本発明の実施例が実現され得るコンピュータシステム400を図示するブロック図である。プロセス300のステップは、システム400の1つ以上のコンピュータ読取可能媒体の命令として記憶され、コンピュータシステム400のプロセッサ上で実行される。コンピュータシステム400は、情報を通信するためのバス402または他の通信メカニズムと、バス402に結合される、情報を処理するためのプロセッサ404とを含む。コンピュータシステム400はまた、バス402に結合される、プロセッサ404によって実行されるべき情報および命令を記憶するための、ランダムアクセスメモリ(RAM)または他の動的記憶装置などのメインメモリ406も含む。メインメモリ406はまた、プロセッサ404によって実行されるべき命令の実行中に、一時変数または他の中間情報を記憶するために用いられ得る。コンピュータシステム400はさらに、バス402に結合される、プロセッサ404のための静的情報および命令を記憶するための読出専用メモリ(ROM)408または他の静的記憶装置を含む。情報および命令を記憶するための、磁気ディスクまたは光学ディスクなどの記憶装置410が設けられ、バス402に結合される。コンピュータシステム400は、プロセッサ400をいくつでも有してよい。たとえば、1つの実施例では、コンピュータシステム400はマルチプロセッサシステムである。プロセッサ404は、コアをいくつでも有してよい。1つの実施例では、プロセッサ404はマルチコアプロセッサ404である。コンピュータシステム400は、ハイパースレッドマシン内で用いられ得る。
コンピュータシステム400は、コンピュータユーザに情報を表示するための、陰極線管(CRT)などのディスプレイ412にバス402を介して結合され得る。プロセッサ404に情報および指令選択を通信するための、英数字および他のキーを含む入力装置414がバス402に結合される。別の種類のユーザ入力装置は、プロセッサ404に方向情報および指令選択を通信するため、ならびにディスプレイ412上のカーソルの動きを制御するためのマウス、トラックボール、またはカーソル方向キーなどのカーソル制御部416である。この入力装置は典型的に、第1の軸(たとえばx)および第2の軸(たとえばy)の2本の軸における2自由度を有し、これにより、この装置が平面内の位置を指定することできる。
本発明は、本明細書中において説明される技術を実現するためのコンピュータシステム400の使用に関する。本発明の1つの実施例によると、それらの技術は、プロセッサ404がメインメモリ406に含まれる1つ以上の命令の1つ以上のシーケンスを実行するのに応答して、コンピュータシステム400によって行われる。そのような命令は、記憶装置410などの別の機械読取可能媒体からメインメモリ406に読込まれ得る。メインメモリ406に含まれる命令のシーケンスの実行により、プロセッサ400が、本明細書中において説明されるプロセスステップを実行することになる。代替的な実施例では、ソフトウェア命令の代わりに、またはソフトウェア命令と組合せて、配線による回路構成を用いて本発明を実現してもよい。したがって、本発明の実施例は、ハードウェア回路構成およびソフトウェアのいずれの特定的な組合せにも限定されない。
本明細書中で用いられるような「機械読取可能媒体」という用語は、機械に特定的な態様で操作させるデータを与えるのに関与するいずれかの媒体を指す。コンピュータシステム400を用いて実現される実施例では、たとえばプロセッサ404に実行用の命令を与える際に、さまざまな機械読取可能媒体が含まれる。そのような媒体は、不揮発性媒体、揮発性媒体、および送信媒体を含む多くの形態を取り得るがこれらに限定されない。不揮
発性媒体は、たとえば、記憶装置410などの光学または磁気ディスクを含む。揮発性媒体は、メインメモリ406などの動的メモリを含む。送信媒体は、バス402を備える配線を含む、同軸ケーブル、銅線および光ファイバを含む。送信媒体はまた、電波および赤外線データ通信中に発生されるような音波または光波の形態も取り得る。すべてのそのような媒体は、媒体によって搬送される命令が、機械に命令を読込む物理メカニズムによって検出され得るように具体的である必要がある。
機械読取可能媒体の一般的な形態は、たとえば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、もしくはいずれかの他の磁気媒体、CD−ROM、いずれかの他の光学媒体、パンチカード、紙テープ、孔のパターンを有するいずれかの他の物理媒体、RAM、PROM、EPROM、FLASH−EPROM、いずれかの他のメモリチップもしくはカートリッジ、後で説明されるような搬送波、またはそこからコンピュータが読込可能ないずれかの他の媒体を含む。
実行用の1つ以上の命令の1つ以上のシーケンスをプロセッサ404に搬送する際、さまざまな形態の機械読取可能媒体が含まれ得る。たとえば、命令は当初、リモートコンピュータの磁気ディスクで搬送され得る。リモートコンピュータは、自身の動的メモリに命令をロードし、モデムを用いて電話線で命令を送ることができる。コンピュータシステム400にローカルなモデムが電話線上のデータを受け、赤外線送信機を用いてそのデータを赤外線信号に変換することができる。赤外線検出器が、赤外線信号内に搬送されるデータを受信することができ、適切な回路構成がそのデータをバス402に乗せることができる。バス402は、データをメインメモリ406に搬送し、そこからプロセッサ404が命令を取出して実行する。メインメモリ406が受けた命令は、プロセッサ404による実行の前または後のいずれかに、記憶装置410に任意で記憶され得る。
コンピュータシステム400はまた、バス402に結合される通信インターフェイス418も含む。通信インターフェイス418は、ローカルネットワーク422に接続されるネットワークリンク420に、双方向データ通信結合を与える。たとえば、通信インターフェイス418は、対応する種類の電話線にデータ通信接続を与えるための統合サービスデジタル網(ISDN)カードまたはモデムであり得る。別の例として、通信インターフェイス418は、互換性のあるLANにデータ通信接続を与えるためのローカルエリアネットワーク(LAN)カードであり得る。無線リンクも実現され得る。いずれのそのような実現例においても、通信インターフェイス418は、さまざまな種類の情報を表わすデジタルデータストリームを搬送する電気、電磁または光学信号を送受信する。
ネットワークリンク420は典型的に、1つ以上のネットワークを通じて他のデータ装置にデータ通信を与える。たとえば、ネットワークリンク420は、ローカルネットワーク422を通じてホストコンピュータ424に、またはインターネットサービスプロバイダ(ISP)426によって操作されるデータ機器に接続を与え得る。ISP426は次に、現在一般的に「インターネット」428と称される広域パケットデータ通信網を通じてデータ通信サービスを与える。ローカルネットワーク422およびインターネット428は両方とも、デジタルデータストリームを搬送する電気、電磁または光学信号を用いる。さまざまなネットワークを通る信号、ならびにコンピュータシステム400との間でデジタルデータを搬送し合うネットワークリンク420上のおよび通信インターフェイス418を通る信号は、情報を移送する搬送波の例示的な形態である。
コンピュータシステム400は、ネットワーク、ネットワークリンク420および通信インターフェイス418を通じて、メッセージを送り、プログラムコードを含むデータを受信することができる。インターネットの例では、サーバ430が、インターネット428、ISP426、ローカルネットワーク422および通信インターフェイス418を通
じてアプリケーションプログラムについての要求コードを送信し得る。
受けたコードは受信時にプロセッサ404によって実行され得、および/または後で実行するために記憶装置410もしくは他の不揮発性記憶装置に記憶される。この態様で、コンピュータシステム400は、搬送波の形態のアプリケーションコードを得ることができる。
上記の明細書では、本発明の実施例が、実現例ごとに異なり得る多数の特定的な詳細を参照して説明された。したがって、発明であるもの、および出願人によって発明であると意図されるものを唯一および独占的に示すものは、いずれの後の訂正も含む、この出願から生じる一組の請求項であり、そのような請求項が生じる特定的な形態におけるものである。そのような請求項に含まれる用語について本明細書中において明示的に記載されるいずれの定義も、請求項において用いられるようなそのような用語の意味を決定するものとする。したがって、請求項において明示的に列挙されていない限定、要素、性質、特徴、利点または属性は、そのような請求項の範囲を如何なる意味でも限定するものではない。明細書および図面はしたがって、限定的ではなく例示的に認識されるべきである。

Claims (29)

  1. 機械によって実現される方法であって、
    コンピュータジョブを複数のマイクロジョブに分割するステップを備え、前記コンピュータジョブを分割するステップは、前記コンピュータジョブにリソースの所有権が与えられる割当時間に基づいて前記マイクロジョブのサイズを選択するステップを含み、前記方法はさらに
    前記複数のマイクロジョブを前記リソースを用いて実行させることによって、前記コンピュータジョブを実行するステップを備える、方法。
  2. 前記マイクロジョブの前記サイズを選択するステップは、各マイクロジョブが、前記コンピュータジョブに当該マイクロジョブを実行するために使用されるリソースの所有権が与えられる割当時間内に実行を完了できるように、前記マイクロジョブの前記サイズを選択するステップを含む、請求項1に記載の方法。
  3. 前記コンピュータジョブは、個々の前記マイクロジョブの各々の実行を、前記割当時間より短い時間で、または前記割当時間と等しい時間で完了することによって完了する、請求項2に記載の方法。
  4. 前記コンピュータジョブを実行するステップは、
    特定のマイクロジョブを動作させるのに必要な1つ以上のリソースが、1つ以上の遊休基準にいつ準拠するかを判断するステップと、
    前記特定のマイクロジョブを動作させるのに必要な前記1つ以上のリソースの利用が1つ以上の遊休基準に準拠しているという判断に応答して、前記特定のマイクロジョブを前記割当時間内に実行させて完了するステップとを含む、請求項1に記載の方法。
  5. 前記コンピュータジョブを実行するステップは、連続するマイクロジョブの実行の間の待ち時間の長さを判断するステップを含む、請求項1記載の方法。
  6. 前記時間の長さを判断するステップは、前記コンピュータジョブが分割されて生じるマイクロジョブの数、および前記コンピュータジョブが分散されることになる期間に基づく、請求項5に記載の方法。
  7. 前記コンピュータジョブを実行するステップは、連続するマイクロジョブの実行の間の時間間隔だけ待つステップを含む、請求項1に記載の方法。
  8. 前記コンピュータジョブを実行するステップは、連続するマイクロジョブの実行の間に、ある数の演算だけ待つステップを含む、請求項1に記載の方法。
  9. 前記コンピュータジョブを実行するステップは、連続するマイクロジョブの実行の間に、ある数の量子だけ待つステップを含む、請求項1に記載の方法。
  10. 量子の少なくとも2つは、互いに異なるサイズである、請求項1に記載の方法。
  11. 前記マイクロジョブの少なくとも1つは、スレッドの一部を含む、請求項1に記載の方法。
  12. 前記割当時間は量子である、請求項1に記載の方法。
  13. 機械によって実現される方法であって、
    コードの一部にリソースの所有権が与えられる時間量を割当てるオペレーティングシステムの制御下で実行されることになるコンピュータジョブからマイクロジョブを分けるステップを備え、前記マイクロジョブのサイズは、前記マイクロジョブが割当時間内に実行を完了することが予想されるように選択され、前記方法はさらに
    前記マイクロジョブを前記割当時間内に実行させて完了するステップを備え、前記マイクロジョブは、前記割当時間の終了までに前記リソースの所有権を放棄する、方法。
  14. 前記コンピュータジョブから複数のマイクロジョブを分けるステップをさらに備え、前記マイクロジョブの各々の前記サイズは、各マイクロジョブが前記割当時間内に実行を完了することが予想されるように選択され、さらに
    各マイクロジョブを、それぞれの前記マイクロジョブの前記割当時間内に実行させて完了するステップを備え、各マイクロジョブは、それぞれの前記マイクロジョブの前記割当時間の終了までに前記リソースの所有権を放棄する、請求項13に記載の方法。
  15. 各マイクロジョブを実行させるステップは、前記コンピュータジョブを完了する、請求項13に記載の方法。
  16. 前記マイクロジョブを実行させて完了するステップは、
    前記マイクロジョブを動作させるのに必要な1つ以上のリソースが、1つ以上の遊休基準にいつ準拠するかを判断するステップと、
    前記マイクロジョブを動作させるのに必要な前記1つ以上のリソースの利用が1つ以上の遊休基準に準拠しているという判断に応答して、前記マイクロジョブを前記割当時間内に実行させて完了するステップとを含む、請求項13に記載の方法。
  17. マイクロジョブを分ける前記ステップは、
    前記リソースを用いて前記割当時間内に実行可能な前記コンピュータジョブの演算の数を判断するステップと、
    前記コンピュータジョブから、前記数よりも少ないまたは前記数と等しい数の演算に分けて、前記マイクロジョブを形成するステップとを含む、請求項13に記載の方法。
  18. 前記マイクロジョブはスレッドの一部を備える、請求項13に記載の方法。
  19. 前記割当時間は量子である、請求項13に記載の方法。
  20. 機械によって実現される方法であって、
    コードの一部にリソースの所有権が与えられる時間量を割当てるオペレーティングシステムの制御下で実行されることになるコンピュータジョブを複数のマイクロジョブに分割するステップを備え、前記コンピュータジョブを分割するステップは、前記コンピュータジョブにリソースの所有権が与えられる時間量に基づいて前記マイクロジョブのサイズを選択するステップを含み、前記方法はさらに
    前記コンピュータジョブの実行をある期間にわたって分散させるステップを備える、方法。
  21. 前記コンピュータジョブの実行を分散させる前記ステップは、前記コンピュータジョブの2つの連続するマイクロジョブの実行の間の待ち時間の長さを判断するステップを含む、請求項20に記載の方法。
  22. 時間の長さを判断するステップは、前記コンピュータジョブが分割されて生じるマイクロジョブの数、および前記コンピュータジョブが分散されることになる期間に基づく、請求項21に記載の方法。
  23. 前記コンピュータジョブの実行をある期間にわたって分散させる前記ステップは、
    特定のマイクロジョブを動作させるのに必要な1つ以上のリソースが、1つ以上の遊休基準にいつ準拠するかを判断するステップと、
    前記特定のマイクロジョブを動作させるのに必要な前記1つ以上のリソースの利用が1つ以上の遊休基準に準拠しているという判断に応答して、前記特定のマイクロジョブを前記割当時間内に実行させて完了するステップとを含む、請求項20に記載の方法。
  24. 前記コンピュータジョブの実行を分散させる前記ステップは、前記コンピュータジョブの2つの連続するマイクロジョブの実行の間の、ある長さだけ待つステップを含む、請求項21に記載の方法。
  25. 前記コンピュータジョブの実行を分散させる前記ステップは、前記コンピュータジョブの2つの連続するマイクロジョブの実行の間に、ある数の演算だけ待つステップを含む、請求項21に記載の方法。
  26. 前記コンピュータジョブの実行を分散させる前記ステップは、前記コンピュータジョブの2つの連続するマイクロジョブの実行の間に、ある数の量子だけ待つステップを含む、請求項21に記載の方法。
  27. 量子の少なくとも2つは、互いに異なるサイズである、請求項21に記載の方法。
  28. 前記マイクロジョブの少なくとも1つは、スレッドの一部を備える、請求項21に記載の方法。
  29. 割当時間は量子である、請求項21に記載の方法。
JP2009516504A 2006-06-19 2007-06-06 コンピュータマイクロジョブ Expired - Fee Related JP5299869B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US11/471,466 2006-06-19
US11/471,466 US8239869B2 (en) 2006-06-19 2006-06-19 Method, system and apparatus for scheduling computer micro-jobs to execute at non-disruptive times and modifying a minimum wait time between the utilization windows for monitoring the resources
US11/546,072 2006-10-10
US11/546,072 US8056083B2 (en) 2006-10-10 2006-10-10 Dividing a computer job into micro-jobs for execution
PCT/US2007/013452 WO2007149228A1 (en) 2006-06-19 2007-06-06 Computer micro-jobs

Publications (3)

Publication Number Publication Date
JP2009541852A true JP2009541852A (ja) 2009-11-26
JP2009541852A5 JP2009541852A5 (ja) 2010-07-08
JP5299869B2 JP5299869B2 (ja) 2013-09-25

Family

ID=38610635

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009516504A Expired - Fee Related JP5299869B2 (ja) 2006-06-19 2007-06-06 コンピュータマイクロジョブ

Country Status (8)

Country Link
EP (2) EP2038747A1 (ja)
JP (1) JP5299869B2 (ja)
KR (1) KR101377195B1 (ja)
AU (1) AU2007261611A1 (ja)
CA (1) CA2654423A1 (ja)
RU (1) RU2450330C2 (ja)
TW (1) TW200813819A (ja)
WO (1) WO2007149228A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012003341A (ja) * 2010-06-14 2012-01-05 Toshiba Tec Corp 情報処理システム、クライアント端末装置、サーバ装置、クライアント端末プログラムおよびサーバプログラム

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI486048B (zh) * 2008-09-12 2015-05-21 Chi Mei Comm Systems Inc 手機圖片轉換系統及方法
FR3004825B1 (fr) * 2013-04-19 2015-04-24 Krono Safe Procede d'allocation temporelle de taches permettant une recuperation d'erreur deterministe en temps reel
RU2538920C2 (ru) * 2013-05-06 2015-01-10 Общество с ограниченной ответственностью "Аби ИнфоПоиск" Способ распределения задач сервером вычислительной системы, машиночитаемый носитель информации и система для реализации способа

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0385642A (ja) * 1989-08-30 1991-04-10 Toshiba Corp Cpu負荷制御装置
JP2001242730A (ja) * 2000-02-29 2001-09-07 Canon Inc 画像形成装置
JP2004272366A (ja) * 2003-03-05 2004-09-30 Sumitomo Rubber Ind Ltd 業務監視方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19500957A1 (de) * 1994-07-19 1996-01-25 Bosch Gmbh Robert Verfahren zur Steuerung von technischen Vorgängen oder Prozessen
US7234139B1 (en) * 2000-11-24 2007-06-19 Catharon Productions, Inc. Computer multi-tasking via virtual threading using an interpreter

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0385642A (ja) * 1989-08-30 1991-04-10 Toshiba Corp Cpu負荷制御装置
JP2001242730A (ja) * 2000-02-29 2001-09-07 Canon Inc 画像形成装置
JP2004272366A (ja) * 2003-03-05 2004-09-30 Sumitomo Rubber Ind Ltd 業務監視方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6012033790; Tiago Ferreto et al: 'Scheduling Divisible Workloads Using the Adaptive Time Factoring Algorithm' Lecture Notes in Computer Science Vol. 3719, 2005, pages232-239, Springer-Verlag *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012003341A (ja) * 2010-06-14 2012-01-05 Toshiba Tec Corp 情報処理システム、クライアント端末装置、サーバ装置、クライアント端末プログラムおよびサーバプログラム

Also Published As

Publication number Publication date
AU2007261611A2 (en) 2009-07-02
KR20090024255A (ko) 2009-03-06
AU2007261611A1 (en) 2007-12-27
KR101377195B1 (ko) 2014-03-25
EP2038747A1 (en) 2009-03-25
CA2654423A1 (en) 2007-12-27
RU2008149048A (ru) 2010-07-27
WO2007149228A1 (en) 2007-12-27
TW200813819A (en) 2008-03-16
RU2450330C2 (ru) 2012-05-10
JP5299869B2 (ja) 2013-09-25
EP2413240A1 (en) 2012-02-01

Similar Documents

Publication Publication Date Title
US9727372B2 (en) Scheduling computer jobs for execution
US8056083B2 (en) Dividing a computer job into micro-jobs for execution
US9507631B2 (en) Migrating a running, preempted workload in a grid computing system
US9588809B2 (en) Resource-based scheduler
US20060037021A1 (en) System, apparatus and method of adaptively queueing processes for execution scheduling
JP2013218744A (ja) リソースに基づいたスケジューラ
JP5299869B2 (ja) コンピュータマイクロジョブ
JP2000020323A (ja) スケジュ―リング装置及び方法並びに記録媒体
US20230035129A1 (en) Method for allocating processor resource, computing unit and video surveillance arrangement

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100520

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100520

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100716

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100817

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120619

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120703

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121002

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130306

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20130417

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: 20130521

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130610

R150 Certificate of patent or registration of utility model

Ref document number: 5299869

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees