JP4813202B2 - 印刷ジョブキューイングならびにスケジューリングのシステムおよび方法 - Google Patents

印刷ジョブキューイングならびにスケジューリングのシステムおよび方法 Download PDF

Info

Publication number
JP4813202B2
JP4813202B2 JP2006032951A JP2006032951A JP4813202B2 JP 4813202 B2 JP4813202 B2 JP 4813202B2 JP 2006032951 A JP2006032951 A JP 2006032951A JP 2006032951 A JP2006032951 A JP 2006032951A JP 4813202 B2 JP4813202 B2 JP 4813202B2
Authority
JP
Japan
Prior art keywords
priority
queue
prioritizer
print
queues
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
JP2006032951A
Other languages
English (en)
Other versions
JP2006236337A (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.)
Microsoft Corp
Original Assignee
Microsoft 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
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2006236337A publication Critical patent/JP2006236337A/ja
Application granted granted Critical
Publication of JP4813202B2 publication Critical patent/JP4813202B2/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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1202Dedicated interfaces to print systems specifically adapted to achieve a particular effect
    • G06F3/1203Improving or facilitating administration, e.g. print management
    • G06F3/1206Improving or facilitating administration, e.g. print management resulting in increased flexibility in input data format or job format or job type
    • AHUMAN NECESSITIES
    • A01AGRICULTURE; FORESTRY; ANIMAL HUSBANDRY; HUNTING; TRAPPING; FISHING
    • A01GHORTICULTURE; CULTIVATION OF VEGETABLES, FLOWERS, RICE, FRUIT, VINES, HOPS OR SEAWEED; FORESTRY; WATERING
    • A01G9/00Cultivation in receptacles, forcing-frames or greenhouses; Edging for beds, lawn or the like
    • A01G9/08Devices for filling-up flower-pots or pots for seedlings; Devices for setting plants or seeds in pots
    • A01G9/081Devices for filling-up pots
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1223Dedicated interfaces to print systems specifically adapted to use a particular technique
    • G06F3/1237Print job management
    • G06F3/126Job scheduling, e.g. queuing, determine appropriate device
    • G06F3/1263Job scheduling, e.g. queuing, determine appropriate device based on job priority, e.g. re-arranging the order of jobs, e.g. the printing sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/12Digital output to print unit, e.g. line printer, chain printer
    • G06F3/1201Dedicated interfaces to print systems
    • G06F3/1278Dedicated interfaces to print systems specifically adapted to adopt a particular infrastructure
    • G06F3/1285Remote printer device, e.g. being remote from client or server
    • G06F3/1286Remote printer device, e.g. being remote from client or server via local network

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Environmental Sciences (AREA)
  • Accessory Devices And Overall Control Thereof (AREA)

Description

本発明は、印刷ジョブキューイングならびにスケジューリングのシステムおよび方法に関する。
一般的に、印刷サーバは、1組の物理プリンタまたは論理プリンタに対して印刷するジョブをスケジューリングする。通常、印刷ジョブの中にはかなり大きく、多くのリソースを消費するものがあるので、システムにおいて印刷のジョブが受付けられると、印刷サーバの想定される性能とその実際の性能とに大きな影響を与える可能性がある。
例えば、多くのジョブをレンダリングまたは印刷するようスケジューリングされる場合、コンピュータの物理メモリを使い果たし、「スラッシング」として知られる状態につながりかねない。スラッシングとは、仮想メモリからハードディスクへの書込みとハードディスクから仮想メモリへの書込みとが繰り返されると発生する状態である。この繰り返しはすなわち、印刷ジョブの処理において、システムスラッシングとなってしまったジョブがスケジューリングされたことにより、進行が遅くなりかねない。このような状況では、スケジューリングの決定が、システムの実際の性能に影響を与えかねない。同様に、ハードディスク上の複数のファイルから十分なデータを個別に読取った場合、このことがディスクのヘッドの過剰な動きを誘発するので、性能を実際に低下させる可能性がある。
別の例では、印刷を行うための1つの大きなジョブとそれより小さな一連のジョブが必要であることを考慮されたい。この状況では、印刷を行うための小さなジョブの後に大きなジョブがくれば、より多くのユーザがより迅速にジョブを受信することになる。この状況では、実際の性能よりむしろ、想定される性能の方が低下する。これはどちらの場合でもサーバのスループットは、低下しないためである。
印刷ジョブは、サイズおよび/または所望の優先度が変わる傾向があるので、印刷サーバの管理者が、システム内の印刷ジョブの優先度を制御でき、ある時期に印刷ジョブのスケジューリングをすることもできる手段を提供することが望ましいであろう。さらに、ユーザが自分のジョブの優先度を変更することを管理者が承認している場合、ユーザが変更することができることが望ましい。
従って、本発明は、改良された印刷ジョブキューイングならびにスケジューリングのシステムおよび方法を提供することに関する。
印刷ジョブの優先度がプログラム可能である印刷システムおよび印刷方法を説明する。一態様では、スケジューラコンポーネントは印刷ジョブの管理およびスケジューリングを監視し、プライオリタイザと呼ばれるコンポーネントと協働してプログラミングおよびカスタマイズを容易にする。少なくともいくつかの態様では、システムにインターフェースを提供し、プライオリタイザをプログラムし、かつ挿入して、異なる印刷ジョブのプロパティに従ってスケジューラの挙動をカスタマイズすることができる。少なくともいくつかの態様において、システムは、システム内の印刷キューの相対的な優先順位付け用のモデルを利用して、印刷キュー間のシステムリソースの適正なバランスを強化させる。少なくともいくつかの態様では、印刷ジョブを投入するとき、システムがレンダリング動作と印刷動作とを個別にスケジューリングすることができ、「スタベーションリスク」として知られるヒューリスティックを使用して、システム内のレンダリングを抑えることによって、確実に装置のスタベーションが生じないようにするのを助ける。
(概要)
以下の実施形態では、システム内の印刷ジョブの相対的な優先度がプログラム可能である印刷システムを説明する。少なくともいくつかの実施形態では、スケジューラコンポーネントは、印刷ジョブの管理およびスケジューリングを監視し、プライオリタイザと呼ばれるコンポーネントと協働してプログラミングおよびカスタマイズを容易にする。少なくともいくつかの実施形態では、システムにインターフェースを提供し、プライオリタイザをプログラムし、かつ挿入して印刷ジョブの異なるプロパティに従ってスケジューラの挙動をカスタマイズすることを可能にする。よって、少なくともいくつかの実施形態では、各種プログラミング言語の知識が必ずしもあるわけではないシステム管理者でも、印刷ジョブを管理するカスタムの挙動を容易に定義することができる。例えば、少なくともいくつかの実施形態では、ユーザインターフェースを提供し、管理ユーザがプライオリタイザ用の各種パラメータ値を構成することを可能にする。管理ユーザは、プライオリタイザの相対的なランキングを変更することもできる。このように、それほどプログラムに精通していないユーザが、プログラミング能力を要さずに、スケジューラの挙動をさらにカスタマイズすることを可能にする。少なくともいくつかの実施形態では、印刷ジョブの個々の特性に基づいて、プログラムで印刷ジョブを時間的に遅らせることや、または速めることができる。
さらに、少なくともいくつかの実施形態において、システムは、システム内の印刷キューの相対的な優先順位付け用のモデルを利用して、印刷キュー間のシステムリソースの適正な(または、管理者の裁量で偏った)バランスを課す。これによって、システムは、システム内のプリンタ全体でのジョブの負荷のバランスを適正に保たせることが可能になる。さらに、各種キュー全体の負荷を適正に判定するために使用する機構は、経験の少ないユーザがシステムの挙動をカスタマイズ可能な方式でプログラムすることも可能である。
当業者には理解されるように、少なくともいくつかの実施形態において、システムは、これ以上追加の処理が必要でないことを判定するために、O(1)の演算量を用いた動作を達成することができる。
少なくともいくつかの実施形態では、ジョブを印刷するときに、システムがレンダリング動作および印刷動作を個別にスケジューリングすることができる。これによって、システム内のCPUとメモリの集約的なレンダリングタスクの数を制限しつつ、プリンタに印刷出力を送信するI/Oバウンドタスクの所望の装置スループットをシステムが達成することが可能になる。以下に説明する実施形態において、システムは、「スタベーションリスク」として周知のヒューリスティックを使用して、システム内のレンダリングを抑えることによって、確実に装置のスタベーションが生じないようにするのを助ける。
少なくともいくつかの実施形態では、システムは、自然なプーリングモデルの表現を可能とする。これによって、以下で明らかになるように、システムの正規ユーザと管理ユーザの両者が、特定のキューの印刷能力に影響を与える全ジョブを見ることが可能になる。
少なくともいくつかの実施形態では、システムは、別のジョブを印刷しなければならないか否かを判定するために、CPU計算量O(1)を用い、また、スケジュール決定のためにCPU計算量O(Log2J)+O(Log2P)を用いることで、これらの目的を達成する。ここでJは1つのキュー内にあるジョブの数であり、Pはシステム内の物理プリンタの数である。例えば、200個のキューおよび100万個のジョブが均等に分散されたシステムにおいて、1つのスケジュール決定のために2億の比較を要する可能性がある現在のシステムに比べ、本システムは典型的に、20の比較のみを利用して、1つのスケジュール決定を行う。
(例示的なクライアント装置コンポーネント/印刷サーバコンポーネント)
まず、各種実施形態を説明する前に、コンピューティング装置の説明を下記に提供する。当業者には理解されるように、このコンピューティング装置の各種コンポーネントを利用して、クライアントと印刷サーバの両方を実装することができる。
このようなコンピューティング装置として、図1は、下記の実施形態を利用できる例示的なコンピューティング装置を示す。説明するコンピューティング装置は、例示目的のみで提供されるものであり、特許請求した主題の適用を特定のコンピューティング装置1つのみに限定する意図はないことを理解されたい。
コンピューティング装置142は、1つまたは複数のプロセッサまたは処理装置144と、システムメモリ146と、システムメモリ146を含む各種システムコンポーネントを処理装置144に結合するバス148とを備える。バス148は、数種のバス構造のいずれかのうち1つまたは複数を表現し、メモリバスまたはメモリコントローラや、周辺バス、加速グラフィックス・ポート(AGP)、様々なバスアーキテクチャのいずれかを使用するプロセッサまたはローカルバスを含む。システムメモリ146は、リードオンリメモリ(ROM)150およびランダムアクセスメモリ(RAM)152を備える。ROM150には、立ち上げ時などに、コンピューティング装置142内の要素間で情報を転送するのを助ける基本ルーチンを含む基本入/出力システム(BIOS)154が格納されている。
コンピューティング装置142は、ハードディスク(図示せず)から読取り、かつそこに書込むためのハードディスクドライブ156と、取外し可能な磁気ディスク160から読取り、かつそこに書込むための磁気ディスクドライブ158と、CD−ROMまたは他の光メディアなどの取外し可能な光ディスク164から読取りかつそこに書込むための光ディスクドライブとをさらに備える。ハードディスクドライブ156および磁気ディスクドライブ158、光ディスクドライブ162は、SCSIインターフェース166または他の適切なインターフェースによってバス148に接続されている。これらのドライブおよびそれに関連付けられたコンピュータ読取可能な媒体は、コンピュータ読取可能な命令や、コンピュータ読取可能なデータ構造、コンピュータ読取可能なプログラムモジュール、さらにコンピュータ読取可能な他のデータの不揮発性ストレージをコンピュータ142に提供する。本明細書中で説明する環境例は、ハードディスクおよび、取外し可能な磁気ディスク160、取外し可能な光ディスク164を採用するが、磁気カセットや、フラッシュメモリカード、デジタルビデオディスク、ランダムアクセスメモリ(RAM)、さらにはリードオンリメモリ(ROM)など、コンピュータによってアクセス可能であり、データを格納できる他種のコンピュータ読取可能な媒体を動作環境例で使用してもよいことを当業者は理解されたい。
ハードディスク156、磁気ディスク160、光ディスク164、ROM150、またはRAM152には、多くのプログラムモジュールを格納することができ、このプログラムモジュールは、オペレーティングシステム170および、1つまたは複数のアプリケーションプログラム172(ユーザエージェントもしくはブラウザなど)、他のプログラムモジュール174、さらにプログラムデータ176を含む。キーボード178およびポインティングデバイス180といった入力装置を介して、ユーザはコンピュータ142にコマンドおよび情報を入力することができる。他の入力装置(図示せず)は、マイクロフォンまたは、ジョイスティックや、ゲームパッド、サテライトディッシュ、スキャナなどを備えることができる。これらおよび他の入力装置は、バス148に接続されたインターフェース182を通して処理装置144に接続されている。バス148には、ビデオアダプタ186などのインターフェースを介し、モニタ184または他種の表示装置も接続されている。モニタ184に加え、パーソナルコンピュータは、スピーカおよびプリンタなどの他の周辺出力装置(図示せず)を典型的に備える。
コンピュータ142は通常、1つまたは複数のプリンタに順に接続される印刷サーバ188などの、1つまたは複数のリモートコンピュータへの論理接続を使用するネットワーク環境で動作する。印刷サーバ188は、別のパーソナルコンピュータ、サーバ、ルータ、ネットワークPC、ピア装置または他の共通ネットワークノードであってもよく、一般的にコンピュータ142に関連する上述した要素の多くまたはすべてを備える。図1に示した論理接続は、ローカルエリアネットワーク(LAN)190およびワイドエリアネットワーク(WAN)192から成る。このようなネットワーク環境はオフィス、企業規模のコンピュータネットワーク、イントラネットおよびインターネットで通常のものである。
LANネットワーキング環境で使用される場合、コンピュータ142は、ネットワークインターフェースまたはアダプタ194を通してローカルネットワークへ接続される。WANネットワーキング環境で使用される場合、コンピュータ142は一般的に、モデム196またはインターネットなどのワイドエリアネットワーク192上に通信を確立するための他の手段を備える。内蔵または外付けモデム196がシリアルポートインターフェース168を介してバス148へ接続される。ネットワーク環境では、パーソナルコンピュータ142またはその一部に関連して示したプログラムモジュールがリモートメモリストレージ装置に格納されてもよい。示されたネットワーク接続は、例であり、コンピュータ間に通信リンクを確立する他の手段を使用してもよいことが理解されよう。
一般に、コンピュータ142のデータプロセッサは、コンピュータ142の各種のコンピュータ読取可能な記憶媒体内に、異なる時に格納された命令によってプログラムされる。プログラムおよびオペレーティングシステムは一般的に、例えば、フロッピー(登録商標)ディスクまたはCD−ROM上に分散され、そこから、コンピュータの2次メモリにインストールまたはロードされる。実行時に、このプログラムおよびオペレーティングシステムは、コンピュータのプライマリメモリに、少なくとも一部がロードされる。本明細書で説明するシステムは、これらおよび他の各種のコンピュータ読取可能な記憶媒体が、説明したブロックを実装するための命令またはプログラムを含む場合に、マイクロプロセッサまたは他のデータプロセッサとの関連でこのような媒体を備える。説明したシステムは、本明細書で説明した方法および技法に従ってプログラムすれば、コンピュータそのものを備えることもできる。
図示するために、オペレーティングシステムなどのプログラムおよび他の実行可能なプログラムコンポーネントを本明細書では離散ブロックとして示しているが、このようなプログラムおよびコンポーネントは、コンピュータの異なるストレージコンポーネントに様々な時に常駐し、コンピュータのデータプロセッサによって実行されることが認められる。
(例示的な実施形態の概要および説明)
図2は、一実施形態による例示的なシステムのハイレベル図であり、システム200で示す。以下の説明において、個々のオブジェクトを説明し、各オブジェクトの見出しの下にそのオブジェクトについてのプロパティおよび/または特徴のいくつかを記載する。これに続き、「ジョブの優先度の判定」というタイトルの節で、ある特定の印刷ジョブの優先度を表わす方法と優先順位付けプロセスにおけるプライオリタイザの役割を説明する。
前置きとはなるが、図2の具体的な実施例を説明する前に、次に説明する特定の具体的な実施例の基となる原理および考え方についての考察を以下で検討する。
特に、次の考察に、プライオリタイザまたはプライオリタイザオブジェクトという概念を説明する。プライオリタイザは、印刷システムをプログラム可能にするプログラマチック機構である。特に重要なのは、プライオリタイザがある特定の印刷ジョブに着目し、その印刷ジョブに関連付けられた重みまたは時間を生成することである。プライオリタイザのシーケンスを管理者が定義することができ、またプライオリタイザのこのシーケンスをある特定の印刷キューに関連付けることができる。そして、プライオリタイザのシーケンスは、ある特定の印刷ジョブのために、重み値および/または時間値を含むことができる値のベクトルであるタプルを生成する。システム管理者は、以下に説明するユーザインターフェースを介し、プライオタイザに構成データを提供することによって、各プライオリタイザを具体的に構成することができる。その後、ある特定の印刷ジョブのために生成したタプルをスケジューラオブジェクトによって解釈し、かつ処理して、印刷システム内の特定の印刷ジョブをスケジューリングすることができる。
動作原理では、ある特定の印刷キューの構成に従って印刷システムをプログラムしたいとシステム管理者が思った場合、ユーザインターフェース駆動のアプローチでは、システム管理者は、その特定のキュー用の1つまたは複数のプライオリタイザを単に選択する。各プライオリタイザのユーザインターフェースコンポーネントを使用することによって、システム管理者は、次に、このプライオリタイザをパラメータ化し、特定のキュー用のプライオリタイザに優先順位を割当てることができる。
図2の記述に戻ると、上述したばかりの原理を具現化した具体的なシステム200が示されている。以下に記載するものは一例に過ぎず、特許請求した主題の適用をこの特定のシステムに限定する意図はないことが理解される。
従って、この例でシステム200は、1つまたは複数のクライアント装置242および1つまたは複数の印刷サーバ288を含む。ここで、クライアント装置242および印刷サーバ288は、図1との関連で説明したコンポーネントと同じか、またはそれに類似したコンポーネントを含むことができる。しかし、簡潔にするために、図2の例ではこれらのコンポーネントを図示しない。
一実施例によると、クライアント装置242は、プライオリタイザユーザインターフェース244を備える。ユーザインターフェース244は、システム管理者(または他のユーザ)が、上述したようにプライオリタイザをプログラムするか、あるいは構成することが可能になるように構成される。図示して説明する実施形態では、ユーザインターフェース244は、カスタマイズされたユーザインターフェースを表示し、1つのプリンタまたは複数のプリンタ用の優先順位付けデータ(以下で説明)を表示する。プライオリタイザユーザインターフェースは、下記のメソッドをサポートする。
・Name−プライオリタイザユーザインターフェース244は、自身の論理IDに加え、人間が読取ることのできる表示名を有する。
・AppComponentID−これはプライオリタイザユーザインターフェースの一意なコンポーネントIDである。
あるプライオリタイザを呼び出して、その初期構成データを取得するか、既存の構成を変更するかのどちらかを行うことができる。これらの動作は、各プライオリタイザをサポートするGetConfigurationコマンドおよびChangeConfigurationコマンドによってサポートされている。
図示して説明する実施形態では、印刷サーバ288は、次のオブジェクトのうち1つまたは複数を備え、それぞれのオブジェクトを以下で説明する。すなわち、それぞれのオブジェクトとは、スケジューラオブジェクト252および、印刷ジョブオブジェクト254、プリンタオブジェクト256、論理サーバオブジェクト258、優先順位オブジェクト260、プライオリタイザデータオブジェクト262、プライオリタイザオブジェクト268である。さらに、クライアント装置242および印刷サーバ288が通信できる機構をデータインターフェースコンポーネント270が提供する。適合するデータインターフェースおよびプロトコルのいずれをも利用することができる。
(スケジューラオブジェクト)
図示して説明する実施形態では、スケジューラオブジェクト252は、印刷ジョブを選択して特定のプリンタに送信する役割を担う。そうするために、スケジューラオブジェクト252は、プライオリタイザによって生成されるデータを処理する。
さらに、スケジューラオブジェクトは、以下に説明するように、印刷ジョブの優先度が確実に遵守されるようにする。さらに、スケジューラオブジェクトは、システム全体で所望のスループットを確保するために、印刷ジョブを管理する。このように、スケジューラオブジェクトは、全印刷装置に適切なデータを適切な時に提供して、どのような過度の遅れも防ぐ役割を与えられている。さらに、以下に説明するように、スケジューラオブジェクト252は、そのほかの点では優先度がジョブスタベーションにつながってしまった場合に、何らかのある程度の適正化を図ろうとする。
図示して説明する実施形態では、スケジューラオブジェクト252は、深刻なオーバーヘッドを引き起こさずに、多数の物理装置にある多数の印刷ジョブから選択できるよう構成される。一連の優先度を柔軟に維持することが望ましく、キューは、下記のプロパティを有する優先度キューのスキューヒープの実装に基づく。
・挿入と除去の両方についてはO(log2N)であり、
・侵害的な実装−挿入または除去にはメモリが必要ないので、キューからアイテムを挿入または除去することが常にできる。
・スキューヒープは統計的に常にバランスを保っている。ベクトルベースのヒープを保障してバランスを保たせるが、機能するためには外部ベクトルが必要である。
所与の優先度に関して、システムは、印刷ジョブの先入れ先出し(FIFO)順のキューをその特定の優先度で維持する。これは、同じ優先度でジョブをスケジューリングすることに関するオーバーヘッドを軽減するのに役立つ。
さらに、一実施形態によると、システムは、優先度キューの3種類の論理型を維持する。すなわち、時間優先度キュー、プリンタ優先度キュー、およびリソースアービトレーションキューであり、各キューを図3で詳細に説明する。しかし、まず下記について考察する。
時間優先度キューとは、ジョブが再スケジューリングされるべき時間をキューの優先度として使用する優先度キューである。例えば、印刷装置がエラー状態になった場合、ジョブは、それが除去されるべき所望の時間(例えば5秒間)を優先度として有する時間キューの中に移る。この時間は、デルタ(または変更)として格納されず、むしろ絶対時間として格納され、スケジューラオブジェクト内の僅かな遅れによって引き起こされるドリフトを防ぐ。
プリンタ優先度キューとは、ある装置に対するキュー内の相対的な優先順位付けを表わすキューである。
リソースアービトレーションキューとは、プリンタキュー間で適正に負荷のバランスを保つことを目的とする複数のプリンタキューのうちの1つである。これらをすべて以下に詳細に記述する。
(印刷ジョブオブジェクト)
印刷ジョブオブジェクト254を作成し、ある特定の印刷出力要求を表現する。各印刷ジョブオブジェクトは、2つのコマンドをサポートする。すなわち、ChangePriorityおよびChangeScheduleTimeコマンドであり、これらのコマンドは、クライアントからはアクセス不可能である。
プライオリタイザオブジェクト(以下で説明する)がコマンドを呼び出して、関連するジョブの優先度またはスケジューリングされた時間を変更することができる。結果として、これらのコマンドを呼び出したとき、ジョブのスケジューリングキュー内でそのジョブが自動で移動する。両方のコマンドが新規の時間または優先度を取り、下記で明らかになるように、プライオリタイザの固有のコンポーネントID(以下で説明する)およびシステムが、これら両方のコマンドを使用して、優先度n−タプルのどのフィールドを変更すべきかを解決する。
(プリンタオブジェクト)
プリンタオブジェクト256は、印刷システムにおけるスケジューリングの論理ユニットである。従って、プリンタオブジェクト256は、プライオリタイザ構成データを格納するオブジェクトでもある。図示して説明する実施形態において、1つのプリンタオブジェクトでは、1つの物理プリンタに対してインターフェースは1対1に対応する。
(論理サーバオブジェクト)
プライオリタイザオブジェクトは、1つの論理サーバにインストールされている。また、1つの論理サーバが、管理者によって作成された一連の優先順位を有する。1つの論理サーバオブジェクトを提供する理由の1つは、ある場合では、1つの物理サーバが単体で2つ以上の論理サーバを有することができるためである。例えば、1つの印刷クラスタが多数の論理サーバを有し、論理サーバは、管理者の判断か、または物理クラスタノードの欠陥のために、このクラスタにあるノード間を移動する。
(優先順位オブジェクト)
優先順位オブジェクト260を使用して、1つまたは複数のプライオリタイザオブジェクトのシーケンスの優先順位を定義する。図示および説明する実施形態では、1つのプライオリタイザが、1つのジョブに対し1つの重みの割当て、または時間内に転送するジョブのスケジューリングが可能である。キューにある重みに対応するデータと、いわゆるジョブチケットなどのジョブに関連付けられた他のデータとの両方によって、この重みをどのように判定するかをパラメータ化する。このキューのデータおよびプライオリタイザの相対的な優位度を管理者が変更することができる。例えば、通常のスタッフメンバーが提出したジョブに対し、幹部が提出したジョブを優先順位付けするプライオリタイザが1つあり、大きいジョブの優先度を低くする別のプライオリタイザが1つある場合、管理者は、<Executive Privilege><Large Job Penalty>という1つの優先順位と、<Large Job Penalty><Execute Privilege>という別の優先順位とを指定することができる。後者の優先順位では、幹部のジョブが大きくない場合のみ、そのジョブに優先権が与えられる。
図示および説明する実施形態では、常に1つの優先順位がある。この優先順位は、印刷する時間間隔と、ユーザが要求した優先度と、必須時間優先度と、デフォルトのグローバルな優先度ペナルティとだけを維持する。実装例では、これが、Window(登録商標)NTのプラットフォームによって現在実装されている印刷サーバとの互換性を維持する。さらに、優先順位オブジェクトは、必須時間可能性(mandatory time capability)を付加し、デフォルト機構を提供して、キュー間の適正さを確保する。
(プライオリタイザデータオブジェクト)
プライオリタイザの構成は、ある特定の印刷キューに関連付けられる。この構成は、プライオリタイザのXSDスキーマに一致する。図示して説明する実施形態では、所与のあるプライオリタイザが常に、1つのプリンタ/ジョブの組合せのために呼び出される。この特定例では、プライオリタイザデータオブジェクト262は下記のフィールドを有する。
・PrioritizerID−これは、対応するプライオリタイザに一意のIDであり、印刷システムが正しいプライオリタイザをそのデータに関連付けることを可能にする。
・Data−これは、プライオリタイザに格納されたXSDスキーマに一致するXML文書である。
・ShouldBump−これはBooleanフィールドであり、他のジョブをバンプするのにこのフィールドを使うべきか否かを記録する。あるジョブをバンプした場合、このフィールドの優先度がより高ければ、文書の印刷がすでに始まっていても、そのジョブを移動させ、除去する。
(プライオリタイザオブジェクト)
図示して説明する実施形態では、プライオリタイザオブジェクト268とはプラグ可能なコンポーネントであり、あるジョブに対する重みを割り当てることや、またはそのジョブを時間内に(無期限の可能性もある)転送することを延期することができる。プライオリタイザオブジェクトは、下記のプロパティを有する。
・Name−プライオリタイザの表示名。これは、そのプライオリタイザの論理IDとは異なり、典型的にGUIDまたは厳密名である。
・Data Schema−これは、プライオリタイザのデータの形式を記述するXSDスキーマである。
・UIComponentID−これは、プライオリタイザに対応するUIコンポーネントのIDである。プリンタ毎の優先順位付けデータの構成を表示する必要がある場合に、このコンポーネントをサーバからダウンロードすることができる。
・Type−これは、プライオリタイザが戻した値をどのように解釈すべきかを識別する列挙である。本実施形態において、Typeとは、時間ブースト、時間FIFO、相対的またはグローバルな優先度効果を識別するものであり、それぞれ以下で説明する。
また、プライオリタイザオブジェクトは、JobChange()と呼ばれるメソッドをサポートする。このメソッドは、ジョブが到着した際にはいつでも印刷システムによって呼び出され、印刷システムがスプールを終了したときや、印刷を開始するときおよび印刷が終了したときにも印刷システムによって呼び出される。また、ジョブが経過する間の遅延時間または必須時間であるときはいつでも、このメソッドに通知される。プライオリタイザが他のイベントを知りたい場合、メソッドは、印刷システムのデータインターフェース通知機構を使用できる。
異なる型のプライオリタイザを複数使用でき、各プライオリタイザは、所望の結果を達成するよう指示された異なる一連の挙動を有することができる。図示および説明する下記の実施形態では、システムによってサポートされた異なる型のプライオリタイザが4つあり、すぐ次に続く章でそれぞれのプライオリタイザを詳細に説明するが、これらの特定の型のプライオリタイザは、特許請求された主題の適用の限定を意図するものではないことを理解されたい。
(ジョブの優先度の判定)
図示して説明する実施形態では、ある印刷ジョブの優先度を3つのデータで表現する。3つのデータとはすなわち、相対的な優先度タプル、グローバルな優先度効果、および保留カウントである。
相対的な優先度タプルとは、1組の数的な重みであり、例えば、[W1,W2,W3,W4]である。各重みは、プライオリタイザオブジェクトによって割当てられる。1つのキューに2つの印刷ジョブが投入された場合、各重みは、一方のジョブの相対的な優先度を判定するために、他方のジョブのタプルに対応する重みと比較される。
グローバルな優先度効果とは、単一の値であり、物理プリンタのグローバルな優先度にある特定の印刷ジョブを処理する効果を指示する。グローバルな優先度効果は、正または負の効果となり得る。例えば、幹部の印刷ジョブが優先度の高いブーストを割当てられる可能性があるが、そうでなければ、ジョブは、そのサイズによって決まるグローバルな優先度ペナルティを割当てられる可能性もある。キュー内の複数のプライオリタイザがグローバルな優先度効果を返した場合、その結果を合計して、ジョブの全体的な優先度効果を判定する。
保留カウントは、プライオリタイザにより使用されて、キュー内の印刷ジョブを保留し、それを後の段階で解除することができる。印刷ジョブの保留は、ジョブの優先度を判定するのに必要なデータが即座に分からない場合に役立つ可能性がある。例えば、プライオリタイザが100Kより大きいジョブの優先度を低下させたい場合に、この閾値を越えるサイズまでキューにジョブを保留しなければならず、その後優先度を調整し、ジョブを解除することが可能となる。また、保留を用いて、ジョブを時間内で遅らせることもできる。これについては後で説明する。アクティブな保留はどれもジョブが印刷を行うのを妨げるので、保留カウントは、常にタプルの第1要素であると効果的である。従って、ジョブタプルを以下のように表現することができる。
[HoldCount, W1, W2, W3, W4].
動作中、プライオリタイザオブジェクトに、その構成データとそれが優先順位付けしなくてはならないジョブとを渡す。その次にプライオリタイザは、その構成データおよび関連ジョブデータを処理し、重みおよび状態を戻す。状態は、次の情報を指示する。
・成功−プライオリタイザは、このジョブの優先度を正しく判定。
・保留−プライオリタイザは、このジョブを保留する必要がある。これは、ある時点で(保留を解除できる時点で)自動通知される時間プライオリタイザであるか、または何か他の状態でプライオリタイザにジョブを解除させる適切な変更通知をプライオリタイザが登録したことかのいずれかを示唆する。
・エラー保留−プライオリタイザが、ジョブを正しく保留するのに十分なリソースを有していない。この効果は、プライオリタイザが保留を解除できるか、または他のリソースが利用できるようになりプライオリタイザを機能させることができるかを期待してプライオリタイザを定期的に呼び出す以外は、保留と同じである。
・エラー−プライオリタイザに予想外のエラーが起きたら、プライオリタイザが後日成功するか分からないので、ジョブは削除される。
状態が保留(Hold)、エラー(Error)、またはエラー保留(Error Hold)の場合に、プライオリタイザオブジェクトはまた、プライオリタイザユーザインターフェース244(図2)を介して表示できる、あるユーザ情報を戻す。このユーザ情報は、以下の情報を特定の印刷ジョブに関連付ける。
・保留GUID。ユーザインターフェースがGUIDを認識する場合、ユーザインターフェースは、クライアントのロケールにあるローカライズされた文字列をロードすることができる。
・文字列パラメータの配列。GUIDに関連付けられた文字列によってフォーマットされた場合に、この配列によって人間が読取り可能な説明が生成される。
・フォールバック文字列。これは、クライアントがGUIDを認識しない場合、文字列を供給するサーバ側のリソースからロードされた文字列である。この文字列をまずクライアントロケール内で検索し、それからシステムロケール内で検索する。呼び出し側の言語をサーバ上で利用できない可能性があるのは理にかなっており、その場合メッセージをサーバのデフォルト言語で取り戻すことができる。
上述したように、プライオリタイザユーザインターフェース244は、印刷ジョブが保留状態の場合にこの情報を表示する。これは、ユーザのジョブがキュー内で保留される場合に、ユーザの混乱を減らすよう意図されたものである。例えばプライオリタイザが、午前2時から午前6時の間に印刷する大きな印刷ジョブを遅延させた場合、クライアントに戻されるユーザ情報は、次のメッセージをユーザに向けて表示させる。
「10MBを超えるサイズのため、午前2時から午前6時の間に印刷するジョブはキューに保留しました。説明が必要な場合は、システム管理者にお問い合わせください。」
上述したように、少なくとも一実施形態では、利用できるプライオリタイザに異なる4つの型がある。すなわち、相対的な優先度プライオリタイザ、グローバルな優先度プライオリタイザ、時間FIFOプライオリタイザ、および時間ブーストプライオリタイザである。それぞれのプライオリタイザを個別に以下で説明する。
相対的な優先度プライオリタイザは、プライオリタイザの最も簡単なケースを構築する。相対的な優先度は、1組の重みであり、これを使用して、1つの印刷ジョブをもう1つの印刷ジョブに対しランク付けする。一実施形態では、番号の小さい方がより高い優先度を示唆する。よって、相対的な優先度0を持つ印刷ジョブは、相対的な優先度1を持つ印刷ジョブより高い相対的な優先度を有する。
グローバルな優先度効果プライオリタイザは、修飾子としてのグローバルな優先度効果を使用するものであり、この修飾子は、1つの物理プリンタのもう1つの物理プリンタに対する相対的な重みに影響を与える。例えば、1つのプリンタの相対的な重みへのペナルティを、印刷したページ毎に割当てることができる。このようにして、ある特定のプリンタに対し、大きいジョブは、小さなジョブより負の影響が大きくなる。
時間FIFOプライオリタイザが時間フィールドを利用し、時間フィールドは、経過時間後の優先度を最重視するブーストをジョブが受信し、FIFOの順位で処理することを可能にする。これを使用して、印刷ジョブのスタベーションを防ぐことができる。例えば、あるタプルを[Tfifo1,P1]と定義し、時間FIFOを午後7時に設定した場合、印刷ジョブは、午後7時を過ぎると優先度が急上昇する。P1が大きなジョブにペナルティを付与する効果を有する場合、このことによって、大きなジョブがこの時間までキュー内でスタベーションした場合、その大きなジョブを最終的に印刷することが可能となる。その後、この閾値に到達した全ジョブがFIFOの順位で印刷される。
時間ブーストプライオリタイザとは、時間ブーストフィールドを利用するものであり、時間ブーストフィールドは、設定時間後のジョブの優先度を設定時間とする代わりに、設定時間後の優先度を0と設定する(0のほうが優先度は高いことを想起されたい)場合以外は、時間FIFOフィールドと同じ方式で動作する。つまり、ある時間におけるジョブの優先権を増すのに時間ブーストを使用するが、ブーストを受信したジョブの順位を判定するには、残りの優先度フィールドも重要なのである。
図示および説明する実施形態において、システムは、時間フィールドを相対的な優先度フィールドとは若干異なる扱いをする。すなわち、プライオリタイザによって戻された時間はいずれも比較され、これから先においてもまだ最小である時間が確定された後で、この時間が経過するまでそのジョブを時間キューに置いておく。時間が経過すると、ジョブはプライオリタイザに戻って渡される。典型的にプライオリタイザはこの時点で、時間を再調整するか、保留を解除することが可能である。
一例として、以下を考慮する。以下のタプルを実装する1組のプライオリタイザを考慮する。
[Tfifo, Pexec, Tboost, Psmall, Tdelay].
この例では、タプルの各コンポーネントを以下のように定義する。
Figure 0004813202
Tboostの効果は、キューに1時間超保留した大きなジョブが、この時点で小さなジョブに対し優先度を急上昇することである。しかし、小さなジョブも長時間遅延させられた場合でも、まだ小さなジョブが大きなジョブを超える優先度を有する。Tfifoの効果は、時間の終了時における時間ブーストと(ジョブが100MBより小さい場合に)提出したそのジョブのサイズとに係わらず、3時間を超えてキューに保留された場合に、いずれのジョブをも正確にFIFOの順位で印刷する(ジョブが100MBより大きくない場合)。100MBより大きいジョブは午前2時以降に印刷される。このように大きなジョブがキューに保留されたのが3時間未満でなければ(このようなことはめったにないが)、そのジョブはFIFOの順位で印刷される。
この例から理解できるように、プライオリタイザを利用して、印刷システムのプログラミングのために強力な機構を提供することができる。適切なプライオリタイザを選択し、それを適宜構成することによって、特定の印刷システムに合わせてカスタマイズして、その特定の印刷システムが有し得るいかなるニーズおよび需要にも一意的に見合う強力なツールがシステム管理者に与えられる。
(スタベーションリスク)
上述したように、少なくともいくつかの実施形態において、印刷システムを構成して、印刷を続行するためのデータを受信する必要がある印刷装置が、待っている大量のデータを有する印刷装置を超える優先度を受信する。
一実施形態によると、各キューは、<Low>、<Medium>、および<High>という値を有し得る「スタベーションリスク」を維持する。スタベーションリスクは、所与のプリンタがアイドル状態となる程度を示したものである。スタベーションリスクデータは、装置スケジューラの上流にあるレンダリングコンポーネントが使用して、ジョブを優先付けする。レンダリングコンポーネントは、好適にレンダリングジョブを開始する。レンダリングジョブは、他のジョブの優先度に係わらず、他のキューよりスタベーションリスクが高いキューに移ることになっている。これを使用して、優先度の高いジョブがシステム内の他のジョブを常に無力にするのを防止する。よって、あるキューが優先度の高いジョブを数多く有する場合、そのキューは最終的に満杯となり、そのキューのスタベーションリスクは下がる。その時点で、そのキューのスタベーションリスクが他のキューのスタベーションリスクを超過するまで、他のキューはジョブを優先的に受信する。
任意の適切な方法を使用して、スタベーションリスクを計算できる。一実施形態を除き、プリンタのスループットをまず概算する。この概算は、ある時間間隔に亘るデータを装置が消費する割合をサンプリングした後で、この時間間隔のスループットを次のように計算することによってなされる。
Rm = <Bytes Sent> / <Time Interval>.
しかし、当業者は理解するように、プリンタのバッファ(またはハードドライブ)は急速に満たされるが、ページの印刷は一般にずっと遅いので、プリンタのスループットはかなり変化し得る。そのため、装置のスループットの「バースト性」をならす何らかの方法があるはずである。
一実施形態によると、これは、消費率を最低率が最大値として計算することによってなされる。最低率は、特定のキューに定義され、望ましくは消費率履歴の認識を有する。数学的には、1つの調整可能なパラメータαを使用し、αが0(履歴がないことを表わす)と1(1つの履歴を表わす)との間の値を1つ有することができる。この調整可能なパラメータを以下の計算に組み込む。上述したように、この計算は、装置のスループットのバースト性を考慮した方式で消費率を計算する。
Rn = max(αRn-1 + (1-α) Rm,Rmin)
装置に全くデータも送信されてこない場合、この計算は行われない。プリンタドライバまたは(印刷レンダリングドライバもしくはプロトコルアダプタなどの)プラグ可能な他のシステムコンポーネントまたは管理者は、装置を正しくモデル化するαの値を選ぶことができる。上の計算によって、特定のキューにある全ジョブの総バイトカウントを合計でき、この合計から、スタベーションまでの時間の概算を計算できる。すなわち、
Tstarvation = ByteCount/Rn
となる。
一実施形態によると、2つの時間間隔を定義し、ある特定の装置のスタベーションリスクを分類するのに使用する。概算したスタベーション時間が1番目の時間間隔を超過する場合、スタベーションリスクは、高から中に移動する。概算したスタベーション時間が2番目の時間間隔を超過する場合、スタベーションリスクは低と分類される。
一例として、次を考慮する。前の1秒で10KB、次の1秒では5KBを受け入れるプリンタで、αを0.8とすると、上で与えられた式による消費率の概算は、
0.8*10k + (1-0.8)*5kB.s-1
となり、
8+1 kB.s-1 = 9 kB.s-1
となる。現在のキューがその中に900kBのデータを有する場合、スタベーションまでの時間は、
= 900/9s = 100s
である。第1のスタベーションリスク間隔を1分とし、第2のスタベーションリスクを10分とすると、この特定のキューは、中程度のスタベーションリスクを有すると分類される。
(スケジューリングキュー)
上述の考察に何らかの状況を提供するために、図3を手短に参照する。しかし図3について記述する前に、後に説明する図3の考察に関する何らかの状況を提供する以下のことを考慮する。
上記および下記の実施形態に従うと、当業者には理解されるように、各種キューを優先度キューとして実装することによって、スケジューリングシステムの効率が向上する。優先度キューとは、いずれの親も自分の子のいずれよりも小さくなければならないという基本ルールを有する論理ツリーを定義するデータ構造である。優先度キューがあれば、平均して、論理ツリーの要素の総数の数字のlogである要素の数字を見て、キュー内に要素を挿入できる。
この特徴によって、スケジューリングが非常に効率的になる。さらにこのことは、プライオリタイザがタプルを生成し、それを利用する理由でもある。特に、タプルによって、スケジューラが2つの特定のジョブを比較することが可能になり、この比較は、各ジョブのタプルを見た後に、この2つのジョブに適当に順位付けすることによってなされる。さらに、スケジューラがスタベーションリスクを要因の1つとしてとらえて考慮する場合に、非常に強力なスケジューリングパラダイムを提供する。
さて図3の例に戻ると、2つの装置キュー300、302が示されている。この2つの装置キューはそれぞれ、1つの物理プリンタ対象のジョブのキューであり、装置キューのジョブは、上述のように順位付けされる。この例では、いくつかのジョブは、保留状態である。このため上述のように、保留状態であるジョブは、保留状態でないジョブより優先度は自動的に低くされる。上記の観点から理解されるように、優先度の低いジョブを即座に印刷することはできない。
個々の装置キューとは別に、印刷ジョブテーブル304が提供され、それがシステム上の全ジョブ(または全ジョブのインディシア)を格納する。あるジョブがプールされたプリンタ(プールされたプリンタについては以下に記述する)に実行依頼された場合、そのジョブは対象となる印刷キューのすべてに出現する。これは、2〜3の異なる理由からなされる。第一に、プールされたキューは、プールされた全装置のジョブをすべて含む効果的に仮想キューである。このようにキューを構成すると、同じリソースに関して争おうとする他のジョブは、それらのジョブがプールされた同じキューに送信されても送信されなくても、ユーザが調べることが可能になる。第二に、各物理プリンタが異なる優先順位を有することができ、各プリンタ用の各プライオリタイザが、異なる構成を有し得る。多くの場合、これは優先度タプルを複数の物理プリンタ全体で比較することが無意味であることを意味する。
さらに、ジョブを記述するタプルの諸要素のいずれも、これから先のある一時点を表わす場合、その諸要素は、時間キュー306に同時に置かれる。時間キュー306は、時間で順位付けされ、要素の絶対時間に従って要素を格納する。これによって、ジョブをキューから取り除くときに、そのジョブを処理することに起因するいかなる長期スキューも防ぐ。
当業者およびその他の業者に理解されるように、一般的に印刷システムは、固定された1組のリソースを有する。この特定例では、システムリソース308が、2つのディスクとCPUと物理メモリとを備える。スケジューラ(例えば、図2のスケジューラ252)のタスクは、管理者が指定したように相対的な優先度を有するジョブを割当てることである。キューの相対的プライオリタイザがこれを行う。またスケジューラは、全てではないにしても多くの場合に、効率的なもので、利用可能なシステムリソースに従ってスケジューリングする最適な数のジョブだとスケジューラが考えるものを選ぼうとしなければならない。これは、システム全体のスループットに関しては、多数のジョブをスケジューリングするより、少数のジョブをスケジューリングする方がより効果的となり得るためである。例えば、あまりにも多くのジョブが、システムがページング動作を開始することをレンダリングする予定である場合、例えば上述した「スラッシング」などといったスケジューリングされたジョブが少ない場合よりシステム性能が悪化しかねない。同様に、非常に速いプリンタが3台あり、全プリンタが1つのディスクからデータを受信する場合、3つ目のジョブがスケジューリングされた場合に起こり得るディスクまたはヘッドの過剰な動きを減らすために、ジョブのうち2つだけをスケジューリングしたほうが現実的には速くなる可能性がある。
リソースの正確な数および種類は重要ではない。スプーラは、印刷可能となる前に、ジョブが取得しなければならないリソースの階層を維持する。ジョブが要するリソースは、何らかのヒューリスティックによって概算でき、その後測定することによって、使用中の実リソースを確認することができる。そして、ジョブは、何らかの所定の順位でリソースを取得し、ジョブが完了されるとそのリソースを解除する。この機構によって、スループットを軽減できるが、その結果デッドロックまたはライブロックが生じることはない。リソースの制約に係わらず、1つのジョブを印刷するようスケジューリングし、1つのジョブをレンダリングするようスケジューリングする。印刷に利用可能なジョブが、リソース上で第一の優先度を得る。レンダリングを要するジョブは、印刷準備が整ったジョブより低い優先度を有するが、前もってレンダリングされたジョブとレンダリングを要するジョブの両方をサーバが受信することもあるので、リソースは、レンダリングするために保留するリザーブを有する。使用されないレンダリングリザーブの部分のいずれも印刷ジョブに割当てられる。
システムリソースはマシンに対し必然的にグローバルであるが、キュー内のジョブの相対的な優先度は、キューにあるプライオリタイザの順位と,このプライオリタイザに供給される構成データとの両方で決まることをさらに考慮する。これは、異なるキューからのジョブの相対的な優先度を判定することが不可能でない場合には一般に困難である。あるマシンに優先順位と構成とが1つだけあるように義務付けることは可能であろうが、印刷サーバが移動またはマージされるか、または分散環境であるかを考慮し、印刷サーバが1つのノードから別のノードに移動し得ることを考慮した場合、このような義務付けは管理および維持することが非常に困難になる。各キューに何らかのシステムリソースをリザーブすることも可能ではあるが、このアプローチは、キューの負荷がバランスを保たない場合に、サーバ上のリソースを十分に活用できない。
一実施形態によると、この相対的な順位付けに関する課題を解決するために選ばれた解決策は、キューを相対的に優先順位付けするデータに続くピースを使用することである。このピースとはすなわち、キューの最上位ジョブにある保留の数、ジョブのスタベーションリスク、およびキューのグローバルな優先度のことである。
キューの最上位ジョブにある保留の数について、次を考慮する。あるキューの上位にあるジョブが保留である場合、そのジョブを処理しようとしても意味がない。キューのジョブのいずれもが保留でないのであれば、保留はジョブの順位を判定する際に常に最高の優先度になることから、ジョブはキューの最上位になることになる。
ある特定のジョブのスタベーションリスクについて、印刷サーバ内の他の適正さを全く考慮しない場合、ある特定の装置にスタベーションがリスクとしてあり、別の装置がそうでない場合、スタベーションがリスク状態にある装置が先にスケジューリングされる。
キューのグローバルな優先度(図3で「リソースアービトレーションキュー」310と呼ぶ)については、個々の印刷キューの優先度キューとして維持される。動作中、このグローバルな優先度キューは、ほとんどの汎用オペレーティングシステム内のスレッドまたは処理の優先度にいくつかの点が類似する。特に、各ジョブは1つのグローバルな優先度効果を有し、この効果の値は異なる因子に基づいて変化可能である。一実施形態では、グローバルな優先度効果のデフォルトの挙動は、ジョブ内のページ毎のグローバルな優先度の1ポイントを差し引くことである。さらに、グローバルな優先度効果は、ジョブの優先度を改善することもできる。例えば、「急ぎのジョブ」と定義されたカテゴリがあり、この場合、グローバルな優先度効果が大幅に自動で改善される。あるジョブがグローバルな優先度に負の影響を与える場合、そのジョブをスケジューリングした後に(つまり、キューがペナルティを付与されようとする原因のリソースをジョブが取った後に)この効果を計算する。キューにおいて現在処理しているジョブの負の優先度効果は、通常発生する正規化に係わりなく、ジョブを処理している間は常に有効である。さらに、グローバルな優先度リカバリという概念は、何らかの設定限度に達するまでの時間に亘りキューの優先度を徐々に改善することによって、提供されるものである。
各ジョブに関連付けることができるグローバルな優先度効果に加え、一実施形態によると、各キューが多数の構成パラメータを有することができる。本例では、これらの構成パラメータには、グローバルな優先度範囲、正規化率、および正規化時間間隔が制限なく含まれる。
グローバルな優先度範囲に関し、優先度が低ければ低い番号ほど、より高い優先度を受信する。ジョブの効果および優先度の正規化のいずれにも係わらず、キューの優先度がこの範囲に常に留まる。例えば、標準的な範囲を1000から2000とすることができる。管理者が他のキュー範囲を定義し、その範囲を使用して、あるキューの他のキューに対する優先度にペナルティを付与する、または優先度を上げることができる。例えば、管理者は、[0−1000]という優先度範囲を1組のキューに割当てることが可能であり、このキューは常に、デフォルト範囲を有するキューに対する優先権を受信する。
正規化率とは、ある時間の間で優先度が正規化する割合のことを言う。デフォルトにおいては、各時間間隔につき1ポイント優先度の番号を小さくできる。
正常化時間間隔とは、正常化がおきるデフォルトの時間間隔のことを言う。例示的なデフォルトの間隔を1分間とすることが可能である。
(レンダラにおけるスケジューリング)
さて、レンダラと装置スケジューラ間の関係を考慮する。この2つのコンポーネントの各々は、独自の論理キューを有することが不可欠であって、レンダラに格納されたジョブは、クライアント装置または装置スケジューラに格納された対応するジョブとは論理的に異なるジョブである。これらの各キュー内の対応する印刷ジョブは、処理およびマシンの境界全体に一貫したジョブGUID(グローバル一意識別子)の長所によって関連付けられる。
動作時、レンダラは一般的に、(拡張メタデータ形式(EMF)などの)中間形式で印刷ジョブデータを受信し、フィルタのパイプラインを介して中間形式を処理して異なる形式のデータを生成する。このデータは、スケジューリングし、かつ印刷装置へ提供するためにサーバに送信される。さらに、レンダラと装置スケジューラの特徴は非常に異なる。特に、装置スケジューラは、「I/Oバウンド」であると言える。これは、装置スケジューラが、プリンタがデータ要求に応答するのを実際に待つことが多いことを意味する。一方レンダラは一般的に、「CPUバウンド」である。これは、レンダラが、特定のコンピューティング装置が許可するのと同じくらい速くデータを処理し、そのデータを書き出すことを意味する。このため、2つの異なる種類のスケジューリングがこれらの各コンポーネントに関して発生することになるのはかなり論理的である。
一実施形態によると、ある特定のプリンタのスタベーションリスクを使用して、レンダリングアクティビティをコーディネートし、スタベーション状況が発生する見込みを減らす。より詳細には、レンダラは、ダウンストリームの物理プリンタがアイドル状態であるか、ジョブを開始しようとしている(つまり、スタベーションのリスクが高い)かのどちらかの場合、そのプリンタ用のジョブを優先的にスケジューリングする。すでにレンダリングされた大量のデータを有し、そのためスタベーションのリスクが低いプリンタにジョブが対象とされている場合、レンダラが、レンダリングするジョブをスケジューリングするのは優先的ではなくなる。
(印刷プール)
印刷プールとは、印刷キューと物理印刷装置間の多対多の関係を定義する機構である。すなわち、複数のプリンタに関連付けられ、かつデータを提供する1つの論理プリンタを印刷サーバが有することができる。
一例として、2つのプールされたプリンタを有する1つのシステムを示す図4を考慮する。プールされた各プリンタは、2つの物理プリンタに関連付けられ、各プリンタは対応する独自の印刷キューを有する。プールされた2つのプリンタの印刷キューは、各物理プリンタに関連付けられた印刷キューによって判定され、同様に物理プリンタは、各物理プリンタのスケジューリングキューと関連ポートのキャッシュされた装置キューとから判定される。この例では、「印刷キュー」と指定されたキューは、仮想キューである。
この例では、プールされた1つのプリンタから2つの物理プリンタに対してスケジューリングされた印刷ジョブを各物理プリンタと仮想プリンタプールの両方で視認可能である。さらに、特定のプールされたプリンタの印刷キューは、対応する各物理プリンタに関連付けられた印刷キューをマージすることによって判定される。
(結論)
上述の印刷システムおよび方法によって、印刷ジョブの優先度をプログラム可能にすることができる。スケジューラコンポーネントが印刷ジョブの管理およびスケジューリングを監視し、プライオリタイザと呼ばれるコンポーネントと協働して、プログラミングおよびカスタマイズを容易にする。少なくともいくつかの実施形態では、システムにインターフェースを提供し、プライオリタイザをプログラムし、挿入して、異なる印刷ジョブのプロパティに従うスケジューラの挙動をカスタマイズすることを可能にする。少なくともいくつかの実施形態において、システムは、システム内の印刷キューの相対的な優先順位付け用のモデルを利用して、印刷キュー間でシステムリソースの適正なバランスを強化する。少なくともいくつかの実施形態では、ジョブを印刷するときに、システムがレンダリング動作および印刷動作を個別にスケジューリングすることができ、「スタベーションリスク」として周知のヒューリスティックを使用して、システム内のレンダリングを抑えることによって、確実に装置のスタベーションが生じないようにするのを助ける。
構造的特長および/または方法論的ステップに特有の言葉で本発明を説明したが、添付請求項で定義された本発明を説明した特有の特徴またはステップに限定する必要はないことが理解されよう。むしろ、特有の特徴およびステップは、特許請求した本発明を実装する好適な形態として開示されている。
1つまたは複数の実施形態を実装できるコンピューティング装置のハイレベル・ブロック図である。 一実施形態によるクライアント装置および印刷サーバの例示的なコンポーネントを示すブロック図である。 一実施形態による各種スケジューリングキューを含むスケジューリングシステムを示すブロック図である。 プールされたプリンタの概念を示すシステムのブロック図である。

Claims (15)

  1. コンピュータ読取可能な命令を有する1つまたは複数のコンピュータ読取可能体であって、コンピュータ読取可能な命令が実行されると、該コンピュータ読取可能な命令が、
    複数のプライオリタイザであって、該複数のプライオリタイザは、印刷キューに関連したプライオリタイザのシーケンスを一緒になって定めるように構成され、かつ印刷ジョブをスケジューリングするのに使用するために前記印刷ジョブに関連した複数の優先度値のタプルを生成するよう構成され、前記シーケンスの個々のプライオリタイザには優先順位が割り当てられる、複数のプライオリタイザと、
    前記タプルを処理し、前記印刷キュー印刷ジョブをスケジューリングするよう構成されたスケジューラと
    を備えたコンピュータアーキテクチャを実装するコンピュータ読取可能体。
  2. プライオリタイザは、重み値または時間値のうち少なくとも1つを生成するように構成された、請求項1に記載のコンピュータ読取可能体。
  3. 前記コンピュータ読取可能令は、さらに、個々のプライオリタイザユーザインターフェースを定め、該個々のプライオリタイザユーザインターフェースは、関連するプライオリタイザをユーザが構成できるよう構成された請求項1に記載のコンピュータ読取可能体。
  4. 前記コンピュータ読取可能令は、さらに、1つまたは複数の優先度キュー利用して、前記スケジューラが印刷ジョブをスケジューリングするのを支援する請求項1に記載のコンピュータ読取可能体。
  5. 前記コンピュータ読取可能令は、さらに、1つまたは複数の優先度キューを利用して、前記スケジューラが印刷ジョブをスケジューリングするのを支援し、
    第1型の優先度キューは、印刷装置に関連た印刷キューでの相対的な印刷ジョブの優先付けを表わすプリンタ優先度キューを含み
    リソースアービトレーションキューは複数の印刷キューのうちの1つのキューを表わす
    請求項1に記載のコンピュータ読取可能体。
  6. 前記コンピュータ読取可能令は、さらに、1つまたは複数の優先度キューを利用して、前記スケジューラが印刷ジョブをスケジューリングするのを支援し、
    第1型の優先度キューは、印刷装置に関連た印刷キューにおける相対的な印刷ジョブの優先付けを表わすプリンタ優先度キューを含み
    リソースアービトレーションキューは複数の印刷キューのうちの1つのキューを表わし、
    前記1つまたは複数の優先度キューがデータを維持するために利用され前記データ
    個々の印刷ジョブ用の相対的先度タプルと、
    特定の印刷ジョブの処理が、関連する印刷装置のグローバルな優先度に与える効果を示すグローバル先度効果と、
    印刷ジョブを保留するのに使用できる保留カウントと
    を含む請求項1に記載のコンピュータ読取可能体。
  7. 複数の異なる型のプライオリタイザグループから各プライオリタイザを選択できる請求項1に記載のコンピュータ読取可能体。
  8. 複数の異なる型のプライオリタイザグループから各プライオリタイザを選択でき
    1つの印刷ジョブを別の印刷ジョブに対しランク付けするのに使用するデータを生成する相対的先度プライオリタイザを含む第1型のプライオリタイザと、
    1つの印刷装置の別の印刷装置に対する相対的な重みに影響を与える修飾子としてグローバル先度効果を利用するグローバル先度効果プライオリタイザと、
    経過時間後に、優先度における最優先のブーストを印刷ジョブが受信することを可能にする時間フィールドを利用する時間FIFOプライオリタイザと、
    優先度におけるブーストを印刷ジョブが受信することを可能にする時間ブーストフィールドを利用する時間ブーストプライオリタイザと
    含む、請求項1に記載のコンピュータ読取可能体。
  9. 印刷サーバが、個々の装置キューを維持するステップであって、各該装置キューが、印刷が行われる物理プリンタに関連した、ステップと、
    前記印刷サーバが、装置キュー毎に、所与の物理プリンタがアイドル状態になる見込みの指示を提供するスタベーションリスクを維持するステップと、
    前記印刷サーバが、装置キュー毎に、複数のプライオリタイザのシーケンスを維持するステップであって、該複数のプライオリタイザのシーケンスが、各印刷ジョブのための複数の優先度値のタプルを提供し、前記シーケンスの個々のプライオリタイザには優先順位が割り当てられる、ステップと、
    前記印刷サーバが、前記タプルと前記スタベーションリスクを少なくとも使用して印刷ジョブをスケジューリングするステップと
    含む方法。
  10. 個々の装置キューを維持する前記ステップは、前記キューを優先度キューとして維持することを含む請求項に記載の方法。
  11. 個々の装置キューを維持する前記ステップは、個々の装置キューに関して、グローバル優先度値を維持することを含み、該グローバル優先度値は、個々の装置キュー内の個々の印刷ジョブが印刷システムに対し有するグローバルな効果を確認するのに使用される請求項に記載の方法。
  12. 個々の装置キューを維持する前記ステップは、個々の装置キューに関して、グローバル優先度値を維持することを含み、該グローバル優先度値は、個々の装置キューの個々の印刷ジョブが印刷システムに対し有するグローバルな効果を確認するのに使用され
    個々の装置キューを維持する前記ステップは、さらに、リソースアービトレーションキューを維持することを含み、該リソースアービトレーションキューは、装置キューのスタベーションリスクおよびグローバル先度値に少なくとも部分的に基づく個々の装置キューの優先付けを提供する
    請求項に記載の方法。
  13. 個々の装置キューを維持する前記ステップはプールされた印刷システムの一部として前記装置キューを維持することを含む請求項に記載の方法。
  14. 個々の装置キューを維持する前記ステップは
    個々の装置キューに関して、グローバル優先度値を維持するステップを含み、該グローバル優先度値が、個々の装置キュー内の個々の印刷ジョブが印刷システムに対し有するグローバルな効果を確認するのに使用され、
    個々の装置キューを維持する前記ステップは、さらに、リソースアービトレーションキューを維持することを含み、該リソースアービトレーションキューが、装置キューのスタベーションリスクおよびグローバル先度値に少なくとも部分的に基づく個々の装置キューの優先付けを提供する
    請求項に記載の方法。
  15. 前記ステップは、プールされた印刷システムの一部として行われる請求項14に記載の方法。
JP2006032951A 2005-02-25 2006-02-09 印刷ジョブキューイングならびにスケジューリングのシステムおよび方法 Expired - Fee Related JP4813202B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/067,361 US7548335B2 (en) 2005-02-25 2005-02-25 Print job queuing and scheduling systems and methods
US11/067,361 2005-02-25

Publications (2)

Publication Number Publication Date
JP2006236337A JP2006236337A (ja) 2006-09-07
JP4813202B2 true JP4813202B2 (ja) 2011-11-09

Family

ID=36481309

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006032951A Expired - Fee Related JP4813202B2 (ja) 2005-02-25 2006-02-09 印刷ジョブキューイングならびにスケジューリングのシステムおよび方法

Country Status (5)

Country Link
US (1) US7548335B2 (ja)
EP (1) EP1696310A3 (ja)
JP (1) JP4813202B2 (ja)
KR (1) KR101203358B1 (ja)
CN (1) CN1825273B (ja)

Families Citing this family (65)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060271929A1 (en) * 2005-05-27 2006-11-30 Computer Associates Think, Inc. Method and system for providing job forecasting in a computer system
US7898679B2 (en) * 2005-05-27 2011-03-01 Computer Associates Think, Inc. Method and system for scheduling jobs in a computer system
US7698650B2 (en) * 2005-06-16 2010-04-13 Xerox Corporation Computerized action tool for managing print parameters, queuing actions and archiving actions for a document output management system
US7755778B2 (en) * 2006-03-30 2010-07-13 Xerox Corporation Print job management system
US8522240B1 (en) * 2006-10-19 2013-08-27 United Services Automobile Association (Usaa) Systems and methods for collaborative task management
JP4857102B2 (ja) * 2006-12-22 2012-01-18 キヤノン株式会社 情報処理装置、ジョブ処理方法、プログラム及び記憶媒体
JP2008165708A (ja) * 2007-01-05 2008-07-17 Canon Inc 印刷システム、印刷システムの制御方法、印刷装置、記憶媒体、プログラム
US7855799B2 (en) * 2007-01-16 2010-12-21 Shah Pradip K Print workflow automation
JP2008186407A (ja) * 2007-01-31 2008-08-14 Brother Ind Ltd 画像形成システム、画像形成装置及びコンピュータ
JP4381426B2 (ja) * 2007-03-07 2009-12-09 シャープ株式会社 ファクシミリ装置及びファクシミリ送信方法
US8015053B2 (en) * 2007-03-20 2011-09-06 Xerox Corporation Processor, system and method for accommodating high priority print jobs
US8286173B2 (en) * 2007-03-23 2012-10-09 Oracle America, Inc. Methods and apparatus for window-based fair priority scheduling
US8427670B2 (en) * 2007-05-18 2013-04-23 Xerox Corporation System and method for improving throughput in a print production environment
US8134743B2 (en) 2007-07-18 2012-03-13 Xerox Corporation Methods and systems for routing and processing jobs in a production environment
US8725546B2 (en) * 2007-07-18 2014-05-13 Xerox Corporation Workflow scheduling method and system
US20090025002A1 (en) * 2007-07-18 2009-01-22 Xerox Corporation Methods and systems for routing large, high-volume, high-variability print jobs in a document production environment
US8144364B2 (en) 2007-07-18 2012-03-27 Xerox Corporation Methods and systems for processing heavy-tailed job distributions in a document production environment
US8127012B2 (en) * 2007-07-18 2012-02-28 Xerox Corporation System and methods for efficient and adequate data collection in document production environments
US8145517B2 (en) * 2007-07-18 2012-03-27 Xerox Corporation Methods and systems for scheduling job sets in a production environment
JP2009048299A (ja) * 2007-08-15 2009-03-05 Brother Ind Ltd 印刷システム、プログラム及びプリンタ
US20090051960A1 (en) * 2007-08-23 2009-02-26 Maglanque Jose Elwin System and method for creating a customizable device driver for interfacing with a document processing device
DE102008004658B4 (de) * 2008-01-16 2010-03-25 Siemens Aktiengesellschaft Verfahren zur zentralen Steuerung von Prozessen in erweiterbaren medizinischen Plattformen
US20090185213A1 (en) * 2008-01-17 2009-07-23 Xerox Corporation Productivity of digital printing of jobs with different sizes of paper
US8276143B2 (en) * 2008-03-10 2012-09-25 Oracle America, Inc. Dynamic scheduling of application tasks in a distributed task based system
US8508768B2 (en) * 2008-05-09 2013-08-13 Ricoh Company, Ltd Job scheduling in a workflow architecture related to printing
US20090327033A1 (en) * 2008-06-26 2009-12-31 Xerox Corporation Methods and systems for forecasting inventory levels in a production environment
US8250579B2 (en) * 2008-06-27 2012-08-21 Oracle America, Inc. Method for stage-based cost analysis for task scheduling
KR100973021B1 (ko) * 2008-07-09 2010-07-30 주식회사 빅솔론 우선 처리 식별자를 설정할 수 있는 프린터 장치
US20100050179A1 (en) * 2008-08-22 2010-02-25 Ajay Mohindra Layered capacity driven provisioning in distributed environments
JP5335325B2 (ja) * 2008-08-29 2013-11-06 キヤノン株式会社 印刷装置、印刷システム、印刷装置の制御方法、及びプログラム
CN101414250B (zh) * 2008-11-20 2012-02-01 北大方正集团有限公司 一种多打印机同时打印时作业的分配方法及系统
US8482766B2 (en) * 2009-01-08 2013-07-09 Infoprint Solutions Company Llc Automatic adjustment print job submission mechanism
US8482767B2 (en) * 2009-02-11 2013-07-09 Infoprint Solutions Company Llc Print job submission with sleep mechanism
US9247007B2 (en) * 2009-04-23 2016-01-26 Disney Enterprises, Inc. System and method for providing a peripheral control interface for extending media device functions
JP5232728B2 (ja) * 2009-06-08 2013-07-10 京セラドキュメントソリューションズ株式会社 画像形成装置
KR101644800B1 (ko) * 2010-01-07 2016-08-02 삼성전자주식회사 컴퓨팅 시스템 및 방법
US8705090B2 (en) * 2010-04-15 2014-04-22 Xerox Corporation System and method for burstiness-aware scheduling and capacity assessment on a network of electronic devices
US20110264458A1 (en) * 2010-04-27 2011-10-27 Toshiba Tec Kabushiki Kaisha System and method for assigning a seat based on usage situations of printing apparatus
JP5099188B2 (ja) * 2010-08-18 2012-12-12 コニカミノルタビジネステクノロジーズ株式会社 処理順決定装置、処理順決定方法および処理順決定プログラム
US8576430B2 (en) 2010-08-27 2013-11-05 Eastman Kodak Company Job schedule generation using historical decision database
US20120060500A1 (en) * 2010-09-15 2012-03-15 Accendo Advisors, Llc Method and apparatus for collecting solar thermal energy
JP5418450B2 (ja) * 2010-09-16 2014-02-19 カシオ電子工業株式会社 印刷装置
CN102446178B (zh) * 2010-09-30 2015-01-21 北大方正集团有限公司 作业文件的提交方法和装置
JP2012079219A (ja) * 2010-10-05 2012-04-19 Fuji Xerox Co Ltd ジョブ実行システム、ジョブ受付装置及びプログラム
US8947702B2 (en) * 2011-09-20 2015-02-03 Electronics For Imaging, Inc. Engine optimization
WO2013066298A1 (en) 2011-10-31 2013-05-10 Hewlett-Packard Development Company, L.P. Print service provider risks applied to decision making
CN103246653B (zh) * 2012-02-03 2017-07-28 腾讯科技(深圳)有限公司 数据处理方法和装置
US8896867B2 (en) * 2012-09-11 2014-11-25 Xerox Corporation Methods and systems for assigning jobs to production devices
US20150138585A1 (en) * 2013-11-19 2015-05-21 Toshiba Tec Kabushiki Kaisha Printing management system, printing management method, and image forming apparatus
US9171236B1 (en) * 2014-05-09 2015-10-27 Xerox Corporation Dynamic spooler load balancing
US9870265B2 (en) 2014-12-09 2018-01-16 Successfactors, Inc. Prioritizing cloud-based computing tasks according to global company and job type priority levels
US10521172B2 (en) 2014-12-19 2019-12-31 Hewlett-Packard Development Company, L.P. Resource provisioning
US10185524B2 (en) 2015-03-31 2019-01-22 Hewlett-Packard Development Company, L.P. Print reservation
US10191705B2 (en) 2015-05-04 2019-01-29 Xerox Corporation Mechanisms to enable FIFO behavior for selected workflow tasks in multi-document jobs
CN104850367A (zh) * 2015-05-15 2015-08-19 苏州德锐朗智能科技有限公司 一种用于打印机打印任务的控制方法
EP3176689A1 (en) * 2015-12-03 2017-06-07 Ricoh Company Ltd. Print control program, print control method, computer and networked system
WO2018190882A1 (en) * 2017-04-15 2018-10-18 Hewlett-Packard Development Company, L.P. Tray orientation and print size selection for printing
US10198224B1 (en) 2018-04-02 2019-02-05 Ricoh Company, Ltd. Scheduling high priority print jobs with minimal print waste
CN110246277A (zh) * 2019-06-13 2019-09-17 宜春宜联科技有限公司 文件打印方法、控制装置及控制设备
US11689473B2 (en) * 2020-07-24 2023-06-27 Oracle International Corporation Pre-allocating resources with hierarchy-based constraints
CN111857616B (zh) * 2020-07-30 2024-03-08 上海商米科技集团股份有限公司 基于多云平台的票据打印方法和设备
CN113400821A (zh) * 2021-06-11 2021-09-17 中国人民解放军陆军工程大学 一种打印作业自动化存储和取件系统及其使用方法
CN113448705B (zh) * 2021-06-25 2023-03-28 皖西学院 一种不平衡作业调度算法
CN113590289A (zh) * 2021-07-30 2021-11-02 中科曙光国际信息产业有限公司 作业调度方法、系统、装置、计算机设备和存储介质
CN117573050B (zh) * 2024-01-17 2024-04-12 北京普云特科技有限公司 一种基于打印机的作业优先级控制方法及系统

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3139245B2 (ja) * 1993-11-09 2001-02-26 富士ゼロックス株式会社 プリンタ装置
JPH09218761A (ja) * 1996-02-09 1997-08-19 Nec Corp プリンタサーバシステム
JPH09244833A (ja) * 1996-03-13 1997-09-19 Fuji Xerox Co Ltd スプーリング装置
US6252681B1 (en) * 1997-04-14 2001-06-26 Xerox Corporation Multifunctional printing system with queue management
US5978559A (en) * 1997-10-07 1999-11-02 Xerox Corporation User interface for distributed printing system
JP2000029647A (ja) * 1998-07-13 2000-01-28 Canon Inc プリンタシステム、プリント方法および記憶媒体
US6621589B1 (en) * 1999-09-24 2003-09-16 Hewlett-Packard Development Company, L.P. Print job processing in a printer network using selected printer attributes
US6618167B1 (en) 1999-12-17 2003-09-09 Xerox Corporation Apparatus and method for document scheduling in order to improve the productivity of a networked printer
JP2002218118A (ja) 2001-01-15 2002-08-02 Nec Corp 複合機能における電子印刷出力の選択方法及び複合機能電子印刷装置並びにプログラム記憶媒体
US7265855B2 (en) * 2001-02-28 2007-09-04 Sharp Laboratories Of America, Inc. Priority interruptible printing system
US6987578B2 (en) * 2001-03-21 2006-01-17 Hewlett-Packard Development Company, L.P. Printer priority bidding scheme
US20020171864A1 (en) * 2001-05-16 2002-11-21 Robert Sesek Methods and apparatus for printing around a job in a printer queue
US20030020944A1 (en) * 2001-05-17 2003-01-30 International Business Machines Corporation Printer pausing and reordering
JP2003167703A (ja) * 2001-11-30 2003-06-13 Fujitsu Ltd プリンタ、プリンタシステム、プリンタのジョブ処理方法及びそのプログラム
US20040001215A1 (en) * 2002-06-26 2004-01-01 Canon Kabushiki Kaisha Print control apparatus, print control method, program product, and print system
US20040184071A1 (en) * 2003-03-19 2004-09-23 Garg Man M. Pluggable pre-parser for PJL and PS for extracting print job relates header information from a running stream
US7567360B2 (en) * 2003-03-27 2009-07-28 Canon Kabushiki Kaisha Image forming system, method and program of controlling image forming system, and storage medium
US7751079B2 (en) * 2004-08-11 2010-07-06 Xerox Corporation Method and system for managing print job files for a shared printer

Also Published As

Publication number Publication date
EP1696310A3 (en) 2009-12-30
JP2006236337A (ja) 2006-09-07
US7548335B2 (en) 2009-06-16
EP1696310A2 (en) 2006-08-30
CN1825273A (zh) 2006-08-30
KR20060094856A (ko) 2006-08-30
CN1825273B (zh) 2012-07-11
KR101203358B1 (ko) 2012-11-20
US20060193006A1 (en) 2006-08-31

Similar Documents

Publication Publication Date Title
JP4813202B2 (ja) 印刷ジョブキューイングならびにスケジューリングのシステムおよび方法
US9582326B2 (en) Quality of service classes
JP6383518B2 (ja) 仮想マシンモニター及び仮想マシンモニターのスケジューリング方法
US7137117B2 (en) Dynamically variable idle time thread scheduling
US8261275B2 (en) Method and system for heuristics-based task scheduling
US9292662B2 (en) Method of exploiting spare processors to reduce energy consumption
US7739685B2 (en) Decoupling a central processing unit from its tasks
US8881161B1 (en) Operating system with hardware-enabled task manager for offloading CPU task scheduling
JP2007529079A (ja) 自己調節スレッド化モデルによるアプリケーションサーバのためのシステム及び方法
US20060241996A1 (en) Method, system and program product for monitoring work items
US20070112918A1 (en) Systems and methods for screening chat requests
US20140068624A1 (en) Quota-based resource management
US20120166442A1 (en) Categorizing data to perform access control
JP3864251B2 (ja) メッセージ処理装置、メッセージ処理方法、及びメッセージ処理プログラム
US8849889B1 (en) Clustered computer system
JP2010092467A (ja) 印刷ジョブ送信装置、印刷ジョブの管理方法、印刷システム、プログラムおよびその記録媒体
JP5628222B2 (ja) スケジューラ
Andrews et al. Survey on job schedulers in hadoop cluster
Kim et al. A real-time disk scheduler for multimedia integrated server considering the disk internal scheduler
JP2001022601A (ja) ジョブ実行制御方法及び並列計算機システム
Wang et al. Hierarchical budget management in the RED-Linux scheduling framework
Masson et al. RTSJ extensions: event manager and feasibility analyzer
JPH09305414A (ja) プロセス管理方法
Lin Human-driven optimization
Schwarz Linux Job Scheduling

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090119

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20090812

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20090824

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101110

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101122

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110215

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110218

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20110315

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20110318

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110401

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110824

R150 Certificate of patent or registration of utility model

Ref document number: 4813202

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140902

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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