JP2013218744A - Resource-based scheduler - Google Patents

Resource-based scheduler Download PDF

Info

Publication number
JP2013218744A
JP2013218744A JP2013160387A JP2013160387A JP2013218744A JP 2013218744 A JP2013218744 A JP 2013218744A JP 2013160387 A JP2013160387 A JP 2013160387A JP 2013160387 A JP2013160387 A JP 2013160387A JP 2013218744 A JP2013218744 A JP 2013218744A
Authority
JP
Japan
Prior art keywords
computer
resource
usage
job
resources
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.)
Pending
Application number
JP2013160387A
Other languages
Japanese (ja)
Inventor
Jensen Craig
ジェンセン,クレイグ
Staffer Andrew
スタファー,アンドリュー
Thomas Basil
トマス,バジル
Cadruvi Richard
キャドルビ,リチャード
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.)
CONDUSIV TECHNOLOGIES CORP
Original Assignee
CONDUSIV TECHNOLOGIES CORP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/471,466 external-priority patent/US8239869B2/en
Priority claimed from US11/546,514 external-priority patent/US9588809B2/en
Application filed by CONDUSIV TECHNOLOGIES CORP filed Critical CONDUSIV TECHNOLOGIES CORP
Publication of JP2013218744A publication Critical patent/JP2013218744A/en
Pending legal-status Critical Current

Links

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/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/22Microcontrol or microprogram arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/504Resource capping
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

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

Abstract

PROBLEM TO BE SOLVED: To provide resource-based scheduling of a computer job.SOLUTION: A computer job is scheduled based on utilization of a resource and a utilization criterion that the computer job has pertaining to the resource. A process 200 for resource-based scheduling comprises: a step (202) of receiving utilization criteria of one or more jobs; a step (204) of determining utilization criteria of the one or more jobs; a step (206) of adding computer jobs to resource-based scheduling worklists; a step (208) of selecting a particular computer resource to be utilized; a step (210) of determining utilization of the selected computer resource; and a step (214) of storing resource utilization information regarding an executed computer job.

Description

発明の分野
この発明は、コンピュータジョブをスケジュールすることに関する。特に、この発明の実施例は、特定のジョブのリソース利用基準、およびジョブが使用するコンピュータリソースの利用に基づいて、コンピュータジョブをスケジュールすることに関する。
The present invention relates to scheduling computer jobs. In particular, embodiments of the invention relate to scheduling computer jobs based on resource usage criteria for a particular job and the utilization of computer resources used by the job.

背景
今日のコンピュータオペレーティングシステム(operating systems)(O/S)は、マルチタスクスケジューラを利用して、同時に動作する2つ以上のコンピュータジョブ(たとえばプロセス)の外観を与える。多くの異なるスケジューリングアルゴリズムがあるが、概してその概念は、量子として知られている小さなタイムスライスがプロセスの1つのスレッドに与えられ、次いでそのプロセスの別のスレッドまたは別のプロセスに与えられるなどというものである。量子の長さは非常に小さく、典型的には20〜120ミリ秒の範囲内にある。人間の時間の認識のために、ジョブは同時に動作しているように見える。
BACKGROUND Today's computer operating systems (O / S) utilize a multitasking scheduler to give the appearance of two or more computer jobs (eg, processes) that operate simultaneously. There are many different scheduling algorithms, but the general idea is that a small time slice, known as quantum, is given to one thread of a process and then given to another thread or another process of that process, etc. It is. The quantum length is very small, typically in the range of 20-120 milliseconds. Due to human time perception, jobs appear to be working simultaneously.

中央処理装置(central processing unit)(CPU)はほとんどのコンピュータシステムのうちの最速のコンポーネントである傾向があるのに対して、ディスクI/O、ネットワークI/O、さらにはメモリなどの他のコンピュータリソースははるかに遅い傾向がある。たとえば、ディスクからのデータ転送およびCPU内でのデータ転送の点で測定されると、ディスクI/OはCPUよりも約100万倍遅いであろう。その結果、CPUはこれらのより遅いリソースを待つことが多い。たとえば、3ギガヘルツのCPUは、ミリ秒単位で測定される平均的なアクセス時間でディスクドライブがデータを検索するのを待っている間、遊休していることが多い。   Central processing units (CPUs) tend to be the fastest component of most computer systems, whereas other computers such as disk I / O, network I / O, and even memory Resources tend to be much slower. For example, disk I / O would be about one million times slower than the CPU when measured in terms of data transfer from the disk and data transfer within the CPU. As a result, the CPU often waits for these slower resources. For example, a 3 GHz CPU is often idle while waiting for the disk drive to retrieve data with an average access time measured in milliseconds.

いくつかの異なるジョブが同じリソースを求めて競うことが多いので、ジョブはしばしば互いに衝突し、その結果、1つ以上のジョブが遅くなる。ユーザの観点からすれば、ジョブの衝突は、無反応なアプリケーション、ギクシャクしたカーソルの動き、およびゆっくりと表示されるグラフィックスとして現われる。   Since several different jobs often compete for the same resource, the jobs often collide with each other, resulting in one or more jobs being slow. From the user's perspective, job collisions appear as unresponsive applications, jerky cursor movements, and slowly displayed graphics.

スロットリングは、これらのマイナスの影響を最小限にするための技術である。スロットリングは、アプリケーションまたはジョブが、割当てられたリソースの量よりも多くの量を使用することを防ぐ。スロットリングの種類には、ディスクI/Oスロットリング、CPUスロットリング、およびネットワークスロットリングが含まれる。たとえば、CPUスロットリングは、アプリケーションについてのターゲットCPU利用限度を確立し、アプリケーションがターゲット限度を超えると強制的にアプリケーションの動作を停止させることを伴い得る。スロットリングは時には、メンテナンスアプリケーションまたはそれほど重要でないコンピュータジョブのためのコンピュータリソースに適用される。スロットリングには利点があるが、コンピュータジョブのリソース使用は他のジョブおよびアプリケーションにとって完全に透明であるわけではない。   Throttling is a technique for minimizing these negative effects. Throttling prevents an application or job from using more than the amount of allocated resources. Types of throttling include disk I / O throttling, CPU throttling, and network throttling. For example, CPU throttling may involve establishing a target CPU utilization limit for an application and forcing the application to stop operating when the application exceeds the target limit. Throttling is sometimes applied to computer resources for maintenance applications or less important computer jobs. Although throttling has advantages, the resource usage of computer jobs is not completely transparent to other jobs and applications.

上記の問題はさらに面倒である。なぜなら、コンピュータリソースは概して24時間にわたって浪費されるためである。たとえば、ほとんどのデスクトップはコンピュータの利用可能なリソースのうち5%未満を利用しており、高トラフィックサーバはおよそ20%を利用することが多い。リソースのうち80〜90%を利用するコンピュータでさえ、依然として10〜20%の利用可能なリソースを有している。   The above problem is even more troublesome. This is because computer resources are generally wasted over 24 hours. For example, most desktops use less than 5% of the computer's available resources, and high traffic servers often use approximately 20%. Even computers that use 80-90% of the resources still have 10-20% available resources.

さもなければ失われるこれらのリソースを回復して利用するために、必要なものは、他のジョブまたはアプリケーションに重大な影響を与えることなくコンピュータシステム内で1つ以上のジョブの実行を可能にする技術である。この技術は、ジョブをスケジュールする際にユーザの時間を消費するはずがなく、また、ジョブが動作しているときにコンピュータシステムとのユーザの対話にマイナスの影響を及ぼすはずがない。   To recover and utilize those resources that would otherwise be lost, what is needed enables execution of one or more jobs within the computer system without significantly affecting other jobs or applications Technology. This technique should not consume user time when scheduling a job, nor should it negatively affect user interaction with the computer system when the job is running.

この節で説明された方策は、追求され得る方策であるが、以前に着想または追求された方策であるとは限らない。したがって、特に明記しない限り、この節で説明された方策のいずれも、単にこの節に含まれているからといって先行技術と見なされると仮定されるべきではない。   The strategies described in this section are those that can be pursued, but not necessarily those that were previously conceived or pursued. Therefore, unless otherwise specified, it should not be assumed that any of the strategies described in this section are considered prior art simply because they are included in this section.

この発明は、同様の参照番号が同様の要素を指す添付の図面において、限定的ではなく例示的に図示される。   The present invention is illustrated by way of example and not limitation in the accompanying drawings in which like reference numerals refer to like elements.

この発明の実施例に従った、リソースに基づいたスケジューリングワークリストを有するリソースに基づいたスケジューラの図である。FIG. 4 is a resource-based scheduler having a resource-based scheduling worklist according to an embodiment of the present invention. この発明の別の実施例に従った、リソースに基づいたスケジューラの図である。FIG. 4 is a diagram of a resource-based scheduler according to another embodiment of the invention. この発明の実施例に従った、リソースに基づいたスケジューリングのフローチャートである。FIG. 6 is a resource-based scheduling flowchart according to an embodiment of the present invention. FIG. 本発明の実施例が実現され得るコンピュータシステムを図示するブロック図である。And FIG. 6 is a block diagram illustrating a computer system in which embodiments of the invention may be implemented.

詳細な説明
以下の説明では、説明のために、多数の特定的な詳細が記載されてこの発明の完全な理解を与える。しかし、この発明はこれらの特定的な詳細がなくても実施され得ることが明らかになるであろう。他の場合では、この発明を不必要に不明瞭にするのを避けるため、周知の構造および装置がブロック図形態で示される。
In the following description, for the purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the present invention. However, it will be apparent that the invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form in order to avoid unnecessarily obscuring the present invention.

概要
大多数のコンピュータは、常に自身のリソース容量のすべてを利用しているとは限らない。これは典型的に、1日24時間、週7日よく使用されているように見えるコンピュータ、および毎日わずかな間しか立ち上げられないコンピュータについても当てはまる。したがって、コンピュータ時間およびリソースが無駄である。たとえば、24時間にわたって、かなり多用され、かつ活動時に短時間のスパイクを有し得るコンピュータシステムは、平均して約5〜20%のリソースしか使用していない可能性がある。
Overview The vast majority of computers do not always use all of their resource capacity. This is typically true for computers that appear to be in good use 24 hours a day, 7 days a week, and computers that are set up for only a short time each day. Thus, computer time and resources are wasted. For example, a computer system that is heavily used over a 24-hour period and that can have a brief spike when active may use on average about 5-20% of resources.

コンピュータジョブは、この発明の実施例に従って、リソースの利用、およびリソースに関する、コンピュータジョブが有する利用基準に基づいて、スケジュールされる。たとえば、コンピュータジョブは、コンピュータジョブをスケジュールするためにディスクI/Oリソースが60%の利用可能容量を有するという利用基準を有し得る。この実施例では、ディスクI/Oリソースの利用可能容量が60%未満であると、コンピュータジョブはスケジュールされない。   Computer jobs are scheduled based on resource usage and the usage criteria that the computer job has regarding resources in accordance with embodiments of the present invention. For example, a computer job may have a usage criterion that disk I / O resources have 60% available capacity for scheduling computer jobs. In this embodiment, a computer job is not scheduled if the available capacity of the disk I / O resource is less than 60%.

1つの実施例では、リソースに基づいたスケジューラ(resource-based scheduler)(RBS)は、各コンピュータジョブを、いくつかの異なるリソースに基づいたスケジューリングワークリストのうちの少なくとも1つに載せる。これらのリソースに基づいたスケジューリングワークリストは、ディスクI/Oスケジューリングワークリスト、CPUスケジューリングワークリスト、およびネットワークI/Oスケジューリングワークリストを含むが、これらに限定されない。したがって、特定のスケジューリングワークリストは、特定のリソースを使用することを待っているコンピュータジョブを備える。この実施例では、コンピュータジョブの各々は、特定のリソースに関する利用基準を有する。RBSは、次にコンピュータジョブをスケジュールさせるためにリソースのうちの1つを選択する。1つの実施例では、選択はリソースの優先順位に基づく。たとえば、ディスクI/Oリソースは、CPUリソースよりも高い優先順位を有し得る。1つの実施例では、より遅いリソースと称されるリソースは、より速いリソースと称されるリソースよりも高い優先順位を与えられる。   In one embodiment, a resource-based scheduler (RBS) places each computer job on at least one of several different resource-based scheduling worklists. Scheduling worklists based on these resources include, but are not limited to, disk I / O scheduling worklist, CPU scheduling worklist, and network I / O scheduling worklist. Thus, a particular scheduling worklist comprises computer jobs waiting to use a particular resource. In this embodiment, each computer job has usage criteria for a particular resource. The RBS then selects one of the resources to schedule the computer job. In one embodiment, the selection is based on resource priority. For example, disk I / O resources may have a higher priority than CPU resources. In one embodiment, resources referred to as slower resources are given higher priority than resources referred to as faster resources.

RBSは、どのリソースをスケジュールするかを選択した後、選択されたリソースに対応するワークリストからコンピュータジョブのうちの1つを実行用に選択する。1つの実施例では、RBSは、リソースの利用可能容量をコンピュータジョブの利用基準と一致させる基準に基づいて、コンピュータジョブを選択する。しかし、RBSは、コンピュータジョブの優先順位、コンピュータジョブの必要な実行順序、コンピュータジョブをワークリストに載せた順序などの他の要因も用いてもよい。   After selecting which resource to schedule, the RBS selects one of the computer jobs for execution from the work list corresponding to the selected resource. In one embodiment, the RBS selects a computer job based on criteria that match the available capacity of the resource to the computer job usage criteria. However, the RBS may also use other factors such as the priority of computer jobs, the required execution order of computer jobs, and the order in which computer jobs are placed on the work list.

なお、1つの実施例では、RBSは、たとえジョブが必要としない他のリソースが(全面的にまたは部分的に)他のジョブによって利用されているとしても、そのジョブが利用するリソースが(全面的にまたは部分的に)利用可能であるときに各コンピュータジョブをスケジュールすることによって、複数のコンピュータリソースの効率的な利用を可能にし、他のジョブの性能の侵害を低減する。   Note that in one embodiment, the RBS uses the resources used by a job (entirely or partially) even if other resources that the job does not require are used (in whole or in part) by other jobs. Scheduling each computer job when available (in part or in part) enables efficient use of multiple computer resources and reduces performance violations of other jobs.

リソースに基づいたスケジューラ
図1Aは、この発明の実施例に従った、リソースに基づいたスケジューリングワークリスト120を有するリソースに基づいたスケジューラ(RBS)100の図である。RBS100は、異なるコンピュータリソースの利用可能容量に基づいて、コンピュータジョブを事前対応的にスケジュールする。例として、異なるリソースは、CPU、ディスクI/O、ネットワークI/O、ビデオ、メモリ、キーボード、ネットワークリソースなどを含み得るが、これらに限定されない。「コンピュータジョブ」または「ジョブ」という用語は、本明細書中で用いられるとき、コンピュータプロセス、スレッド、(本明細書中で後述する)マイクロジョブ、または実行可能なコンピュータコードの任意の部分を含むが、これらに限定されない。RBS100は、いずれかの他のジョブのリソース要件と衝突することなく各コンピュータジョブがリソースの要件を受取ることができるようにしてもよい。1つの実施例では、RBS100は、既にリソースを利用している他のジョブのうちのいずれかの侵害が最小限の状態で、いつ特定のリソースが一部分だけ利用されるかを判断でき、未利用の部分を選択されたジョブに割当てることができる。
Resource Based Scheduler FIG. 1A is a diagram of a resource based scheduler (RBS) 100 having a resource based scheduling worklist 120 in accordance with an embodiment of the present invention. The RBS 100 schedules computer jobs proactively based on the available capacity of different computer resources. By way of example, different resources may include, but are not limited to, CPU, disk I / O, network I / O, video, memory, keyboard, network resources, and the like. The term “computer job” or “job”, as used herein, includes any part of a computer process, thread, microjob (described later herein), or executable computer code. However, it is not limited to these. The RBS 100 may allow each computer job to receive resource requirements without conflicting with resource requirements of any other job. In one embodiment, the RBS 100 can determine when a particular resource is only partially used, with minimal infringement of any of the other jobs that are already using the resource, and unused Can be assigned to the selected job.

1つの実施例では、RBS100はさまざまな異なるリソースのためにコンピュータジョブをスケジュールする。異なるリソースは、RBS100と同じコンピュータシステム上にある場合もあれば、RBS100と同じコンピュータシステム上にない場合もある。たとえば、1つの実施例では、RBS100は、ネットワークを介してアクセスされるリソースを利用するようにコンピュータジョブをスケジュールする。特定の例として、リソースはインターネットを介してアクセスされてもよい。   In one embodiment, RBS 100 schedules computer jobs for a variety of different resources. The different resources may be on the same computer system as the RBS 100, or may not be on the same computer system as the RBS 100. For example, in one embodiment, RBS 100 schedules computer jobs to utilize resources accessed over the network. As a specific example, the resource may be accessed via the Internet.

したがって、1つの実施例では、RBS100は、さまざまなリソースへのアクセスを求めるコンピュータジョブを受取り、どのリソースを利用するようにどのコンピュータジョブをスケジュールすべきであるか、およびいつコンピュータジョブをスケジュールすべきであるかについてスケジューリング判断を下す。   Thus, in one embodiment, the RBS 100 receives computer jobs seeking access to various resources, which computer jobs should be scheduled to use which resources, and when computer jobs should be scheduled Make a scheduling decision about whether

コンピュータリソース利用
RBS100は、さまざまなコンピュータリソースの利用を表わすリソース利用情報105を入力する。利用は、間隔または指定された時点に関連していてもよい。利用は、指定された間隔にわたる平均的な利用であってもよい。たとえば、リソースの利用は、指定された時間間隔にわたる平均的な利用として指定されることができる。特定の例として、30%利用のCPUリソースは、最近の時間間隔にわたる平均的な利用に関連していてもよい。1つの実施例では、間隔は量子単位で測定される。
Computer Resource Usage The RBS 100 inputs resource usage information 105 representing the usage of various computer resources. Usage may be related to an interval or a specified point in time. The usage may be an average usage over a specified interval. For example, resource utilization can be specified as an average utilization over a specified time interval. As a specific example, 30% utilized CPU resources may be associated with average utilization over recent time intervals. In one embodiment, the spacing is measured in quantum units.

1つの実施例では、利用は数値に基づいたものである。たとえば、利用は、指定された時点において実行を待っているオペレーションの数に基づき得る。たとえば、リソースが実行を待っている「x」オペレーションを有する場合、利用は「x」であり得る。数値に基づいたリソースの利用の別の例として、利用は、特定のリソースの利用要求の数に基づく。たとえば、1つの実施例では、利用は、各プロセスが有する特定のリソースの利用要求の総数に基づく。数値に基づいた利用は、ある時点または間隔に関連していてもよい。たとえば、1つの実施例では、数値に基づいたリソースの利用は、特定の時間間隔にわたって実行を待っているオペレーションの平均数に基づく。別の実施例では、数値に基づいたリソースの利用は、特定の時点において実行を待っているオペレーションの数に基づく。   In one embodiment, usage is based on numerical values. For example, usage may be based on the number of operations waiting to be executed at a specified time. For example, if the resource has an “x” operation waiting to be executed, the usage may be “x”. As another example of resource utilization based on numerical values, utilization is based on the number of utilization requests for a particular resource. For example, in one embodiment, utilization is based on the total number of utilization requests for a particular resource that each process has. Numeric based usage may be related to a point in time or interval. For example, in one embodiment, numerical resource utilization is based on the average number of operations awaiting execution over a particular time interval. In another embodiment, the numerical resource utilization is based on the number of operations awaiting execution at a particular point in time.

1つの実施例では、RBS100は、リソース利用105に基づいて将来のリソース利用を推定する。たとえば、特定のリソース(およびおそらく他の要因)の利用要求の数に基づいて、将来のリソース利用の推定がなされる。別の例として、特定のリソース(およびおそらく他の要因)の利用割合に基づいて、将来のリソース利用の推定がなされる。   In one embodiment, RBS 100 estimates future resource usage based on resource usage 105. For example, an estimate of future resource usage is made based on the number of usage requests for a particular resource (and possibly other factors). As another example, an estimate of future resource usage is made based on the utilization rate of a particular resource (and possibly other factors).

コンピュータジョブ利用基準
RBS100は、スケジュールされるべきジョブについての利用基準118も入力する。利用基準118はリソースに関連している。たとえば、リソース閾値が用いられてもよく、他のジョブによるリソース利用が閾値を下回ると、RBS100は単にコンピュータジョブをスケジュールする。リソース閾値を用いる一例は、ディスクI/Oが60%未満の利用可能容量を有する場合にRBS100がディスクI/Oを使用するように特定のコンピュータジョブを単にスケジュールするというものである。1つの実施例では、RBS100は、利用基準118を提供するために、コンピュータジョブを所有するアプリケーションのためのアプリケーションプログラムインターフェイス(Application Program Interface)(API)を有する。本明細書中では、例示的なAPIが提供される。
Computer Job Usage Criteria RBS 100 also inputs usage criteria 118 for jobs to be scheduled. Usage criteria 118 are associated with resources. For example, a resource threshold may be used, and if the resource usage by other jobs falls below the threshold, the RBS 100 simply schedules a computer job. One example of using a resource threshold is that the RBS 100 simply schedules a particular computer job to use the disk I / O when the disk I / O has an available capacity of less than 60%. In one embodiment, RBS 100 has an Application Program Interface (API) for the application that owns the computer job to provide usage criteria 118. An exemplary API is provided herein.

1つの実施例では、利用基準118は時間に基づく。利用基準118を割合に基づかせることは、時間に基づいた基準の一例である。1つの実施例では、利用基準118は数値に基づいたものである。数値に基づいた利用基準118の一例は、特定のリソース上で実行を待っているオペレーションの数である。数値に基づいた利用基準118の別の例は、リソースを使用するために受取られるある数の要求である。たとえば、特定のプロセスの利用基準118は、特定のリソースの使用要求の数に基づく。   In one embodiment, usage criteria 118 is based on time. Basing the usage criterion 118 on a percentage is an example of a time-based criterion. In one embodiment, usage criteria 118 is based on numerical values. An example of a usage criterion 118 based on a numerical value is the number of operations awaiting execution on a particular resource. Another example of a numeric based usage metric 118 is a number of requests received to use a resource. For example, the usage criteria 118 for a particular process is based on the number of usage requests for a particular resource.

1つの実施例では、RBS100は履歴利用情報116を記憶する。履歴利用情報116は、1つ以上のジョブによる以前のリソース利用を表わす。たとえば、コンピュータジョブがネットワークI/Oリソースのうち30%を利用したという事実が、将来の参考のために記憶される。1つの実施例では、RBS100は、履歴利用情報116を用いて、スケジュールされるべきコンピュータジョブについての利用基準を判断する。たとえば、コンピュータジョブが特定のリソースを利用した1つ以上の以前の時間に基づいて、RBS100は、コンピュータジョブが特定のリソースについての「x」%の利用基準を有すると判断する。RBS100は次いで、コンピュータジョブをスケジュールするときにこの利用基準を使用する。   In one embodiment, the RBS 100 stores history usage information 116. History usage information 116 represents previous resource usage by one or more jobs. For example, the fact that a computer job used 30% of the network I / O resources is stored for future reference. In one embodiment, the RBS 100 uses the historical usage information 116 to determine usage criteria for computer jobs to be scheduled. For example, based on one or more previous times that a computer job utilized a particular resource, RBS 100 determines that the computer job has an “x”% utilization criterion for the particular resource. RBS 100 then uses this usage criterion when scheduling computer jobs.

RBS100は、利用基準を判断するためにRBS100が分析する、スケジュールされるべきジョブの実行可能なコード108も入力する。   The RBS 100 also inputs executable code 108 of the job to be scheduled that the RBS 100 analyzes to determine usage criteria.

スケジューリング判断の延期
1つの実施例では、コンピュータジョブが特定のリソースを利用することを許可されるべきであるかどうかについての判断は延期されてもよい。たとえば、特定のコンピュータジョブは、リソースに基づいたスケジューラが特定のコンピュータジョブをスケジュールすべきであるかどうかを考慮しさえする前に、他のコンピュータジョブからの指定されたある数の要求を処理することができるようにする利用基準を有していてもよい。1つの実施例では、リソースの利用が閾値を上回ると、RBSは特定のコンピュータジョブの実行を延期する。特定のコンピュータジョブは、特定のコンピュータジョブをスケジュールする前に、処理され得る他のコンピュータジョブからの要求の数を指定する。1つの実施例では、その数の要求が処理された後、次に特定のコンピュータジョブがスケジュールされる。別の実施例では、要求が処理された後、RBSは特定のコンピュータジョブがリソースを有することができるようにするかどうかを判断する。
Postponing Scheduling Decision In one embodiment, the decision about whether a computer job should be allowed to use a particular resource may be postponed. For example, a particular computer job processes a specified number of requests from other computer jobs before even considering whether a resource-based scheduler should schedule a particular computer job You may have usage criteria that allow you to In one embodiment, the RBS suspends execution of certain computer jobs when resource utilization exceeds a threshold. A particular computer job specifies the number of requests from other computer jobs that can be processed before scheduling a particular computer job. In one embodiment, after that number of requests has been processed, a particular computer job is then scheduled. In another embodiment, after the request is processed, the RBS determines whether to allow a particular computer job to have resources.

1つの実施例では、リソースに基づいたスケジューラは、遅延なく満たされるべきであるリソース要求のための通常のワークリストと、延期され得るリソース要求のための延期ワークリストとを有する。延期リストにおける各項目は、要求が延期リストにのると現在の要求番号を刻印されてもよい。これらの延期された要求は、どの延期された要求が最初に処理されるべきであるかに基づいて順序付けられてもよい。1つの実施例では、複数の延期ワークリストが存在する。RBSが新しい要求を開始することを決定すると、RBSはまず、通常のリストに対して、いずれの要求も期限切れであるかどうかを確認するために延期リストを見て、次いでそれらを次に取得し得る。   In one embodiment, the resource-based scheduler has a normal worklist for resource requests that should be satisfied without delay and a deferred worklist for resource requests that can be deferred. Each item in the deferral list may be stamped with the current request number when the request is on the deferral list. These deferred requests may be ordered based on which deferred requests should be processed first. In one embodiment, there are multiple deferred worklists. When the RBS decides to initiate a new request, the RBS first looks at the deferred list against the regular list to see if any requests have expired, and then gets them next. obtain.

リソースに基づいたスケジューリングワークリスト
1つの実施例では、RBS100は、コンピュータジョブが使用するようにスケジュールされ得るリソースに基づいたスケジューリングワークリスト120をリソースごとに有する。たとえば、RBS100は、CPUリソースワークリスト120(1)、ディスクI/Oワークリスト120(2)、ネットワークI/Oワークリスト120(3)、および他のリソースワークリスト120(n)を有する。他のリソースワークリストの例は、ネットワークリソースワークリスト、ビデオリソースワークリスト、キーボードリソースワークリストを含むが、これらに限定されない。各ワークリスト120は、そのリソースに対応するリソースを利用することを待っているジョブを備える。図を不明瞭にしないために、すべての可能なリソースに基づいたスケジューリングワークリストが図1Aに示されているわけではない。1つの実施例では、特定のワークリストは、リソースの組合せを利用するコンピュータジョブのためのものである。1つの実施例では、特定のリソースのためのワークリストが2つ以上あり、各ワークリストは異なる優先順位に対応する。たとえば、優先順位が高いコンピュータジョブがあるワークリストに入り、優先順位が中程度であるコンピュータジョブが別のワークリストに入る、などである。ワークリストは順序付けられる場合もあれば、順序付けられない場合もある。
Resource Based Scheduling Worklist In one embodiment, the RBS 100 has a resource based scheduling worklist 120 for each resource that can be scheduled for use by a computer job. For example, the RBS 100 has a CPU resource work list 120 (1), a disk I / O work list 120 (2), a network I / O work list 120 (3), and other resource work lists 120 (n). Examples of other resource work lists include, but are not limited to, network resource work lists, video resource work lists, keyboard resource work lists. Each work list 120 includes a job waiting to use a resource corresponding to the resource. To avoid obscuring the diagram, a scheduling worklist based on all possible resources is not shown in FIG. 1A. In one embodiment, the specific work list is for a computer job that utilizes a combination of resources. In one embodiment, there are two or more worklists for a particular resource, each worklist corresponding to a different priority. For example, a computer job with a high priority enters a work list, and a computer job with a medium priority enters another work list. Worklists may or may not be ordered.

1つの実施例では、RBS100は、実行可能なコード108の分析に基づいて、どのワークリストにコンピュータジョブを載せるかを判断する。たとえば、1つの実施例では、RBS100は、コンピュータジョブの実行可能なコード108における命令を調べて、コンピュータジョブがどのリソースを必要としているかを判断する。   In one embodiment, RBS 100 determines which worklist to place the computer job based on an analysis of executable code 108. For example, in one embodiment, RBS 100 examines instructions in the executable code 108 of a computer job to determine what resources the computer job requires.

1つの実施例では、十分な量のコンピュータリソースが利用可能である場合、RBS100は、リソースに対応するワークリストにおけるコンピュータジョブのうちの1つにリソースを与える。たとえば、スケジューリング論理112は、リソースの利用可能容量およびコンピュータジョブの利用基準に基づいて、ワークリスト上のコンピュータジョブのうちの1つを選択する。他の選択基準を用いることができる。選択基準は、ジョブをワークリストに加えた順序、コンピュータジョブの優先順位(たとえばプロセスの優先順位、スレッドの優先順位)、ならびにリソースの利用可能容量とジョブのリソース必要性とのマッチングを含むが、これらに限定されない。選択は、これらの基準のいずれかの組合せおよび具体的に記載されていない他の基準に基づいていてもよい。   In one embodiment, if a sufficient amount of computer resources are available, the RBS 100 provides resources to one of the computer jobs in the work list corresponding to the resources. For example, the scheduling logic 112 selects one of the computer jobs on the work list based on the available capacity of the resource and the computer job usage criteria. Other selection criteria can be used. Selection criteria include the order in which jobs were added to the worklist, computer job priority (eg, process priority, thread priority), and matching of available resource capacity to job resource needs, It is not limited to these. The selection may be based on any combination of these criteria and other criteria not specifically described.

リソースに基づいたスケジューリングワークリストを持たないリソースに基づいたスケジューラ
1つの実施例では、RBS100は、さまざまなコンピュータリソースに対応するスケジューリングワークリストを使用しない。図1Bを参照して、RBS100は、非特定的な順序で継続的にコンピュータジョブをスケジュールする要求を受取る。たとえば、アプリケーションは、コンピュータジョブを実行させることを望むと、要求をRBS100に送って、1つ以上のコンピュータジョブをスケジュールする。RBS100は、特定のコンピュータジョブがどのリソースを使用するかを判断するか、または通知される。リソースの例は、プロセッサ304、記憶装置310、ディスプレイ312、入力装置314、およびネットワーク通信インターフェイス318、およびネットワーク184を介してアクセスされるネットワークリソース182を含む。
Resource Based Scheduler Without Resource Based Scheduling Worklist In one embodiment, RBS 100 does not use scheduling worklists corresponding to various computer resources. Referring to FIG. 1B, RBS 100 receives requests to continuously schedule computer jobs in a non-specific order. For example, if an application wants to run a computer job, it sends a request to the RBS 100 to schedule one or more computer jobs. The RBS 100 determines or is notified of which resource a particular computer job uses. Examples of resources include processor 304, storage device 310, display 312, input device 314, and network communication interface 318, and network resource 182 accessed via network 184.

RBS100は、特定のリソースの利用について判断するか、または通知される。RBS100はまた、特定のリソースに関する、コンピュータジョブが有する利用基準について判断するか、または通知される。特定のリソースの利用および利用基準に基づいて、RBS100は、特定のリソースを利用するように特定のコンピュータジョブをスケジュールすべきであるかどうかを判断する。たとえば、ネットワーク通信インターフェイス318の利用がコンピュータジョブの利用基準を満たす場合、RBS100はネットワーク通信インターフェイス318を用いて実行するようにコンピュータジョブをスケジュールする。ネットワーク通信インターフェイス318の利用がコンピュータジョブの利用基準を満たさない場合には、RBS100はネットワーク通信インターフェイス318を使用するようにコンピュータジョブをスケジュールすることはない。むしろ、RBS100は待機してもよく、ネットワーク通信インターフェイス318の利用がコンピュータジョブの利用基準を満たすときにコンピュータジョブをスケジュールしてもよい。   The RBS 100 determines or is notified about the use of a particular resource. The RBS 100 also determines or is notified about the usage criteria that the computer job has regarding a particular resource. Based on specific resource usage and usage criteria, the RBS 100 determines whether a specific computer job should be scheduled to use the specific resource. For example, if the use of the network communication interface 318 meets the computer job usage criteria, the RBS 100 schedules the computer job to be executed using the network communication interface 318. If the use of the network communication interface 318 does not meet the computer job usage criteria, the RBS 100 does not schedule the computer job to use the network communication interface 318. Rather, the RBS 100 may wait and schedule a computer job when the use of the network communication interface 318 meets the computer job usage criteria.

リソースの優先順位付け
1つの実施例では、コンピュータリソースはスケジューリングの目的で優先順位をつけられる。たとえば、CPU、ディスクI/O、ネットワークI/O、および他のリソースは、リソースの相対速度に基づいてランク付けされてもよい。たとえば、ディスクI/Oは、CPUリソースよりも遅いリソースと称されてもよく、したがって、より高い優先順位を与えられ得る。同様に、ネットワークI/Oリソースは、ディスクI/Oよりも速いがCPUよりも遅くてもよい。したがって、ネットワークリソースは、CPUよりも高いがディスクI/O未満の優先順位を与えられるであろう。RBS100がより遅いリソースを考慮に入れ、優先順位がより高いこれらのリソースをスケジュールすると、CPUなどのより速いリソースの遅延を最小限にすることができる。
Resource prioritization In one embodiment, computer resources are prioritized for scheduling purposes. For example, CPU, disk I / O, network I / O, and other resources may be ranked based on the relative speed of the resources. For example, disk I / O may be referred to as a slower resource than a CPU resource and may therefore be given higher priority. Similarly, network I / O resources may be faster than disk I / O but slower than the CPU. Thus, network resources will be given higher priority than the CPU but less than disk I / O. If RBS 100 takes into account slower resources and schedules these resources with higher priorities, the delay of faster resources such as CPUs can be minimized.

アプリケーションに基づいた例
以下は、アプリケーションにおけるリソースに基づいたスケジューリングの一例である。例として、アプリケーションはデフラグ用プログラムまたはウイルススキャナであってもよい。この例では、コンピュータジョブAは、ディスクI/Oスケジューリングワークリスト120(2)の上部にあり、60%のディスクI/O利用可能容量の利用基準を有し、ディスクI/Oスケジューリングワークリスト120(2)上で次であるコンピュータジョブBは、20%のディスクI/O利用可能容量の利用基準を有する。ディスクI/Oが30%の利用可能容量を有する場合、RBS100はコンピュータジョブAをスケジュールすることはないであろう。なぜなら、ディスクI/Oは十分な利用可能容量を持たないためである。しかし、コンピュータジョブBはスケジュールされ得るであろう。RBS100は、この場合、ディスクI/Oを無駄にする代わりに利用するように適切なコンピュータジョブ(コンピュータジョブB)をスケジュールすることによって30%のディスクI/O利用可能容量を使用する。RBS100が60%のディスクI/Oを必要とするコンピュータジョブAにディスクI/Oリソースを与えた場合、これはコンピュータジョブの衝突を引起していたかもしれない。なぜなら、200%以上のディスクI/Oリソースが割当てられていたであろうという理由のためである。
Application-based example The following is an example of resource-based scheduling in an application. As an example, the application may be a defragmentation program or a virus scanner. In this example, computer job A is at the top of disk I / O scheduling worklist 120 (2), has a utilization standard of 60% disk I / O available capacity, and disk I / O scheduling worklist 120. (2) Computer job B, which is the next above, has a usage criterion of 20% disk I / O available capacity. If the disk I / O has 30% available capacity, RBS 100 will not schedule computer job A. This is because the disk I / O does not have a sufficient usable capacity. However, computer job B could be scheduled. The RBS 100 then uses 30% disk I / O available capacity by scheduling an appropriate computer job (computer job B) to use instead of wasting disk I / O. If RBS 100 provided disk I / O resources to computer job A requiring 60% disk I / O, this may have caused a computer job conflict. This is because more than 200% of disk I / O resources would have been allocated.

カーネルレベルのリソースに基づいたスケジューラ
1つの実施例では、RBS100はカーネルレベルでO/Sにおいて実現される。このような実施例では、カーネルレベルのRBS100は、実行を要求しているコンピュータジョブ(たとえばスレッド)の全ワークリストの十分な知識を有している。したがって、RBS100は、任意のリソースの利用割合を判断する必要なく、リソース可用性に基づいて実行を順序付けることができる。これは、RBS100が既にさまざまなリソースのスケジューリングを完全に制御しているためである。測定の必要はなく、RBS100はそのままでリソースを割当てるものを既に知っている。
Scheduler Based on Kernel Level Resources In one embodiment, RBS 100 is implemented in O / S at the kernel level. In such an embodiment, kernel level RBS 100 has sufficient knowledge of the entire work list of computer jobs (eg, threads) requesting execution. Therefore, the RBS 100 can order execution based on resource availability without having to determine the usage rate of any resource. This is because the RBS 100 has already completely controlled the scheduling of various resources. There is no need for measurement, and the RBS 100 already knows what to allocate resources as is.

プロセスフロー
図2は、この発明の実施例に従った、リソースに基づいたスケジューリングのためのプロセス200のステップを図示するフローチャートである。プロセス200のステップは、説明の都合上、特定の順序で記載されている。しかし、ステップは異なる順序で行なわれてもよい。さらに、ステップは何度も繰返されてもよい。ステップ202において、RBS100は1つ以上のジョブの利用基準を受取る。たとえば、アプリケーションプログラムが利用基準をRBS100に提供する。アプリケーションは、異なるコンピュータジョブに異なる基準を指定できる。アプリケーションがコンピュータジョブに利用基準を指定する必要はない。
Process Flow FIG. 2 is a flowchart illustrating the steps of a process 200 for resource-based scheduling according to an embodiment of the invention. The steps of process 200 are described in a specific order for convenience of explanation. However, the steps may be performed in a different order. Further, the steps may be repeated many times. In step 202, RBS 100 receives usage criteria for one or more jobs. For example, an application program provides usage criteria to the RBS 100. An application can specify different criteria for different computer jobs. Applications do not need to specify usage criteria for computer jobs.

アプリケーションは、この発明の実施例に従って、RBS100にパラメータを送ってリソース利用を制御する。リソース利用の制御は、ディスクI/O、CPUおよびネットワークを含むが、これらに限定されない。たとえば、アプリケーションは、上記の3つのリソースの閾値レベルのいずれかの組合せまたは他のリソースが得られるまでは、コンピュータジョブの実行を要求することができる。さらに、アプリケーションは、異なるコンピュータジョブに異なるリソース閾値レベルを指定することができる。たとえば、アプリケーションは、1つの実施例に従って、各コンピュータジョブに異なるリソース閾値レベルを指定する。したがって、細分化されたリソース管理が可能である。   The application controls the resource usage by sending parameters to the RBS 100 according to an embodiment of the present invention. Control of resource utilization includes, but is not limited to, disk I / O, CPU and network. For example, an application can request execution of a computer job until any combination of the above three resource threshold levels or other resources are obtained. In addition, applications can specify different resource threshold levels for different computer jobs. For example, the application specifies a different resource threshold level for each computer job according to one embodiment. Therefore, subdivided resource management is possible.

ステップ204において、RBS100は1つ以上のジョブの利用基準を判断する。1つの実施例では、RBS100はコンピュータジョブによる特定のリソースの予想される利用を判断し、利用基準は予想されるリソース利用に基づく。1つの実施例では、RBS100は、特定のコンピュータジョブにおける命令を調べることによって、特定のコンピュータジョブの予想される利用を判断する。1つの実施例では、RBS100は、特定のコンピュータジョブによるリソースの以前の利用を表わす記憶された値に、予想される利用を基づかせる。   In step 204, the RBS 100 determines usage criteria for one or more jobs. In one embodiment, the RBS 100 determines the expected usage of a particular resource by the computer job and the usage criteria is based on the expected resource usage. In one embodiment, RBS 100 determines the expected use of a particular computer job by examining instructions in the particular computer job. In one embodiment, the RBS 100 bases the expected usage on a stored value that represents the previous usage of the resource by a particular computer job.

ステップ206において、コンピュータジョブを、リソースに基づいたスケジューリングワークリストに加える。たとえば、特定のプロセスまたは少なくとも特定のプロセスのスレッドが、少なくとも1つのリソースに基づいたスケジューリングワークリストに載せられる。より多くのジョブがスケジュールされることを要求すると、リソースに基づいたスケジューリングワークリストにジョブが加えられる。1つの実施例では、多くの異なるコンピュータジョブからの要求がワークリストに載せられる。1つの実施例では、要求は、特定のリソースを利用するようにスケジュールされるコンピュータジョブによって満たされることができる。1つの実施例では、コンピュータジョブは、コンピュータジョブの優先順位に基づいて、ワークリスト上のある場所に挿入される。1つの実施例では、プロセスのスレッドが実行する順序が重要であり得るので、コンピュータジョブ(たとえばスレッド)は所望の実行順序を保つようにワークリストに位置する。   In step 206, the computer job is added to a resource-based scheduling worklist. For example, a particular process or at least a thread of a particular process is placed on a scheduling worklist based on at least one resource. As more jobs are requested to be scheduled, they are added to a resource-based scheduling worklist. In one embodiment, requests from many different computer jobs are placed on the work list. In one embodiment, the request can be satisfied by a computer job that is scheduled to utilize a particular resource. In one embodiment, computer jobs are inserted at a location on the work list based on computer job priority. In one embodiment, the order in which the threads of a process execute may be important, so that computer jobs (eg, threads) are placed on the work list to maintain the desired execution order.

ステップ208において、特定のコンピュータリソースが、利用されるように選択される。たとえば、RBS100は、より遅いと称されたコンピュータリソースがより高い優先順位を有するべきであると判断してもよい。特定の例として、RBS100はディスクI/Oリソースを選択する。しかし、選択は、スレッドフロー、コンピュータジョブの優先順位(たとえばプロセスの優先順位、スレッドの優先順位)、各ワークリスト上で実行を待っているジョブ(たとえばスレッド)の数、およびジョブ(たとえばスレッドまたはプロセス)が必要とする他のリソースの可用性などの他の要因に基づき得る。   In step 208, specific computer resources are selected to be utilized. For example, the RBS 100 may determine that a computer resource that is referred to as slower should have a higher priority. As a specific example, RBS 100 selects a disk I / O resource. However, the choices include thread flow, computer job priority (eg, process priority, thread priority), number of jobs (eg, threads) awaiting execution on each worklist, and job (eg, thread or Based on other factors such as the availability of other resources required by the process.

ステップ210において、RBS100は選択されたコンピュータリソースの利用を判断する。利用は、最近の間隔にわたる使用率に基づいていてもよい。たとえば、利用は、最新の「x」量子または最近の期間などの任意の便利な基準に基づいていてもよい。しかし、利用は間隔に基づく必要はない。たとえば、利用は、特定の時点において実行を待っているオペレーションの数に基づき得る。   In step 210, the RBS 100 determines the use of the selected computer resource. Utilization may be based on usage over recent intervals. For example, usage may be based on any convenient criteria such as the latest “x” quantum or a recent period. However, usage need not be based on intervals. For example, utilization may be based on the number of operations waiting to be executed at a particular time.

RBS100がリソース利用を計算する場合、この発明の1つの実施例に従うと、測定されるのは、特定のアプリケーションに関連付けられるジョブ以外のジョブのリソース利用である。CPU利用閾値が20%に設定される以下の例を用いて説明する。特定のアプリケーションに関連付けられるコンピュータジョブを実行可能にする前にCPU利用が20%未満である場合、CPU利用は、コンピュータジョブが実行されると20%より高く増加し得る。この20%を超える増加は、この例ではCPUリソース利用違反とはみなされない。同様の原理がネットワーク、ディスクI/Oリソースおよび他のリソースに当てはまり得る。   When the RBS 100 calculates resource usage, according to one embodiment of the present invention, what is measured is the resource usage of jobs other than those associated with a particular application. This will be described using the following example in which the CPU usage threshold is set to 20%. If the CPU usage is less than 20% before enabling the computer job associated with a particular application, the CPU usage may increase above 20% when the computer job is executed. This increase over 20% is not considered a CPU resource utilization violation in this example. Similar principles may apply to network, disk I / O resources, and other resources.

1つの実施例では、RBS100は、将来の時間間隔にわたる選択されたコンピュータリソースの利用を推定する。RBS100は、リソースの最近の利用に基づいて将来の利用を推定してもよい。特定の例として、ネットワークI/Oの最近の利用が測定される(または、さもなければ学習される)。最近のネットワークI/Oの利用に基づいて、近い将来のネットワークI/Oの利用の推定がなされる。推定は他の要因にも基づいていてもよい。   In one embodiment, RBS 100 estimates the utilization of selected computer resources over future time intervals. The RBS 100 may estimate future usage based on recent usage of resources. As a specific example, recent utilization of network I / O is measured (or otherwise learned). Based on recent network I / O usage, an estimate of network I / O usage in the near future is made. The estimation may be based on other factors.

ステップ212において、RBS100は、選択されたリソースに対応するワークリスト上のコンピュータジョブのうちの1つを選択する。RBS100は、選択されたコンピュータリソースを使用するように、選択されたコンピュータジョブを実行用にスケジュールする。RBS100は、特定のリソースの利用および特定のコンピュータリソースについてのワークリスト上のコンピュータジョブのうちの少なくとも1つの利用基準に基づいて、選択を行なう。たとえば、選択されたリソースの利用が60%であり、特定のコンピュータジョブの利用基準が、選択されたリソースが40%未満の利用を有するというものであれば、特定のコンピュータジョブはスケジュールされない。なぜなら、利用基準を満たさないためである。この場合、選択されたリソースが60%の利用を有することを利用基準が許可すれば、RBS100は別のコンピュータジョブを選択し、そのコンピュータジョブをスケジュールすることができるであろう。   In step 212, the RBS 100 selects one of the computer jobs on the work list corresponding to the selected resource. The RBS 100 schedules the selected computer job for execution to use the selected computer resource. The RBS 100 makes a selection based on the usage criteria of at least one of the usage of the specific resource and the computer job on the work list for the specific computer resource. For example, if the usage of a selected resource is 60% and the usage criteria for a particular computer job is that the selected resource has less than 40% usage, the particular computer job is not scheduled. This is because the usage standard is not satisfied. In this case, if the usage criteria allow the selected resource to have 60% usage, the RBS 100 will be able to select another computer job and schedule that computer job.

コンピュータジョブを一つずつスケジュールするためにプロセス200のステップのうちの少なくともいくつかを繰返すことによって、RBSはコンピュータジョブについてのスケジューリング順序を判断する。   By repeating at least some of the steps of process 200 to schedule computer jobs one by one, the RBS determines the scheduling order for the computer jobs.

ステップ214において、RBS100は、ちょうど実行したコンピュータジョブについてのリソース利用情報を記憶する。RBS100は、後にこのリソース利用情報を用いて、コンピュータジョブについての利用基準を判断してもよい。   In step 214, the RBS 100 stores resource usage information for the computer job just executed. The RBS 100 may use this resource usage information later to determine the usage criteria for the computer job.

マイクロジョブ
1つの実施例では、RBS100はマイクロジョブをスケジュールする。1つの実施例では、マイクロジョブのサイズは、特定のマイクロジョブが処理ジョブを実行するために使用されるリソースを所有する割当時間内にその特定のマイクロジョブが完了可能なサイズである。1つの実施例では、各マイクロジョブは、自身の割当時間内に完了するようなサイズである。しかし、マイクロジョブの中には、大きすぎて自身の割当時間内に実行を完了不可能なものもあり得る。
Micro Job In one embodiment, RBS 100 schedules a micro job. In one embodiment, the size of a microjob is the size that a particular microjob can complete within the allotted time that owns the resources used to execute the processing job. In one embodiment, each microjob is sized to complete within its allotted time. However, some microjobs may be too large to complete execution within their allotted time.

1つの実施例では、割当時間は量子である。量子は、コンピュータコードの一部(たとえばスレッド)に与えられ、かつその間はそのコード部分がCPUリソースを所有するタイムスライスである。異なるオペレーティングシステムは異なる量子を使用する。さらに、特定のコード部分に割振られる量子は、実行時間中に状況に基づいて変化し得る。たとえば、O/Sは、スレッドに割当てられる量子のサイズを増大または減少させ得る。1つの実施例では、コンピュータジョブは、そのコンピュータジョブに割当てられると予想される量子のサイズに基づいてマイクロジョブに分割される。別の実施例では、コンピュータジョブは、そのコンピュータジョブに割当てられた量子のサイズに基づいてマイクロジョブに分割される。コンピュータジョブのどの部分をマイクロジョブとして分けるべきかについての判断は、実行時間前または実行時間中のいずれかに下され得る。   In one embodiment, the allocation time is quantum. A quantum is a time slice that is given to a portion of computer code (eg, a thread) and during which that portion of the code owns CPU resources. Different operating systems use different quanta. Further, the quantum allocated to a particular code portion can change based on the situation during execution time. For example, O / S may increase or decrease the size of the quantum allocated to a thread. In one embodiment, a computer job is divided into microjobs based on the quantum size expected to be assigned to the computer job. In another embodiment, a computer job is divided into microjobs based on the quantum size assigned to the computer job. The decision as to which part of a computer job should be divided as a microjob can be made either before or during execution time.

マイクロジョブは、1つの実施例に従って、次のマイクロジョブが実行されるまでの実行の一時休止を安全に見込んでおきつつ単一の単位として完了され得る、実質的により小さい(たとえば最小の)作業単位である。実行の一時休止を安全に見込んでおくというのは、特定のマイクロジョブの実行を、すべてのマイクロジョブの実行から生じる結果に影響を及ぼすことなく遅らせることができるという意味である。   A microjob, according to one embodiment, can be completed as a single unit while safely allowing for a pause in execution until the next microjob is executed, substantially smaller (eg, minimal) work Unit. Having a safe pause in execution means that the execution of a particular microjob can be delayed without affecting the results that result from the execution of all microjobs.

マイクロジョブはスレッドの一部であり得る。たとえば、スレッドが複数のマイクロジョブに分割され得る。これらのマイクロジョブは、スレッドがスケジュールされる方法と同様にスケジュールされ得る。しかし、上述のように、1つの実施例では、マイクロジョブは、自身が処理リソースを所有する量子または他の期間にわたって実行可能であれば実行を完了することになる。   A micro job can be part of a thread. For example, a thread can be divided into multiple microjobs. These microjobs can be scheduled in the same way that threads are scheduled. However, as described above, in one embodiment, a microjob will complete execution if it can execute over the quantum or other period of time it owns processing resources.

マイクロジョブは、どの時点においても非常に少量のリソース(たとえばCPU時間、メモリ割当)しか必要とし得ない。どの時点においてもそのように最小限のリソースしか使用しないため、見えないプロセスになり得る。マイクロジョブを小さく保つことによって、コンピュータジョブが1度に使用するコンピュータリソースが少量で済むようになる。したがって、この発明の1つの実施例に従って、マイクロジョブの実行は、コンピュータシステム内の他のアプリケーションの性能に重大な影響を与えないように十分少量のリソースを消費する。   Microjobs can require very little resources (eg, CPU time, memory allocation) at any point in time. Because it uses such minimal resources at any point in time, it can be an invisible process. Keeping microjobs small reduces the amount of computer resources that a computer job uses at one time. Thus, according to one embodiment of the present invention, the execution of microjobs consumes a sufficiently small amount of resources so as not to significantly affect the performance of other applications in the computer system.

例示的なAPI
この発明の実施例は、アプリケーションがさまざまなリソース利用パラメータを指定することができるようにするためのAPIである。1つの実施例では、RBS100はAPIのようなものを有する。アプリケーションは、APIを用いてコンピュータジョブ(たとえばプロセス、スレッド、マイクロジョブ、または他のコード部分)についての利用基準を指定することができる。例示的なAPIは、CPU、ディスク、およびネットワークについて以下のリソース閾値パラメータを有する。
Exemplary API
An embodiment of the present invention is an API that allows an application to specify various resource utilization parameters. In one embodiment, RBS 100 has something like an API. An application can use APIs to specify usage criteria for computer jobs (eg, processes, threads, microjobs, or other code portions). The exemplary API has the following resource threshold parameters for CPU, disk, and network.

・CPU利用閾値
・保留ディスクI/Oカウント閾値
・ネットワーク利用閾値
各コンピュータジョブについて上記のパラメータが指定され得る。たとえば、ネットワークを使用するコンピュータジョブについては、ネットワーク閾値が使用され得る。しかし、ネットワークを使用しないコンピュータジョブについては、ネットワーク閾値はゼロであり得る。したがって、この発明の実施例に従って、細分化されたリソース管理が提供される。
CPU usage threshold Hold disk I / O count threshold Network usage threshold The above parameters may be specified for each computer job. For example, for computer jobs that use the network, a network threshold may be used. However, for computer jobs that do not use the network, the network threshold may be zero. Thus, according to an embodiment of the present invention, granular resource management is provided.

特定の例として、アプリケーションは、CPU利用が50%未満であり、I/Oディスク利用が40%未満であり、ネットワークトラフィックが60%未満である場合にのみ特定のコンピュータジョブの実行を要求し得る。全く何もなしも含めて、リソース閾値要因のいずれかの組合せが用いられ得る。CPU利用閾値は、この発明の実施例に従って、いずれかの他のジョブの利用閾値とは対照的に、RBSのCPUの使用ごとに異なる。   As a specific example, an application may require a particular computer job to run only if CPU utilization is less than 50%, I / O disk utilization is less than 40%, and network traffic is less than 60%. . Any combination of resource threshold factors can be used, including nothing at all. The CPU usage threshold varies from one RBS CPU usage to another, according to embodiments of the invention, as opposed to any other job usage threshold.

以下の2つのパラメータを用いて、利用を測定すべき間隔を指定する。
・CPU利用ウィンドウ
・ネットワーク利用ウィンドウ
CPU利用ウィンドウパラメータは、それにわたるCPU利用が計算されるタイムウィンドウを規定する。たとえば、最新のnミリ秒にわたるCPU利用が平均化される。ネットワーク利用ウィンドウは、それにわたるネットワーク利用が計算されるタイムウィンドウを規定する。これらのパラメータはRBS100に内在し得る。しかし、アプリケーションはこれらのパラメータをオーバーライドし得る。保留ディスクI/Oはどの時点においても絶対であり、したがって計算する必要はない。
The following two parameters are used to specify the interval at which usage should be measured.
CPU usage window Network usage window The CPU usage window parameter defines the time window over which CPU usage is calculated. For example, CPU utilization over the last n milliseconds is averaged. The network usage window defines a time window over which network usage is calculated. These parameters may be inherent in the RBS 100. However, the application can override these parameters. The pending disk I / O is absolute at any point in time and therefore does not need to be calculated.

必須の遊休時間パラメータがアプリケーションからRBSに渡されて、どのようにコンピュータジョブがある時間にわたって分散されるかを制御し得る。必須の遊休時間パラメータは任意である。さらに、使用時には、必須の遊休パラメータの値はゼロであり得る。   Mandatory idle time parameters can be passed from the application to the RBS to control how computer jobs are distributed over a period of time. The mandatory idle time parameter is arbitrary. Further, in use, the value of the mandatory idle parameter may be zero.

・必須の遊休時間
RBSは、すべてのコンピュータジョブが実行された後のシステム遊休時間であると規定される「遊休時間」を追跡する。たとえば、アプリケーションは、RBSを用いてコンピュータジョブをワークリストに入れることができる。リソースに基づいたワークリスト120にコンピュータジョブがない場合、RBSは指定された必須の遊休時間だけ待ってから起きて、アプリケーションが付加的な作業を行なうことを認可する。たとえば、デフラグ用プログラムは、まずある数のコンピュータジョブを実行してディスクドライブをデフラグし、その後RBSコンピュータジョブスケジューラによって休止され得る。指定された必須の遊休時間の後、RBSは、デフラグ用プログラムを呼出して付加的な作業を認可する。たとえば、デフラグ用プログラムは、メモリの解放などのクリーンアップジョブを実行し得る。必須の遊休時間は、アプリケーションによって調整され得るデフォルトパラメータであり得る。
Mandatory idle time The RBS tracks the “idle time” defined as the system idle time after all computer jobs have been executed. For example, an application can use RBS to place a computer job into a work list. If there are no computer jobs in the resource-based work list 120, the RBS waits for the specified required idle time and wakes up to authorize the application to perform additional work. For example, the defragmentation program may first execute a certain number of computer jobs to defragment the disk drive and then be paused by the RBS computer job scheduler. After the specified mandatory idle time, the RBS calls a defragmentation program to authorize additional work. For example, the defragmentation program may execute a cleanup job such as memory release. The mandatory idle time may be a default parameter that can be adjusted by the application.

以下のパラメータは、リソース利用が閾値を上回るときにコンピュータジョブの実行を待つことに関する。   The following parameters relate to waiting for a computer job to run when resource utilization exceeds a threshold.

・待ち時間
・最大待ち時間
リソース利用が現在高すぎてコンピュータジョブを実行できないとRBSが判断した場合、RBSは、指定された待ち時間だけ待ってから、リソース利用を再確認する。待ち時間パラメータは、RBSがリソース利用が高すぎると判断するたびに増加され得る。たとえば、RBSは、最大待ち時間に達するまで待ち時間パラメータを増加させることができる。これらのパラメータは、アプリケーションが最初に始動されるときにアプリケーションによって指定され得る。アプリケーションは、実行時間中にこれらのパラメータを調整することができる。
Wait time Maximum wait time If the RBS determines that the resource usage is currently too high to execute the computer job, the RBS waits for the specified wait time before reconfirming the resource usage. The latency parameter may be increased each time the RBS determines that resource utilization is too high. For example, the RBS can increase the latency parameter until the maximum latency is reached. These parameters can be specified by the application when the application is first started. The application can adjust these parameters during runtime.

例示的なAPIは時間(たとえばミリ秒)を用いてさまざまなパラメータを指定するが、量子などの他の基準を用いてもよい。   The exemplary API uses time (eg, milliseconds) to specify various parameters, but other criteria such as quantum may be used.

変形例
1つの実施例では、RBS100はオペレーティングシステムの一部である。別の実施例では、RBS100は、他のアプリケーションのためのコンピュータジョブのスケジューリングを容易にするスタンドアローンのアプリケーションである。さらに別の実施例では、RBS100は、アプリケーションプログラムに統合され、その特定のアプリケーションのためにスケジュールする。たとえば、RBS100は、ディスクデフラグ用プログラムまたはウイルス検出プログラムに統合されてもよい。
Variations In one embodiment, RBS 100 is part of an operating system. In another embodiment, RBS 100 is a stand-alone application that facilitates scheduling of computer jobs for other applications. In yet another embodiment, RBS 100 is integrated into an application program and schedules for that particular application. For example, the RBS 100 may be integrated into a disk defragmentation program or a virus detection program.

RBS100がオペレーティングシステムの外部で実行される場合、RBS100は、1つの実施例では、自身のリソース利用において自己制限する。たとえば、RBS100は自身のリソース利用を監視し、自身のリソース利用が高くなりすぎると、RBS100は、ある期間の間だけRBS100のスケジューリングを停止するようオペレーティングシステムに要求を出す。   If the RBS 100 is run outside of the operating system, the RBS 100, in one embodiment, is self-limiting in its resource usage. For example, the RBS 100 monitors its resource usage and if its resource usage becomes too high, the RBS 100 requests the operating system to stop scheduling the RBS 100 for a period of time.

さらに他の例
以下の例は、RBS100が動作し得る態様を示す。しかし、RBS100はこれらの例に記載されるように動作する必要はない。一例として、RBS100は特定のアプリケーションのために複数のコンピュータジョブをスケジュールする。これらのコンピュータジョブのうちのいくつかはディスクI/Oを必要とし得る。RBS100は、コンピュータジョブをスケジュールするための条件としてディスク利用を分析してもよい。ディスク利用が高すぎる場合、ディスク利用が低下してアプリケーションの特定のコンピュータジョブをスケジュールするまでRBS100は待機する。RBS100は、ディスクI/O利用を監視し続け、ディスクI/Oへのアクセスを求める他のアプリケーションがなければ、別のコンピュータジョブをスケジュールすることができる。しかし、この実施例では、別のアプリケーションがディスクI/Oの利用を求めると、RBS100は別のコンピュータジョブをスケジュールすることができない。したがって、他のアプリケーションがディスクI/Oを利用できる。
Yet another example The following example illustrates how the RBS 100 may operate. However, the RBS 100 need not operate as described in these examples. As an example, RBS 100 schedules multiple computer jobs for a particular application. Some of these computer jobs may require disk I / O. The RBS 100 may analyze disk usage as a condition for scheduling computer jobs. If the disk usage is too high, the RBS 100 waits until the disk usage falls and schedules a specific computer job for the application. The RBS 100 continues to monitor disk I / O usage and can schedule another computer job if there are no other applications seeking access to the disk I / O. However, in this embodiment, the RBS 100 cannot schedule another computer job if another application seeks to use the disk I / O. Therefore, other applications can use the disk I / O.

別の例として、RBS100はネットワーク使用率を分析してもよい。ネットワークトラフィックが高すぎる場合、トラフィックが減速するまでRBS100はアプリケーションのいずれのコンピュータジョブもスケジュールしない。ネットワークトラフィックが十分に低ければ、RBS100は実行用にコンピュータジョブをスケジュールする。RBS100は、ネットワークトラフィックが十分に低いままであることを念のために確認し続ける。ネットワークトラフィックが十分に低いままであれば、別のコンピュータジョブがスケジュールされてもよい。しかし、トラフィックが高くなりすぎると、実行するようにスケジュールされるさらに他のコンピュータジョブはない。これらの最後2つの例では、コンピュータジョブはマイクロジョブであってもよい。しかし、それは必要ではない。   As another example, RBS 100 may analyze network usage. If the network traffic is too high, RBS 100 will not schedule any computer jobs for the application until the traffic slows down. If the network traffic is low enough, RBS 100 schedules the computer job for execution. The RBS 100 continues to make sure that the network traffic remains low enough. If the network traffic remains low enough, another computer job may be scheduled. However, if the traffic gets too high, there are no other computer jobs that are scheduled to run. In these last two examples, the computer job may be a micro job. But that is not necessary.

ハードウェア概要
図3は、本発明の実施例が実現され得るコンピュータシステム300を図示するブロック図である。プロセス200のステップは、システム300の1つ以上のコンピュータ読取可能媒体の命令として記憶され、コンピュータシステム300のプロセッサ上で実行される。コンピュータシステム300は、情報を通信するためのバス302または他の通信メカニズムと、バス302に結合される、情報を処理するためのプロセッサ304とを含む。コンピュータシステム300はまた、バス302に結合される、プロセッサ304によって実行されるべき情報および命令を記憶するための、ランダムアクセスメモリ(RAM)または他の動的記憶装置などのメインメモリ306も含む。メインメモリ306はまた、プロセッサ304によって実行されるべき命令の実行中に、一時変数または他の中間情報を記憶するために用いられ得る。コンピュータシステム300はさらに、バス302に結合される、プロセッサ304のための静的情報および命令を記憶するための読出専用メモリ(ROM)308または他の静的記憶装置を含む。情報および命令を記憶するための、磁気ディスクまたは光学ディスクなどの記憶装置310が設けられ、バス302に結合される。コンピュータシステム300は、プロセッサ304をいくつでも有してよい。たとえば、1つの実施例では、コンピュータシステム300はマルチプロセッサシステムである。プロセッサ304は、コアをいくつでも有してよい。1つの実施例では、プロセッサ304はマルチコアプロセッサ304である。コンピュータシステム300は、ハイパースレッドマシン内で用いられ得る。
Hardware Overview FIG. 3 is a block diagram that illustrates a computer system 300 upon which an embodiment of the invention may be implemented. The steps of process 200 are stored as instructions on one or more computer readable media of system 300 and executed on a processor of computer system 300. Computer system 300 includes a bus 302 or other communication mechanism for communicating information, and a processor 304 coupled with bus 302 for processing information. Computer system 300 also includes a main memory 306, such as random access memory (RAM) or other dynamic storage device, coupled to bus 302 for storing information and instructions to be executed by processor 304. Main memory 306 may also be used to store temporary variables or other intermediate information during execution of instructions to be executed by processor 304. Computer system 300 further includes a read only memory (ROM) 308 or other static storage device coupled to bus 302 for storing static information and instructions for processor 304. A storage device 310, such as a magnetic disk or an optical disk, is provided and coupled to the bus 302 for storing information and instructions. Computer system 300 may have any number of processors 304. For example, in one embodiment, computer system 300 is a multiprocessor system. The processor 304 may have any number of cores. In one embodiment, processor 304 is a multi-core processor 304. The computer system 300 can be used in a hyper thread machine.

コンピュータシステム300は、コンピュータユーザに情報を表示するための、陰極線管(CRT)などのディスプレイ312にバス302を介して結合され得る。プロセッサ304に情報および指令選択を通信するための、英数字および他のキーを含む入力装置314がバス302に結合される。別の種類のユーザ入力装置は、プロセッサ304に方向情報および指令選択を通信するため、ならびにディスプレイ312上のカーソルの動きを制御するためのマウス、トラックボール、またはカーソル方向キーなどのカーソル制御部316である。この入力装置は典型的に、第1の軸(たとえばx)および第2の軸(たとえばy)の2本の軸における2自由度を有し、これにより、この装置が平面内の位置を指定することができる。   Computer system 300 may be coupled via bus 302 to a display 312 such as a cathode ray tube (CRT) for displaying information to a computer user. Coupled to the bus 302 is an input device 314 that includes alphanumeric characters and other keys for communicating information and command selections to the processor 304. Another type of user input device is a cursor control 316 such as a mouse, trackball, or cursor direction key for communicating direction information and command selections to the processor 304 and for controlling cursor movement on the display 312. It is. The input device typically has two degrees of freedom in two axes, a first axis (eg, x) and a second axis (eg, y), which allows the device to specify a position in the plane. can do.

本発明は、本明細書中において説明される技術を実現するためのコンピュータシステム300の使用に関する。本発明の1つの実施例によると、それらの技術は、プロセッサ304がメインメモリ306に含まれる1つ以上の命令の1つ以上のシーケンスを実行するのに応答して、コンピュータシステム300によって行われる。そのような命令は、記憶装置310などの別の機械読取可能媒体からメインメモリ306に読込まれ得る。メインメモリ306に含まれる命令のシーケンスの実行により、プロセッサ304が、本明細書中において説明されるプロセスステップを実行することになる。代替的な実施例では、ソフトウェア命令の代わりに、またはソフトウェア命令と組合せて、配線による回路構成を用いて本発明を実現してもよい。したがって、本発明の実施例は、ハードウェア回路構成およびソフトウェアのいずれの特定的な組合せにも限定されない。   The invention is related to the use of computer system 300 for implementing the techniques described herein. According to one embodiment of the invention, these techniques are performed by computer system 300 in response to processor 304 executing one or more sequences of one or more instructions contained in main memory 306. . Such instructions can be read into main memory 306 from another machine-readable medium, such as storage device 310. Execution of the sequence of instructions contained in main memory 306 results in processor 304 performing the process steps described herein. In an alternative embodiment, the present invention may be implemented using a wired circuit configuration instead of or in combination with software instructions. Thus, embodiments of the invention are not limited to any specific combination of hardware circuitry and software.

本明細書中で用いられるような「機械読取可能媒体」という用語は、機械に特定的な態様で操作させるデータを与えるのに関与するいずれかの媒体を指す。コンピュータシステム300を用いて実現される実施例では、たとえばプロセッサ304に実行用の命令を与える際に、さまざまな機械読取可能媒体が含まれる。そのような媒体は、不揮発性媒体、揮発性媒体、および送信媒体を含む多くの形態を取り得るがこれらに限定されない。不揮発性媒体は、たとえば、記憶装置310などの光学または磁気ディスクを含む。揮発性媒体は、メインメモリ306などの動的メモリを含む。送信媒体は、バス302を備える配線を含む、同軸ケーブル、銅線および光ファイバを含む。送信媒体はまた、電波および赤外線データ通信中に発生するような音波または光波の形態も取り得る。すべてのそのような媒体は、媒体によって搬送される命令が、機械に命令を読込む物理メカニズムによって検出され得るように具体的である必要がある。   The term “machine-readable medium” as used herein refers to any medium that participates in providing data that causes a machine to operation in a specific fashion. In an embodiment implemented using computer system 300, various machine-readable media are included, for example, in providing instructions for execution to processor 304. Such a medium may take many forms, including but not limited to, non-volatile media, volatile media, and transmission media. Non-volatile media includes, for example, optical or magnetic disks such as storage device 310. Volatile media includes dynamic memory, such as main memory 306. Transmission media includes coaxial cable, copper wire and optical fiber, including wiring with bus 302. Transmission media can also take the form of acoustic or light waves, such as those generated during radio wave and infrared data communications. All such media need to be specific so that the instructions carried by the medium can be detected by a physical mechanism that reads the instructions into the machine.

機械読取可能媒体の一般的な形態は、たとえば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、磁気テープ、もしくはいずれかの他の磁気媒体、CD−ROM、いずれかの他の光学媒体、パンチカード、紙テープ、孔のパターンを有するいずれかの他の物理媒体、RAM、PROM、EPROM、FLASH−EPROM、いずれかの他のメモリチップもしくはカートリッジ、後で説明されるような搬送波、またはそこからコンピュータが読込可能ないずれかの他の媒体を含む。   Common forms of machine-readable media include, for example, floppy disks, flexible disks, hard disks, magnetic tapes, or any other magnetic medium, CD-ROM, any other optical medium, punch Card, paper tape, any other physical medium with a pattern of holes, RAM, PROM, EPROM, FLASH-EPROM, any other memory chip or cartridge, carrier wave as described later, or computer therefrom Includes any other medium that can be read.

実行用の1つ以上の命令の1つ以上のシーケンスをプロセッサ304に搬送する際、さまざまな形態の機械読取可能媒体が含まれ得る。たとえば、命令は当初、リモートコンピュータの磁気ディスクで搬送され得る。リモートコンピュータは、自身の動的メモリに命令をロードし、モデムを用いて電話線で命令を送ることができる。コンピュータシステム300にローカルなモデムが電話線上のデータを受け、赤外線送信機を用いてそのデータを赤外線信号に変換することができる。赤外線検出器が、赤外線信号内に搬送されるデータを受信することができ、適切な回路構成がそのデータをバス302に乗せることができる。バス302は、データをメインメモリ306に搬送し、そこからプロセッサ304が命令を取出して実行する。メインメモリ306が受けた命令は、プロセッサ304による実行の前または後のいずれかに、記憶装置310に任意で記憶され得る。   In carrying one or more sequences of one or more instructions for execution to processor 304, various forms of machine-readable media may be included. For example, the instructions may initially be carried on a remote computer magnetic disk. The remote computer can load the instructions into its dynamic memory and send the instructions over a telephone line using a modem. A modem local to computer system 300 can receive the data on the telephone line and use an infra-red transmitter to convert the data to an infra-red signal. An infrared detector can receive the data carried in the infrared signal and appropriate circuitry can place the data on the bus 302. Bus 302 carries the data to main memory 306, from which processor 304 retrieves and executes the instructions. The instructions received by main memory 306 may optionally be stored on storage device 310 either before or after execution by processor 304.

コンピュータシステム300はまた、バス302に結合される通信インターフェイス318も含む。通信インターフェイス318は、ローカルネットワーク322に接続されるネットワークリンク320に、双方向データ通信結合を与える。たとえば、通信インターフェイス318は、対応する種類の電話線にデータ通信接続を与えるための統合サービスデジタル網(ISDN)カードまたはモデムであり得る。別の例として、通信インターフェイス318は、互換性のあるLANにデータ通信接続を与えるためのローカルエリアネットワーク(LAN)カードであり得る。無線リンクも実現され得る。いずれのそのような実現例においても、通信インターフェイス318は、さまざまな種類の情報を表わすデジタルデータストリームを搬送する電気、電磁または光学信号を送受信する。   Computer system 300 also includes a communication interface 318 that is coupled to bus 302. Communication interface 318 provides a two-way data communication coupling to network link 320 that is connected to local network 322. For example, communication interface 318 may be an integrated services digital network (ISDN) card or modem for providing a data communication connection to a corresponding type of telephone line. As another example, communication interface 318 may be a local area network (LAN) card for providing a data communication connection to a compatible LAN. A wireless link may also be realized. In any such implementation, communication interface 318 sends and receives electrical, electromagnetic or optical signals that carry digital data streams representing various types of information.

ネットワークリンク320は典型的に、1つ以上のネットワークを通じて他のデータ装置にデータ通信を与える。たとえば、ネットワークリンク320は、ローカルネットワーク322を通じてホストコンピュータ324に、またはインターネットサービスプロバイダ(ISP)326によって操作されるデータ機器に接続を与え得る。ISP326は次に、現在一般的に「インターネット」328と称される広域パケットデータ通信網を通じてデータ通信サービスを与える。ローカルネットワーク322およびインターネット328は両方とも、デジタルデータストリームを搬送する電気、電磁または光学信号を用いる。さまざまなネットワークを通る信号、ならびにコンピュータシステム300との間でデジタルデータを搬送し合うネットワークリンク320上のおよび通信インターフェイス318を通る信号は、情報を移送する搬送波の例示的な形態である。   Network link 320 typically provides data communication to other data devices through one or more networks. For example, the network link 320 may provide a connection to a host computer 324 through a local network 322 or to a data device operated by an Internet service provider (ISP) 326. ISP 326 then provides data communication services through a wide area packet data communication network now commonly referred to as the “Internet” 328. Local network 322 and Internet 328 both use electrical, electromagnetic or optical signals that carry digital data streams. Signals through various networks, as well as signals on network links 320 that carry digital data to and from computer system 300 and through communication interface 318 are exemplary forms of carriers that carry information.

コンピュータシステム300は、ネットワーク、ネットワークリンク320および通信インターフェイス318を通じて、メッセージを送り、プログラムコードを含むデータを受信することができる。インターネットの例では、サーバ330が、インターネット328、ISP326、ローカルネットワーク322および通信インターフェイス318を通じてアプリケーションプログラムについての要求コードを送信し得る。   Computer system 300 can send messages and receive data, including program code, through the network, network link 320 and communication interface 318. In the Internet example, the server 330 may send request codes for application programs over the Internet 328, ISP 326, local network 322 and communication interface 318.

受けたコードは受信時にプロセッサ304によって実行され得、および/または後で実行するために記憶装置310もしくは他の不揮発性記憶装置に記憶され得る。この態様で、コンピュータシステム300は、搬送波の形態のアプリケーションコードを得ることができる。   The received code may be executed by processor 304 upon receipt and / or stored in storage device 310 or other non-volatile storage for later execution. In this manner, the computer system 300 can obtain application code in the form of a carrier wave.

上記の明細書では、本発明の実施例が、実現例ごとに異なり得る多数の特定的な詳細を参照して説明された。したがって、発明であるもの、および出願人によって発明であると意図されるものを唯一および独占的に示すものは、いずれの後の訂正も含む、この出願から生じる一組の請求項であり、そのような請求項が生じる特定的な形態におけるものである。そのような請求項に含まれる用語について本明細書中において明示的に記載されるいずれの定義も、請求項において用いられるようなそのような用語の意味を決定するものとする。したがって、請求項において明示的に列挙されていない限定、要素、性質、特徴、利点または属性は、そのような請求項の範囲を如何なる意味でも限定するものではない。明細書および図面はしたがって、限定的ではなく例示的に認識されるべきである。   In the foregoing specification, embodiments of the invention have been described with reference to numerous specific details that may vary from implementation to implementation. Thus, what is the invention and what uniquely and exclusively indicates that the applicant intends to be an invention is a set of claims arising from this application, including any subsequent corrections, and Such claims are in a specific form. Any definitions expressly set forth herein for terms contained in such claims shall govern the meaning of such terms as used in the claims. Accordingly, no limitation, element, property, feature, advantage or attribute that is not expressly recited in a claim should limit the scope of such claim in any way. The specification and drawings are accordingly to be regarded in an illustrative rather than restrictive sense.

Claims (41)

機械によって実現される方法であって、
特定のリソースの利用、および前記特定のリソースに関する、特定のコンピュータジョブに関連付けられる利用基準に基づいて、前記特定のリソースを利用するように前記特定のコンピュータジョブをスケジュールすべきであるかどうかを判断するステップを備える、方法。
A method realized by a machine,
Determine whether the specific computer job should be scheduled to use the specific resource based on the usage of the specific resource and the usage criteria associated with the specific computer job for the specific resource A method comprising the steps of:
コンピュータジョブによって前記特定のリソースの予想される利用を判断するステップをさらに備え、前記利用基準は前記予想される利用に基づく、請求項1に記載の方法。   The method of claim 1, further comprising determining an expected usage of the particular resource by a computer job, wherein the usage criteria is based on the expected usage. 予想される利用を判断する前記ステップは、前記コンピュータジョブにおける命令を調べるステップを含む、請求項2に記載の方法。   The method of claim 2, wherein the step of determining expected usage includes examining instructions in the computer job. 予想される利用を判断する前記ステップは、
前記コンピュータジョブによって前記特定のリソースの以前の利用を表わす値にアクセスするステップと、
前記予想される利用を、以前の利用を表わす記憶された値に基づかせるステップとを含む、請求項2に記載の方法。
The step of determining the expected usage is:
Accessing a value representing a previous use of the particular resource by the computer job;
3. The method of claim 2, comprising: basing the expected usage on a stored value representing previous usage.
コンピュータジョブを所有するアプリケーションプログラムから前記利用基準を受取るステップをさらに備える、請求項1に記載の方法。   The method of claim 1, further comprising receiving the usage criteria from an application program that owns a computer job. 複数のリソースに基づいたスケジューリングワークリストのうちの少なくとも1つにコンピュータジョブを載せるステップをさらに備える、請求項1に記載の方法。   The method of claim 1, further comprising submitting the computer job to at least one of a scheduling worklist based on a plurality of resources. 実行用にスケジュールされる複数のコンピュータジョブの各々について、複数のコンピュータリソースに対応する複数のリソースに基づいたスケジューリングワークリストのうちの少なくとも1つにコンピュータジョブを載せるステップをさらに備え、所与のリソースに基づいたスケジューリングワークリストは、所与のコンピュータリソースの利用を待っているコンピュータジョブを含む、請求項1に記載の方法。   For each of a plurality of computer jobs scheduled for execution, the method further comprises: placing the computer job on at least one of a scheduling worklist based on a plurality of resources corresponding to the plurality of computer resources; The method of claim 1, wherein the scheduling worklist based on comprises computer jobs awaiting use of a given computer resource. 前記複数のコンピュータジョブのうちの1つによって利用されるように特定のコンピュータリソースを選択するステップをさらに備える、請求項7に記載の方法。   The method of claim 7, further comprising selecting a particular computer resource to be utilized by one of the plurality of computer jobs. 前記特定のリソースを利用するように前記特定のコンピュータジョブをスケジュールすべきであるかどうかを判断する前記ステップは、オペレーティングシステムによって行なわれる、請求項1に記載の方法。   The method of claim 1, wherein the step of determining whether the particular computer job should be scheduled to utilize the particular resource is performed by an operating system. 前記特定のリソースを利用するように前記特定のコンピュータジョブをスケジュールすべきであるかどうかを判断する前記ステップは、オペレーティングシステムの外部のリソースに基づいたスケジューラによって行なわれる、請求項1に記載の方法。   The method of claim 1, wherein the step of determining whether to schedule the particular computer job to utilize the particular resource is performed by a scheduler based on resources external to the operating system. . 前記特定のリソースの利用を判断するステップをさらに備える、請求項1に記載の方法。   The method of claim 1, further comprising determining usage of the specific resource. ある間隔にわたる前記特定のリソースの予測される利用を推定するステップをさらに備える、請求項1に記載の方法。   The method of claim 1, further comprising estimating an expected utilization of the particular resource over an interval. 前記特定のリソースを利用するように前記特定のコンピュータジョブをスケジュールすべきであるかどうかを判断する前記ステップは、前記ある間隔にわたる前記特定のリソースの予測される利用および前記利用基準に基づく、請求項12に記載の方法。   The step of determining whether the particular computer job should be scheduled to utilize the particular resource is based on expected utilization of the particular resource and the utilization criteria over the interval. Item 13. The method according to Item 12. 前記特定のリソースを利用するように前記特定のコンピュータジョブをスケジュールすべきであるかどうかを判断する前記ステップはさらに、別のリソースの利用、および他のリソースに関する、前記特定のコンピュータジョブに関連付けられる利用基準に基づく、請求項1に記載の方法。   The step of determining whether the particular computer job should be scheduled to utilize the particular resource is further associated with the particular computer job with respect to other resource utilization and other resources. The method of claim 1, based on usage criteria. 前記特定のリソースの利用は、前記特定のリソースの利用の時間に基づく、請求項1に記載の方法。   The method of claim 1, wherein the use of the specific resource is based on a time of use of the specific resource. 前記特定のリソースの利用は、ある数の、前記特定のリソースの使用要求に基づく、請求項1に記載の方法。   The method of claim 1, wherein utilization of the specific resource is based on a number of usage requests for the specific resource. 機械によって実現される方法であって、
複数のコンピュータジョブの各々を、複数のコンピュータリソースに対応する複数のリソースに基づいたスケジューリングワークリストのうちの少なくとも1つに載せるステップを備え、所与のリソースに基づいたスケジューリングワークリストは、各々が前記所与のリソースに関する利用基準を有するコンピュータジョブを含み、前記方法はさらに、
前記複数のコンピュータジョブのうちの1つによって利用されるように特定のコンピュータリソースを選択するステップと、
前記特定のコンピュータリソースの利用、および前記特定のコンピュータリソースについての前記ワークリスト上の前記コンピュータジョブのうちの少なくとも1つの前記利用基準に基づいて、前記特定のコンピュータリソースを利用するように前記コンピュータジョブのうちの1つを選択するステップとを備える、方法。
A method realized by a machine,
Placing each of the plurality of computer jobs on at least one of a plurality of resource-based scheduling worklists corresponding to the plurality of computer resources, each of the scheduling worklists based on a given resource comprising: Including a computer job having usage criteria for the given resource, the method further comprising:
Selecting a particular computer resource to be utilized by one of the plurality of computer jobs;
The computer job to use the specific computer resource based on the usage criteria of at least one of the computer jobs on the worklist for the specific computer resource and the use of the specific computer resource Selecting one of the methods.
前記複数のコンピュータリソースの各々に優先順位を割振るステップをさらに備える、請求項17に記載の方法。   The method of claim 17, further comprising assigning a priority to each of the plurality of computer resources. 前記複数のコンピュータジョブのうちの1つによって利用されるように特定のコンピュータリソースを選択する前記ステップは、前記複数のコンピュータリソースの各々に割振られた前記優先順位に基づく、請求項18に記載の方法。   The method of claim 18, wherein the step of selecting a particular computer resource to be utilized by one of the plurality of computer jobs is based on the priority assigned to each of the plurality of computer resources. Method. 前記複数のコンピュータリソースに優先順位を割振るステップは、前記複数のコンピュータリソースの相対速度に基づく、請求項18に記載の方法。   The method of claim 18, wherein assigning priorities to the plurality of computer resources is based on a relative speed of the plurality of computer resources. 前記特定のコンピュータリソースを利用するように前記コンピュータジョブのうちの1つを選択する前記ステップはさらに、前記特定のコンピュータリソースについての前記ワークリスト上の前記コンピュータジョブのうちの少なくとも1つの優先順位に基づく、請求項17に記載の方法。   The step of selecting one of the computer jobs to utilize the specific computer resource is further prioritized to at least one of the computer jobs on the work list for the specific computer resource. 18. The method of claim 17, based on. ある間隔の間、前記特定のコンピュータリソースを利用するように前記コンピュータジョブのうちの1つを選択するステップは、
前記特定のリソースについての前記ワークリスト上の前記コンピュータジョブのうちの1つを識別するステップと、
前記特定のリソースの推定される利用が特定のコンピュータジョブの前記利用基準を満たすのに十分な利用可能容量を示す場合、前記特定のリソースを用いて実行用に前記特定のコンピュータジョブをスケジュールするステップとを含む、請求項17に記載の方法。
Selecting one of the computer jobs to utilize the particular computer resource for an interval of:
Identifying one of the computer jobs on the worklist for the particular resource;
Scheduling the particular computer job for execution with the particular resource if the estimated usage of the particular resource indicates sufficient available capacity to meet the usage criteria for the particular computer job; 18. The method of claim 17, comprising:
第1のコンピュータジョブによって前記特定のリソースの予想される利用を判断するステップをさらに備え、第1のコンピュータジョブについての前記利用基準は、前記予想される利用に基づく、請求項17に記載の方法。   The method of claim 17, further comprising determining an expected usage of the particular resource by a first computer job, wherein the usage criteria for the first computer job is based on the expected usage. . 予想される利用を判断する前記ステップは、前記第1のコンピュータジョブにおける命令を調べるステップを含む、請求項23に記載の方法。   24. The method of claim 23, wherein the step of determining expected usage includes examining instructions in the first computer job. 予想される利用を判断する前記ステップは、
前記第1のコンピュータジョブによって、前記特定のリソースの以前の利用を表わす値にアクセスするステップと、
前記予想される利用を、以前の利用を表わす記憶された値に基づかせるステップとを含む、請求項23に記載の方法。
The step of determining the expected usage is:
Accessing a value representing a previous use of the particular resource by the first computer job;
24. The method of claim 23, comprising: basing the expected usage on a stored value representing previous usage.
第1のコンピュータジョブを所有するアプリケーションから前記利用基準を受取るステップをさらに備える、請求項17に記載の方法。   The method of claim 17, further comprising receiving the usage criteria from an application that owns a first computer job. 前記特定のコンピュータリソースを利用するように前記コンピュータジョブのうちの1つを選択するステップは、オペレーティングシステムによって行なわれる、請求項17に記載の方法。   The method of claim 17, wherein selecting one of the computer jobs to utilize the specific computer resource is performed by an operating system. 前記特定のコンピュータリソースを利用するように前記コンピュータジョブのうちの1つを選択する前記ステップは、オペレーティングシステムの外部のリソースに基づいたスケジューラによって行なわれる、請求項17に記載の方法。   The method of claim 17, wherein the step of selecting one of the computer jobs to utilize the particular computer resource is performed by a scheduler based on resources external to the operating system. 前記特定のリソースの利用を判断するステップをさらに備える、請求項17に記載の方法。   The method of claim 17, further comprising determining usage of the particular resource. 前記特定のリソースを利用するように前記特定のコンピュータジョブをスケジュールすべきであるかどうかを判断する前記ステップはさらに、別のリソースの利用、および他のリソースに関する、特定のコンピュータジョブに関連付けられる利用基準に基づく、請求項17に記載の方法。   The step of determining whether the particular computer job should be scheduled to utilize the particular resource further includes the use of another resource and the usage associated with the particular computer job with respect to other resources. The method of claim 17, based on criteria. 命令の1つ以上のシーケンスを搬送するコンピュータ読取可能媒体であって、命令の1つ以上のシーケンスは、1つ以上のコンピュータプロセッサによって実行されると、特定のリソースの利用、および前記特定のリソースに関する、特定のコンピュータジョブに関連付けられる利用基準に基づいて、前記特定のリソースを利用するように前記特定のコンピュータジョブをスケジュールすべきであるかどうかを判断するステップを前記1つ以上のコンピュータプロセッサに実行させる、コンピュータ読取可能媒体。   A computer-readable medium for carrying one or more sequences of instructions, wherein the one or more sequences of instructions are executed by one or more computer processors to utilize a particular resource and the particular resource Determining whether the particular computer job should be scheduled to utilize the particular resource based on usage criteria associated with the particular computer job for the one or more computer processors. A computer readable medium to be executed. 前記特定のリソースを利用するように前記特定のコンピュータジョブをスケジュールすべきであるかどうかを判断する前記ステップはさらに、別のリソースの利用、および他のリソースに関する、前記特定のコンピュータジョブに関連付けられる利用基準に基づく、請求項31に記載の方法。   The step of determining whether the particular computer job should be scheduled to utilize the particular resource is further associated with the particular computer job with respect to other resource utilization and other resources. 32. The method of claim 31, based on usage criteria. システムであって、
1つ以上のコンピュータプロセッサと、
前記1つ以上のコンピュータプロセッサに通信可能に結合されるコンピュータ読取可能媒体とを備え、前記コンピュータ読取可能媒体は、命令の1つ以上の記憶されたシーケンスを記憶させており、命令の1つ以上の記憶されたシーケンスは、前記1つ以上のコンピュータプロセッサによって実行されると、特定のリソースの利用、および前記特定のリソースに関する、特定のコンピュータジョブに関連付けられる利用基準に基づいて、前記特定のリソースを利用するように前記特定のコンピュータジョブをスケジュールすべきであるかどうかを判断するステップを前記1つ以上のコンピュータプロセッサに実行させる、システム。
A system,
One or more computer processors;
A computer-readable medium communicatively coupled to the one or more computer processors, wherein the computer-readable medium stores one or more stored sequences of instructions, the one or more instructions The stored sequence of, when executed by the one or more computer processors, the specific resource based on usage of the specific resource and usage criteria associated with the specific computer job for the specific resource A system that causes the one or more computer processors to execute a step of determining whether the particular computer job should be scheduled to utilize.
前記特定のリソースを利用するように前記特定のコンピュータジョブをスケジュールすべきであるかどうかを判断する前記ステップはさらに、別のリソースの利用、および他のリソースに関する、前記特定のコンピュータジョブに関連付けられる利用基準に基づく、請求項33に記載の方法。   The step of determining whether the particular computer job should be scheduled to utilize the particular resource is further associated with the particular computer job with respect to other resource utilization and other resources. 34. The method of claim 33, based on usage criteria. 機械によって実現される方法であって、
複数のコンピュータジョブから要求を受取るステップを備え、各要求は、前記要求を満たすために特定のリソースの利用を必要とし、前記方法はさらに、
前記特定のリソースの利用、および前記特定のリソースに関する、前記コンピュータジョブの各々が有する利用基準に基づいて、前記特定のリソースを利用するように前記コンピュータジョブについてのスケジューリング順序を判断するステップを備える、方法。
A method realized by a machine,
Receiving requests from a plurality of computer jobs, each request requiring utilization of a particular resource to satisfy the request, the method further comprising:
Determining a scheduling order for the computer job to use the specific resource based on the use of the specific resource and a usage criterion of each of the computer jobs regarding the specific resource; Method.
前記要求の少なくとも一部分は、前記要求を満たすために別のリソースの利用を必要とし、前記特定のリソースを利用するように前記コンピュータジョブについてのスケジューリング順序を判断する前記ステップはさらに、他のリソースに関する、要求の前記部分に関連付けられる前記コンピュータジョブが有する利用基準に基づく、請求項35に記載の方法。   At least a portion of the request requires the use of another resource to satisfy the request, and the step of determining a scheduling order for the computer job to use the specific resource further relates to other resources 36. The method of claim 35, based on usage criteria possessed by the computer job associated with the portion of the request. 前記特定のリソースの利用は、前記特定のリソースの利用の時間に基づく、請求項35に記載の方法。   36. The method of claim 35, wherein usage of the specific resource is based on a time of use of the specific resource. 前記特定のリソースの利用は、前記要求を満たすために前記特定のリソースの利用を必要とする要求の数に基づく、請求項35に記載の方法。   36. The method of claim 35, wherein utilization of the specific resource is based on a number of requests that require utilization of the specific resource to satisfy the request. 前記特定のリソースを利用するように前記コンピュータジョブについてのスケジューリング順序を判断する前記ステップは、オペレーティングシステムによって行なわれる、請求項35に記載の方法。   36. The method of claim 35, wherein the step of determining a scheduling order for the computer job to utilize the particular resource is performed by an operating system. 前記特定のリソースを利用するように前記コンピュータジョブについてのスケジューリング順序を判断する前記ステップは、オペレーティングシステムの外部のリソースに基づいたスケジューラによって行なわれる、請求項35に記載の方法。   36. The method of claim 35, wherein the step of determining a scheduling order for the computer job to utilize the particular resource is performed by a scheduler based on resources external to the operating system. 機械によって実現される方法であって、
複数のコンピュータジョブから要求を受取るステップを備え、各要求は、前記要求を満たすために複数のリソースのうちの1つ以上の利用を必要とし、前記方法はさらに、
利用のためにコンピュータジョブをスケジュールさせるように特定のリソースを選択するステップと、
前記特定のリソースの利用、および前記特定のリソースに関する、前記特定のリソースの利用を必要とする前記コンピュータジョブの各々が有する利用基準に基づいて、前記特定のリソースの利用を必要とする前記コンピュータジョブについてのスケジューリング順序を判断するステップとを備える、方法。
A method realized by a machine,
Receiving requests from a plurality of computer jobs, each request requiring utilization of one or more of a plurality of resources to satisfy the request, the method further comprising:
Selecting specific resources to schedule computer jobs for use;
The computer job that requires the use of the specific resource based on the usage criteria of each of the computer jobs that require the use of the specific resource and the use of the specific resource with respect to the specific resource Determining a scheduling order for.
JP2013160387A 2006-06-19 2013-08-01 Resource-based scheduler Pending JP2013218744A (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US11/471,466 US8239869B2 (en) 2006-06-19 2006-06-19 Method, system and apparatus for scheduling computer micro-jobs to execute at non-disruptive times and modifying a minimum wait time between the utilization windows for monitoring the resources
US11/471,466 2006-06-19
US11/546,514 US9588809B2 (en) 2006-10-10 2006-10-10 Resource-based scheduler
US11/546,514 2006-10-10

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2009516502A Division JP2009541851A (en) 2006-06-19 2007-06-06 Resource-based scheduler

Publications (1)

Publication Number Publication Date
JP2013218744A true JP2013218744A (en) 2013-10-24

Family

ID=38608779

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2009516502A Pending JP2009541851A (en) 2006-06-19 2007-06-06 Resource-based scheduler
JP2013160387A Pending JP2013218744A (en) 2006-06-19 2013-08-01 Resource-based scheduler

Family Applications Before (1)

Application Number Title Priority Date Filing Date
JP2009516502A Pending JP2009541851A (en) 2006-06-19 2007-06-06 Resource-based scheduler

Country Status (8)

Country Link
EP (1) EP2038748A1 (en)
JP (2) JP2009541851A (en)
KR (1) KR101373786B1 (en)
AU (1) AU2007261607B2 (en)
CA (1) CA2654418A1 (en)
RU (1) RU2453901C2 (en)
TW (1) TW200813845A (en)
WO (1) WO2007149224A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015075856A1 (en) * 2013-11-25 2015-05-28 International Business Machines Corporation Cross-platform workload processing

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9122537B2 (en) 2009-10-30 2015-09-01 Cisco Technology, Inc. Balancing server load according to availability of physical resources based on the detection of out-of-sequence packets
US8565685B2 (en) * 2011-01-28 2013-10-22 Nokia Corporation Utilization-based threshold for choosing dynamically between eager and lazy scheduling strategies in RF resource allocation
JP2013047892A (en) * 2011-08-29 2013-03-07 Fujitsu Ltd Information processing device, scheduling method and program
KR101694307B1 (en) * 2012-02-29 2017-01-09 한국전자통신연구원 Apparatus and method for maximizing disk cache effect for workflow job scheduling
KR101695013B1 (en) * 2012-12-14 2017-01-10 한국전자통신연구원 Method for allocating and managing of adaptive resource
CN104657221B (en) * 2015-03-12 2019-03-22 广东石油化工学院 The more queue flood peak staggered regulation models and method of task based access control classification in a kind of cloud computing
KR102585591B1 (en) * 2021-06-23 2023-10-10 한국과학기술원 Slo-aware artificial intelligence inference scheduler for heterogeneous processors in edge platforms

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06237348A (en) * 1993-02-08 1994-08-23 Fuji Xerox Co Ltd Memory controller
JPH11184714A (en) * 1997-12-18 1999-07-09 Nec Corp Task management system
JP2001155084A (en) * 1999-10-20 2001-06-08 Lucent Technol Inc Resource and work item selector
JP2005011023A (en) * 2003-06-18 2005-01-13 Hitachi Ltd Job scheduling method and system

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2027219C1 (en) * 1990-12-17 1995-01-20 Грибков Владимир Александрович Device for distributing tasks by processor
US5491810A (en) * 1994-03-01 1996-02-13 International Business Machines Corporation Method and system for automated data storage system space allocation utilizing prioritized data set parameters
JP3626374B2 (en) * 1999-08-31 2005-03-09 富士通株式会社 System diagnostic device, system diagnostic method, and computer-readable recording medium recording system diagnostic program
US7171668B2 (en) * 2001-12-17 2007-01-30 International Business Machines Corporation Automatic data interpretation and implementation using performance capacity management framework over many servers
US7467102B2 (en) * 2003-09-11 2008-12-16 International Business Machines Corporation Request type grid computing
US20050240934A1 (en) * 2004-04-21 2005-10-27 Hewlett-Packard Development Company, L.P. Task management based on system utilization
US8856793B2 (en) * 2004-05-11 2014-10-07 International Business Machines Corporation System, method and program for scheduling computer program jobs

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06237348A (en) * 1993-02-08 1994-08-23 Fuji Xerox Co Ltd Memory controller
JPH11184714A (en) * 1997-12-18 1999-07-09 Nec Corp Task management system
JP2001155084A (en) * 1999-10-20 2001-06-08 Lucent Technol Inc Resource and work item selector
JP2005011023A (en) * 2003-06-18 2005-01-13 Hitachi Ltd Job scheduling method and system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015075856A1 (en) * 2013-11-25 2015-05-28 International Business Machines Corporation Cross-platform workload processing

Also Published As

Publication number Publication date
KR101373786B1 (en) 2014-03-13
WO2007149224A1 (en) 2007-12-27
JP2009541851A (en) 2009-11-26
TW200813845A (en) 2008-03-16
KR20090029811A (en) 2009-03-23
AU2007261607A1 (en) 2007-12-27
RU2008149050A (en) 2010-07-27
RU2453901C2 (en) 2012-06-20
EP2038748A1 (en) 2009-03-25
CA2654418A1 (en) 2007-12-27
AU2007261607A2 (en) 2009-06-25
AU2007261607B2 (en) 2012-11-01

Similar Documents

Publication Publication Date Title
US9588809B2 (en) Resource-based scheduler
US9727372B2 (en) Scheduling computer jobs for execution
JP2013218744A (en) Resource-based scheduler
US8056083B2 (en) Dividing a computer job into micro-jobs for execution
JP2003298599A (en) Method and apparatus for distribution control
US20120297216A1 (en) Dynamically selecting active polling or timed waits
US20140366162A1 (en) Starvationless Kernel-Aware Distributed Scheduling of Software Licenses
JP5299869B2 (en) Computer micro job
JP4048638B2 (en) Scheduling apparatus and method, and recording medium
JP2008225641A (en) Computer system, interrupt control method and program
US20130042247A1 (en) Starvationless Kernel-Aware Distributed Scheduling of Software Licenses
US7996845B2 (en) Methods and apparatus to control application execution resource with a variable delay

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130802

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130802

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141007

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20150303