CN101473307B - 用于调度计算机微作业以在非干扰时间执行的方法、系统和装置 - Google Patents

用于调度计算机微作业以在非干扰时间执行的方法、系统和装置 Download PDF

Info

Publication number
CN101473307B
CN101473307B CN200780022931XA CN200780022931A CN101473307B CN 101473307 B CN101473307 B CN 101473307B CN 200780022931X A CN200780022931X A CN 200780022931XA CN 200780022931 A CN200780022931 A CN 200780022931A CN 101473307 B CN101473307 B CN 101473307B
Authority
CN
China
Prior art keywords
micro
jobs
mjs
utilization factor
application
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN200780022931XA
Other languages
English (en)
Other versions
CN101473307A (zh
Inventor
克雷格·詹森
安德鲁·斯塔弗
巴希尔·托马斯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Diskeeper Corp
Original Assignee
Diskeeper Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Diskeeper Corp filed Critical Diskeeper Corp
Publication of CN101473307A publication Critical patent/CN101473307A/zh
Application granted granted Critical
Publication of CN101473307B publication Critical patent/CN101473307B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

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

Abstract

提供了一种方法、系统和装置,用于将计算作业划分成微作业并将这些微作业的执行分配到所需资源遵从一个或多个空闲标准的时间。微作业被经常性地执行,但仅在微作业所需的资源不被其他作业所需时被执行。利用该方法的软件程序在计算机被加电期间可以始终被运行,而对于在同一计算机系统上运行的其他软件程序的性能没有影响。

Description

用于调度计算机微作业以在非干扰时间执行的方法、系统和装置
技术领域
本发明涉及在计算环境中执行软件应用。具体地,本发明的实施例涉及将应用的计算或输入/输出作业划分成微作业(micro-job)并将这些微作业的执行分配到计算机资源利用率较低的时段,以使得对这些微作业的执行不会严重影响其他应用和作业的性能。
背景技术
在大型计算机的早期,按一批一批的作业来运行软件程序的概念是标准的做法。计算机的数目是有限的,因此用户必须对其作业进行调度,以在计算机未用于某个其他的更重要的作业时在计算机上运行(作业)。在这种系统中,每个作业被调度为没有中断地运行直到完成,之后是下一个作业,然后是再下一个。可用的计算机时间的有限性使得必须在“业余时间”(off-hour)运行低优先级作业,以便不会对高优先级的应用造成延迟。
最近,多任务计算机系统已经允许了通过单个CPU来同时或交错地执行两个或更多个作业。多任务计算机系统允许许多应用在同一个总的时间段中执行。通常,多任务系统具有复杂的内部调度算法,其中,根据指派的优先级来调度进程。但是,应用仍然会争用计算资源。为了缓和资源争用,多任务系统中的应用可在操作者调度的基础上在“业余时间”运行。
在业余时间运行的应用可包括维护作业、例如备份、索引编排、软件更新、病毒和恶意软件扫描以及碎片整理。业余时间处理的候选还可包括运行报告、执行财务计算等等的软件应用。但是,诸如索引编排器之类的一些应用应当在生产时间期间运行。因此,不是所有的应用都适合于在业余时间执行。
调度作业以在业余时间运行的另一个问题是在该作业被调度来运行的时间计算机可能被关闭了。另一个问题是某些机器没有明确标识的业余时间。例如,许多计算机系统一天二十四小时都被用于这样一个计算活动:该计算活动被认为是足够重要的,因此不应当被中断一长段时间。因此,不存在用来调度作业的“业余时间”。还有一个问题在于,通常用户必须判定何时应当调度作业来进行业余时间计算。这样,设定调度就会占用用户的时间,并且可能发生用户差错。
如前所述,对计算作业的运行可能会干扰用户使用计算机的能力,并且可能夺走其他可能更紧迫的应用和作业的资源。扼制(throttling)是一种用于使这些负面影响达到最低限度的技术。扼制防止了应用或作业使用比所分配量更多的资源。扼制的类型包括盘I/O扼制、CPU扼制和网络扼制。例如,CPU扼制可包括为某一应用确立目标CPU利用率极限,并且如果该应用超过该目标极限,则强迫该应用停止工作。扼制有时被应用到用于维护应用或不那么重要的计算作业的计算机资源。虽然扼制确实有益,但是计算作业的资源使用对于其他作业和应用来说并不是完全透明的。
同时,值得注意的是,即使是在对紧急的最高优先级作业进行处理期间,也有相当多的计算资源未被使用。CPU、存储器、盘驱动器和网络的速度的巨大差异通常导致这些组件中的一个或多个在其他组件之一完全被消耗的同时处于空闲中。例如,3GHz的CPU常常在等待盘驱动器以按毫秒来衡量的平均访问时间检索数据的同时处于空闲。
为了恢复和利用这些资源(否则就会损失),需要的是这样一种技术,其允许一个或多个作业在不严重影响其他作业或应用的情况下在计算机系统中执行。该技术不应当消耗用户的时间来调度作业,也不应当在该作业运行时影响用户与计算机系统的交互。该技术不应当要求调度作业以在业余时间运行。该技术应当能够被没有业余时间的计算机系统所利用,并且对其有益。
本部分中描述的方法是能够被实行的方法,但不一定是先前已经设想过或实行过的方法。因此,除非另有指明,否则不应当认为本部分中描述的任何方法仅因为被包括在本部分中就可以被当作现有技术。
附图说明
在附图中以示例方式而非限制方式示出了本发明,在附图中相似的标号指代类似的元件,其中:
图1是根据本发明实施例用于执行微作业的体系结构的图。
图2示出传统应用存储器占用量与根据本发明实施例的应用存储器占用量的比较。
图3是示出根据本发明实施例利用微作业来执行具备微作业调度器能力的应用的过程步骤的流程图。
图4示出根据本发明实施例利用微作业来对存储介质进行碎片整理的过程步骤。
图5是示出本发明实施例可在其上实现的计算机系统的框图。
具体实施方式
在以下描述中,出于说明目的,阐述了许多具体细节以帮助全面理解本发明。但是,很明显,没有这些具体细节也可以实现本发明。在其他情况下,以框图形式示出公知的结构和设备,以避免不必要地模糊本发明。
概述
大多数计算机并不会始终利用其所有资源能力。甚至对于那些看起来每天二十四小时、每周七天都被大量使用的计算机,以及只在每天的一部分时间中开启的计算机来说,这一点通常都是真的。因此,计算机时间和资源被浪费了。例如,在二十四小时的时段期间,被相当重地使用的并且可能具有短暂的活动峰值的计算机系统,平均起来可能只使用了其资源的大约百分之五到百分之二十。
这里公开了一种方法、系统和装置,用于通过将计算作业划分成微作业并在运行微作业所需的资源空闲时执行这些微作业,来利用这些未被使用的计算机资源。这里使用的术语“微作业”是计算机进程的这样一部分:该部分的执行可被延迟,而不会影响进程的其余部分的结果。这里使用的术语“空闲资源”、“空闲时间”等等指的是资源未被100%利用的时间,也就是说,资源的未被利用的部分被认为处于“空闲”中,即使该资源的某个其他部分正被利用。
这样,微作业被经常性地(on an ongoing basis)执行,但并不尝试尽可能快地使计算作业完成。利用该方法的软件程序在计算机被加电期间可以始终被运行,而对于在同一计算机上同时运行的其他软件程序的性能的影响很小,从而实际上使得每单位时间能够完成更多有用的工作。
与在给定当前资源约束的情况下尝试尽可能快地运行作业或者调度作业以在“业余时间”运行来避免严重影响其他作业和应用相比,作业在计算机上被经常性地运行,但却是以微小到用户或其他计算机作业无法察觉的片段来运行的。这样,作业对于用户以及其他作业和应用来说可以完全透明。用户不需要调度作业;利用此方法,它可在包括性能关键时间在内的任何时间被运行。
本说明书中使用的对于其他作业、进程和应用“透明”这一术语指的是其他作业和应用能够在不遭受由于微作业的执行而导致的任何严重的负面性能影响的情况下执行。可以通过比较测试作业单独运行要花多少时间以及在划分成微作业的计算作业执行期间运行要花多少时间来确定负面影响。对于这两种情况,测试作业的运行时间应当没有重大差别。
根据本发明实施例,微作业调度器(MJS)判定何时应当执行微作业。在一个实施例中,应用程序将其计算作业划分成多个微作业。这里使用的术语“多个”指的是大于1的任何数目。MJS判定何时应当执行微作业。能够结合MJS工作的应用在这里被称为具备MJS能力的应用(MJS-enabled application)。
在一个实施例中,MJS具有存储器管理器。具备MJS能力的应用向MJS存储器管理器请求存储器,而不是向操作系统请求存储器。在一个实施例中,具备MJS能力的应用具有非常小的存储器内占用量(in-memoryfootprint)(指的是这样的存储器的量:该存储器被分配给具备MJS能力的应用,并且具备MJS能力的应用是从该存储器执行的)。为了实现小的占用量,对使用MJS的程序所利用的存储器的量施加了限制。
在另一个实施例中,监视并分析计算机资源利用率,以判定资源利用率是否遵从一个或多个空闲标准。当一个或多个空闲标准得到满足时,MJS使得微作业被执行。由于特定微作业执行所需的时间小于该特定微作业所使用的资源的典型空闲时间窗口,因此在另一作业需要该资源之前,该资源被让出。这样,微作业对资源的利用可以不被注意到,并且微作业对于其应用的环境来说可以是不可见的。
根据本发明的实施例,具备MJS能力的应用向MJS发送资源利用率阈值参数,以便限定在何种条件下它对资源的利用应当被让出。这些资源包括但不限于盘I/O、CPU和网络利用。例如,具备MJS能力的应用可请求微作业被执行,直到上述三种资源的任何组合达到最低阈值水平为止。
在一个实施例中,应用是存储介质碎片整理器。碎片整理器能花费12分钟的挂钟时间来完成每日调度的碎片整理作业。具备MJS能力的碎片整理器将碎片整理作业划分成许多微作业,这些微作业每次可以被执行若干毫秒,其中,选择了碎片整理器所需的资源未被任何其他作业或应用所使用的时间。只要计算机系统开启,具备MJS能力的碎片整理器就可以运行,其中,将该12分钟作业划分成了在较长的一个时段期间执行的微作业。
作为具体示例,具备MJS能力的碎片整理器可以执行第一微作业来判定文件是否被碎化。第一微作业的执行只消耗不用就会空闲的资源。即,其利用率遵从一个或多个空闲标准的资源。结果,该微作业的执行对于其他应用来说是透明的。另外,存储器利用率被保持得较低,并且与碎片整理器相关联的存储器分配在微作业执行之前或之后不需要被改变。
在执行每个微作业之前,具备MJS能力的碎片整理器判定计算机资源利用率是否遵从一个或多个空闲标准。这样,具备MJS能力的碎片整理器判定计算机资源利用率目前是否足够低到允许微作业进行。如果资源利用率太高,微作业的执行则被推迟。在第一微作业执行之后,具备MJS能力的碎片整理器不一定立即执行第二微作业。更确切地说,如果其他应用需要相同资源,则后续微作业的执行可分散在一段时间中。
体系结构概述
图1是根据本发明实施例用于执行微作业的体系结构100的图。每个具备MJS能力的应用115(1)-115(n)将其(一个或多个)计算作业划分成微作业125以执行。例如,应用编程者可在应用代码中的适当位置处布置调用,这些调用为执行微作业125而请求来自MJS 110的许可,这实际上将计算作业划分成了微作业125。根据一个实施例,微计算作业是小得多(例如,最小)的工作单位,这些工作单位能够作为单个单位完成,而且安全地允许执行中止直到下一微作业125执行为止。通过安全地允许执行中止,意味着特定微作业的执行可被延迟,而不会影响执行所有微作业而产生的结果。使微作业125较小允许了具备MJS能力的应用115每次只使用少量的计算机资源。这样,根据本发明的一个实施例,微作业125的执行消耗相当少量的资源,从而不会严重影响计算机系统中的其他应用的性能。作为示例,具备MJS能力的应用115(1)-115(n)可执行维护,例如备份、索引编排、软件更新、病毒和恶意软件扫描、以及碎片整理。但是,具备MJS能力的应用115(1)-115(n)也可以是除维护外的其他软件。
微作业调度器(MJS)110判定何时能够执行微作业125。在此实施例中,MJS 110具有应用程序接口(API)130,以允许特定的具备MJS能力的应用(例如115(1))请求一个或多个微作业125以允许执行。API 130还允许具备MJS能力的应用115指定微作业125可按什么量来分散,这将在下文中更充分论述。示例性的API被包括在下文中。但是,体系结构100并不限于该示例性API。
微作业调度器110维护微作业队列,从而MJS 110可以判定接下来应当允许哪个微作业125执行。微作业的执行由MJS 110来规定时间,从而对其他应用的影响很小。在一个实施例中,MJS 110对微作业进行调度,使得微作业只利用空闲资源。MJS 110判定资源利用是否遵从一个或多个空闲标准,以进行调度判决。换言之,在此实施例中,MJS 110是基于资源的。微作业的执行可由具备MJS能力的应用通过API调用或者应用和MJS之间的其他通信方法来指定。当调度器105判定下一微作业125可在不影响其他作业的情况下执行时,MJS 110通过指示具备MJS能力的应用115(1)执行微作业125来对具备MJS能力的应用115作出响应。在一个实施例中,MJS基于资源利用来判定何时调度作业。例如,MJS可分析盘活动。如果除了具有微作业的应用之外的应用正在使用盘,那么MJS等待直到该另外的应用完成为止才调度该微作业。MJS继续监视盘I/O利用情况,并且如果没有其他应用正在试图访问盘I/O,就允许调度另一微作业。但是,如果另外的应用试图使用盘I/O,则MJS不会允许调度另一微作业,其中该另外的应用可以利用盘I/O。
又例如,MJS可以分析网络活动。如果网络流量太高,MJS则不会调度任何微作业,直到流量慢下来为止。如果网络流量足够低,MJS则调度微作业以便执行。MJS继续进行检查,以确保网络流量保持足够低。如果网络流量保持足够低,则可以调度另一微作业。但是,如果流量变得过高,则不再调度另外的微作业来执行。
MJS可以基于任何类型的计算资源和任何资源组合来进行基于资源的调度判决。在一个实施例中,MJS具有等待执行许可的微作业的多个队列。每个队列可以对应于一种特定的资源。例如,可以有用于需要利用盘I/O的微作业的队列、用于需要利用网络的微作业的队列、用于需要利用CPU的微作业的队列,等等。还可以有用于利用资源的组合的微作业的一个或多个队列。当特定的资源或资源组合可用时,MJS部署微作业。特定的微作业可能需要使用两种资源。例如,特定的微作业可能需要使用网络资源和盘资源。但是,该特定的微作业不需要CPU资源。即使CPU资源利用率当前较高,该特定的微作业也能被调度并执行。
虽然MJS 110在图1中被示为与具备MJS能力的应用115相分离的程序,但是MJS 110也可被集成到具备MJS能力的应用115中。这样,根据一个实施例中,MJS 110可以在不向具备MJS能力的应用115(1)发送响应的情况下使微作业125执行。因此,API 130是可选的。
在一个实施例中,MJS 110是操作系统的一部分。在另一个实施例中,MJS 110在操作系统的外部执行。在一个实施例中,如果MJS在操作系统的外部执行,那么MJS自己限制其自身的资源利用率。例如,MJS110监视其自身的资源利用率,并且如果其自己的资源利用率变得过高,MJS 110就请求操作系统在一段时间期间停止调度MJS 110。
根据本发明的实施例,具备MJS能力的应用115向MJS 110发送参数以控制资源利用率。资源利用率的控制包括但不限于盘I/O、CPU和网络。例如,具备MJS能力的应用115可以请求执行微作业,直到达到上述三种资源的阈值水平的任何组合为止。另外,具备MJS能力的应用115可以为不同的微作业125指定不同的资源阈值水平。例如,根据一个实施例,具备MJS能力的应用115对于每个微作业125指定不同的资源阈值水平。因此,可以实现细粒度的资源管理。根据本发明的一个实施例,当MJS 110计算资源利用率时,所测量的是除具备MJS能力的应用之外的进程的资源利用率。在以下示例中,为了说明而将CPU利用率阈值设定为20%。如果在允许具备MJS能力的应用执行之前CPU利用率低于20%,那么在(一个或多个)微作业执行之后,CPU利用率可能增大到20%以上。在此示例中,这种增大到超过20%并不被认为是CPU资源利用率违规。类似的原理也适用于网络和盘I/O资源。
在一个实施例中,MJS 110还具有存储器管理器140。当MJS 110初始化时,它被操作系统分配了存储器,它将所分配的存储器中的一些用于其自己的用途,并且将一些分配给具备MJS能力的应用115。当具备MJS能力的应用115(1)起动时,它向MJS 110请求存储器分配。MJS 110可以基于诸如以下因素来判定分配多少存储器给具备MJS能力的应用115(1):所有进程的当前计算机系统存储器利用率,以及具备MJS能力的应用115(1)的需求。存储器需求可能是特定于每个具备MJS能力的应用115的,并且可被计算机软件编程者编程到具备MJS能力的应用115中。
图2示出了传统应用存储器占用量202与根据本发明实施例的具备MJS能力的应用的存储器占用量204(1)-204(n)的比较。因为具备MJS能力的应用115(1)执行微作业125,所以存储器分配量204(1)可以很小。另外,因为存储器分配量204(1)如此之小,所以具备MJS能力的应用115(1)无需让出其被分配的存储器204(1)。这样,具备MJS能力的应用115不会造成频繁的存储器分配和重新分配。存储器分配的这种减少或消除是具备MJS能力的应用115对于其他应用和作业没有严重影响的一个原因。
过程流
图3是示出根据本发明实施例利用微作业来执行具备MJS能力的应用的过程300的步骤的流程图。在步骤301中,具备MJS能力的应用程序被起动。在一个实施例中,具备MJS能力的应用程序是在计算机系统被引导时起动的。如果具备MJS能力的应用没有要执行的作业,具备MJS能力的应用则保持在空闲状态中,直到它有要运行的作业为止。在该空闲状态中,具备MJS能力的应用可以执行某些诸如偶尔的监视之类的功能。在步骤302中,具备MJS能力的应用有要执行的作业,例如对存储介质进行碎片整理,或者进行病毒扫描。作业可以是对单个盘以及存储在其上的文件进行碎片整理,其中具备MJS能力的应用经常性地对该盘进行碎片整理。
当具备MJS能力的应用被起动时,少量的存储器被分配给它。所分配的量可能很小,因为具备MJS能力的应用通常每次只尝试执行单个微作业。但是,在一些情况下,具备MJS能力的应用可能尝试执行多个微作业,而不等待其他进程执行。例如,如果MJS判定所需的计算机系统资源空闲,MJS则可在没有另一个进程利用微作业所利用的资源的情况下允许具备MJS能力的应用连续执行多个微作业。
在步骤304中,计算作业被划分成微作业。根据本发明的实施例,微作业的大小使得微作业的执行仅利用足够少量的资源,从而不会严重影响计算机系统中的其他作业的性能。将计算作业划分成微作业可通过具备MJS能力的应用内的指令来完成。一般来说,这些指令是具备MJS能力的应用内的判决点。例如,这些指令可以是对MJS的API调用,这些API调用请求许可执行微作业。但是,MJS可与具备MJS能力的应用相集成,在这种情况下,这些指令可以是对具备MJS能力的应用内的调度功能的调用。可以使用其他技术来将计算作业划分成微作业。
在步骤306中,对于每个微作业,判定将被该特定微作业使用的计算机系统的一种或多种资源的利用率是否满足一个或多个空闲标准。这样,仅当微作业所需的计算机系统的资源足够空闲时,微作业才被执行。在一个实施例中,空闲标准是基于资源阈值的。例如,可以使用资源阈值,其中具备MJS能力的应用的微作业仅在其他进程的资源利用率低于由具备MJS能力的应用指定的阈值时才执行。下文中描述的示例性API包含一些资源阈值参数的一个示例。然而,过程300并不限于这些资源阈值参数。步骤306根据每个微作业所需的资源的可用性来将微作业的执行分散在一段时间中。因此,微作业的执行不会严重影响计算机系统中的其他作业和应用的性能。
特定资源的空闲标准可以基于一个或多个因素。例如,在一个实施例中,CPU利用率被用作CPU资源利用情况的空闲标准。
在步骤307中,使微作业被执行。在一个实施例中,MJS向具备MJS能力的应用给出特定微作业能被执行的许可。如果还有更多微作业要执行,则控制传递到步骤306,以判定下一微作业要使用的计算机系统的一种或多种资源的利用情况是否满足一个或多个空闲标准。
在维护型实施例中,具备MJS能力的应用经常性地运行,只要计算机系统保持已被引导就继续运行。这样,即使具备MJS能力的应用完成其作业,它也继续运行,如步骤308中所示。这样,具备MJS能力的应用不消耗起动应用通常会消耗的额外资源。当具备MJS能力的应用判定它有另一个作业要进行时,在步骤304中具备MJS能力的应用将新的计算作业划分成微作业,并且在步骤306中在一段时间中执行微作业。
示例性API
本发明的一个实施例是用于允许具备MJS能力的应用与MJS相接口的API。示例性API具有以下用于CPU、盘和网络的资源阈值参数。
·CPU利用率阈值
·待处理盘I/O计数阈值
·网络利用率阈值
可以对每个微作业指定以上参数。换言之,不同的微作业可被指派以不同的资源阈值参数。例如,对于使用网络的微作业,可以使用网络阈值。但是,对于不使用网络的微作业,网络阈值可以是零。这样,根据本发明的实施例,提供了细粒度的资源管理。
作为特定示例,具备MJS能力的应用可以要求仅在以下情况下特定的微作业才被执行:CPU利用率低于50%,I/O盘利用率低于40%,并且网络流量低于60%。可以使用资源阈值因素的任何组合,包括不使用该组合。根据本发明的实施例,CPU利用率阈值区分了MJS对CPU的使用和任何其他作业对CPU的使用。
以下两个参数被用于指定测量资源利用率的频率。
·CPU利用率窗口
·网络利用率窗口
CPU利用率窗口参数定义了用来计算CPU利用率的时间窗口。例如,对过去n毫秒中的CPU利用率取平均。网络利用率窗口定义了用来计算网络利用率的时间窗口。这些参数可以是MJS内部的。但是,具备MJS能力的应用可以不考虑这些参数。待处理的盘I/O在任何时间点上都是绝对的,因此它不必被计算。
强制空闲时间参数可被从具备MJS能力的应用传递到MJS引擎,以控制如何将微作业分散在一段时间中。强制空闲时间参数是可选的。另外,在被使用时,强制空闲参数可具有零值。
·强制空闲时间
MJS保持跟踪“空闲时间”,该空闲时间被定义为在所有微作业都被执行之后系统的空闲时间。如前所述,具备MJS能力的应用可以利用MJS来使微作业排队。当在MJS队列上没有微作业时,MJS等待指定的强制空闲时间,然后醒来并授权具备MJS能力的应用执行另外的工作。例如,具备MJS能力的碎片整理器可以首先执行若干个微作业来对盘驱动器进行碎片整理,然后被MJS微作业调度器所中止。在指定的强制空闲时间之后,MJS调用具备MJS能力的碎片整理器来授权另外的工作。例如,具备MJS能力的碎片整理器可以执行清理作业,例如释放存储器。强制空闲时间可以是能够由具备MJS能力的应用调节的默认参数。
以下参数涉及在资源利用率高于阈值时等待执行微作业。
·等待时间
·最大等待时间
如果MJS判定资源利用率目前太高以至于不能执行微作业,MJS则等待指定的等待时间然后重新检查资源利用率。每次MJS判定资源利用率太高时,等待时间参数可以被增大。例如,MJS可增大等待时间参数,直到达到最大等待时间为止。这些参数可在具备MJS能力的应用首次被启动时由其指定。具备MJS能力的应用可以在其运行时间期间调节这些参数。
碎片整理器实施例
根据一个实施例,具备MJS能力的应用是碎片整理器。图4示出了根据本发明实施例的使用微作业的MJS磁片整理器的过程400的步骤。过程400是碎片整理器的至少一部分可以利用微作业概念的一种方式的示例。在此示例中,具备MJS能力的应用经由API与MJS相接口。但是,如前所述,MJS可被集成到具备MJS能力的应用中,其中API是不必要的。
碎片整理的过程包括扫描盘驱动器以寻找碎化的文件。扫描可以被分解成不同的微作业:获得文件记录,以及判定文件是否被碎化。扫描盘驱动器在图4的步骤402-408中示出。
在步骤402中,具备MJS能力的碎片整理器调用微作业API以向MJS请求许可执行微作业。API可以为该微作业指定资源利用率阈值参数。或者,预先限定的参数可被应用到该微作业。响应于接收到该请求,MJS判定何时能执行微作业。该判定可以基于资源利用率阈值参数。
在步骤404中,在具备MJS能力的应用接收到许可之后,MJS碎片整理器执行微作业,在此情况下该微作业是获得下一文件记录。在步骤406中,具备MJS能力的应用再次调用微作业API。当具备MJS能力的应用从MJS接收到对执行的许可时,具备MJS能力的应用判定来自步骤404的文件是否被碎化。如果文件未被碎化,过程400则返回到步骤402。
如果文件被碎化,则具备MJS能力的碎片整理器可对该文件进行碎片整理,如步骤410-416中所示。步骤410是对微作业API的调用。步骤412是为文件寻找自由盘空间,并获得对自由空间的分配。
调用微作业API的步骤414和移动一段文件的步骤416被重复,直到整个文件被移动为止。例如,要移动的文件可以以片段的形式被移动,这种片段足够小,以致不会对其他应用的性能造成严重影响。
这样,微作业概念提供了一种动态的碎片整理器,其经常性地监视碎化,并且一旦碎化发生就对文件进行碎片整理。这样就得到了一种具备MJS能力的碎片整理器:一旦发生碎化,该具备MJS能力的碎片整理器就立即对碎化的文件进行碎片整理,而无需等待所调度的碎片整理运行时间。这样,根据本发明的实施例,具备MJS能力的碎片整理器是实时碎片整理器。
外壳(shell)微作业调度器
在一个实施例中,MJS自动地将计算作业划分成微作业。例如,MJS工作为包裹着不具备MJS能力的应用程序的外壳。这样,外壳MJS是可以通过其来运行任何可执行程序的完整软件应用。外壳MJS自动地将计算作业从可执行程序划分成微作业。换言之,在此实施例中,应用编程者不需要将应用划分成微作业。
在一个实施例中,外壳MJS基于资源利用率将计算作业从可执行程序划分成微作业。外壳MJS可以分析应用以及应用如何运行,以查明应用使用什么资源。例如,MJS分析应用使用什么资源以及应用将资源使用到什么程度。例如,当盘碎片整理器运行时,外壳MJS可以判定应用使用什么资源(例如,CPU、网络、盘I/O)。在一个实施例中,外壳MJS基于此分析自动地判定如何将应用划分成微作业。外壳MJS还可以基于该分析来判定如何对微作业进行调度。
外壳MJS可以使用各种参数来判定如何将计算作业划分成微作业以及/或者判定如何来调度微作业以便执行。这些参数可以基于用户输入或者由外壳MJS来确立。例如,用户可以指定特定的应用具有高优先级。
硬件概述
图5是示出本发明的实施例可在其上实现的计算机系统500的框图。过程300和过程400的步骤作为指令被存储在计算机系统500的一个或多个计算机可读介质上,并且在系统500的处理器上被执行。计算机系统500包括用于传输信息的总线502或其他通信机构以及与总线502相耦合用于处理信息的处理器504。计算机系统500还包括诸如随机访问存储器(RAM)或其他动态存储设备之类的主存储器506,其耦合到总线502,用于存储信息和处理器504要执行的指令。主存储器506还可用于存储在处理器504执行指令期间的临时变量或其他中间信息。计算机系统500还包括只读存储器(ROM)508或其他静态存储设备,其耦合到总线502,用于存储静态信息和处理器504的指令。提供了诸如磁盘或光盘之类的存储设备510,其耦合到总线502,用于存储信息和指令。计算机系统500可具有任意数目的处理器504。例如,在一个实施例中,计算机系统500是多处理器系统。处理器504可具有任意数目的核心。在一个实施例中,处理器504是多核处理器504。计算机系统500可用在超线程机器中。
计算机系统500可以经由总线502耦合到显示器512,例如阴极射线管(CRT),用于向计算机用户显示信息。包括字母数字和其他键的输入设备514被耦合到总线502,用于向处理器504传输信息和命令选择。另一类用户输入设备是光标控制装置516,例如鼠标、跟踪球或光标方向键,用于向处理器504传输方向信息和命令选择,并用于控制显示器512上的光标移动。该输入设备一般具有两个轴(第一轴(例如x)和第二轴(例如y))上的两个自由度,其允许设备指定平面中的位置。
本发明涉及使用计算机系统500来实现这里描述的技术。根据本发明的一个实施例,这些技术由计算机系统500响应于处理器504执行包含在主存储器506中的一条或多条指令的一个或多个序列而执行。这种指令可以被从另一计算机可读介质(如存储设备510)读取到主存储器506中。对包含在主存储器506中的指令序列的执行使得处理器504执行这里描述的过程步骤。在替换实施例中,可以使用硬线电路来替代软件指令或与软件指令相组合以实现本发明。因此,本发明的实施例并不限于硬件电路和软件的任何特定组合。
这里所用的术语“机器可读介质”指参与提供使得机器以特定方式工作的数据的任何介质。在利用计算机系统500实现的实施例中,例如,在向处理器504提供指令以供执行时,涉及了各种机器可读介质。这种介质可以采取许多形式,包括但不限于:非易失性介质、易失性介质和传输介质。非易失性介质例如包括光盘或磁盘,如存储设备510。易失性介质包括动态存储器,如主存储器506。传输介质包括同轴电缆、铜线和光纤,包括含总线502的线路。传输介质也可以采取声波或光波的形式,例如在无线电波和红外数据通信期间生成的声波或光波。所有这种介质都必须是有形的,以使得介质所携带的指令能够被将指令读取到机器中的物理机构所检测。
机器可读介质的常见形式例如包括软盘、柔性盘、硬盘、磁带或任何其他磁介质,CD-ROM、任何其他光介质,穿孔卡、纸带、任何其他具有孔图案的物理介质,RAM、PROM和EPROM、FLASH-EPROM、任何其他存储器芯片或卡盘,下文中描述的载波,或者计算机可以读取的任何其他介质。
各种形式的机器可读介质可用于将一条或多条指令的一个或多个序列传送到处理器504以供执行。例如,指令可以首先承载在远程计算机的磁盘上。远程计算机可以将指令加载到其动态存储器中,并利用调制解调器经由电话线发送指令。计算机系统500本地的调制解调器可以接收电话线上的数据,并使用红外发送器来将数据转换为红外信号。红外检测器可以接收在红外信号中携带的数据,并且适当的电路可以将数据置于总线502上。总线502将数据传送到主存储器506,处理器504从主存储器506取得指令并执行指令。主存储器506接收的指令可以可选地在处理器504执行之前或之后存储在存储设备510上。
计算机系统500还包括耦合到总线502的通信接口518。通信接口518提供到与本地网络522相连接的网络链路520的双向数据通信耦合。例如,通信接口518可以是综合业务数字网络(ISDN)卡或调制解调器,以提供与相应类型电话线的数字通信连接。又例如,通信接口518可以是局域网(LAN)卡,以提供与兼容LAN的数据通信连接。也可以实现无线链路。在任何这种实现方式中,通信接口518发送并接收电的、电磁的或光信号,这些信号携带了表示各类信息的数字数据流。
网络链路520一般通过一个或多个网络提供到其他数据设备的数据通信。例如,网络链路520可以通过本地网络522提供与主机计算机524或由因特网服务供应商(ISP)526操作的数据设备的连接。ISP526进而通过全球分组数据通信网络(现在通常称为“因特网”)528提供数据通信服务。本地网络522和因特网528都使用携带数字数据流的电的、电磁的或光信号。经过各种网络的信号和在网络链路520上并经过通信接口518的信号(这些信号携带去往和来自计算机系统500的数字数据)是传输信息的载波的示例性形式。
计算机系统500可以通过(一个或多个)网络、网络链路520和通信接口518发送消息并接收数据,其中包括程序代码。在因特网示例中,服务器550可以通过因特网528、ISP 526、本地网络522和通信接口518发送针对应用程序的请求代码。
接收到的代码可以在接收时被处理器504执行,和/或被存储在存储设备510或其他非易失性存储介质中以供以后执行。以这种方式,计算机系统500可以获得载波形式的应用代码。
在以上说明书中,已参考对于不同实现方式可能不同的许多具体细节描述了本发明的实施例。因而,关于本发明是什么以及申请人希望本发明是什么的唯一和排他指示是根据本申请授权的那套采取其授权时的特定形式的权利要求,包括任何后续的更正。这里针对这种权利要求中包含的术语明确阐述的任何限定都应当决定这种术语在权利要求中使用时的含义。因此,在权利要求中没有明确记载的限定、要素、性质、特征、优点或属性都不应当以任何方式限制这种权利要求的范围。因此,说明书和附图被认为是说明性的而不是限制性的。

Claims (18)

1.一种用于调度计算机微作业的方法,包括对于多个微作业中的每一个:
判定运行特定微作业所需的一种或多种资源的利用率不遵从一个或多个空闲标准;
响应于判定所述利用率不遵从所述一个或多个空闲标准,在重新检查所述利用率之前等待一特定等待时间;
在等待所述特定等待时间之后,重新检查所述利用率并且判定运行所述特定微作业所需的所述一种或多种资源的利用率不遵从所述一个或多个空闲标准;
响应于判定所述利用率不遵从所述一个或多个空闲标准,增大所述特定等待时间并且在重新检查所述利用率之前等待增大后的等待时间;
重新检查所述利用率并且至少部分基于对运行所述特定微作业所需的一种或多种资源的利用率遵从一个或多个空闲标准的判定来使得所述特定微作业被执行。
2.如权利要求1所述的方法,还包括将计算作业划分成所述多个微作业。
3.如权利要求2所述的方法,其中,将计算作业划分成所述多个微作业的步骤是由发起所述计算作业的应用程序来执行的。
4.如权利要求2所述的方法,其中,将计算作业划分成所述多个微作业的步骤是由除了发起所述计算作业的应用程序之外的软件进程来执行的。
5.如权利要求2所述的方法,其中,判定运行特定微作业所需的一种或多种资源的利用率何时遵从一个或多个空闲标准的步骤是由操作系统来执行的。
6.如权利要求1所述的方法,其中,判定运行特定微作业所需的一种或多种资源的利用率何时遵从一个或多个空闲标准的步骤是由操作系统外的微作业调度器来执行的。
7.如权利要求1所述的方法,还包括基于指定了在每个微作业的执行之间等待的最小时间量的等待时间来推迟所述多个微作业中的至少一个的执行。
8.如权利要求7所述的方法,还包括应用程序指定所述等待时间。
9.如权利要求8所述的方法,其中,所述指定所述等待时间的步骤包括对于所述多个微作业中的不同微作业指定不同的最小时间量。
10.如权利要求1所述的方法,其中,所述一个或多个空闲标准是基于一种或多种资源利用率阈值的。
11.如权利要求10所述的方法,还包括指定所述一种或多种资源利用率阈值。
12.如权利要求10所述的方法,还包括对于所述多个微作业中的不同微作业指定不同的资源利用率阈值。
13.如权利要求1所述的方法,其中,至少部分基于对运行所述特定微作业所需的一种或多种资源的利用率遵从一个或多个空闲标准的判定来使得所述特定微作业被执行的步骤还基于在允许其他作业利用计算机资源之前限制被允许执行的微作业的数目。
14.如权利要求13所述的方法,其中,限制被允许执行的微作业的数目的步骤是通过检查除了发起所述计算作业的应用程序之外的进程的计算机资源利用率来确定的。
15.如权利要求1所述的方法,还包括确定分配给发起计算作业的应用的存储器的量,其中确定存储器的量的步骤是基于执行所述应用的微作业所需的一小量的存储器的,而不是基于所述应用整体上的存储器需求的。
16.如权利要求15所述的方法,其中确定存储器的量的步骤还基于所述计算机系统中可用的存储器的量。
17.如权利要求1所述的方法,其中所述微作业是计算机进程的一部分,并且每个微作业的执行可被延迟,而不会影响所述计算机进程的其余部分的结果。
18.一种用于调度计算机微作业的设备,包括对于多个微作业中的每一个:
用于判定运行特定微作业所需的一种或多种资源的利用率不遵从一个或多个空闲标准的装置;
用于响应于判定所述利用率不遵从所述一个或多个空闲标准,在重新检查所述利用率之前等待一特定等待时间的装置;
用于在等待所述特定等待时间之后,重新检查所述利用率并且判定运行所述特定微作业所需的所述一种或多种资源的利用率不遵从所述一个或多个空闲标准的装置;
用于响应于判定所述利用率不遵从所述一个或多个空闲标准,增大所述特定等待时间并且在重新检查所述利用率之前等待增大后的等待时间的装置;
用于重新检查所述利用率并且至少部分基于对运行所述特定微作业所需的一种或多种资源的利用率遵从一个或多个空闲标准的判定来使得所述特定微作业被执行的装置。
CN200780022931XA 2006-06-19 2007-05-29 用于调度计算机微作业以在非干扰时间执行的方法、系统和装置 Expired - Fee Related CN101473307B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US11/471,466 2006-06-19
US11/471,466 US8239869B2 (en) 2006-06-19 2006-06-19 Method, system and apparatus for scheduling computer micro-jobs to execute at non-disruptive times and modifying a minimum wait time between the utilization windows for monitoring the resources
PCT/US2007/012746 WO2007149188A1 (en) 2006-06-19 2007-05-29 Method, system, and apparatus for scheduling computer micro-jobs to execute at non-disruptive times

Publications (2)

Publication Number Publication Date
CN101473307A CN101473307A (zh) 2009-07-01
CN101473307B true CN101473307B (zh) 2013-07-17

Family

ID=38572804

Family Applications (3)

Application Number Title Priority Date Filing Date
CN200780022931XA Expired - Fee Related CN101473307B (zh) 2006-06-19 2007-05-29 用于调度计算机微作业以在非干扰时间执行的方法、系统和装置
CN2007800231413A Expired - Fee Related CN101501645B (zh) 2006-06-19 2007-06-06 用于执行计算机作业的方法
CNA2007800229216A Pending CN101473306A (zh) 2006-06-19 2007-06-06 基于资源的调度器

Family Applications After (2)

Application Number Title Priority Date Filing Date
CN2007800231413A Expired - Fee Related CN101501645B (zh) 2006-06-19 2007-06-06 用于执行计算机作业的方法
CNA2007800229216A Pending CN101473306A (zh) 2006-06-19 2007-06-06 基于资源的调度器

Country Status (10)

Country Link
US (3) US8239869B2 (zh)
EP (1) EP2030113A1 (zh)
JP (2) JP2009541848A (zh)
KR (2) KR20090024256A (zh)
CN (3) CN101473307B (zh)
AU (1) AU2007261666C1 (zh)
CA (1) CA2654416A1 (zh)
RU (1) RU2454704C2 (zh)
TW (1) TW200813818A (zh)
WO (1) WO2007149188A1 (zh)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9588809B2 (en) * 2006-10-10 2017-03-07 Invistasking LLC Resource-based scheduler
US8056083B2 (en) 2006-10-10 2011-11-08 Diskeeper Corporation Dividing a computer job into micro-jobs for execution
US8510741B2 (en) * 2007-03-28 2013-08-13 Massachusetts Institute Of Technology Computing the processor desires of jobs in an adaptively parallel scheduling environment
EP2269783A1 (de) * 2009-06-30 2011-01-05 Leica Geosystems AG Kalibrierungsverfahren für ein Messsystem
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
CN102096599A (zh) * 2009-12-14 2011-06-15 中国移动通信集团公司 一种多队列任务调度方法及相关系统和设备
CN101887384A (zh) * 2010-06-30 2010-11-17 中山大学 一种基于马尔科夫模型的进程时间片长度确定方法
CN101968750B (zh) * 2010-10-15 2012-12-26 珠海举天软件科技有限公司 计算机系统及其工作方法
JP5948933B2 (ja) * 2012-02-17 2016-07-06 日本電気株式会社 ジョブ継続管理装置、ジョブ継続管理方法、及び、ジョブ継続管理プログラム
CN103019853A (zh) * 2012-11-19 2013-04-03 北京亿赞普网络技术有限公司 一种作业任务的调度方法和装置
US9152451B2 (en) * 2013-01-03 2015-10-06 GM Global Technology Operations LLC Method of distributing processor loading between real-time processor threads
JP5778200B2 (ja) * 2013-02-28 2015-09-16 株式会社大和総研ビジネス・イノベーション 情報処理装置、情報処理システム、情報処理方法、及び情報処理プログラム
CN104026744B (zh) * 2013-03-05 2018-12-18 惠州市吉瑞科技有限公司 电子烟微控制器的多任务执行方法及装置
CN103279351B (zh) * 2013-05-31 2016-06-29 北京高森明晨信息科技有限公司 一种任务调度的方法及装置
US9477523B1 (en) 2013-06-25 2016-10-25 Amazon Technologies, Inc. Scheduling data access jobs based on job priority and predicted execution time using historical execution data
US9602423B2 (en) 2013-06-28 2017-03-21 Pepperdata, Inc. Systems, methods, and devices for dynamic resource monitoring and allocation in a cluster system
JP5466786B1 (ja) * 2013-08-28 2014-04-09 株式会社 ディー・エヌ・エー 画像処理装置及び画像処理プログラム
KR101604303B1 (ko) * 2013-10-30 2016-03-18 삼성에스디에스 주식회사 업데이트 실행 장치 및 방법과 이를 이용한 기록 매체, 업데이트 제공 서버 및 업데이트 제공 방법
US9727387B2 (en) 2014-11-10 2017-08-08 International Business Machines Corporation System management and maintenance in a distributed computing environment
US20180198855A1 (en) * 2014-11-24 2018-07-12 Alibaba Group Holding Limited Method and apparatus for scheduling calculation tasks among clusters
CN104731662B (zh) * 2015-03-26 2018-02-23 华中科技大学 一种可变并行作业的资源分配方法
US20170032000A1 (en) * 2015-07-28 2017-02-02 Bank Of America Corporation Database manager
RU2617923C2 (ru) * 2015-09-30 2017-04-28 Акционерное общество "Лаборатория Касперского" Система и способ настройки антивирусной проверки
US10034407B2 (en) * 2016-07-22 2018-07-24 Intel Corporation Storage sled for a data center
US10860373B2 (en) * 2016-10-11 2020-12-08 Microsoft Technology Licensing, Llc Enhanced governance for asynchronous compute jobs
JP7151219B2 (ja) * 2018-07-05 2022-10-12 株式会社リコー 組み込み機器、ウィルススキャンプログラム実行方法、プログラム
CN109460254B (zh) * 2018-09-25 2021-03-19 杭州旗捷科技有限公司 一种指令处理方法、cpu交互系统及采用该系统的耗材芯片
US20210382705A1 (en) * 2020-06-08 2021-12-09 Acronis International Gmbh Systems and methods for seamless software migration
KR102585591B1 (ko) * 2021-06-23 2023-10-10 한국과학기술원 이기종 프로세서 기반 엣지 시스템에서 slo 달성을 위한 인공지능 추론 스케쥴러

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6330583B1 (en) * 1994-09-09 2001-12-11 Martin Reiffin Computer network of interactive multitasking computers for parallel processing of network subtasks concurrently with local tasks
CN1439130A (zh) * 2000-04-28 2003-08-27 大正制药株式会社 并行处理方法中的作业分配方法及并行处理方法
US20050240934A1 (en) * 2004-04-21 2005-10-27 Hewlett-Packard Development Company, L.P. Task management based on system utilization

Family Cites Families (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10065A (en) * 1853-10-04 Improvement in machines for topping cotton jn the field
US71841A (en) * 1867-12-10 Improvement in horse-rakes
US125793A (en) * 1872-04-16 Improvement in water-meters
US246461A (en) * 1881-08-30 Blotting-pad
US73508A (en) * 1868-01-21 Improvement in cued-breaiees
US32293A (en) * 1861-05-14 Improved projectile for rifled ordnance
US231630A (en) * 1880-08-24 theodoe stefflway
SU849893A1 (ru) 1979-07-16 1996-01-10 Институт Кибернетики Ан Усср Вычислительная система
RU2027219C1 (ru) * 1990-12-17 1995-01-20 Грибков Владимир Александрович Устройство для распределения заданий процессорам
RU2018945C1 (ru) 1991-06-07 1994-08-30 Научно-производственное объединение интегрированных микроэлектронных систем Блок выбора направления обмена децентрализованной вычислительной системы
JPH06237348A (ja) 1993-02-08 1994-08-23 Fuji Xerox Co Ltd メモリ制御装置
US5675790A (en) 1993-04-23 1997-10-07 Walls; Keith G. Method for improving the performance of dynamic memory allocation by removing small memory fragments from the memory pool
DE19500957A1 (de) 1994-07-19 1996-01-25 Bosch Gmbh Robert Verfahren zur Steuerung von technischen Vorgängen oder Prozessen
JP2940450B2 (ja) 1995-10-26 1999-08-25 日本電気株式会社 クラスタ型コンピュータのジョブスケジュール方法及び装置
JP4110593B2 (ja) 1997-05-19 2008-07-02 ソニー株式会社 信号記録方法及び信号記録装置
JP3588231B2 (ja) 1997-08-04 2004-11-10 東京エレクトロンデバイス株式会社 データ処理システム及びブロック消去型記憶媒体
US6016503A (en) * 1997-08-29 2000-01-18 International Business Machines Corporation Methods, systems and computer program products for preemptive avoidance of constraints for shared resources
US5974439A (en) * 1997-11-21 1999-10-26 International Business Machines Corporation Resource sharing between real-time and general purpose programs
US6226728B1 (en) 1998-04-21 2001-05-01 Intel Corporation Dynamic allocation for efficient management of variable sized data within a nonvolatile memory
US7268774B2 (en) 1998-08-18 2007-09-11 Candledragon, Inc. Tracking motion of a writing instrument
US6567840B1 (en) 1999-05-14 2003-05-20 Honeywell Inc. Task scheduling and message passing
US6591287B1 (en) * 1999-09-08 2003-07-08 Lucent Technologies Inc. Method to increase the efficiency of job sequencing from sequential storage
US6609131B1 (en) * 1999-09-27 2003-08-19 Oracle International Corporation Parallel partition-wise joins
US6357016B1 (en) 1999-12-09 2002-03-12 Intel Corporation Method and apparatus for disabling a clock signal within a multithreaded processor
US7096327B2 (en) 2000-03-24 2006-08-22 Koninklijke Philips Electronics N.V. System for and method of accessing blocks on a storage medium
US7007090B1 (en) * 2000-03-31 2006-02-28 Intel Corporation Techniques of utilizing actually unused bandwidth
US7170891B2 (en) 2001-08-30 2007-01-30 Messenger Terabit Networks, Inc. High speed data classification system
US7237016B1 (en) * 2001-09-07 2007-06-26 Palau Acquisition Corporation (Delaware) Method and system to manage resource requests utilizing link-list queues within an arbiter associated with an interconnect device
EP1310869A1 (en) 2001-11-12 2003-05-14 Hewlett-Packard Company Data processing system and method
JP3986346B2 (ja) * 2002-03-28 2007-10-03 富士通株式会社 処理装置、サーバ、およびプログラム
US7076781B2 (en) * 2002-05-31 2006-07-11 International Business Machines Corporation Resource reservation for large-scale job scheduling
US20040030882A1 (en) 2002-08-08 2004-02-12 Forman George Henry Managed application pre-launching
US7451704B1 (en) 2003-03-20 2008-11-18 The United States Of America As Represented By The Secretary Of The Army Multifunctional explosive fragmentation airburst munition
JP2004302986A (ja) 2003-03-31 2004-10-28 Alps Electric Co Ltd タスク管理方法
JP3936924B2 (ja) 2003-06-18 2007-06-27 株式会社日立製作所 ジョブスケジューリング方法及びシステム
US7467102B2 (en) 2003-09-11 2008-12-16 International Business Machines Corporation Request type grid computing
US20050071841A1 (en) 2003-09-30 2005-03-31 Hoflehner Gerolf F. Methods and apparatuses for thread management of mult-threading
US7512948B2 (en) * 2003-11-20 2009-03-31 International Business Machines Corporation Method, system, and program for managing operation requests using different resources
US7650601B2 (en) 2003-12-04 2010-01-19 International Business Machines Corporation Operating system kernel-assisted, self-balanced, access-protected library framework in a run-to-completion multi-processor environment
WO2005060575A2 (en) 2003-12-10 2005-07-07 X1 Technologies, Inc. Performing operations in response to detecting a computer idle condition
US7441242B2 (en) * 2004-04-22 2008-10-21 International Business Machines Corporation Monitoring performance of a logically-partitioned computer
US20050246461A1 (en) 2004-04-29 2005-11-03 International Business Machines Corporation Scheduling threads in a multi-processor computer
US8856793B2 (en) * 2004-05-11 2014-10-07 International Business Machines Corporation System, method and program for scheduling computer program jobs
US7480840B2 (en) 2004-10-12 2009-01-20 International Business Machines Corporation Apparatus, system, and method for facilitating port testing of a multi-port host adapter
JP4691348B2 (ja) 2004-10-26 2011-06-01 三菱電機株式会社 記憶領域管理プログラムおよびメッセージ管理プログラム
US20060168214A1 (en) * 2004-10-29 2006-07-27 International Business Machines Corporation System for managing logical partition preemption
US7814485B2 (en) * 2004-12-07 2010-10-12 Intel Corporation System and method for adaptive power management based on processor utilization and cache misses
US7793308B2 (en) * 2005-01-06 2010-09-07 International Business Machines Corporation Setting operation based resource utilization thresholds for resource use by a process
JP2006237348A (ja) 2005-02-25 2006-09-07 Ulvac Japan Ltd 静電チャック及びこれを備えた真空処理装置
US8594311B2 (en) * 2005-06-02 2013-11-26 Virtual Hold Technology, Llc Expected wait time augmentation system and method
JP4871546B2 (ja) * 2005-08-22 2012-02-08 株式会社日立製作所 ストレージシステム
US7831971B2 (en) * 2005-10-24 2010-11-09 International Business Machines Corporation Method and apparatus for presenting a visualization of processor capacity and network availability based on a grid computing system simulation
US7853948B2 (en) 2005-10-24 2010-12-14 International Business Machines Corporation Method and apparatus for scheduling grid jobs
US20070143759A1 (en) * 2005-12-15 2007-06-21 Aysel Ozgur Scheduling and partitioning tasks via architecture-aware feedback information
US20070150871A1 (en) * 2005-12-22 2007-06-28 International Business Machines Corporation Autonomically adjusting the collection of performance data from a call stack
US9588809B2 (en) 2006-10-10 2017-03-07 Invistasking LLC Resource-based scheduler
US8056083B2 (en) 2006-10-10 2011-11-08 Diskeeper Corporation Dividing a computer job into micro-jobs for execution
GB2439577B (en) 2006-06-30 2011-12-14 Data Equation Ltd Data processing

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6330583B1 (en) * 1994-09-09 2001-12-11 Martin Reiffin Computer network of interactive multitasking computers for parallel processing of network subtasks concurrently with local tasks
CN1439130A (zh) * 2000-04-28 2003-08-27 大正制药株式会社 并行处理方法中的作业分配方法及并行处理方法
US20050240934A1 (en) * 2004-04-21 2005-10-27 Hewlett-Packard Development Company, L.P. Task management based on system utilization

Also Published As

Publication number Publication date
RU2454704C2 (ru) 2012-06-27
US9384040B2 (en) 2016-07-05
KR20140022963A (ko) 2014-02-25
US9727372B2 (en) 2017-08-08
WO2007149188A1 (en) 2007-12-27
CN101501645B (zh) 2013-04-03
RU2008149052A (ru) 2010-07-27
AU2007261666B2 (en) 2012-10-11
CN101473306A (zh) 2009-07-01
AU2007261666C1 (en) 2013-05-23
AU2007261666A1 (en) 2007-12-27
US20120304181A1 (en) 2012-11-29
JP2009541848A (ja) 2009-11-26
EP2030113A1 (en) 2009-03-04
KR20090024256A (ko) 2009-03-06
US20160314015A1 (en) 2016-10-27
CN101501645A (zh) 2009-08-05
JP2013232207A (ja) 2013-11-14
US20070294695A1 (en) 2007-12-20
KR101471394B1 (ko) 2014-12-10
TW200813818A (en) 2008-03-16
CN101473307A (zh) 2009-07-01
US8239869B2 (en) 2012-08-07
CA2654416A1 (en) 2007-12-27

Similar Documents

Publication Publication Date Title
CN101473307B (zh) 用于调度计算机微作业以在非干扰时间执行的方法、系统和装置
JP4066932B2 (ja) 予測に基づいた計算機リソース配分方法
CN111406250B (zh) 无服务器计算环境中的使用经预取的数据的配设
US9588809B2 (en) Resource-based scheduler
CN101266557B (zh) 在客户机-服务器或主机环境中计算作业的多目标分配
US8346909B2 (en) Method for supporting transaction and parallel application workloads across multiple domains based on service level agreements
US9524296B2 (en) Managing events in a computing environment
US8631412B2 (en) Job scheduling with optimization of power consumption
CN102667724A (zh) 利用加速器的、目标指向的工作负载性能管理
US20080288946A1 (en) States matrix for workload management simplification
EP2038748A1 (en) Resource-based scheduler
US8510273B2 (en) System, method, and computer-readable medium to facilitate application of arrival rate qualifications to missed throughput server level goals
CN111464331A (zh) 一种线程创建的控制方法、系统及终端设备
RU2450330C2 (ru) Аппаратно-реализуемый способ выполнения программ
WO2002003192A2 (en) Device and method for allocating jobs in a network
CN116737377A (zh) 计算集群资源调度方法、电子设备及可读存储介质
CN114691279A (zh) 资源调度方法、设备及存储介质
Dottin et al. Scheduling cooperative emergency response: or how the meek shall overcome the greedy

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C53 Correction of patent for invention or patent application
CB02 Change of applicant information

Address after: American California

Applicant after: Diskeeper Corp.

Address before: American California

Applicant before: Diskeeper Corp.

COR Change of bibliographic data

Free format text: CORRECT: APPLICANT; FROM: DISKEEPER CORP. TO: KANGDA SIFU TECHNOLOGY CO.

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130717

Termination date: 20150529

EXPY Termination of patent right or utility model