JP2011501268A - 階層的予約資源スケジューリング・インフラストラクチャ - Google Patents

階層的予約資源スケジューリング・インフラストラクチャ Download PDF

Info

Publication number
JP2011501268A
JP2011501268A JP2010528981A JP2010528981A JP2011501268A JP 2011501268 A JP2011501268 A JP 2011501268A JP 2010528981 A JP2010528981 A JP 2010528981A JP 2010528981 A JP2010528981 A JP 2010528981A JP 2011501268 A JP2011501268 A JP 2011501268A
Authority
JP
Japan
Prior art keywords
workload
policy
act
system resources
reservation
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
JP2010528981A
Other languages
English (en)
Other versions
JP5452496B2 (ja
JP2011501268A5 (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 JP2011501268A publication Critical patent/JP2011501268A/ja
Publication of JP2011501268A5 publication Critical patent/JP2011501268A5/ja
Application granted granted Critical
Publication of JP5452496B2 publication Critical patent/JP5452496B2/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/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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5014Reservation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Hardware Redundancy (AREA)

Abstract

システム資源のスケジューリング。作業負荷内部における動作のスケジューリングを行うためのシステム資源スケジューリング方針にアクセスする。この方針は、作業負荷に基づいて指定され、この方針が作業負荷に特定的となるようにしている。システム資源は、方針によって指定されるように、作業負荷のために予約される。予約は、その本質が階層的となるようにし、作業負荷群も階層的に配列するとよい。更に、作業負荷をシステム資源に配分する配分メカニズムは、方針とは独立して実装することができる。システム資源使用に関するフィードバックを用いて、配分メカニズムを制御するための方針選択を決定することができる。
【選択図】 図1

Description

背景および関連技術
コンピューターおよびコンピューティングシステムは、現代生活のほぼあらゆる面に影響を及ぼしてきている。コンピューターは、一般に、仕事、リクリエーション、健康管理、輸送、娯楽、家事管理などに関わっている。家庭用コンピューター、業務用ワークステーション、およびその他のシステムのような、汎用コンピューターを含む多くのコンピューターは、種々の異なる動作を実行する。動作は、作業負荷(workload)群に分類することができ、1つの作業負荷が、個々のタスクまたは目的を遂行するための1組の動作を定める。例えば、1つの作業負荷は、メディア・プレーヤ・アプリケーションを実施するために割り振ることができる。別の作業負荷は、ワード・プロセッサー・アプリケーションを実施するために割り振ることができる。更に別の作業負荷は、カレンダー管理、電子メール、またはその他管理アプリケーションを実施するために割り振ることができる。以前から暗に言われているように、多数の異なる作業負荷が1つのシステム上で一緒に動作している場合もあり得る。
作業負荷群が1つのシステム上で一緒に動作することを可能にするには、システム資源の適性なスケジューリングを行い、異なる作業負荷群に割り当てなければならない。例えば、1つのシステム資源はプロセッサーを含む。このプロセッサーは、メディア・プレーヤ・アプリケーションのためにはディジタル・メディア・デコード処理を実行し、ワード・プロセッサー・アプリケーションのためにはフォントの助言(hinting)およびその他の表示機能を実行し、個人管理アプリケーションのためにはアルゴリズム計算を実行する能力を有することができる。しかしながら、1つのプロセッサーでは、通例、いずれの所与の1時点においても1つのタスク、または限られた数のタスクしか実行することができない。このため、システム資源を種々の作業負荷間で共有できるように、スケジューリング・アルゴリズムが、プロセッサーのような、システム資源のスケジューリングを行うとよい。
通例、システム資源のスケジューリングを行うには、異なる作業負荷の本質が異なっていても、全ての作業負荷に対して汎用アルゴリズムを用いる。言い換えると、所与のシステムに対して、システム全体の作業負荷に捕らわれない方針を用いて、システム資源のスケジューリングが実行される。
本願において特許請求する主題は、先に述べたような環境における欠点をいずれも解消する実施形態、またはその環境だけで動作する実施形態に限定されるのではない。逆に、この背景は、本明細書において記載する実施形態の一部を実用化することができる技術分野の一例を例示するために提唱したに過ぎない。
摘要
本明細書において記載する一実施形態は、システム資源のスケジューリング方法を含む。この方法は、システム資源スケジューリング方針を作業負荷に割り当てることを含む。この方針は、作業負荷内部における作業負荷動作のスケジューリングを行うためにある。この方針は、作業負荷に基づいて指定され、方針が作業負荷に特定的となるようにする。システム資源は、方針によって指定されるように、作業負荷のために予約される。
別の実施形態は、システム資源を用いて作業負荷を実行する方法を含む。システム資源は、システム特定方針にしたがって、作業負荷のための予約において予約されており、予約は、作業負荷特定方針を適用するために作業負荷によって用いられる。この方法は、方針を選択することを含む。方針は、作業負荷内部における作業負荷動作のスケジューリングを行うためにある。方針は、作業負荷をシステム資源に配分するために用いられる。作業負荷を実行したときのシステムの使用に関する情報を含むフィードバックを受ける。更に作業負荷をシステム資源に配分するために、フィードバックに基づいて、方針決定を行う。
更に別の実施形態では、システム資源上において作業負荷を実行する方法を実現する。この方法は、1つ又は複数の作業負荷に対する1つ又は複数のシステム資源スケジューリング方針にアクセスすることを含む。方針は、作業負荷内部における作業負荷動作のスケジューリングを行うためにあり、所与の方針が所与の作業負荷に特定的となるように、作業負荷に基づいて指定される。方針によって指定されるようにシステム資源の予約を示す実行計画を定式化する。作業負荷は、実行計画に基づいて、システム資源に配分される。
この摘要は、詳細な説明において以下で更に説明する概念から選択したものを、簡略化した形態で紹介するために設けられている。この摘要は、特許請求する主題の主要な特徴や必須の特徴を特定することを意図するのではなく、特許請求する主題の範囲を判断するために用いることも意図していない。
本発明の更に別の特徴および利点は、以下に続く説明に明記されており、部分的にこの説明から自明であり、あるいは本発明の実施によって習得することもできる。本発明の特徴および利点は、添付した特許請求の範囲に特に指定した手段(instrument)および組み合わせによって実現し、獲得することができる。本発明の特徴は、以下の説明および添付した特許請求の範囲から更に一層明らかとなるであろうし、あるいは以下に明記するように、本発明の実施によって習得することができる。
本発明の先に明記した利点および特徴ならびにその他の利点および特徴を得ることができる態様について説明するために、添付図面に例示する具体的な実施形態を参照して、先に端的に説明した本発明の一層特定的な説明を行う。これらの図面は本発明の典型的な実施形態のみを図示するのであり、したがってその範囲を限定するように解釈すべきでないことを理解した上で、添付図面の使用により、実施形態について更に具体的にそして詳細に記載し説明する。
図1は、階層的作業負荷および方針構造を示す。 図2は、システム資源の予約を示す実行計画を示す。 図3は、資源管理システムおよびシステム資源を示す。 図4は、プロセッサー管理の一例を示す。 図5は、デバイス資源管理部を示す。 図6は、システム資源の予約方法を示す。 図7は、予約にしたがってシステム資源を管理する方法を示す。 図8は、一部の実施形態を実現することができる環境例を示す。
本明細書において、実施形態の一部は、種々のコンピューター・ハードウェアを含む特殊目的コンピューターまたは汎用コンピューターを備えることができる。これについては、以下で更に詳しく論ずることにする。また、実施形態の一部は種々の方法要素を含むこともできる。
作業負荷に特定した方針にしたがって、作業負荷動作のためのシステム資源予約方針を摘要する実施形態を実現することができる。言い換えると、システム資源のスケジューリングを行う全ての作業負荷に全般的に適用可能な総合的汎用方針にしたがって資源予約を実行するのではなく、所与の作業負荷に特定して指定する方針に基づいて、システム資源をスケジューリングする。加えて、階層的に適用可能な方針にしたがって、作業負荷の予約を遂行することができる実施形態も実現することができる。図1は、数々の実施形態に適用することができる種々の特徴および態様を実現する一実施形態を示す原理の一例を示す。
図1は、システム資源100を示す。システム資源は、例えば、処理資源、ネットワーク・アダプター資源、メモリー資源、ディスク資源等のようなハードウェアを含むことができる。システム資源は、作業負荷を実行することができる。作業負荷は、プログラムがシステム資源に向けて発生するサービス要求を含む。例えば、プロセッサーに該当する作業負荷は、例えば、プロセッサーの計算を実行する要求を含む。ネットワーク・アダプター資源に該当する作業負荷は、例えば、ネットワーク送信および受信動作、ネットワーク帯域の使用等を含む。メモリー資源に該当する作業負荷は、例えば、メモリー・リードおよびメモリー・ライトを含む。ディスク資源に該当する作業負荷は、例えば、ディスク・リードおよびディスク・ライトを含む。
コンテキストに応じて、作業負荷は、ユーザーまたは他のプログラム活動の結果としてプログラムが発生する要求パターンを指すこともあり、異なるレベルの要求粒度(request granularity)を表すこともあり得る。例えば、電子商取引作業負荷は、多数のサーバーに跨る可能性があり、エンド・ユーザーまたは他の業務機能によって生成されるある種の要求資源パターンを伴う。
作業負荷は、実行オブジェクトに関して定義することもできる。実行オブジェクトとは、資源を消費する作業負荷抽象化のインスタンスである。例えば、実行オブジェクトは、プロセッサーおよびメモリーを消費するスレッド、NIC帯域幅を消費するソケット、ディスク帯域幅を消費するファイル記述子等である場合がある。
作業負荷に対してシステム資源を予約することができる。図1に示す作業負荷の内2つは、メディア・プレーヤ作業負荷102およびワード・プロセッシング作業負荷104を含む。これらの作業負荷の各々は、それぞれ、メディア・プレーヤ・アプリケーションおよびワード・プロセッシング・アプリケーションを実施する際に用いられる動作を定める。更に、図1は、これら2つの作業負荷は、各々、これらには異なる方針106および108がそれぞれ関連付けられていることも示す。これらの方針は、作業負荷102および104を実行するようにスケジューリングするために、システム資源100をどのように予約すべきかを定めている。
種々の方針を実現することができる。例えば、1つの方針は、比率基準予約方針である。比率予約は、所定間隔でシステム資源容量の割合の形態で予約を繰り返すことを含む。例えば、比率予約方針は、ある分量のプロセッサー・サイクルを予約すべきことを指定することができる。例えば、比率予約方針では、1,000,000回のプロセッサー・サイクル毎に、その内の2,000サイクルを、その方針が適用される作業負荷に割り当てるべきことを指定することができる。この種の予約は、反復作業負荷に適していることが多い。この方針の一例を、メディア・プレーヤ作業負荷102について示す。この場合、方針106は10ms毎に1msをメディア・プレーヤ作業負荷102のために予約すべきことを指定している。
別の方針は、容量に基づく予約に関する。容量予約では、デバイスの容量の百分率を指定し、この容量が利用可能でなければならない時間枠には制約がない。これらの種類の方針の方が柔軟にスケジューリングすることができる。何故なら、予約の保証は時間枠を有さないからである。これの一例を、ワード・プロセッサー作業負荷104について示す。この場合、方針108は、システム資源100の内10%をワード・プロセッサー作業負荷104のために予約すべきことを指定している。
注記すべきは、方針106および108はそれらの各アプリケーションに特定的であるということであり、方針は個々のアプリケーション毎に指定されることを意味する。個々のアプリケーション毎の指定は、各アプリケーションを特定的に1つの方針に関連付けることによって遂行することができる。別の実施形態では、アプリケーションの種別を方針と関連付けることもできる。本明細書に開示する実施形態の範囲内では、他の集合体を実現することもできる。
図1に示すように、各予約は、更に詳細予約(sub-reservation)に分割することができる。予約および詳細予約を用いると、予約およびデフォルト方針の樹木状階層(tree hierarchy)を作成することができる。この階層のリーフ・ノードは、予約方針を含む。例えば、図1は、メディア・プレーヤ作業負荷102の下に階層状にコデック作業負荷110および表示作業負荷112があることを示す。これらの作業負荷と関連付けられているのは、それぞれ、方針114および116である。これらの方針114および116は、階層的に、メディア・プレーヤ作業負荷102に対する方針106の下にある。更に、図1は、他の階層的に配列した作業負荷および方針も示す。例えば、コデック作業負荷118、120、および122は、階層的にコデック作業負荷110の下にある。同様に、方針124、126、および128は、階層的に方針114の下にある。また、図1は、作業負荷130および132が階層的に作業負荷104の下にあること、そして方針134および136が階層的に方針108の下にあることも示す。
図1は、この例では、方針が容量に基づく予約に関して予約を指定することができ、ワード・プロセッサー作業負荷104において示すように、資源の百分率を指定することを示す。ワード・プロセッサー作業負荷104では、全システム資源100の内10%が指定されている。図示のように、この全システム資源の内の10%の予約は、図1に示すような、階層的に下位にある作業負荷間において細分することができる。この場合、方針134は、全システム資源の内6%をUI作業負荷134のために予約すべきことを指定し、方針136は、全システム資源の内2%をフォント助言作業負荷132のために予約すべきことを指定している。更に、図1は、方針106が比率に基づく方針を指定しており、これによって、方針106は、10ms毎に1msをメディア・プレーヤ作業負荷102のために予約すべきことを指定していることも示す。
実施形態によっては、2つの容量閾値パラメータ、即ち、ソフトおよびハードを用いて予約を行うこともできる。ソフト・パラメータは、ハード容量以上のシステム資源要求を指定する。ソフト値は、最適な性能を達成するために必要となる容量である。ハード値は、作業負荷を動作させるために必要となる最小限の予約値である。実施形態によっては、予約管理システムがソフト容量要求を満たそうとするが、ソフト容量要求を満たすことができない場合、予約管理システムは代わりにハード値を用いようとすることもある。予約管理システムは、動作のために予約した資源量を削減することによるというようにして、予約を減少させることができる。ハード容量値に見合う容量がデバイスの中にない場合、実施形態によっては、予約管理システムはアプリケーションを実行しないこともある。
閾値に加えて、予約を予約緊急度と関連付けることもできる。予約緊急度とは、予約に関する優先度を決定する計量値である。予約緊急度は、システムが過大に割り当てられ、予約管理システムが、保留中の予約の内部分集合にしか資源を割り当てることができない場合に適用可能である。緊急度が高い方の予約が実行しようとする場合、予約管理システムは、緊急度が低い方の予約に、その予約を解除しなければならないことを通知する。この通知は、予約が解除されない場合、アプリケーションの終了に発展する。尚、予約緊急度は必ずしも先取りスケジューリング・メカニズムではなく、むしろ新たな予約が要求されたが資源が入手できないときに適用される割り当て優先度とすることもできる。
実行オブジェクトにオブジェクト特定方針予約要件がない場合、デフォルトの方針を用いて、いずれの実行オブジェクトでもスケジューリングすることができる。図1は、方針138、140、および142を含む、多数のデフォルト方針を示す。予約管理システムは、比率予約で予約されていない全てのタイムスロットを、容量予約またはデフォルト予約のいずれかに割り当てる。全てのデバイスに対するデフォルト方針は、システム全体において同一とすることができる。これを行うのは、負荷均衡化動作を簡略化するためである。注記すべきは、デフォルト方針が、残っている容量であればいずれでも含むというような単純なことではない場合もあることである。例えば、比率容量に基づいて、方針108が10%の予約を指定し、方針106が10%の予約を指定している間、デフォルト・スケジューリング方針138は、他に何の予約もない場合、スケジューリングすることができる少なくとも80%のシステム資源を有する。メディア・プレーヤ作業負荷102またはワード・プロセッサー作業負荷104の一方または双方が、それぞれの予約量全部を必要とせず、システム資源予約の一部を、デフォルト・スケジューリング方針138が用いるために戻すと決定した場合には、デフォルト方針138に入手可能な資源は80%よりも多くなることもあり得る。
デフォルト予約を、資源割り当ての備忘(reminder)を扱う方針と関連付けることもできる。ルート・ノードと同様に、各詳細予約は、このコンテキストにおいて動作し他に予約要件を有さない実行オブジェクトに対するデフォルト配置方針(default placing policy)を含むことができる。例えば、デフォルト方針140および142は、詳細予約デフォルト・スケジューリングのために用いられる。
実行計画とは、資源管理システム・コンポーネントが予約およびデバイス容量に関する情報を捕獲ために用いる抽象概念(abstraction)である。具体的には、実行計画は、ディスパッチャ(dispatcher)によって作用する資源予約を表す下位計画である。実行計画の一例を図2に示す。実行計画200は、予約によって指定されたシステム資源のスケジューリングを示す。例示した実行計画200は、プロセッサーのようなシステム資源についての、時間に基づく実行計画である。この例では、時間に基づく実行計画を例示するが、他のデバイスには、異なる実行計画を実施してもよいことは認められてしかるべきである。例えば、ネットワーク・デバイスに対する実行計画は、通信経路上で送られる一連のパケットで表すことができる。他の例には、メモリーのヒープのスライス、ディスクのブロック等が含まれる。ここで時間に基づく例に戻ると、実行計画は、一連のタイム・スライスであり、当該タイム・スライスを消費する役割を担う個々の方針によって管理される。予約タイム・スライスを所有する方針は、割り当て量(quanta)を用いて、更に細かい粒度にした間隔に予約の時間を区切り(time-slice)、それが管理する実行オブジェクト間で多重化することができる。スライスの粒度は、デバイスのコンテキストによって異なる。例えば、プロセッサーは、タイマーの分解能、パケット・サイズに左右され、NICはパケット・サイズに左右され、メモリーはヒープ・サイズに左右され、ディスクはブロックに左右される等となる。
実行計画200は、メディア・プレーヤ作業負荷102のための第1予約202と、ワード・プロセッサー作業負荷104のための第2予約204とを示す。この図示する例では、実行計画200は、特定の作業負荷のために予約されている資源の時間期間を例示する。この例では、予約202および204は周期的に繰り返すように示されているが、予約のスケジューリングを行うために用いられる方針によっては、他の割り当ても実施することができる。例えば、予約202は、10ms毎に1msをメディア・プレーヤ作業負荷102のために予約する必要性のために、本質的に周期性が強くてもよい。一方、予約204は、作業負荷をスケジューリングする方針が単にシステム資源の10%を指定するだけであるため、もっと柔軟性があってもよい。
実行計画は、様々な機能のために用いることができる。一例では、実行計画は、十分なデバイス容量が新たな予約に利用可能か否か査定するために用いることができる。例えば、実行計画200は、時間軸(time basis)上における利用可能なシステム資源の指示206を含む。予約要求を受けたとき、この指示206を参照して、予約要求に応対できるか否か判断することができる。
また、実行計画は、比率予約要求を満たすための間隔が得られるか否か査定するために用いることもできる。予約要件を満たすだけの十分な容量をデバイスが有していても、既存の比率予約と競合している場合、予約の頻度および継続期間を満たすのに適したスロットが得られない場合がある。
また、実行計画は、予約管理部が新たな方針のコンテキストを選択するために効率的に概観する(walk through)ことができる一連の動作を作成するために用いることもできる。これについては、図3の説明と共に以下で更に詳しく論ずる。
実行計画の計算は、新たな予約をデバイスに割り当てるときまたは予約構成(reservation configuration)が変更になったときに、広範な動作が生ずることが多い。一実施形態では、デバイス資源管理部によって計画を計算する。
予約は、デバイスの種類に特定的な容量計量値を用いる。この計量値は、資源およびオペレーティング・システムのコンフィギュレーションとは独立でなければならない。しかしながら、オペレーティング・システムはデバイスの容量に関する情報を提供することもできる。
容量予約は、実行計画の一部として静的にスケジューリングすることができ、あるいは予約管理部によって割り当てられるタイム・スライスのように動的にスケジューリングすることもできる。静的な予約は、例えば、資源の動的な評価(evaluation)および査定(assessment)とは逆に、予め割り当てた分割部分を割り当てることを含むことができる。静的割り当ては、資源管理部の性能オーバーヘッドを低く抑える利点がある。動的割り当ては、スケジューリング階層の同じレベルのデフォルト方針において実行する負荷を扱う際に柔軟性を高めることができる。
これより図3を参照すると、予約管理アーキテクチャ・システム300が示されている。先に説明したスケジューリング階層は、全てのデバイスについて従う共通のスケジューリング・パラダイムとすることができる。しかしながら、階層の深さおよび広さ、ならびに方針の複雑度は、デバイス毎に異なる。
予約管理アーキテクチャ・システム300のコンポーネントは、2つのカテゴリー、即ち、記憶部および手順に編成されている。これらのコンポーネントは、方針、デバイス種別のいずれかに特定的であるか、あるいは汎用である。図3において、方針コンポーネント群が一緒に纏められている。他の全ての手順は、デバイス種別に特定的である。記憶部は、方針状態記憶部302は例外であるが、システムのデバイス全てに共通である。以下の一連の動作は、典型的なスケジューリング・セッションにおいて実行され、新たな実行オブジェクトを予約管理システム300に投入することから開始する。
1に示すように、方針304−1にしたがって、新たな実行オブジェクトを予約管理システム300に投入する。配置アルゴリズム306が、この実行オブジェクトを、方針状態記憶部302に格納されているキューの1つに移動させる。方針状態記憶部302は、実行の優先順位または状態を表すことができるキューを含む、方針の内部状態を格納する。
2に示すように、配置アルゴリズム306は、方針配分アルゴリズム308をコールする。方針配分アルゴリズム308は、次の実行オブジェクトを実行のために選別する。
3において、デバイス・ディスパッチャ310をコールし、実行のために選択された実行オブジェクトに対してコンテキスト切換を行う。ディスパッチャ310は、方針304−1または方針304−1から304−Nまでのいずれとも別個にかつ独立して実装されている。即ち、ディスパッチャ310は、適用する方針とは無関係に用いることができる。
4において、予約管理システム300のディスパッチャ310は、システム資源312に前述の実行オブジェクトを実行させる。注記すべきは、システム資源312は予約管理システム300とは別個であってもよいことである。デバイスのコンテキストに応じて、実行オブジェクトの実行を保留にするかまたは完了する。例えば、プロセッサーの例では、プロセッサーに対して割り当てられたタイム・スライスが終了するか、または実行オブジェクトは待機しておりしかも凍結されているか、または実行オブジェクトは自発的に放棄される。
5に示すように、方針状態遷移手順314を呼び出し、実行オブジェクト記憶部316および方針状態記憶部302において実行オブジェクトの状態を更新する。
6に示すように、時間アカウンティング手順(time accounting procedure)318が、資源コンテナ記憶部320を用いて、実行オブジェクトの使用統計を更新する。資源コンテナは、タスクを達成するために作業負荷によって用いられるシステム資源を論理的に収容する抽象概念である。例えば、資源コンテナは、ホストされるアプリケーションのコンポーネント全てについて定めることができる。資源コンテナは、アプリケーションによる資源の使用に関する統計情報を格納する。
7において、予約管理部322は、次の予約がどれであるか判断し、次の方針を実行するために然るべきスケジューラ・コンポーネントを呼び出す。これを達成するには、一実施形態では、図2に示す実行計画のような実行計画全体を調べる。図3に示す例では、この動作には2つの潜在的な成果がある。第1の成果は、図2に示したタイム・スライスの内の1つのようなスライス、またはパケット・スライス、ヒープ・スライス、ブロック・スライス等のその他のスライスが適宜スケジューリング階層の現在のレベルにおける現在の方針に割り当てられる。図3における8Bに示すように、現在の方針の配分アルゴリズム308をコールする。第2の成果は、方針304−2のような異なる方針または304−Nまでの他のいずれかの方針を用いての別の予約への切換を含み、ここでNは表される方針の数である。予約管理部322は次の予約(図では8Aとして示す)の実行計画に切り換えて、新たな計画を用いて同じ動作を実行する。
総合実行オブジェクト記憶部316は、スケジューリング方針(例えば、304−1)からはアクセスできない場合もあるが、逆に方針によって現在管理されている実行オブジェクトのビューは見ることができる。潜在的な性能利得に加えて、これは、方針が、そのコンテキストにおいてスケジューリングされていない実行オブジェクトの状態を修正しようとしないことを保証する。1つのデバイスから他のデバイスへの負荷均衡動作は、異なるデバイス上において実行している予約間において実行オブジェクトを移動させることによって遂行することができる。状態遷移手順314および配分手順310は、方針状態記憶部302と実行オブジェクト記憶部316との間における不一致を検出し、補正処置を講ずる。殆どの場合、補正処置は余分なスケジューリング動作を実行することを伴う。
これより図4を参照すると、プロセッサー・スケジューラの潜在的実施態様が示されている。注記すべきは、他の実施態様、ならびにネットワーク資源、メモリー資源、ディスク資源等のような異なるシステム資源に対する別の実施態様も実現できることである。図4に提案するスケジューリング・フレームワークでは、共通インフラストラクチャによって調整される多数のスケジューリング方針によって、プロセッサーのスケジューリングが行われる。インフラストラクチャによって提供されるプロセッサー・スケジューラのコンポーネント、および方針によって提供されるコンポーネントを図4に示す。プロセッサーのコンテキストでは、以下の機能が実装される。タイマー・サポート、コンテキスト切換、および凍結通知。
プロセッサー・スケジューラ・コンポーネントは、任意期間のタイマー割り込み(固定量ではなく)を定めることができてしかるべきである。タイマー割り込みのコンテキストは、予約、またはその予約に応対する方針からの予約の更なる細分のいずれかとすることができる。例えば、優先順位に基づく方針は、現在の予約のコンテキスト内において固定の割当量(quantum)を定めることができる。特定の時点において、多数のタイマーの期限が存在し、プロセッサー・スケジューラ・コンポーネントは、次の期限を指定し、コンテキストを設定し、その割り込みに応対するためにしかるべきスケジューラ・コンポーネントをコールすることによって、種々のタイマー割り込みを管理することができなければならない。タイマー間隔管理部404は、スケジューラ時間コンテキストのスタックを維持し、このスタックにおいて次に最も近いタイム・スライスを用いて、タイマー割り込みのスケジューリングを行う。タイマー・コンテキストは、多数の情報を含む。例えば、タイマー・コンテキストは、コンテキストの種類に関する情報を含む。これは、具体的に、スケジューリング方針によって定められた予約または実行オブジェクトタイム・スライスを指す。タイマー・コンテキストは、タイマー割り込みが発生する時間間隔に関する情報を含む。タイマー・コンテキストは、予約については現予約管理部400へのポインタ、またスケジューリング方針については状態遷移管理部412へのポインタを含む。タイマー・コンテキストは、予約について、現在の実行計画へのポインタを含む。
タイマー割り込みディスパッチャ408は、タイマー割り込みによって誘起され、そして先取の種類およびタイマー・コンテキストに応じて、スケジューリング機能のスケジューリング・エントリ・ポイントをコールする。ある実行オブジェクトに対するタイム・スライスが終了した場合、または実行オブジェクトが凍結された場合、現在の状態遷移管理部がコールされ、最終的に、予約コンテキストの中で次の実行オブジェクトをスケジューリングする。予約に対するタイム・スライスが終了した場合、次の予約および方針を選択するために、現在の実行計画コンテキストによって、予約管理部をコールする。
図4は、プロセッサー・スケジューラ・コンポーネントの典型的な制御フローを示す。1Aにおける新たな予約の場合において示すように、予約管理部400は新たなタイマー・コンテキスト・オブジェクトを作成する。このタイマー・コンテキスト・オブジェクトは、予約時間間隔、それ自体のコールバック・エントリ・ポイント、および現実行計画に対する参照を含む。1Bにおける実行オブジェクトのスケジューリングの場合、ディスパッチャ402は、実行オブジェクト時間間隔、および状態遷移管理部コールバック機能へのポインタを有するコンテキストを作成する。2に示すように、時間間隔管理部404は、要求のコンテキストをタイマー・コンテキスト・スタック406に押し込む。3において、時間間隔管理部404は、最も近いタイム・スライスを発見し、タイマー割り込みディスパッチャ408にコンテキストを設定し、タイマー410をプログラムする。4において、タイマー410からのタイマー割り込みが発生し、タイマー割り込みディスパッチャ408を呼び出す。5において、タイマー割り込みディスパッチャ408はそのコンテキストを調べ、予約が終了した場合には予約管理部400コールバック機能をコールし、あるいは実行オブジェクトタイム・スライスが終了した場合には、状態遷移管理部412をコールする。6において、状態遷移管理部412をコールした後、実行オブジェクト・スケジューリング制御フローを実行し、本プロセスにおける別の繰り返しのためにディスパッチャ402をコールする。
これまでは、1つのデバイスのスケジューリング・インフラストラクチャの設計を説明の中心とした。しかしながら、実施形態は、デバイス資源管理部によって多数のデバイスを管理する機能を含むこともできる。これは、多数の共有プロセッサーを用いるマルチコア・デバイスや、多数のオペレーティング・システムを用いるハイパーバイザー技術(hypervisor technologies)が近年普及していることを考えると、特に有用であると言える。
一実施形態では、デバイス資源管理部は、同じ種類のデバイス群に跨るタスクを実行する役割を担う。予約のデバイスへの割り当て、負荷均衡化、および負荷軽減というような動作は、通例、デバイス資源管理部によって実行する動作である。実施形態によっては、これを遂行するにあたって、異なるデバイスに合わせて実行計画を修正する場合もあり、更に予約を実行計画間で移動させることを含む場合もある。デバイス資源管理部は、デバイス・スケジューラのコンポーネントと比較すると、呼び出される頻度は相対的に低い。したがって、相対的に費用がかかる動作を実行することができる。
実施形態によっては、デバイス資源管理部によって実行する動作は、4つのカテゴリーに分けることができ、これらのカテゴリーについてここで論ずる。最初のカテゴリーは、予約のデバイスへの割り当て、およびデバイス・スケジューラのための実行計画の作成である。予約割り当てが行われるのは、アプリケーションが新たな予約を要求したとき、または予約構成設定(configuration)が行われたときである。デバイス資源管理部は、最初に、デバイスの利用可能な容量を調べ、予約をデバイスに割り当てる。容量に加えて、ある種の作業負荷の実行を妨げる可能性もある、デバイスの電力状態、および性能というような、他にも潜在的な考慮事項がある。デバイス資源管理部は、予約緊急方針を適用する役割を担う。これは、予約のために利用可能な資源がない場合に該当する。新たな予約の予約緊急度が、既存の予約(群)と比較され、デバイス資源管理部は、緊急性が低い方の予約のアプリケーション(群)に、その予約を取り消すように通知するか、あるいは一定の時間枠内に遂行しない場合これらを終了させる。クオータ(quotas)は、特殊な方針である。クオータとは、作業負荷の資源使用を制限することを目的とするシステム強制方針である。クオータには、上限(cap)および累増(accrual)という2つの格別の種類が含まれる。上限クオータは、閾値として作用して、資源の利用を一定の限度に抑える。例えば、あるアプリケーションには、プロセッサー容量の10%の上限がある場合がある。累増クオータは、更に長い時間期間における資源の総使用に対する制限である。例えば、ホストされているウェブ・サイトは1回の請求期間では5GBよりも多いネットワーク帯域幅を使用してはいけないことを、1つの累増クオータが指定することができる。累増クオータにおいて用いられる同じ通知を、予約先取りの場合に適用することができる。資源不足および低い関連緊急度のために実行されない予約要求は、整列させて、資源が解放されたときに割り当てることができる。
予約の割り当てが決定した後、デバイス資源管理部は、デバイスに合わせて実行計画を計算し直さなければならない。実施形態によっては、デバイス・スケジューリング階層のルート実行計画(root execution plan)の再計算だけで済む場合もある。また、デバイス資源管理部は、実行計画計算サービスを、デバイス・スケジューリング階層のルート・レベル以外において一次予約を細分することが必要なスケジューラに提供することができる。
また、デバイス資源管理部は、同じ予約が多数のデバイスにおいて同じ開始時刻に行われなければならない集団スケジューリング(gang scheduling)をサポートすることもできなければならない。この特徴は、特に、同期化を必要とする場合もあるスレッド群の同時実行を必要とする場合もある同時ランタイム(concurrency run-times)には有用である。異なるデバイス上で全てのスレッドを同時に実行することにより、同期化が行われたときにこれらの全てが実行するので、調整コストは最小限に抑えられる。
また、デバイス資源管理部は、デバイス・スケジューリング階層のルート・ノードに対するデフォルト・スケジューリング方針において実行する実行オブジェクトの負荷を均衡化する役割も担う。この動作は、異なるデバイスの方針状態記憶部間で実行オブジェクトを移動させることによって、実行計画間で実行オブジェクトを移動させることを伴う。これを遂行するには、この動作に関与するデバイスの実行オブジェクト・ビューを変更する。負荷均衡化についての判断には、レイテンシの考慮というような、オペレーティング・システムにおける発見法を必要とすることもあり得る。
デバイス資源管理部は、システム資源を監視し、上限クオータ閾値を適用する。これは、デバイス資源管理部と方針ディスパッチャとの協力を必要とする動作である。デバイス資源管理部は、方針に提示された実行オブジェクト・ビューから実行オブジェクトを除外することによって、既定期間実行オブジェクトを保留にする。
本例では、デバイス資源管理部は、オペレーティング・システム・サービスを用いて、デバイスを数え上げて、デバイス・コンフィギュレーションを検査し、容量および可用性を判断する。デバイス資源管理部が動作するためにオペレーティング・システムによって用いられるサービスは、ここではシステム資源管理部と呼ばれるコンポーネントに編入される。デバイス資源管理部は、デバイス・スケジューラおよび負荷均衡化動作の開始および終了に関して特殊な動作を必要とするハードウェア障害、ホット・スワップ等のために、システム資源管理部のイベント通知システムを利用する。
図5は、管理システム500のコンポーネントを示す。この例では、デバイス資源管理部510は4つの注目すべき動作を実行する。第1の動作は、実行計画の計算を含む。1に示すような、新たな予約に対して、和合性(affinity)計算部502は予約を実行するのに適したデバイスを選択する。予約和合性計算部502は、実行計画計算部504をコールして、そのデバイスに合わせた新たな実行計画を求め、次いでこの実行計画を、選択したデバイスの予約管理部506に受け渡す。予約構成の変更または既存の予約の細分の場合、和合性計算を飛び越す。
第2の動作は、ハードウェア変更に関係する。2に示すように、ソフトウェア資源管理部508は、デバイス資源管理部510に、予約および実行オブジェクト軽減手順512を通じて、変更が発生したことを通知する。デバイス資源管理部510は、次いで、ハードウェアの変更に応じて、デバイスに現在割り当てられている予約および実行オブジェクトを軽減する。例えば、デバイスが低電力モードに移行しようとしている場合、実行オブジェクトおよび予約を他のデバイスに割り当てし直すことができる。実行計画計算部504をコールして、影響を受けるデバイスの実行計画を計算し直す。
第3の動作は、負荷均衡化に関係する。3に示すように、実行オブジェクト負荷均衡部514は、関与するデバイスの実行オブジェクト・ビューを変更することによって、ルート・デバイス・スケジューリング階層においてデフォルトの方針で実行している実行オブジェクトを割り当てし直す。
第4の動作は、上限クオータ強制に関係する。4に示すように、上限クオータ・エンジン516は、実行オブジェクトがその閾値を超過したか否か判断する。違反が検出された場合、実行オブジェクト記憶部518において実行オブジェクトの状態を修正する。方針の実行オブジェクト・ビューからこの実行オブジェクトを除外することによって、所定の時間量だけこの実行オブジェクトを保留にする。上限クオータ・エンジン516は、方針ビューにおいてこの実行オブジェクトを確立し直す。実行オブジェクトが現在実行中である場合、上限クオータ・エンジン516はこの実行オブジェクトにフラグを立てて、方針時間アカウンティングコンポーネントによって、ビューの変更を行う。
これより図6に移ると、方法600が示されている。方法600は、システム資源のスケジューリングを行うための行為を含むことができる。この方法は、作業負荷のためにシステム資源スケジューリング方針にアクセスすることを含む(行為602)。この方針は、作業負荷の動作をスケジューリングするためにあり、方針が作業負荷に特定的となるように、作業負荷に基づいて指定される。例えば、図1における多くの例の中に示すように、方針106は作業負荷102に特定的となっている。一実施形態では、作業負荷はシステムの方針を用いて、当該作業負荷を実行するために用いられる作業負荷特定方針に基づいて、この作業負荷のための予約のスケジューリングを行うことができる。
更に、方法600は、方針によって指定された作業負荷のためにシステム資源を予約する行為(行為604)を含む。これの一例を実行計画200に示す。ここでは、予約202および204が、作業負荷特定方針のために実施される。
更に、方法600は、システムのデフォルト・スケジューリング方針を用いて、他の作業負荷のために、スケジューリングされていない残りのシステム資源の少なくとも一部を保存することも含むことができる。図2は、206において、システム・デフォルト・スケジューリング方針を用いた予約を示す。
方法600の実施形態によっては、この作業負荷が階層的に別の作業負荷の下になる場合がある。例えば、図1は、例の中でもとりわけ、作業負荷102よりも階層的に下になっている作業負荷110および112を示す。一実施形態では、作業負荷のためにシステム資源を予約すること(行為604)は、この作業負荷に対する方針、およびこの作業負荷よりも階層的に高い作業負荷に対する方針双方によって指定されて実行する。一例をあげると、作業負荷110のための予約は、方針114および方針106双方に基づいてスケジューリングすることができる。
方針は、多数の異なるパラメータに関して指定することができる。例えば、方針は、比率による資源の予約、容量による資源の予約を指定すること、または期限による資源の予約を指定することができる。
一実施形態では、方針によって指定されたように作業負荷のためにシステム資源を予約する際(行為604)、多数のシステム資源について実行計画を参照することが含まれ、多数のシステム資源の中からのシステム資源の各々は、同じデバイス種別を含む。例えば、システムが多数の異なるプロセッサーを含むこともあり得る。実行計画に基づいて、複数のシステム資源の中で作業負荷の負荷均衡化を目指すように、システム資源の予約を行う。代替実施形態では、システム資源の予約は、1つのデバイスから他のデバイスへの作業負荷を軽減することを目指して行われる。例えば、システムからデバイスを除外しようとする場合、または容量が少なくなる低電力状態にデバイスを移行させる場合、またはその他の理由で、このようなデバイスから利用可能な容量がある他のデバイスに、作業負荷を移行させることが望ましいこともある。別の代替実施形態では、上限クオータを強制することを目指して、システム資源の予約を実行する。
これより図7を参照すると、他の方法700の実施形態が示されている。方法700は、例えば、コンピューティング環境において実用化することができる。この方法は、システム資源を用いて作業負荷を実行する行為を含む。システム資源は、システム特定方針にしたがって、作業負荷のために既に予約されている。これらの方針は、作業負荷の動作をスケジューリングするためである。この方法は、方針を選択することを含み、この方針はある作業負荷に特定的であり(行為702)、この方針を用いて作業負荷をシステム資源に配分し、方針にしたがって作業負荷を実行し(行為704)、作業負荷を実行した場合システムの使用に関する情報を含むフィードバックを受け取り(行為706)、このフィードバックに基づいて、更に作業負荷をシステム資源に配分するために、方針決定を行う(行為708)ことを含む。これの一例を図3に示す。図3は、方針304−1から方針304−Nまでをどのようにしてディスパッチャ310と共に用いて、システム資源312によって作業負荷を実行させるかを示す。
方法700において、方針決定を行う(行為708)のは、実行計画に基づくことができる。実行計画は、作業負荷のためのシステム資源の予約を定める。例えば、システム資源312上において作業負荷を実行した後、実行計画200のような実行計画を参照して、予約202および204の内の1つのような予約と比較して、作業負荷をシステム資源312上で実行した時間量に基づいて、方針変更を行うべきか否か判断することができる。
本明細書において記載した実施形態の一部は、以前に実現されたスケジューリング・システムに対して1つ又は複数の利点を提供することができる。例えば、実施形態の中には、特殊化に配慮したものがある。即ち、システム資源のスケジューリングは、作業負荷の要件を満たすように、カスタム化が可能であるとよい。1つのスケジューリング方針が全ての作業負荷の要件を満たすことができない場合もある。本明細書における実施形態の中には、デフォルトの方針を用いるか、またはアプリケーションに合わせて特定的に設計した新たなスケジューリング方針を定める選択肢を、作業負荷が有する場合もある。
実施形態の中には、拡張性に配慮したものもある。本明細書に記載されている実施形態を用いると、スケジューリング方針は、作業負荷要件を取り込むように拡張可能にすることもできる。この属性は、所望の特殊化の実現に配慮する。デフォルトのシステムが供給する方針に加えて、資源管理インフラストラクチャは、単に既存の方針から選択するだけでなく、作業負荷がこれらの方針を指定できるように、挿入可能な(pluggable)方針アーキテクチャを提供することができる。
実施形態の中には、一貫性に配慮したものもある。同じ資源管理インフラストラクチャを異なる資源に用いることができる。スケジューリング・アルゴリズムは、通例、デバイス種別の要件を満たすように特殊化されている。プロセッサー、ネットワーク、およびディスク・スケジューラは、異なるアルゴリズムを用いることもでき、オペレーティング・システムの異なる要素に実装されることもできる。しかしながら、実施形態の中には、全てのスケジューラが、コンポーネントを特徴化するために同じモデルを用い、更に同じ統計およびクオータ・インフラストラクチャを用いることができる場合もある。
実施形態の中には、周期性に配慮したものもある。作業負荷の部分集合の応答性は、システムの負荷およびスケジューリング方針とは独立しているとよい。オペレーティング・システムは、レイテンシに敏感なアプリケーションに対して、システム資源の既定部分を保証できるとよい。
実施形態の中には、適応性に配慮したものもある。スケジューリング方針は、システムの動的挙動を取り込むように修正することができる。挿入可能な方針スケジューリングモデルによって、上位のシステム・コンポーネントおよびアプリケーションが、それらのシステム性能を調和させるように方針を調節することが可能になる。
また、実施形態は、コンピューター実行可能命令またはデーター構造を搬送するまたは格納したコンピューター読み取り可能媒体を含むこともできる。このようなコンピューター読み取り可能媒体は、汎用コンピューターまたは特殊目的コンピューターによってアクセスすることができる入手可能な媒体であればいずれでも可能である。一例として、そして限定ではなく、このようなコンピューター読み取り可能媒体は、RAM、ROM、EEPROM、CD−ROMまたはその他の光ディスク・ストレージ、磁気ディスク・ストレージまたはその他の磁気記憶デバイス、あるいは所望のプログラム・コード手段をコンピューター実行可能命令またはデーター構造の形態で搬送または格納するために用いることができしかも汎用コンピューターまたは特殊目的コンピューターがアクセス可能なその他のいずれの媒体も含むことができる。ネットワークまたはその他の通信接続(有線、ワイヤレス、あるいは有線またはワイヤレスの組み合わせのいずれか)を通じて情報をコンピュータに転送または提供する場合、コンピューターはこの接続をコンピューター読み取り可能媒体と見なすことは適正である。つまり、このような接続はいずれも、コンピューター読み取り可能媒体と呼ぶことは適正である。以上の組み合わせも、コンピューター読み取り可能媒体の範囲に含まれてしかるべきである。
コンピューター実行可能命令は、例えば、命令およびデーターを備えており、汎用コンピューター、特殊目的コンピューター、または特殊目的処理装置に、一定の機能または機能の一群を実行させる。本主題は、構造的特徴および/または方法論的行為に特定した文言で記載したが、添付する特許請求の範囲において定義する発明は、本明細書において記載した具体的な特徴や行為のいずれにも必ずしも限定されないことは言うまでもない。むしろ、これら具体的な特徴および行為は、特許請求の範囲を実現する形態例として開示したに過ぎない。
図8および以下の論述は、本発明を実現可能とするのに適したコンピューティング環境の端的な総合的な説明を行うことを意図している。必須ではないが、本発明の説明は、ネットワーク環境においてコンピューターが実行するプログラム・モジュールのような、コンピューター実行可能命令という一般的なコンテキストで行う。一般に、プログラム・モジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、データー構造等を含み、特定のタスクを実行するか、または特定の抽象的データー・タイプを実現する。コンピューター実行可能命令、付随するデーター構造、およびプログラム・モジュールは、本明細書に開示した方法のステップを実行するプログラム・コード手段の例を表す。このような実行可能命令または付随するデーター構造の特定的なシーケンスは、このようなステップにおいて記載した機能を実施するための対応する行為の例を表す。
本発明は、多くの種類のコンピューター・システム構成を有するネットワーク・コンピューティング環境においても実施できることは当業者には認められよう。コンピューター・システム構成には、パーソナル・コンピューター、ハンドヘルド・デバイス、マルチプロセッサー・システム、マイクロプロセッサー主体またはプログラマブル消費者用デバイス、ネットワークPC、ミニコンピューター、メインフレーム・コンピューター等が含まれる。また、本発明は分散型システムにおいても実施することができ、この場合、ローカルおよびリモート・処理装置が、(有線接続データー・リンク、ワイヤレス・データー・リンク、または有線接続およびワイヤレス・データー・リンクの組み合わせにいずれかによって)通信ネットワークを通じてリンクされており、双方がタスクを実行する。分散型・環境では、プログラム・モジュールは、ローカルおよびリモート双方のメモリー記憶デバイスに配置することもできる。
図8を参照すると、本発明を実施するシステム例は、コンピューター820の形態とした汎用コンピューターを含む。コンピューター820は、図示のように多数のプロセッサーを含んでもよい演算装置821、システム・メモリー822、およびシステム・バス823を含むことができる。システム・バス823は、システム・メモリー822を含む種々のシステム構成要素を演算装置821に結合する。システム・バス823は、メモリー・バスまたはメモリー・コントローラ、周辺バス、および種々のバス構造のいずれかを用いるローカル・バスを含む数種類のバス構造のいずれでもよい。システム・メモリーは、リード・オンリ・メモリー(ROM)824およびランダム・アクセス・メモリー(RAM)825を含む。基本入/出力システム826(BIOS)は、起動中のように、コンピューター820内のエレメント間におけるデーター転送を補助する基本的なルーチンを含み、ROM824内に格納することができる。
また、コンピューター820は、磁気ハード・ディスク839からの読み取りおよびこれへの書き込みを行なう磁気ハード・ディスク・ドライブ827、リムーバブル磁気ディスク829からの読み取りおよびこれへの書き込みを行なう磁気ディスク・ドライブ828、ならびにCD ROMまたはその他の光媒体のようなリムーバブル光ディスク831からの読み取りおよびこれへの書き込みを行なう光ディスク・ドライブ830を含むこともできる。磁気ハード・ディスク・ドライブ827、磁気ディスク・ドライブ828、および光ディスク・ドライブ830は、それぞれ、ハード・ディスク・ドライブ・インターフェース832、磁気ディスク・ドライブ・インターフェース833、および光ドライブ・インターフェース834によって、システム・バス823に接続されている。これらのドライブおよびそれに付随するコンピューター読み取り可能媒体は、コンピューター820のために、コンピューター実行可能命令、データー構造、プログラム・モジュール、およびその他のデーターの不揮発性ストレージを備えている。本明細書に記載する環境例では、磁気ハード・ディスク839、リムーバブル磁気ディスク829、およびリムーバブル光ディスク831を採用したが、データーを格納するための他の種類のコンピューター読み取り可能媒体も用いることができ、磁気カセット、フラッシュ・メモリー・カード、ディジタル・バーサタイル・ディスク、ベルヌーイ・カートリッジ、RAM、ROM等が含まれる。
プログラム・コード手段は、1つ又は複数のプログラム・モジュールを備えており、磁気ハード・ディスク839、リムーバブル磁気ディスク829、リムーバブル光ディスク831、ROM824、またはRAM825上に格納することができ、オペレーティング・システム835、1つ又は複数のアプリケーション・プログラム836、その他のプログラム・モジュール837、およびプログラム・データー838を含む。ユーザーは、コマンドおよび情報をコンピューター820に、キーボード840、ポインティング・デバイス842、またはマイクロフォン、ジョイスティック、ゲーム・パッド、衛星ディッシュ、スキャナ等のようなその他の入力デバイス(図示せず)によって入力することができる。これらおよびその他の入力デバイスは、多くの場合、システム・バスに結合されているシリアル・ポート・インターフェース846を介して、演算装置821に接続されている。あるいは、入力デバイスは、パラレル・ポート、ゲーム・ポート、またはユニバーサル・シリアル・バス(USB)のようなその他のインターフェースによって接続することも可能である。モニター847またはその他の形式の表示装置も、ビデオ・アダプター848のようなインターフェースを介して、システム・バス823に接続されている。モニターに加えて、パーソナル・コンピューターは、スピーカーおよびプリンター等のような、その他の周辺出力装置(図示せず)も含むことができる。
コンピューター820は、リモート・コンピューター849aおよび849bのような1つ又は複数のリモート・コンピューターへの論理接続を用いて、ネットワーク環境において動作することも可能である。リモート・コンピューター849aおよび849bは、各々、別のパーソナル・コンピューター、サーバー、ルーター、ネットワークPC、ピア・デバイス、またはその他の共通ネットワーク・ノードとすることができ、通例、コンピューター820に関して先に説明したエレメントの多くまたは全てを含むが、図8には、メモリー記憶デバイス850aおよび850b、ならびにそれらに付随するアプリケーション・プログラム36aおよび36bのみを示す。図8に示す論理接続は、ローカル・エリア・ネットワーク(LAN)851およびワイド・エリア・ネットワーク(WAN)852を含む。ここでは、これらを一例として示すのであって、限定ではない。このようなネットワーク環境は、事務所、企業規模のコンピューター・ネットワーク、イントラネットおよびインターネットにおいては、珍しくはない。
LANネットワーク環境で用いる場合、例えば、コンピューター820は、ネットワーク・インターフェースまたはアダプター853を介してローカル・ネットワーク851に接続する。WANネットワーク環境で用いる場合、コンピューター820は、モデム854、ワイヤレス・リンク、またはインターネットのようなワイド・エリア・ネットワーク852上で通信を確立するその他の手段を含むことができる。モデム854は、内部または外部でも可能であり、シリアル・ポート・インターフェース846を介してシステム・バス823に接続することができる。ネットワーク環境では、コンピューター820に関して図示したプログラム・モジュール、またはその一部をリモート・メモリー記憶装置に格納することができる。尚、図示のネットワーク接続は一例であり、ワイド・エリア・ネットワーク852を通じて通信を確立する他の手段も使用可能であることは認められよう。
実施形態は、以上で論じた資源に合わせて作業負荷を処理する機能を含むことができる。この処理は、本明細書において既に説明したような、作業負荷特定方針を用いて遂行することができる。
本発明は、その主旨または本質的な特徴から逸脱することなく、他の具体的な形態においても具体化することができる。記載した実施形態は、あらゆる観点において、例示に過ぎず、限定としては見なさないものとする。したがって、本発明の範囲は、前述の説明ではなく、添付した特許請求の範囲によって示されることとする。特許請求の範囲の均等の意味および範囲に該当する全ての変更は、その範囲に含まれるものとする。

Claims (20)

  1. コンピューティング環境における、システム資源のスケジューリング方法であって、
    システム資源スケジューリング方針(106)を割り当てる行為であって、前記方針が、作業負荷(102)内における動作のスケジューリングを行い、前記方針が前記作業負荷に対して特定的となるように、作業負荷に基づいて前記方針を指定する行為(行為602)と、
    前記方針によって指定されたように、前記作業負荷のためにシステム資源を予約する行為(行為604)と、
    を備えている、方法。
  2. 請求項1記載の方法であって、更に、スケジューリングされずに残っているシステム資源の少なくとも一部を、システムのデフォルト・スケジューリング方針を用いる別の作業負荷のために確保する行為を備えている、方法。
  3. 請求項1記載の方法において、前記作業負荷が他の作業負荷よりも階層的に下にあり、前記作業負荷のためのシステム資源を予約する行為は、前記作業負荷に対する方針と、前記作業負荷よりも階層的に上にある前記別の作業負荷に対する方針との双方によって指定されるように実行する、方法。
  4. 請求項1記載の方法において、前記方針は、比率によって資源の予約を指定すること、容量によって資源の予約を指定すること、または期限によって資源の予約を指定することの内少なくとも1つである、方法。
  5. 請求項1記載の方法において、前記システム資源は、プロセッサー、ネットワーク資源、メモリー資源、またはディスク資源の内少なくとも1つである、方法。
  6. 請求項1記載の方法において、前記方針によって指定されるように前記作業負荷のためにシステム資源を予約する行為は、
    複数のシステム資源についての実行計画を参照する行為であって、前記複数のシステム資源の中からのシステム資源の各々が、同じデバイス種別から成る、行為と、
    前記実行計画に基づいて、前記複数のシステム資源間で前記作業負荷の負荷均衡化を目指すようにシステム資源を予約する行為と、
    を備えている、方法。
  7. 請求項1記載の方法において、前記方針によって指定されるように前記作業負荷のためにシステム資源を予約する行為は、
    複数のシステム資源についての実行計画を参照する行為であって、前記複数のシステム資源の中からのシステム資源の各々が、同じデバイス種別から成る、行為と、
    前記実行計画に基づいて、1つのデバイスから別のデバイスへの作業負荷を軽減することを目指すようにシステム資源を予約する行為と、
    を備えている、方法。
  8. 請求項1記載の方法において、前記方針によって指定されるように前記作業負荷のためにシステム資源を予約する行為は、
    複数のシステム資源についての実行計画を参照する行為であって、前記複数のシステム資源の中からのシステム資源の各々が、同じデバイス種別から成る、行為と、
    前記実行計画に基づいて、上限クオータを強制することを目指すようにシステム資源を予約する行為と、
    を備えている、方法。
  9. コンピューティング環境において、システム資源を用いて作業負荷を実行する方法であって、前記システム資源は、システム特定方針にしたがって、作業負荷のために予約されており、前記予約は、作業負荷によって、作業負荷特定方針を適用するために用いられ、
    (a)方針を選択する行為であって、該方針が作業負荷内において動作のスケジューリングを行うためである、行為(行為702)と、
    (b)前記作業負荷をシステム資源に配分するために前記方針を用いる行為(行為704)と、
    (c)前記作業負荷を実行したときに、前記システムの使用に関する情報を含むフィードバックを受ける行為(行為706)と、
    (d)更に作業負荷を前記システム資源に配分するために、前記フィードバックに基づいて方針決定を行う行為(行為708)と、
    を備えている、方法。
  10. 請求項9記載の方法であって、更に、複数の作業負荷に対して指定された異なる方針にしたがって、前記複数の作業負荷を実行するために、行為(b)から(d)を繰り返す行為を備えている、方法。
  11. 請求項9記載の方法において、前記方針決定を行う行為は、実行計画に基づき、該実行計画は作業負荷のためのシステム資源の予約を定める、方法。
  12. 請求項11記載の方法であって、更に、1つ又は複数の容量に基づく予約を指示するために前記実行計画を定式化する行為を備えている、方法。
  13. 請求項11記載の方法であって、更に、1つ又は複数の比率に基づく予約を指示するために前記実行計画を定式化する行為を備えている、方法。
  14. 請求項9記載の方法において、前記システム資源は、プロセッサー、ネットワーク資源、メモリー資源、またはディスク資源の内の1つ又は複数である、方法。
  15. 請求項9記載の方法において、前記作業負荷をシステム資源に配分するために前記方針を用いる行為は、
    前記方針とは別個に実装されたディスパッチャにおいて、該ディスパッチャがいずれの特定の方針とも独立して動作するように、前記システム資源によって実行されるべき作業負荷を示す前記方針からの情報を受け取る行為と、
    前記ディスパッチャが、前記作業負荷を選択し、前記システム資源に前記作業負荷を実行させる行為と、
    を備えている、方法。
  16. 請求項9記載の方法において、更に作業負荷を前記システム資源に配分するために、前記フィードバックに基づいて方針決定を行う行為は、前記フィードバックに基づいて、新たな方針または同じ方針の内少なくとも1つを選択することを含む、方法。
  17. コンピューティング環境において、システム資源上で作業負荷を実行する方法であって、
    1つ又は複数のシステム資源スケジューリング方針にアクセスする行為であって、前記方針は、1つ又は複数の作業負荷内において動作のスケジューリングを行うためにあり、所与の方針が所与の作業負荷に特定的となるように、前記方針を作業負荷に基づいて指定する、行為と、
    前記方針によって指定されるように、前記システム資源の予約を指示する実行計画を定式化する行為と、
    前記実行計画に基づいて、前記システム資源に作業負荷を配分する行為と、
    を備えている、方法。
  18. 請求項17記載の方法において、実行計画を定式化する行為は、同じ実行計画において、比率に基づく予約と容量に基づく予約とを含ませる行為を含む、方法。
  19. 請求項17記載の方法において、実行計画を定式化する行為は、階層的に関係付けられた方針に基づいて予約を含ませる行為を含む、方法。
  20. 請求項17記載の方法において、前記実行計画に基づいて前記システム資源に作業負荷を配分する行為は、いずれの特定の方針とも独立して動作するように、前記方針とは別個に実装したディスパッチャが、前記システム資源によって実行されるべき作業負荷の指示を受け取る行為と、前記ディスパッチャが、前記作業負荷を選択し、前記システム資源に前記作業負荷を実行させる行為と、
    を備えている、方法。
JP2010528981A 2007-10-11 2008-10-07 階層的予約資源スケジューリング・インフラストラクチャ Expired - Fee Related JP5452496B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/870,981 2007-10-11
US11/870,981 US20090100435A1 (en) 2007-10-11 2007-10-11 Hierarchical reservation resource scheduling infrastructure
PCT/US2008/079117 WO2009048892A2 (en) 2007-10-11 2008-10-07 Hierarchical reservation resource scheduling infrastructure

Publications (3)

Publication Number Publication Date
JP2011501268A true JP2011501268A (ja) 2011-01-06
JP2011501268A5 JP2011501268A5 (ja) 2011-11-24
JP5452496B2 JP5452496B2 (ja) 2014-03-26

Family

ID=40535458

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010528981A Expired - Fee Related JP5452496B2 (ja) 2007-10-11 2008-10-07 階層的予約資源スケジューリング・インフラストラクチャ

Country Status (7)

Country Link
US (1) US20090100435A1 (ja)
EP (1) EP2201726A4 (ja)
JP (1) JP5452496B2 (ja)
CN (1) CN101821997B (ja)
BR (1) BRPI0816754A2 (ja)
RU (1) RU2481618C2 (ja)
WO (1) WO2009048892A2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012093498A1 (en) * 2011-01-07 2012-07-12 Nec Corporation Energy-efficient resource management system and method for heterogeneous multicore processors
US9262220B2 (en) 2013-11-15 2016-02-16 International Business Machines Corporation Scheduling workloads and making provision decisions of computer resources in a computing environment

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8255917B2 (en) * 2008-04-21 2012-08-28 Hewlett-Packard Development Company, L.P. Auto-configuring workload management system
US8249904B1 (en) * 2008-12-12 2012-08-21 Amazon Technologies, Inc. Managing use of program execution capacity
US8271818B2 (en) * 2009-04-30 2012-09-18 Hewlett-Packard Development Company, L.P. Managing under-utilized resources in a computer
US8578026B2 (en) 2009-06-22 2013-11-05 Citrix Systems, Inc. Systems and methods for handling limit parameters for a multi-core system
US8799037B2 (en) 2010-10-14 2014-08-05 Palto Alto Research Center Incorporated Computer-implemented system and method for managing motor vehicle parking reservations
US8635624B2 (en) * 2010-10-21 2014-01-21 HCL America, Inc. Resource management using environments
US8984519B2 (en) * 2010-11-17 2015-03-17 Nec Laboratories America, Inc. Scheduler and resource manager for coprocessor-based heterogeneous clusters
US8977677B2 (en) 2010-12-01 2015-03-10 Microsoft Technology Licensing, Llc Throttling usage of resources
CN103559080B (zh) * 2011-02-14 2017-04-12 微软技术许可有限责任公司 移动设备上的后台应用代码的受约束执行
US20120260259A1 (en) * 2011-04-06 2012-10-11 Microsoft Corporation Resource consumption with enhanced requirement-capability definitions
US9329901B2 (en) 2011-12-09 2016-05-03 Microsoft Technology Licensing, Llc Resource health based scheduling of workload tasks
US9305274B2 (en) 2012-01-16 2016-04-05 Microsoft Technology Licensing, Llc Traffic shaping based on request resource usage
GB2499237A (en) * 2012-02-10 2013-08-14 Ibm Managing a network connection for use by a plurality of application program processes
US10057179B2 (en) 2012-07-20 2018-08-21 Hewlett Packard Enterprise Development Company Lp Policy based scaling of network resources
US9043788B2 (en) * 2012-08-10 2015-05-26 Concurix Corporation Experiment manager for manycore systems
US8966462B2 (en) 2012-08-10 2015-02-24 Concurix Corporation Memory management parameters derived from system modeling
US9122524B2 (en) 2013-01-08 2015-09-01 Microsoft Technology Licensing, Llc Identifying and throttling tasks based on task interactivity
US9087453B2 (en) * 2013-03-01 2015-07-21 Palo Alto Research Center Incorporated Computer-implemented system and method for spontaneously identifying and directing users to available parking spaces
US20130227529A1 (en) 2013-03-15 2013-08-29 Concurix Corporation Runtime Memory Settings Derived from Trace Data
US9256467B1 (en) 2014-11-11 2016-02-09 Amazon Technologies, Inc. System for managing and scheduling containers
US9575811B2 (en) 2015-02-03 2017-02-21 Dell Products L.P. Dynamically controlled distributed workload execution
US9684540B2 (en) * 2015-02-03 2017-06-20 Dell Products L.P. Dynamically controlled workload execution by an application
US9569271B2 (en) * 2015-02-03 2017-02-14 Dell Products L.P. Optimization of proprietary workloads
US9678798B2 (en) * 2015-02-03 2017-06-13 Dell Products L.P. Dynamically controlled workload execution
EP3054384B1 (en) 2015-02-04 2018-06-27 Huawei Technologies Co., Ltd. System and method for memory synchronization of a multi-core system
AU2015390329C1 (en) * 2015-04-10 2019-10-24 Huawei Technologies Co., Ltd. Data sending method and device
US9747121B2 (en) 2015-04-14 2017-08-29 Dell Products L.P. Performance optimization of workloads in virtualized information handling systems
US10261782B2 (en) 2015-12-18 2019-04-16 Amazon Technologies, Inc. Software container registry service
KR101789288B1 (ko) * 2015-12-24 2017-10-24 고려대학교 산학협력단 계층적 실시간 스케줄링 시스템의 정형 검증 장치 및 방법
US10069869B2 (en) 2016-05-17 2018-09-04 Amazon Technologies, Inc. Versatile autoscaling
US10412022B1 (en) 2016-10-19 2019-09-10 Amazon Technologies, Inc. On-premises scaling using a versatile scaling service and an application programming interface management service
US10409642B1 (en) 2016-11-22 2019-09-10 Amazon Technologies, Inc. Customer resource monitoring for versatile scaling service scaling policy recommendations
US11503136B2 (en) * 2016-11-30 2022-11-15 Microsoft Technology Licensing, Llc Data migration reservation system and method
US10496331B2 (en) 2017-12-04 2019-12-03 Vmware, Inc. Hierarchical resource tree memory operations
CN110601999B (zh) * 2018-06-12 2022-03-04 华为技术有限公司 资源预留的方法与装置
US10855532B2 (en) 2018-10-08 2020-12-01 Dell Products L.P. System and method to perform solution aware server compliance and configuration
US11669365B1 (en) 2019-08-26 2023-06-06 Amazon Technologies, Inc. Task pool for managed compute instances
JP7359177B2 (ja) * 2021-03-05 2023-10-11 株式会社リコー リソース管理装置、リソース管理システム、プログラムおよびリソース管理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001515242A (ja) * 1997-09-04 2001-09-18 イクエーター テクノロジーズ インコーポレイテッド プロセッサ資源分配装置及び方法
JP2005513587A (ja) * 2001-05-10 2005-05-12 オラクル・インターナショナル・コーポレイション マルチポリシーリソーススケジューリングのための方法およびシステム
JP2005209203A (ja) * 2004-01-20 2005-08-04 Internatl Business Mach Corp <Ibm> 要求に応じて資源を動的に区分し、割り振るアプリケーション対応システム

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH05173989A (ja) * 1991-12-24 1993-07-13 Kawasaki Steel Corp 計算機及びマルチプロセッサ計算装置
US5414845A (en) * 1992-06-26 1995-05-09 International Business Machines Corporation Network-based computer system with improved network scheduling system
US6003061A (en) * 1995-12-07 1999-12-14 Microsoft Corporation Method and system for scheduling the use of a computer system resource using a resource planner and a resource provider
US6341303B1 (en) * 1998-08-28 2002-01-22 Oracle Corporation System and method for scheduling a resource according to a preconfigured plan
EP1037147A1 (en) * 1999-03-15 2000-09-20 BRITISH TELECOMMUNICATIONS public limited company Resource scheduling
GB2354350B (en) * 1999-09-17 2004-03-24 Mitel Corp Policy representations and mechanisms for the control of software
US7111297B1 (en) * 2000-05-02 2006-09-19 Microsoft Corporation Methods and architectures for resource management
US7137119B1 (en) * 2000-05-02 2006-11-14 Microsoft Corporation Resource manager architecture with resource allocation utilizing priority-based preemption
US7058947B1 (en) * 2000-05-02 2006-06-06 Microsoft Corporation Resource manager architecture utilizing a policy manager
US7249179B1 (en) * 2000-11-09 2007-07-24 Hewlett-Packard Development Company, L.P. System for automatically activating reserve hardware component based on hierarchical resource deployment scheme or rate of resource consumption
US6857020B1 (en) * 2000-11-20 2005-02-15 International Business Machines Corporation Apparatus, system, and method for managing quality-of-service-assured e-business service systems
US7234139B1 (en) * 2000-11-24 2007-06-19 Catharon Productions, Inc. Computer multi-tasking via virtual threading using an interpreter
US6895585B2 (en) * 2001-03-30 2005-05-17 Hewlett-Packard Development Company, L.P. Method of mixed workload high performance scheduling
US7072958B2 (en) * 2001-07-30 2006-07-04 Intel Corporation Identifying network management policies
US20030061260A1 (en) * 2001-09-25 2003-03-27 Timesys Corporation Resource reservation and priority management
US7266823B2 (en) * 2002-02-21 2007-09-04 International Business Machines Corporation Apparatus and method of dynamically repartitioning a computer system in response to partition workloads
US7254813B2 (en) * 2002-03-21 2007-08-07 Network Appliance, Inc. Method and apparatus for resource allocation in a raid system
JP3951949B2 (ja) * 2003-03-31 2007-08-01 日本電気株式会社 分散型資源管理システムおよび分散型資源管理方法並びにプログラム
DE10333539A1 (de) * 2003-07-23 2005-02-24 Zimmer Ag Verfahren zur Reinigung von Caprolactam aus Polyamidhaltigen Abfällen mittels UV-Bestrahlung
US20050028160A1 (en) * 2003-08-01 2005-02-03 Honeywell International Inc. Adaptive scheduler for anytime tasks
JP2007508623A (ja) * 2003-10-08 2007-04-05 ユニシス コーポレーション 複数のノードにわたってシステムリソースを割り当てて管理する仮想データセンタ
US20050149940A1 (en) * 2003-12-31 2005-07-07 Sychron Inc. System Providing Methodology for Policy-Based Resource Allocation
US7810098B2 (en) * 2004-03-31 2010-10-05 International Business Machines Corporation Allocating resources across multiple nodes in a hierarchical data processing system according to a decentralized policy
US7861246B2 (en) * 2004-06-17 2010-12-28 Platform Computing Corporation Job-centric scheduling in a grid environment
US7681242B2 (en) * 2004-08-26 2010-03-16 Novell, Inc. Allocation of network resources

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001515242A (ja) * 1997-09-04 2001-09-18 イクエーター テクノロジーズ インコーポレイテッド プロセッサ資源分配装置及び方法
JP2005513587A (ja) * 2001-05-10 2005-05-12 オラクル・インターナショナル・コーポレイション マルチポリシーリソーススケジューリングのための方法およびシステム
JP2005209203A (ja) * 2004-01-20 2005-08-04 Internatl Business Mach Corp <Ibm> 要求に応じて資源を動的に区分し、割り振るアプリケーション対応システム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012093498A1 (en) * 2011-01-07 2012-07-12 Nec Corporation Energy-efficient resource management system and method for heterogeneous multicore processors
US9262220B2 (en) 2013-11-15 2016-02-16 International Business Machines Corporation Scheduling workloads and making provision decisions of computer resources in a computing environment
US9396028B2 (en) 2013-11-15 2016-07-19 International Business Machines Corporation Scheduling workloads and making provision decisions of computer resources in a computing environment

Also Published As

Publication number Publication date
BRPI0816754A2 (pt) 2015-03-17
WO2009048892A2 (en) 2009-04-16
JP5452496B2 (ja) 2014-03-26
EP2201726A4 (en) 2011-11-23
US20090100435A1 (en) 2009-04-16
EP2201726A2 (en) 2010-06-30
CN101821997A (zh) 2010-09-01
WO2009048892A3 (en) 2009-06-11
RU2481618C2 (ru) 2013-05-10
RU2010114243A (ru) 2011-10-20
CN101821997B (zh) 2013-08-28

Similar Documents

Publication Publication Date Title
JP5452496B2 (ja) 階層的予約資源スケジューリング・インフラストラクチャ
US11099892B2 (en) Utilization-aware resource scheduling in a distributed computing cluster
US20210141671A1 (en) System and Method for a Self-Optimizing Reservation in Time of Compute Resources
US9886322B2 (en) System and method for providing advanced reservations in a compute environment
US9298514B2 (en) System and method for enforcing future policies in a compute environment
US8150972B2 (en) System and method of providing reservation masks within a compute environment
US20030061260A1 (en) Resource reservation and priority management
EP2357561A1 (en) System and method for providing advanced reservations in a compute environment
US20050188075A1 (en) System and method for supporting transaction and parallel services in a clustered system based on a service level agreement
JP2005534116A (ja) 複数の消費者をもつコンピュータシステムで資源を動的に割当てて管理する方法
KR100471746B1 (ko) 연성 실시간 태스크 스케줄링 방법 및 그 기록매체

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111007

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130510

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131227

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

LAPS Cancellation because of no payment of annual fees