CN1910553A - 基于存储器要求在多处理器系统中进行任务调度的方法和设备 - Google Patents

基于存储器要求在多处理器系统中进行任务调度的方法和设备 Download PDF

Info

Publication number
CN1910553A
CN1910553A CNA2005800020818A CN200580002081A CN1910553A CN 1910553 A CN1910553 A CN 1910553A CN A2005800020818 A CNA2005800020818 A CN A2005800020818A CN 200580002081 A CN200580002081 A CN 200580002081A CN 1910553 A CN1910553 A CN 1910553A
Authority
CN
China
Prior art keywords
task
data
processor
tasks
storer
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
CNA2005800020818A
Other languages
English (en)
Inventor
R·J·布里尔
D·J·C·洛维特
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.)
Koninklijke Philips NV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of CN1910553A publication Critical patent/CN1910553A/zh
Pending legal-status Critical Current

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
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/48Indexing scheme relating to G06F9/48
    • G06F2209/485Resource constraint

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

提供了一种供多处理器数据处理系统的调度器基于主存储器要求来选择任务抢占点的方法和设备。根据对处理器的任务分配,存在三种可选的优选实施例:(1)固定分配:把每个任务分配给特定处理器,即每一任务只在给定处理器上执行。当处理器是专用的,即每一处理器基本上各不相同时,优选此实施例;(2)可变分配:每个任务可在每个处理器上执行。在运行时,所述调度器确定哪个处理器执行哪个任务。任务在一个处理器上运行时可被抢占,并且稍后在另一个上继续。当所有处理器相同时优选此实施例;以及(3)混合分配:把每个任务分配给处理器的一个子集。当可以把处理器集合划分为子集时,这是一种自然的方法,处于所述子集中的处理器相同。

Description

基于存储器要求在多处理器系统中进行任务调度的方法和设备
技术领域
本发明涉及一种资源管理的方法和设备,特别但非排他性地适用于多处理器实时系统的资源管理。
背景技术
对于硅片上系统(systems-on-silicon,SoS)或者芯片上系统(systems-on-chip,SoC)来说,因为从所需要的硅元素量上看,存储器变成主要限制因素,所以添加另一处理核心不再是问题。因此,SoS或者SoC可以包含多个处理器核心。
对多处理器系统来说存储器的管理是资源管理的关键方面。已经开发了各种方法来优化单处理器系统的存储器使用,包括统一主存储器管理的抢占点的使用,特别是在实时系统中的。在这些方法中,那些任务优选地基于其存储器使用只在专用抢占点抢占,而不是在其执行期间在任意时刻抢占任务。
在典型的现有技术的方法中,任务挂起称为任务抢占,或者任务的抢占,并且术语″任务”用来表示可在其自身上竞争诸如存储器、CPU、I/O设备等系统资源的执行单位。为了论述,将任务假定为一连串连续执行的作业,其均包括一个或多个子作业。例如,任务可以包括″多路分解视频流”,并且涉及读入输入流、处理所述流并且输出相应的数据。这些步骤是相对于每一输入数据流执行的,因此相对于单个流的读取、处理和输出对应于执行一个作业,每个作业均具有三个子作业。由此,当存在多个数据包待读入和处理时,所述作业将会被执行相应多次。子作业可以被认为涉及作业的功能组件,并且在多处理器系统中,每一流将会被分配给不同的处理器或者处理器子集。
在数据处理系统中调度多个任务的已知方法要求任务的每一子作业具有挂起标准集合,即挂起数据,该集合基于其存储器使用[4][5]指定用于子作业挂起的处理抢占点和相应条件。因此,由数据处理系统使用的存储器量通过经由这些抢占点被此挂起数据间接控制,所述挂起数据指定在作业的执行中在这些抢占点要求的存储器量。
由此,这些抢占点可以用于避免数据处理系统因缺乏存储器而崩溃。当实时任务具有包括多个子作业的特性时,其抢占点优选地与所述任务的子作业边界一致。
例如表示任务的存储器使用的数据可以经由要求解调度事件的代码行嵌入到任务中,所述任务遵循与任务的每一子作业相关联的挂起数据,所述解调度事件规定在任务的处理中已经到达抢占点,即已经到达子作业边界。也就是说,任务子作业的起点集合构成该任务的抢占点集合。任务τi的第j个抢占点Pi,j通过涉及抢占点自身的信息和涉及后继非抢占的子作业间隔Ii,j的信息来特征化,所述间隔Ii,j是第j个抢占点和下一抢占点,即第(j+1)个抢占点之间的间隔。
在运行时,当任务到达抢占点,例如当它启动子作业、在子作业之间切换并且完成子作业时,任务通知正控制的操作系统,并且所述操作系统决定何时以及何地抢占任务的执行。理想地,抢占可能出现在抢占点或者在任务执行期间的任何其它点。然而,抢占选择的这种灵活性是以一致性为代价的,因此抢占被限制在抢占点以保持一致性。
基于主存储器需求的不危害系统的一致性的现有技术的抢占点方法,必然将所有任务的抢占限制在其抢占点,并且限制在两个子作业边界内用于控制资源专用的同步原语相匹配。如在所述领域中已知的,组件(例如,可以包括一个或多个任务的软件组件)可以具有可编程接口,所述可编程接口包括组件定义[6]的属性、功能或者方法和事件。为了论述,假定任务伴有接口100,所述接口100至少包括所述任务要求的主存储器数据MPi,j 101b,如图1中所示。
为了论述,任务假定为周期性的和实时的,并且通过周期T和定相F来特征化,其中0<=F<T,其意味着任务包括子作业序列,每个子作业在时间F+nT被释放,其中n=0...N。只作为一个例子并且如图2中所示,机顶盒200被假定为执行三个任务:(1)在用户接口205上显示菜单,(2)从内容提供商203检索文本信息,并且(3)处理一些视频信号,并且这3项任务的每一项均被假定为包括多个子作业。为便于介绍,假定所述子作业被顺序地执行。
至少一些子作业可以被抢占,并且可以抢占的这些子作业之间的边界提供抢占点并且在表1中概括:
  任务τi   任务描述   任务可抢占子作业数目τim(i)
  τ1   在GUI上显示菜单   3
  τ2   从内容提供商检索文本信息   2
  τ3   处理视频信号   2
                           表1
还参照图3,对于每个任务来说,挂起数据101包括:涉及抢占点Pi,j 301的信息,诸如在抢占点需要的存储器最大量MPi,j 302,以及涉及连续抢占点之间的间隔Ii,j 303的信息,诸如在抢占点内部间隔中需要的最坏情况的存储器数量MIi,j 304(i表示任务τi而j表示抢占点)。
更具体地说,挂起数据101包括规定如下内容的数据:
1.任务τi(Pi,j)的抢占点j 101a;
2.在该任务的抢占点j处的任务τi的最大存储器需求MPi,j,其中1≤j≤m(i)101b;
3.对应于任务τi的子作业的连续抢占点j和(j+1)之间的间隔Ii,j,其中1≤j≤m(i)101c;以及
4.在该任务的间隔j中任务τi的最大(即最坏情况下的)存储器需求Mi,j,其中1≤j≤m(i)101d。
表2举例说明了用于当前例子的挂起数据101(每一任务均具有其自己的接口,因此在当前例子中,对应于第一任务τ1的挂起数据101包括表2第一行中的数据,对应于第二任务τ2的挂起数据101包括表2的第二行,等等。)
 任务τi MPi,1   MIi,1   MPi,2   MIi,2   MPi,3   MIi,3
 τ1 0.2   0.6   0.2   0.4   0.1   0.6
 τ2 0.1   0.5   0.2   0.8   -   -
 τ3 0.1   0.2   0.1   0.3   -   -
                             表2
假定机顶盒200具有1.5兆字节的存储器。在正常情况下,或者基于非存储器的抢占条件下,此机顶盒200作用如下。
现在参考图4A,可期待处理器401依照某种时间分片或基于优先级的抢占来调度任务,意味着所有3个任务并发运行,即同时有效。因此,可能的是,每一任务可以被调度以便同时运行其最存储器集中的子作业。这三个任务的最坏情况下的存储器需求MP由如下公式给出:
M P = Σ i = 1 3 max j = 1 m ( i ) MI i , j (公式1)
因此,对于任务τ1、τ2和τ3来说,MP是τ1的最大存储器需求(MI1,1)加上任务τ2的最大存储器需求(MI2,2)加上任务τ3的最大存储器需求(MI3,2)。这些最大需求由表2中粗体的条目表明:
MP=0.6+0.8+0.3=1.7兆字节。
这超出了机顶盒200可以利用的存储器0.2兆字节,因此,在缺少任何预防措施的情况下并且如果这些子作业将会同时被处理,那么机顶盒200将崩溃。
现在参考图5,假定任务是依照调度算法来调度,并且在其已经创建之后为每一任务τi提供一个数据结构,并且资源专用的原语匹配对没有跨越子作业边界。还假定调度器501采用常规的基于优先级的抢占调度算法,其基本上确保在时间的任一点,当前运行的任务在系统中所有运行就绪的任务中是具有最高优先级的一个。正如本领域已知的那样,调度行为可以通过有选择地允许和禁止对正在运行或运行就绪的任务的抢占来修改。
任务管理器503接收对应于最近接收到的任务的挂起数据101,并且评估是否需要抢占,并且如果需要,把此最近接收到的信息传递到请求抢占的调度器501。假定任务的细节如表2中所定义的,并且假定当前正在处理任务τ1(并且只有τ1)并且调度器最初在没有基于存储器限制的模式中操作。
现在假定任务τ2是由任务管理器503接收到的,所述任务管理器503从其接口Int2 100读取挂起数据101,并且识别调度器501是否依照基于存储器的抢占来工作。在此例子中,由于不是,所以任务管理器503评估调度器501是否需要改变为基于存储器的抢占。因此,这涉及任务管理器503从挂起数据存储器505中检索对应于所有当前执行任务(在此例子中,是任务τ1)的最坏情况的挂起数据,评估公式1并将评估出的最坏情况的存储器需求与可利用的存储器资源进行比较。继续利用表2中引入的例子,对于τ1和τ2来说,公式1是:
Figure A20058000208100121
其小于可用存储器,因此不必将调度器501的操作模式改变为基于存储器的抢占(即不需要基于存储器使用来限制调度器)。由此,如果调度器501将在任务τ1和任务τ2之间切换,例如,为了满足任务τ2的执行时间限制,意味着两个任务同时有效地驻留在存储器中,那么处理器决不访问比可利用的更多的存储器。
接下来,并且在完成任务τ1和τ2以前,接收另一任务τ3。任务管理器503从与任务τ3相关联的接口Int3读取挂起数据101,评估调度器501是否需要改变为基于存储器的抢占。假定调度器501正在多任务操作任务τ1和τ2,那么所有三个任务的最坏情况的存储器需求现在是
Figure A20058000208100122
这超出了可用存储器,因此任务管理器503请求并且从挂起数据存储器505中检索所有三个任务的存储器使用数据MPi,j,MIi,j 101b、101d,并且基于此检索的存储器使用数据来评估是否存在足够的存储器资源来执行所有三个任务。这可以通过评估如下公式来确定:
M D = Σ i = 1 3 max j = 1 m ( i ) MP i , j + max i = 1 3 ( max j = 1 m ( i ) MI i , j - max j = 1 m ( i ) MP i , j )
= 0.2 + 0.2 + 0.1 + max ( 0.6 - 0.2,0.8 - 0.2,0.3 - 0.1 )
Figure A20058000208100125
(公式2)
此存储器需求低于可用存储器,意味着所提供的任务基于其存储器使用被抢占,可以并发执行所有三个任务。
因此,任务管理器503通过命令任务在其指定的抢占点MPi,j向调度器501传输解调度指令来启动“基于存储器的抢占模式”。在此模式中,依照在任一时间点,每次最多一个任务可处于不同于其抢占点之一的点的限制,调度器501允许每一任务非抢占地从一个抢占点到下一抢占点运行。假定最近到达的任务在抢占点开始,那么调度器501确保此条件对当前运行的任务继续,由此限制只有一个任务将处于抢占点。
由此,在一个已知的基于存储器的抢占模式中,只允许调度器501在其存储器抢占点抢占任务(即响应于来自处于其基于存储器的抢占点的任务的解调度请求)。
当任务之一已经终止时,正在终止的任务通知任务管理器503它正在终止,引起任务管理器503评估公式1并且如果最坏情况的存储器使用(考虑此任务的移除)低于调度器501可用的存储器使用,那么任务管理器503可以取消基于存储器的抢占,这样做有益于使系统能够对外部事件更加快速地作出反应(因为处理器在子作业持续时间内不再“阻塞”)。总体上讲,任务的终止通常由其环境引起,例如用户切换频道或者在采用了编码的数据流的变化(要求另一种解码),意味着任务管理器503和/或调度器501应该意识到任务的终止并且可能甚至命令任务终止。
应该注意的是,当启动时,基于存储器的抢占的限制是必须的。
已经作为软件任务描述了任务,但是任务还可以用硬件来实现。通常,硬件设备(如硬件任务作用)由软件任务控制,其分配硬件设备需要的(最坏情况的)存储器,并且随后命令硬件任务运行。当硬件任务完成时,它通知软件任务,其随后取消分配该存储器。因此,通过具有控制软件任务,硬件任务可以如上所述简单地得以处理。
此方法适用于单处理器系统,并且没有为多处理器系统进行优化,由此需要多处理器优化。
本发明为多处理器系统提供了对上述基于存储器的资源管理的单处理器方法的优化。假定n个任务τi(1≤i≤n)的集合Γ和p个处理器πk(1≤k≤p)的集合P,其中n通常远大于p,并且对非限制模式假定固定优先级的抢占调度(FPPS)方案,而对基于存储器的抢占模式假定具有延迟抢占的固定优先级调度(FPDP)方案。
根据任务对处理器分配,存在三个可选的优选实施例:
1.固定分配:把每个任务τi分配给特定处理器πk,即任务τi将只在处理器πk上执行。当处理器是专用的,即每一处理器基本上各不相同时,优选此实施例。
2.可变分配:每个任务τi可以在每个处理器πk上执行。在运行时,所述调度器确定哪个处理器执行哪个任务。任务在一个处理器上运行时可被抢占,并且稍后在另一个上继续。当所有处理器均相同时优选此实施例。
3.混合分配:把每个任务τi分配给处理器的子集。当可以把处理器集合划分为子集时,这是一种自然的方法,处于所述子集中的处理器相同。
从随后的如附图中举例说明的优选实施例的详细描述中,本发明的上述和其它特征和优势将显而易见,在所述附图中,遍及各个视图的参考字符指相同的部分。
附图说明
图1举例说明了依照本发明实施例的任务接口组件的示意图;
图2举例说明了本发明实施例可在其中操作的数字电视系统的一个例子的示意图;
图3举例说明了对于单处理器而言,图1所示例的任务接口组件之间的关系的示意图。
图4A举例说明了单处理器系统的构成图2的机顶盒的组件。
图4B举例说明了多处理器系统的构成图2的机顶盒的组件。
图5举例说明了图2和图4A所示例的机顶盒的处理器组件。
具体实施方式
本领域普通技术人员应该理解的是,出于举例说明、而非限制性的目的而提供随后的描述。技术人员应该理解,在本发明的精神和所附权利要求书的范围内存在多种变化。从当前描述中省略了已知功能和操作的不必要的细节,以免模糊本发明。
诸如数字电视机、数字改善模拟电视机和机顶盒(STB)之类的高容量电子(HVE)消费系统,在保持有成本效益和稳定的同时必须提供实时服务。消费品因其属性受到严重的资源限制。因此,必须非常有效地使用可用资源,同时保持HVE消费系统的诸如稳定性的特有质量,并且满足严格的定时要求。提到稳定性,没有人会期待例如电视机以“请重新启动系统”的消息发生故障。
HVE消费系统中的介质处理的重要部分是在板上软件中实现的,其用于处理多个并发的数据流,并且在多任务处理环境下,特别必须非常有效地管理系统资源,诸如主存储器。将机顶盒作为需要实时资源管理的HVE消费系统的一个例子。通常,如图2中所示那样,机顶盒200为电视201接收来自内容提供商203(服务器或者电缆)以及来自用户接口205的输入。所述用户接口205包括遥控接口,用于接收来自用户控制的远程设备202的信号,所述远程设备例如是手持红外遥控发射机。机顶盒200接收来自天线和有线电视出口至少一个的至少一个数据流,并且执行处理数据流或者向电视201转送数据流的至少一个。用户察看显示在电视201上的该至少一个数据流,并且经由用户接口205来基于正显示的内容作出选择。机顶盒200处理用户选择输入,并且基于此输入,可以把所述用户输入以及其它识别机顶盒200及其能力的信息传输给内容提供商203。
图4B举例说明了典型机顶盒200的示例性系统450的简化框图,所述机顶盒200可包括由控制和分配逻辑模块来管理的多个处理器460.1-460.3,所述控制和分配逻辑模块给处理器460.1-460.3分配任务并且控制机顶盒200的总体操作。所述控制和分配逻辑模块451包括用于接收来自网络407和来自存储器406的数据的数据接收器452、用于评估存储器使用的评估器453、用于给处理器分配任务的分配器454、用于选择任务以启动和终止其执行的选择器455以及用于调度任务以便执行和解调度正在执行的任务的调度器501。所述控制和分配逻辑模块451被耦合至电视调谐器403、存储器405、长期存储设备406、通信接口407和远程接口409。所述电视调谐器403经由传输线路411接收电视信号,并且这些信号可能来源于天线(未示出)和有线电视出口(未示出)的至少一个。所述控制和分配逻辑模块451管理用户接口205,所述用户接口205经由线路413给电视201提供数据、音频和视频输出。所述远程接口409经由无线连接415接收来自遥控器信号。通信接口407在机顶盒200和诸如Web服务器的至少一个远程处理系统之间经由数据通路417对接。所述通信接口417是电话调制解调器、综合业务数字网络(ISDN)适配器、数字用户线路(xDSL)、有线电视调制解调器和任何其它适合的数据通信设备之一。图4B的示例性系统450仅仅是用于叙述的目的。虽然所述描述会提及在描述特殊机顶盒200中通常使用的术语,但是所述描述和概念同样适用于其它控制处理器,包括具有与图4B所示不同的体系结构的系统。
在优选的实施例中,所述控制和分配逻辑模块451被配置为给共享存储器405的多个多处理器460.1-460.3分配多个实时任务,所述实时任务涉及对机顶盒200的控制。这些实时任务包括改变频道、选择显示在用户接口205上的菜单选项、解码输入数据流、使用长期存储设备406来记录输入数据流和重放它们等等。机顶盒的操作基于机顶盒100的特性、经由线路411的输入视频信号、经由用户接口205的用户输入以及任何其它辅助输入,由这些实时控制任务来确定。
在优选的实施例中,多处理器共享存储器405。这些多处理器460.1-460.3均可以是CPU或者协处理器,或者是其它处理设备。在优选的实施例中,同一任务决不会同时由两个(或更多)处理器来执行。在优选的实施例中,控制和分配逻辑模块包括用于处理器460.1-460.3的整个集合的单个任务管理器。这是一种集中式方法,仅用于论述目的。本发明不受集中式方法的限制,本领域内有经验的人员可很容易想到分散版本。
每当把每个任务τ分配给特殊处理器π时,任务集合Γ可被划分为p个不相交的集合Γ1p,其中把子集Γk分配给处理器πk。在FPPS下,当由处理器πk执行时,任务子集Γk所需的存储器最大量由(公式1s’)给出,其是(公式1)的变型。(公式1s’)中的项nk表示分配给处理器πk的任务数(即子集Γk的基数),而变量i被假定为涉及Γk的任务。
M k P = Σ i = 1 n k max j = 1 m ( i ) MI i , j (公式1s′)
任务的整个集合Γ的总存储器需求MP是通过添加为每个任务子集得出的结果而确定的;参见(公式1mfix)。
M P = Σ k = 1 p M k P (公式1mfix)
当MP没有超过可用存储器Msys时,不必限制任何处理器上的任务的调度。当MP超出Msys时,我们可限制一个或多个处理器上的一个或多个任务的调度。限制单个处理器上所有任务的调度的效果可以使用(公式2s′)来确定,所述(公式2s′)是(公式2s)的变型。
M k D = Σ i = 1 n k max j = 1 m ( i ) MP i , j + max 1 ≤ i ≤ nk ′ ( max j = 1 m ( i ) MI i , j - max j = 1 m ( i ) MP i , j ) (公式2s′)
限制所有处理器上的所有任务的调度的效果可以通过(公式2mfix)来确定,其中总存储器需求MD是每一集合Γk的存储器需求Mk D的和。
M D = Σ k = 1 p M k D (公式2mfix)
显而易见,还存在很多中间可选实施例,诸如限制仅仅一个处理器子集上的所有任务,并且只限制一个处理器子集上的一个任务子集。
作为选择,每个任务可在每个处理器460.1-460.3上执行,并且任务的调度由控制和分配逻辑模块451执行。对非限制模式最大存储器需求MP保持相同,即可以使用(公式1s)来确定。
M P = Σ i = 1 n max j = 1 m ( i ) M I i , j (公式1s)
限制的模式(即所有任务只在其抢占点抢占)要求(公式2s)的变型。
M D = Σ i = 1 n max j = 1 m ( i ) MP i , j + max i = 1 3 ( max j = 1 m ( i ) MI i , j - max j = 1 m ( i ) MP i , j )
= 0.2 + 0.2 + 0.1 + max ( 0.6 - 0.2,0.8 - 0.2,0.3 - 0.1 )
(公式2s)
因为在p个处理器上现在可并行运行p个任务。总存储器需求MD现在由(公式2mvar)给出。
M D = &Sigma; i = 1 n max j = 1 m ( i ) MP i , j + max 1 &le; i 1 < i 2 < . . . < i p &le; n &Sigma; k = 1 p ( max j = 1 m ( i k ) MI i k , j - max j = 1 m ( i k ) MP i k , j ) (公式2mvar)
注意,(公式2mvar)假定n≥p,并且(公式2mvar)只在n≥p时才有效。对于n<p的特殊情况来说,所述公式可以简化为
M D = &Sigma; i = 1 n max j = 1 m ( i ) MI i , j
显而易见,还存在许多中间实施例,诸如只限制任务的一个子集。
作为一个例子,考虑两个处理器(即p=2)和三个任务(即n=3)的情况。假设所述任务具有相同的特性(即存储器需求),如上面表1和2及其所附讨论所述。对非限制模式的最大存储器需求MP保持相同,即可以使用(公式1)来确定,由此超出可用存储器Msys。使用(公式2mvar),基于存储器抢占的最大存储器需求MD是:
M D = &Sigma; i = 1 3 max j = 1 m ( i ) MP i , j + max 1 &le; i 1 < i 2 &le; 3 &Sigma; k = 1 2 ( max j = 1 m ( i k ) MI i k , j - max j = 1 m ( i k ) MP i k , j )
= 0.2 + 0.2 + 0.1 + max ( 0.4 + 0.6,0.4 + 0.2,0.6 + 0.2 )
存储器需求低于可用存储器,意味着如果任务只在其抢占点抢占,那么可以并发执行所有三个任务。
假定存在s个成对的不相交处理器子集P1,...,Ps。让每个任务分配给处理器的特定子集P1,其中1≤1≤s。任务集合因此可以被分成s个成对的不相交的任务子集Γ1,...,Γs。为便于介绍,子集Γ1中的任务由τi表示,其中1≤i≤n1,即每一任务子集的任务有限。类似于上述的可变分配,对非限制模式的子集P1的最大存储器需求M1 P可以使用(公式1s″)来确定。
由处理器πk的子集P1执行的非限制模式中的任务子集Γ1所需的存储器最大量由(公式1s″)给出,其是(公式1)的变型。
M 1 P = &Sigma; i = 1 n i max j = 1 m ( i ) MI i , j (公式1s″)
注意,(公式1s″)相似于,但不同于(公式1s′)。在后者公式中,k涉及一个子集中的处理器,而在前者公式中,1涉及处理器的子集。所有s个处理器子集的总存储器需求MP可以通过对各个子集的需求求和得出:
M P = &Sigma; l = 1 s M l P (公式1mmix)
当MP超过Msys时,限制在其相关联的处理器子集上执行的一个或多个任务子集的一个或多个任务的调度。限制p1个处理器的单个子集P1上的Γ1的所有n1个任务的调度的效果可以使用(公式2mmix)来确定,其与(公式2mvar)相似:
M 1 D =
&Sigma; i = 1 n i max j = 1 m ( i ) MP i , j + max 1 &le; i 1 < i 2 < . . < i p &le; n i &Sigma; k = 1 p i ( max j = 1 m ( i k ) MI i , j - max j = 1 m ( i k ) MP i k , j ) (公式2mmix)
类似于(公式2mvar),(公式2mmix)只在n1≥p1时有效。
限制每个处理器子集上的每个任务子集的所有任务的调度的效果可以由(公式2mmix′)来确定,其中总存储器需求MD是处理器P1的每一子集的存储器需求M1 D的和。
M D = &Sigma; l = 1 s M l D (公式2mmix′)
就上述的固定分配和可变分配情况而言,对于混合分配来说,在非限制模式和基于存储器抢占模式之间存在许多中间解,在所述基于存储器抢占模式中,所有任务只在其抢占点抢占。
虽然已经举例说明并且描述了本发明的优选实施例,但是本领域技术人员将会理解,可作出各种变化和修改,并且等效手段可代替其元件,而不脱离本发明的真实范围。另外,可作出许多修改以便使本发明的教导适用于特殊的情况,而不脱离其中心范围。因此,意味着本发明不限制为实现本发明而构想的最佳模式所公开的特殊实施例,相反,本发明包括所有落入所附权利要求的范围内的实施例。

Claims (26)

1.一种在具有多个处理器的数据处理系统中调度多个任务的方法,包括如下步骤:
为多个任务的每一个提供挂起数据,所述挂起数据基于由其使用的存储器来规定任务的挂起;
把所述多个任务中的每一个分配给所述多个处理器中的一个处理器;并且
每一处理器执行如下步骤:
(i)处理分配给所述处理器的其中一个任务,
(ii)监控表示由所述任务使用的存储器的输入,其中所述任务与和所述任务相关联的挂起数据匹配,
(iii)根据所述监控的输入来挂起所述任务,并且
(iv)处理分配给所述处理器的一个不同的任务。
2.如权利要求1所述的方法,其中:
把任务分配给处理器是根据如下内容之一:
a.把每个任务分配给特定处理器的固定分配;
b.把每个任务分配给每个处理器的可变分配;以及
c.把每个任务分配给所述多个处理器的子集的混合分配。
3.如权利要求2所述的方法,其中所述输入包括表示挂起请求的数据。
4.如权利要求3所述的方法,还包括如下步骤:
接收用于识别与多个任务相关联的最大存储器使用的第一数据;
接收用于识别可用于处理多个任务的存储器的第二数据;
根据第一和第二数据来识别是否存在足够的存储器可用来处理这些任务;并且
其中,所述监控和挂起步骤只响应于识别出存储器不足时才执行。
5.如权利要求4所述的方法,还包括如下步骤:
监控任务的终止;并且
响应于任务终止,重复所述响应于任务终止而识别存储器可用性的步骤。
6.如权利要求5所述的方法,其中,响应于识别出有足够的存储器来执行剩余任务,所述监控步骤可认为是不必要的。
7.如权利要求6所述的方法,还包括如下步骤:
接收用于识别与多个任务相关联的最大存储器使用的第一数据;
接收用于识别可用于处理多个任务的存储器的第二数据;
根据第一和第二数据来识别是否存在足够的存储器可用来处理这些任务;并且
其中,所述监控和挂起步骤只响应于识别出存储器不足时才执行。
8.如权利要求7所述的方法,还包括如下步骤:
监控任务的终止;并且
响应于任务终止,重复所述响应于任务终止而识别存储器可用性的步骤。
9.如权利要求8所述的方法,其中,响应于识别出有足够的存储器来执行剩余任务,所述监控步骤可认为是不必要的。
10.如权利要求2所述的方法,还包括如下步骤:
接收用于识别与多个任务相关联的最大存储器使用的第一数据;
接收用于识别可用于处理多个任务的存储器的第二数据;
根据第一和第二数据来识别是否存在足够的存储器可用来处理这些任务;并且
其中,所述监控和挂起步骤只响应于识别出存储器不足时才执行。
11.如权利要求10所述的方法,还包括如下步骤:
监控任务的终止;并且
响应于任务终止,重复所述响应于任务终止而识别存储器可用性的步骤。
12.如权利要求11所述的方法,其中,响应于识别出有足够的存储器来执行剩余任务,所述监控步骤可认为是不必要的。
13.一种在具有多个处理器的数据处理系统中调度多个任务的方法,包括如下步骤:
为多个任务的每一个提供挂起数据,所述挂起数据基于由其使用的存储器来规定任务的挂起;
基于如下内容之一,把所述多个任务中的每一个分配给所述多个处理器的一个处理器,所述内容是:
-把每个任务分配给特定处理器的固定分配,
-把每个任务分配给每个处理器的可变分配,以及
-把每个任务分配给所述多个处理器的子集的混合分配;并且
每一处理器执行如下步骤:
(i)处理分配给所述处理器的其中一个任务,
(ii)监控表示由所述任务使用的存储器的输入,其中所述任务与和所述任务相关联的挂起数据匹配,
(iii)根据所述监控的输入来挂起所述任务,并且
(iv)处理分配给所述处理器的一个不同的任务。
14.一种在具有多个处理器的数据处理系统中使用的调度器,所述数据处理系统被设置为在所述多个处理器上执行多个任务,并且有权访问执行任务中使用的规定量的存储器,所述调度器包括:
数据接收器,被设置为接收用于识别与任务相关联的最大存储器使用的数据;
评估器,被设置为根据所接收的数据来识别是否存在足够的存储器来执行这些任务;
分配器,被设置为基于如下内容之一,将所述多个任务的每一个分配给所述多个处理器的一个处理器,所述内容是:
a.把每个任务分配给特定处理器的固定分配,
b.把每个任务分配给每个处理器的可变分配,以及
c.把每个任务分配给所述多个处理器的子集的混合分配;
选择器,被设置为在执行任务期间选择至少一个任务以便挂起,所述挂起与所述任务规定的存储器使用相一致;和
调度器501,被设置为启动所述分配的任务的执行并且挂起所述选择的任务,
其中,响应于所述评估器识别出不存在足够的存储器来执行多个任务,所述选择器根据任务所规定的存储器使用以及数据处理系统可用的存储器规定量来选择至少一个任务以便挂起,并且所述调度器响应于使用规定存储器的任务来挂起至少一个所选任务的执行。
15.如权利要求14所述的调度器,其中所述评估器被设置为监控任务的终止,并且响应于任务终止来识别是否存在足够的存储器来执行剩余任务。
16.如权利要求15所述的调度器,其中,响应于所述评估器识别出有足够的存储器来执行剩余任务,所述选择器被设置为对所述选择的至少一个任务取消选择。
17.一种具有多个处理器的数据处理系统,其中所述处理器被设置为执行多个任务,所述数据处理系统包括:
存储器,被设置为在任务执行期间保存指令和数据;
接收装置,被设置为接收用于识别与任务相关联的最大存储器使用的数据和规定任务抢占能力的数据;
评估装置,被设置为根据所接收的数据来识别是否存在足够的存储器来执行这些任务;
分配器,被设置为基于如下内容之一,把所述多个任务的每一个分配给所述多个处理器的一个处理器,所述内容是:
-把每个任务分配给特定处理器的固定分配,
-把每个任务分配给每个处理器的可变分配,以及
-把每个任务分配给所述多个处理器的子集的混合分配;和
调度器,被设置为根据从评估装置接收的输入来调度任务的执行,
其中,响应于识别出不具有足够的存储器来执行多个任务,所述调度器被设置为根据所述任务的存储器使用来挂起至少一个任务的执行。
18.一种向具有多个处理器的数据处理系统传输数据的方法,所述方法包括:
基于如下内容之一,把多个任务的每个任务分配给所述多个处理器的一个处理器,所述内容是:
-把每个任务分配给特定处理器的固定分配,
-把每个任务分配给每个处理器的可变分配,以及
-把每个任务分配给所述多个处理器的子集的混合分配;
传输数据,以便在处理所述多个任务的每一任务中由数据处理系统使用;
传输挂起数据,所述挂起数据基于对其处理期间的存储器使用来规定所述多个任务的每一任务的挂起;
其中,所述数据处理系统被配置为执行一过程,所述过程包括:
监控表示每一任务的存储器使用的输入,其中所述每一任务与和所述任务相关联的挂起数据相匹配;并且
根据所监控的输入来挂起对所述每一任务的处理。
19.如权利要求18所述的方法,其中所述挂起数据包括识别与所述每一任务相关联的最大存储器使用的数据。
20.如权利要求18所述的方法,其中所述挂起数据基于所述每一任务的存储器使用来识别至少一个点,在该点处可以挂起每一任务的处理。
21.如权利要求20所述的方法,其中所述每一任务包括多个子作业,并且识别至少一个点的所述数据对应于每一个这种子作业,在所述点可以挂起所述每一任务的处理。
22.如权利要求20所述的方法,其中所述挂起数据包括识别与所述每一任务相关联的最大存储器使用的数据。
23.如权利要求22所述的方法,其中所述每一任务包括多个子作业,并且识别至少一个点的所述数据对应于每一个这种子作业,在所述点可以挂起所述每一任务的处理。
24.一种配置多个任务以供具有多个处理器的数据处理系统使用的方法,所述方法包括把挂起数据与所述任务相关联,所述挂起数据基于与之关联的存储器使用来规定任务的挂起,其中所述数据处理系统被设置为相对于在多个处理器上执行的多个任务来执行一过程,所述过程包括:
基于如下内容之一,把所述多个任务的每个任务分配给所述多个处理器的一个处理器,所述内容是:
-把每个任务分配给特定处理器的固定分配,
-把每个任务分配给每个处理器的可变分配,以及
-把每个任务分配给所述多个处理器的子集的混合分配;
监控表示所述任务的存储器使用的输入,其中所述任务与和所述任务相关联的挂起数据相匹配;并且
根据所述监控的输入来挂起对所述任务的处理。
25.一种计算机程序,包括被设置为令处理系统执行如权利要求1所述方法的指令集。
26.一种计算机程序,包括被设置为令处理系统执行如权利要求2所述方法的指令集。
CNA2005800020818A 2004-01-08 2005-01-05 基于存储器要求在多处理器系统中进行任务调度的方法和设备 Pending CN1910553A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US53511304P 2004-01-08 2004-01-08
US60/535,113 2004-01-08

Publications (1)

Publication Number Publication Date
CN1910553A true CN1910553A (zh) 2007-02-07

Family

ID=34794342

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2005800020818A Pending CN1910553A (zh) 2004-01-08 2005-01-05 基于存储器要求在多处理器系统中进行任务调度的方法和设备

Country Status (6)

Country Link
US (1) US20070124733A1 (zh)
EP (1) EP1706820A2 (zh)
JP (1) JP2007519103A (zh)
KR (1) KR20060135697A (zh)
CN (1) CN1910553A (zh)
WO (1) WO2005069155A2 (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101867833A (zh) * 2010-06-12 2010-10-20 北京东方艾迪普科技发展有限公司 一种视频图像格式转换方法和装置
CN102467373A (zh) * 2010-10-28 2012-05-23 微软公司 任务取消宽限期
CN102662740A (zh) * 2012-03-29 2012-09-12 迈普通信技术股份有限公司 非对称多核系统及其实现方法
CN104657203A (zh) * 2013-11-21 2015-05-27 腾讯科技(深圳)有限公司 任务执行方法、装置和系统
CN106598717A (zh) * 2016-12-07 2017-04-26 陕西尚品信息科技有限公司 一种基于时间片段的任务调度方法
US10058777B2 (en) 2013-11-21 2018-08-28 Tencent Technology (Shenzhen) Company Limited Task execution method, apparatus and system
CN112685158A (zh) * 2020-12-29 2021-04-20 杭州海康威视数字技术股份有限公司 一种任务调度方法、装置、电子设备及存储介质
WO2021254135A1 (zh) * 2020-06-19 2021-12-23 华为技术有限公司 任务执行方法及存储设备

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7606236B2 (en) * 2004-05-21 2009-10-20 Intel Corporation Forwarding information base lookup method
JP4969791B2 (ja) * 2005-03-30 2012-07-04 株式会社日立製作所 ディスクアレイ装置およびその制御方法
US8281313B1 (en) * 2005-09-29 2012-10-02 Hewlett-Packard Development Company, L.P. Scheduling computer processing jobs that have stages and precedence constraints among the stages
US20070156879A1 (en) * 2006-01-03 2007-07-05 Klein Steven E Considering remote end point performance to select a remote end point to use to transmit a task
KR100788328B1 (ko) * 2006-09-08 2007-12-27 (주)내셔널그리드 그리드 컴퓨팅을 이용한 미들웨어 시스템 및 그 동작 방법
US8411734B2 (en) * 2007-02-06 2013-04-02 Microsoft Corporation Scalable multi-thread video decoding
US9648325B2 (en) 2007-06-30 2017-05-09 Microsoft Technology Licensing, Llc Video decoding implementations for a graphics processing unit
US8086455B2 (en) * 2008-01-09 2011-12-27 Microsoft Corporation Model development authoring, generation and execution based on data and processor dependencies
CN101694631B (zh) * 2009-09-30 2016-10-05 曙光信息产业(北京)有限公司 实时作业调度系统及方法
JP5336331B2 (ja) * 2009-11-24 2013-11-06 株式会社デンソー 車載装置
EP2591416A4 (en) 2010-07-05 2014-08-13 Saab Ab METHOD FOR CONFIGURING A DISTRIBUTED CONTROL SYSTEM FOR AEROSPACE TECHNOLOGY
JP2012079272A (ja) 2010-10-06 2012-04-19 Sony Corp 録画再生装置、i/oスケジューリング方法、及びプログラム
US9706214B2 (en) 2010-12-24 2017-07-11 Microsoft Technology Licensing, Llc Image and video decoding implementations
KR20120077265A (ko) * 2010-12-30 2012-07-10 주식회사 팬택 이동 단말기 및 이동 단말기의 제어 방법
US8731067B2 (en) 2011-08-31 2014-05-20 Microsoft Corporation Memory management for video decoding
US9819949B2 (en) 2011-12-16 2017-11-14 Microsoft Technology Licensing, Llc Hardware-accelerated decoding of scalable video bitstreams
US9372735B2 (en) * 2012-01-09 2016-06-21 Microsoft Technology Licensing, Llc Auto-scaling of pool of virtual machines based on auto-scaling rules of user associated with the pool
US8904008B2 (en) 2012-01-09 2014-12-02 Microsoft Corporation Assignment of resources in virtual machine pools
CN103294554A (zh) * 2012-03-05 2013-09-11 中兴通讯股份有限公司 片上系统soc的多处理器的调度方法及装置
US10255558B1 (en) * 2012-09-27 2019-04-09 EMC IP Holding Company LLC Managing knowledge-based authentication systems
GB2507038A (en) 2012-10-16 2014-04-23 Ibm Scheduling jobs weighted according to the memory usage using a knapsack problem.
CN102929723B (zh) * 2012-11-06 2015-07-08 无锡江南计算技术研究所 基于异构众核处理器的并行程序段划分方法
KR101694287B1 (ko) * 2013-05-23 2017-01-23 한국전자통신연구원 스트림 처리 태스크 관리 장치 및 방법
US9727371B2 (en) * 2013-11-22 2017-08-08 Decooda International, Inc. Emotion processing systems and methods
GB2521151B (en) * 2013-12-10 2021-06-02 Advanced Risc Mach Ltd Configurable thread ordering for a data processing apparatus
GB2521155B (en) 2013-12-10 2021-06-02 Advanced Risc Mach Ltd Configuring thread scheduling on a multi-threaded data processing apparatus
CN109471705B (zh) * 2017-09-08 2021-08-13 杭州海康威视数字技术股份有限公司 任务调度的方法、设备及系统、计算机设备

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5826082A (en) * 1996-07-01 1998-10-20 Sun Microsystems, Inc. Method for reserving resources
KR20060008896A (ko) * 2003-04-14 2006-01-27 코닌클리케 필립스 일렉트로닉스 엔.브이. 자원 관리 방법 및 장치

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101867833A (zh) * 2010-06-12 2010-10-20 北京东方艾迪普科技发展有限公司 一种视频图像格式转换方法和装置
CN102467373A (zh) * 2010-10-28 2012-05-23 微软公司 任务取消宽限期
CN102662740A (zh) * 2012-03-29 2012-09-12 迈普通信技术股份有限公司 非对称多核系统及其实现方法
US10058777B2 (en) 2013-11-21 2018-08-28 Tencent Technology (Shenzhen) Company Limited Task execution method, apparatus and system
CN104657203A (zh) * 2013-11-21 2015-05-27 腾讯科技(深圳)有限公司 任务执行方法、装置和系统
WO2015074388A1 (en) * 2013-11-21 2015-05-28 Tencent Technology (Shenzhen) Company Limited Task execution method,apparatus and system
TWI551178B (zh) * 2013-11-21 2016-09-21 騰訊科技(深圳)有限公司 任務執行方法、裝置和系統
CN104657203B (zh) * 2013-11-21 2018-07-20 腾讯科技(深圳)有限公司 任务执行方法、装置和系统
CN106598717A (zh) * 2016-12-07 2017-04-26 陕西尚品信息科技有限公司 一种基于时间片段的任务调度方法
CN106598717B (zh) * 2016-12-07 2019-06-11 陕西尚品信息科技有限公司 一种基于时间片段的任务调度方法
WO2021254135A1 (zh) * 2020-06-19 2021-12-23 华为技术有限公司 任务执行方法及存储设备
CN112685158A (zh) * 2020-12-29 2021-04-20 杭州海康威视数字技术股份有限公司 一种任务调度方法、装置、电子设备及存储介质
CN112685158B (zh) * 2020-12-29 2023-08-04 杭州海康威视数字技术股份有限公司 一种任务调度方法、装置、电子设备及存储介质

Also Published As

Publication number Publication date
WO2005069155A3 (en) 2006-06-22
JP2007519103A (ja) 2007-07-12
KR20060135697A (ko) 2006-12-29
WO2005069155A2 (en) 2005-07-28
EP1706820A2 (en) 2006-10-04
US20070124733A1 (en) 2007-05-31

Similar Documents

Publication Publication Date Title
CN1910553A (zh) 基于存储器要求在多处理器系统中进行任务调度的方法和设备
CN1802635A (zh) 资源管理方法以及设备
CN110769278B (zh) 一种分布式视频转码方法及系统
US6732139B1 (en) Method to distribute programs using remote java objects
CN1117319C (zh) 在多线程处理器中改变线程优先级的方法和装置
CN107515786B (zh) 资源分配方法、主装置、从装置和分布式计算系统
CN1264078A (zh) 执行多个操作系统的计算机
CN101909048B (zh) 一种集中式转码处理方法和装置
CN112465129A (zh) 片内异构人工智能处理器
CN1613059A (zh) 一种执行操作系统功能的方法和系统以及电子设备
US20050097556A1 (en) Intelligent scheduler for multi-level exhaustive scheduling
CN101996099A (zh) 一种消息处理方法及系统
CN109783255B (zh) 数据解析分发装置及高并发数据处理方法
CN100346307C (zh) Java操作系统中实时任务调度的实现方法
CN1879085A (zh) 处理抢占点的改进方法
CN102799487A (zh) 基于阵列/lun的io调度方法及装置
CN107832130A (zh) 一种银行系统的作业流调度执行方法、装置及电子设备
CN1101573C (zh) 计算机系统
KR100590764B1 (ko) 멀티프로세서 시스템에서 스케줄러를 이용한 대규모데이터 처리 방법
CN115712572A (zh) 任务的测试方法、装置、存储介质及电子装置
CN115629854A (zh) 分布式任务调度方法、系统、电子设备和存储介质
CN115469989A (zh) 分布式批量任务调度方法及系统
CN110688504B (zh) 图像数据管理方法、装置、系统、设备及介质
CN106776031B (zh) 一种数据发送方法及装置
CN102541648A (zh) 一种用于动态调度批处理任务的方法和装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication