CN1879085A - 处理抢占点的改进方法 - Google Patents

处理抢占点的改进方法 Download PDF

Info

Publication number
CN1879085A
CN1879085A CNA2004800327446A CN200480032744A CN1879085A CN 1879085 A CN1879085 A CN 1879085A CN A2004800327446 A CNA2004800327446 A CN A2004800327446A CN 200480032744 A CN200480032744 A CN 200480032744A CN 1879085 A CN1879085 A CN 1879085A
Authority
CN
China
Prior art keywords
task
data
storer
tasks
resource
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
CNA2004800327446A
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 CN1879085A publication Critical patent/CN1879085A/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
    • 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

Abstract

提供了一种方法和设备,由多处理数据处理系统的调度器用来根据主存需求和独占性资源使用情况选择任务抢占点,所提供的方法和设备是成本有效的并且维护系统稳定性,尤其是允许附加的抢占策略,在附加抢占策略中:相匹配的同步原语不跨越抢占点,即子作业边界;对特定资源Rk,使用这个资源(并用同步原语保护它)的所有任务的所有时间片/子作业都是可抢占或不可抢占的,-1,如果它们都是可抢占的,则必须执行同步原语,2-如果它们都是不可抢占的,则不必执行同步原语;对任务的一个子集的抢占被限制在这个子集的抢占点同时允许对所有其它任务的任意抢占;对任务的一个子集的抢占限于它们的抢占点,而对其它任务的抢占则限于它们的抢占点的一个子集,同时允许对它们余下的时间片的任意抢占。也就是说,本发明是基于主存的抢占技术,它不限于只在预定抢占点的抢占,而且避免了由于资源的独占性使用而导致的死锁。

Description

处理抢占点的改进方法
本发明涉及特别适合(但并不专用于)实时-系统资源管理的资源管理方法和设备。
对存储器的管理是资源管理至关重要的一个方面,已经开发出了各种方法来优化对存储器的使用。已经提出文献[1][2][3]中所论述的处理优选抢占点的方法作为通过将对抢占点的使用归纳为对主存储器的管理而提高数据处理系统的效率的手段,尤其是在实时系统中。在这种存储器管理策略中,不是在任务执行中的任意时间点上抢占任务,优选地只根据任务的存储器使用情况在专门的抢占点上抢占任务。
在下面的说明中,任务的中止被称作任务抢占,或任务的抢先,而术语“任务”用来表示能够为自己竞争系统资源(如存储器、CPU、I/O设备等)的执行单元。任务可以看作是连续执行的作业系列,每个作业包括一个或多个子-作业。例如,任务可以包括“多路分解视频流”,并涉及读取输入的流、处理流并输出相应的数据。对每个输入的数据流完成这些步骤,所以对单个流的读、处理和输出对应于完成一个作业。因而,当有多个数据分组要读取和处理时,该作业会相应地被执行多次。子-作业可以看作是涉及作业的功能成分。
在数据处理系统中调度多个任务的一种已知的方法需要任务的每个子-作业有一组暂停标准,称作挂起数据,挂起数据规定了处理抢占点以及根据子作业的存储器使用情况[4][5]挂起子作业的相应条件。因而数据处理系统所用的存储器量由这个挂起数据通过这些抢占点间接控制,挂起数据规定了在作业执行中这些抢占点上需要的存储器量。
因而,可以利用这些抢占点避免数据处理系统由于缺少存储器而崩溃。当实时任务的特征是包括多个子-作业时,它的抢占点优选地或通常都与任务的子-作业边界重合。但是,必须注意到任务自身不会在子作业期间暂停它们自己。根据执行情况,这种不可抢占的子-作业的暂停方式会导致死锁或占用过多存储器。
可以通过一行代码在任务中嵌入表示符合与任务的每个子作业相关的挂起数据的存储器使用情况的数据,所述代码行请求调度事件,其表明已经到达任务处理中的抢占点,即已经到达子作业边界。也就是说,任务子作业的起始点集合构成了任务的一组抢占点。任务τi的第j个抢占点Pij由涉及抢占点自身的信息以及涉及第j个抢占点和下一个抢占点(即第j+1个抢占点)之间的后续不可抢占的子作业时间片Iij的信息表征。
在运行时期,任务在它到达抢占点时通知控制操作系统,例如,当它启动子-作业时,在子-作业之间切换和完成子-作业时,操作系统决定何时何处抢占该任务的执行。理论上,抢占可以发生在抢占点或任务执行中的任何其它点上。
但是,除了上述死锁问题之外,选择抢占点的这种灵活性在下列情况下是以一致性为代价的:
(1)对一个任务子集的抢占仅限于这个子集的抢占点,同时允许对所有其它任务的任意抢占;
(2)对任务子集的抢占限于它们的抢占点,对其它任务的抢占限于它们的抢占点的子集,同时允许对任务子集的剩余时间片的任意抢占。
当带有抢占点的任务时间片被任意抢占时,由于部件的设计、分析和测试基于任务时间片只在抢占点被抢占的假设,可能会降低那些子系统的可预测性。当发生对任务时间片的任意抢占时,由于不能确保对资源的互斥访问,产生的系统可能变得不一致。
基于不损害系统一致性的主存储器需求的现有技术的抢占点策略必须将所有任务的抢占限制到它们的抢占点。如同本领域中已知的那样,一个组件(例如软件组件,可以包括一个或多个任务)可以有包括该组件定义的属性、函数或方法和事件的可编程接口[6]。出于说明目的,假定任务τi由接口100完成,它至少包括任务所需的主存储器数据,MPij 101b,如图1所示。此外,假定定义抢占点使得相匹配的同步原语不超出子作业边界(或抢占点)。
出于说明目的,假定任务是周期性和实时的,由周期T和相位F表征,0<=F<T,这意味着任务包括一系列子-作业,相同的序列被周期性地重复,每个子作业在时间点F+nT被释放,其中n=0,...,N。仅仅作为例子,如图2中所示,假定置顶盒200要执行三个任务-(1)在用户界面205上显示菜单,(2)从内容提供商203取回文本信息,(3)处理一些视频信号-并且假定这3个任务中的每个任务都包括多个子-作业。为了陈述简单起见,假定子-作业被顺序执行。
至少这些子-作业中的一些可以被抢占,并且这些可以被抢占的子作业间的边界提供了抢占点,表1中对此做了总结:
 任务τi   任务说明   任务τi的可抢占子-作业的数量m(i)
 τ1   在GUI上显示菜单   3
 τ2   从内容提供商获取文本信息   2
 τ3   处理视频信号   2
表1
也参考图3,对每个任务,挂起数据101包括:涉及抢占点Pij 301的信息,例如在抢占点上所需的最大存储器量MPij 302,以及涉及连续抢占点之间时间片Iij 303的信息,例如抢占点间时间片所需的最坏情况下的存储器量MIi,j 304(I表示任务τi,j表示抢占点)。
更具体地说,挂起数据101包括了指定下列信息的数据:
1.任务τi的抢占点j(Pi,j)101a;
2任务τi在该任务的抢占点j上的最大存储器需求,MPi,j,其中1<=j<=m(i),101b;
3.与任务τi的子作业j对应的连续抢占点j和(j+1)之间的时间片Ii,j,其中1<=j<=m(i),101c;
4.任务的时间片j中任务τi的最大(即最坏情况)存储器需求MIi,j,1<=j<=m(i),101d。
表2示出了当前例子的挂起数据101(每个任务有它自己的接口,所以在当前例子中,与第一个任务τ1对应的挂起数据101包括表2的第一行中的数据,与第二个任务τ2对应的挂起数据101包括表2的第二行,等等):
  Task τi   MPi,1 MIi,1   MPi,2 MIi,2 MPi,3 MIi,3
  τ1   0.2 0.7   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.5MB的存储器。在正常情况下或基于非存储器的抢占条件下,这个置顶盒如下运行。
现在参考图4,可以期望处理器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,3)。这些最大需求由表2中的黑体记录表示:
MP=0.7+0.8+0.3=1.8MB.
这超出了置顶盒200可用的存储器0.3MB,因此,在没有任何预防措施的情况下,如果要同时处理这些子-作业,置顶盒200会崩溃。
现在参考图5,假定依照一种调度算法调度任务并且在每个任务τi被创建之后都为它维护一个数据结构。进一步假定调度器501采用传统的基于优先级的抢占调度算法,这种调度算法基本保证在任何时间点当前运行的任务是系统中所有就绪的任务中优先级最高的任务。本领域中已经知道可以通过为正在运行的或就绪的任务启动或禁止抢占而修改这种调度行为。
任务管理器503接收到与新接收到的任务相对应的挂起数据并评估是否需要抢占,如果需要,就将这个新接收到的信息传输到调度器501,请求抢占。假定任务的细节如表2中定义,并假定任务τ1(并且只有τ1)当前正在被处理并且调度器最初以没有基于存储器的限制的模式运行。
现在假定任务管理器503接收到了任务τ2,任务管理器503从它的接口Int2 100读取挂起数据101,并判别调度器501是否正在按照基于存储器的抢占而工作。因为,在这个例子中,不是任务管理器503评估调度器501是否需要改变成基于存储器的抢占。因此这涉及到任务管理器503从挂起数据存储装置505获取与所有当前正在执行的任务(在这个例子中是τ1)对应的最坏情况下的挂起数据,对等式1求值并将求出的最坏情况下的存储器需求与可用的存储器资源作比较。继续表2中引入的例子,对τ1和τ2来说,等式1是:
M P = Σ i = 1 2 max j = 1 m ( i ) MI i , j = 0.7 + 0.8 = 1.5 Mbytes
这与可用存储器正好相等,因此不需要改变调度器501的运行模式为基于存储器的抢占(即,不需要根据存储器使用情况限制调度器)。因而,如果调度器501要在任务τ1和τ2之间切换—例如,为了满足任务τ2的执行时间限制,意味着两个任务都同时有效地驻留在存储器中—处理器从未访问比可用存储器更多的存储器。
然后,在任务τ1和τ2完成之前,接收到了另一个任务τ3。任务管理器503从与任务τ3相关的接口Int3读取挂起数据101,评估调度器501是否需要改变为基于存储器的抢占。假定调度器501正在多任务化任务τ1和τ2,对所有三个任务最坏情况下的存储器需求现在是:
M P = Σ i = 1 3 max j = 1 m ( i ) MI i , j = 0.7 + 0.8 + 0.3 = 1.8 Mbytes
这超过了可用的存储器,因此管理器503从挂起数据存储装置505请求和获取所有三个任务的存储器使用数据MPij,MIij 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.7 - 0.2,0.8 - 0.2,0.3 - 0.1 )
= 0.5 + 0.6 = 1.1 Mbytes . (等式2)
这个存储器需求低于可用存储器,意味着假定只在任务的抢占点抢占任务,所有三个任务可以被并行地执行。
因此,任务管理器503通过指示任务在它们指定的抢占点MPi,j将调出指令发送到调度器501来激活“基于存储器的抢占模式”。在这种模式下,调度器501允许每个任务非抢占式地从一个抢占点运行到下一个抢占点,受限于在任何时间点一次最多只有一个任务能够位于在它的抢占点之外的一个点上。假定新到达的任务从抢占点开始,调度器501确保这个条件适用于当前运行的任务,由此限制只有一个任务能够处于抢占点。
因而,在已知的基于存储器的抢占模式中,只允许调度器501在任务的存储器抢占点抢占任务,即在任务的基于存储器的抢占点上响应来自任务的调出请求。如果任务因为想等待由另一任务占据的资源的互斥使用而挂起它自己,则存在死锁的可能。当其它任务被抢占,而同时保留该资源的锁时,这可能发生。通过确保任务在抢占点上不拥有资源上的锁可以避免这一点,换句话说,保护资源的同步原语不会跨越抢占点,即子作业边界。
当已经终止了其中一个任务时,正在终止的任务通知任务管理器503它正在终止,导致任务管理器503对等式1求值并且如果最坏情况下的存储器使用情况(考虑了这个任务的去除)低于调度器501的可用存储器,任务管理器503可以取消基于存储器的抢占,这样做的好处是使得系统能够对外部事件做出更快的反应(因为处理器对于子作业的持续期间不再是“阻塞”状态)。通常,任务的终止由它的环境导致,例如,用户切换频道或者所用编码的数据流有变化(需要另一类的解码),意味着任务管理器503和/或调度器501应该知道任务的终止甚至可能指令任务终止。
应该注意,当被调用时,基于存储器的抢占限制是必须的。
任务已被说明为软件任务,但任务还可以用硬件来实现。通常,硬件设备(表现为硬件任务)由软件任务控制,软件任务分配硬件设备所需(最坏情况下的)存储器,并随即指令硬件任务运行。当硬件任务完成时,它通知软件任务,软件任务随即释放存储器。因此,通过拥有控制软件任务,可以如上所述简单地处理硬件任务。
这个限制为只能在抢占点抢占任务的方法,无法总是考虑到子作业抢占的最好时机,因而不能总获得最高的系统速度,并且如果没有正确处理同步原语,会导致死锁。
本发明提供了根据主存需求选择抢占点的方法和设备,这种方法和设备更有效并且维护了系统一致性,尤其是实现了额外的抢占策略,其中:
1.匹配的同步原语不会跨越子作业边界;
2.对于特定的资源Rk,使用这个资源(并通过同步原语保护它)的所有任务的所有时间片/子作业全部是可抢占的或全部是不可抢占的
1)如果它们全部是可抢占的,必须执行同步原语,
2)如果它们全部是不可抢占的,不必执行同步原语;
3.对任务的一个子集的抢占被限制在这个子集的抢占点同时允许对所有其它任务的任意抢占;
4.对任务的一个子集的抢占被限制在它们的抢占点,对其它任务的抢占被限制在它们的抢占点的一个子集,同时允许对它们剩余的时间片的任意抢占。
也就是说,本发明是基于主存的抢占技术,它并不限于只在预定的抢占点上的抢占,并且它避免了现有技术的抢占点方法的死锁问题。
如上所述,本发明不仅解决了当前技术的基于存储器的抢占点技术的问题,而且还有下列优势。它能够在仍然确保系统一致性的同时任意抢占时间片从而用存储器补偿CPU周期,即
1)它在系统不抢占时间片时排除了对并发控制的系统调用的需要;
2)它能够在没有抢占就无法调度任务时允许抢占时间片。
通过考虑阻塞的两个推断能够进一步详述本发明相对于现有技术中基于存储器的调度点技术的优势。首先,阻塞能够减少阻塞任务(当它涉及那个任务的最后一个子作业时)在最坏情况下的响应时间。其次,它能够延长较高优先级的任务(当那个阻塞时间是比被阻塞的任务的优先级更低的所有任务中最大的阻塞时间时)在最坏情况下的响应时间。因此抢占时间片增加了被抢占任务在最坏情况下的响应时间并且降低了比阻塞任务优先级高的任务在最坏情况下的响应时间。在特殊情况下,抢占时间片因此会使得任务组可调度。
从下面对附图中所示优选实施方案的更详细的说明可以明了本发明前面所述以及其它的特性和优势,在附图中相同的符号在不同视图中均表示相同的部分。
图1示出了根据本发明的实施方案的任务接口部件的示意图。
图2示出了数字电视系统示例的示意图,本发明的实施方案在其中运行。
图3示出了图1中所示任务接口的部件之间的关系的示意图。
图4示出了构成图2的置顶盒的部件。
图5示出了图2和图4中所示置顶盒的处理器的部件。
本领域中的普通技术人员应该理解下面的说明仅是出于说明目的而非限制。技术人员理解在位于本发明的精神和所附权利要求范围内有许多变化。可以从本说明中去除已知功能和操作的不必要的细节以免模糊本发明。
高容量电子(HVE)消费者系统(例如数字电视)数字地改善模拟电视,并且置顶盒(STB)必须在保持成本效益和健壮性的同时提供实时服务。消费品产品天生就是严重受限的资源。因此,在保持HVE消费者系统的典型质量(例如健壮性)并满足严格时限要求的同时,必须非常有效地利用可用资源。涉及健壮性,没有人希望电视机出现带有“请重启系统”消息的故障。
HVE消费系统中媒体处理的主要部分是以处理多个并发数据流的片上软件实现的,尤其必须在多任务环境中非常有效地管理系统资源,例如存储器。考虑置顶盒作为需要实时资源管理的HVE消费系统的一个例子。通常,如图2中所示,置顶盒200从内容提供商203(服务器或电缆)以及用户接口205接收电视201的输入。用户接口205包括用于从用户控制的远程设备202接收信号的远程控制接口,例如手持红外远距离发射器。置顶盒200从天线和有线电视出口中的至少一个接收至少一个数据流,并至少完成对该数据流的处理或转发数据流到电视201。用户看到显示在电视201上的至少一个数据流,并通过用户接口205根据正在被显示的内容做出选择。置顶盒200处理用户选择输入并根据这个输入能够将用户输入以及标识置顶盒200和它的功能的其它信息一起发送到内容提供高203。
图4示出了典型的置顶盒200的示范系统400的简化框图,该置顶盒200包括控制置顶盒200的整个操作的控制处理器401。控制处理器401与电视调频器403、存储器405、长期存储设备406、通信接口407和远程接口409相耦合。电视调频器403在传输线路411上接收电视信号并且这些信号可能来自天线(未示出)和有线电视出口(未示出)的至少一个。控制处理器401管理用户接口205,通过线路413提供数据、音频和视频输出到电视201。远程接口409通过无线连接415从远程控制接收信号。通信接口407通过数据通路417对接在置顶盒200和至少一个远程处理系统(例如web服务器)之间。通信接口407是电视调制解调器、集成服务数据网络(ISDN)适配器、数字用户线路(xDSL)、有线电视调制解调器和任意其它合适的数据通信设备中的至少一种。图4的示例系统仅是出于说明目的。尽管本说明可能涉及在说明特殊置顶盒200中广泛使用的术语,但该说明和概念同样适用于其它控制处理器,包括具有不同于图4中所示体系结构的系统。
优选实施方案中的控制处理器401被配置用来处理涉及置顶盒200的控制的多个实时任务,包括改变频道、选择显示在用户界面205上的菜单选项、对输入的数据流解码、用长期存储设备406记录输入的数据流并重放它们,等等。置顶盒的操作由这些实时控制任务根据置顶盒100的特征、通过线路411输入的视频信号、通过用户界面205进入的用户输入以及任何其它附属输入来确定。
如图1所示,由控制处理器401控制的每个实时任务τi包括至少一个子-作业或具有相应的挂起数据集合的抢占点Pi,j,挂起数据包括所需的最大存储器量Mi,j k101。也就是说,至少一个任务τi的子作业的起点Pij的集合构成了那个任务的一组抢占点Pi,j。任务τi的第j个抢占点Pi,j由涉及抢占点自身的信息和涉及第j个抢占点和下一抢占点(即,第j+1个抢占点)之间随后的程序时间片Ii,j的信息表征。在优选实施方案中,下面的方法允许控制处理器决定是否能够在随后的程序时间片Ii,j期间随意抢占该时间片:
1.匹配同步原语不跨越子作业边界
2.对特殊资源Rk,使用这个资源(通过使用同步原语保护它)的所有任务的所有时间片/子作业全部是可抢占的或全部是不可抢占的。
1.)如果它们都是可抢占的,必须执行同步原语,
2)如果它们都不可抢占,就不必执行同步原语;
3.对任务的一个子集的抢占仅限于这个子集的抢占点,同时允许对所有其它任务的任意抢占;以及
4.对任务的一个子集的抢占仅限于这个子集的抢占点,对其它任务的抢占仅限于它们的抢占点的一个子集,同时允许对它们的剩余时间片的任意抢占。
更具体地说,在处理抢占点时,必须执行下列步骤:
-确保特定资源的所有保护原语落在相同子作业内(即,包括一对原语的临界区不跨越子作业边界)。
-在启动新任务时,任务管理器/调度器在决定设置哪些时间片为可抢占或不可抢占时必须考虑受保护的资源
上述原则的一个简单实现是让同步原语与抢占点一致。缺点是当代码中频繁调用同步原语时,引入了很多小的时间片。
更通用的实现如下。时间片的挂起数据被加入在该时间片中受保护的资源k的标识符Rk。调度器/任务管理器能够用这个信息确保使用资源Rk的所有时间片都是可抢占的或都是不可抢占的。
1.在优选实施方案中,商用现货(COTS)实时操作系统(RTOS)上的中间件层实现了测试关于存储器使用和任务可调度性的功能。这一层还决定选择哪些时间片进行抢占。只要选择了以Rk标记的时间片进行抢占,以Rk作为参数的所有系统调用都由该中间件层传递到RTOS。只要没有选择标记为Rk的时间片进行抢占,该中间件层可以忽略(即,立即返回)系统调用。
在优选实施方案中,该方法包括定义各个任务以使一对原语不跨越任务(或任务的子作业)边界,根据任务是否保护至少一个公共资源的使用指定一组任务为可抢占的或不可抢占的,接收标识与多个任务中的每个任务相关的最大的存储器和独占资源Rk的使用情况的第一数据;接收标识可用于处理多个任务的存储器的第二数据;并根据第一和第二数据判断是否有足够的存储器可用于处理任务。随后只响应于识别出存储器不足,对在下一时间片中可以被抢占存储器的任务施加监控和挂起步骤。
现在参考图5,假定根据调度算法调度任务并且在每个任务τi被创建之后都为它维护一个数据结构。进一步假定调度器501采用了传统的基于优先级的抢占调度算法,该算法实际上确保了在任何时间点当前运行的任务是系统中所有就绪任务中具有最高优先级的任务。本领域中已知通过根据任务的存储器需要为正在运行的或就绪任务激活或禁止抢占可以修改其调度行为。
任务管理器503接收与新接收到的任务对应的挂起数据101并评估是否需要抢占、是否能够抢占,如果需要抢占并且能够抢占,就将这个新接收到的信息传递到调度器501,请求抢占。挂起数据不仅包括存储器使用信息还有该任务独占使用的资源Rk。假定任务的细节如表2中所定义,并假定任务τ1(也只有τ1)正在被处理并且调度器最初以没有基于存储器限制的模式运行。
现在假定任务管理器503接收到了任务τ2,任务管理器503从它的接口Int2 100读取挂起数据101,并判断调度器501是否正在按照基于存储器和资源的抢占工作。因为,在这个例子中,不是任务管理器503评估调度器501是否需要改变为基于存储器和资源的抢占。因此,这涉及到任务管理器503从挂起数据存储装置505提取出与所有当前正在执行的任务(在这个例子中是任务τ1)对应的最坏情况下的存储器使用挂起数据,对等式1求值并将求出的最坏情况下的存储器需求与可用存储器资源做比较。继续表2中引入的例子,对τ1和τ2来说,等式1是:
M P = Σ i = 1 2 max j = 1 m ( i ) MI i , j = 0.7 + 0.8 = 1.5 Mbytes
这正好等于可用存储器,因此不需要改变调度器501的操作模式为基于存储器和资源的抢占(即,不需要根据存储器和独占资源使用情况限制调度器)。因而,如果调度器501要在任务τ1和τ2之间切换,例如为满足任务τ2的执行时间限制,意味着两个任务同时有效驻留在存储器中并且可能同时使用它们的最大存储器量-处理器绝不会访问比可用存储器更多的存储器。
接下来,在任务τ1和τ2完成之前,接收到了另一个任务τ3。任务管理器503从与任务τ3相关的接口Int3读取挂起数据101,评估调度器501是否需要改变为基于存储器和资源的抢占。假定所有三个任务都是可抢占的,并且调度器501正在对任务τ1和τ2进行多重处理,所有三个任务在最坏情况下的存储器需求现在是:
M P = Σ i = 1 3 max j = 1 m ( i ) MI i , j = 0.7 + 0.8 + 0.3 = 1.8 Mbytes
这超出了可用存储器,所以任务管理器503请求并从挂起数据存储装置505提取所有三个任务的存储器使用情况数据MPij,MIi,j101b,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.7 - 0.2,0.8 - 0.2,0.3 - 0.1 )
= 0.5 + 0.6 = 1.1 Mbytes . (等式2)
这个存储器需求低于可用存储器,意味着假定根据任务的存储器使用情况抢占任务,所有三个任务都能够被并行执行。
因此,任务管理器503通过指令任务在它们指定的抢占点MPi,j上发送调出指令给调度器501而调用“基于存储器和资源的抢占模式”。在这种模式下,调度器501允许。如果任务的抢占数据指定了对任务资源集Rk的独占使用,调度器就指令操作系统对所有三个任务执行关于资源Rk的所有系统调用,资源Rk被加入该任务开始执行时要执行的系统调用的系统资源集合。
在表3中,RIi,j是受任务I的时间片j中的同步原语保护的资源集合。
Task τI MPi,1 MIi,1 RIi,1 MPi,2 MIi,2 RIi,2 MPi,3 MIi,3 RIi,3
τ1 0.2 0.7 Ra 0.2 0.4 Rc   0.1   0.6   Rc
τ2 0.1 0.5 Rb 0.2 0.8 Ra   -   -
τ3 0.1 0.2 Rd 0.1 0.3 Rb   -   -
表3
当所有时间片都不可抢占时,系统是可调度的。另外,在这种情况下,不存在资源同步的问题,并且不需要执行同步原语。
但是,为了减少系统延迟,可以在不超过可用存储器限制的前提下使一些时间片成为可抢占的时间片。例如,在下列情况下系统仍然是可调度的:
-只能在抢占点P1,1和P1,3以及在时间片I1,2内抢占τ1
-只能在τ2的抢占点抢占τ2
-任意抢占τ3
在表3中,以斜体标识了可抢占的时间片。
假定τ1的优先级高于τ2的优先级,τ2的优先级又高于τ3的优先级,由于τ3的时间片是可抢占的,所以τ2的延迟将会有所减少。任务管理器/调度器必须进一步确保保护特定资源的所有时间片都是可抢占的或者都是不可抢占的。对于Rb有一个问题:因为I2,1是不可抢占的,而I3,2是可抢占的。解决方法是使时间片I2,1也成为可抢占的或使I3,2也成为不可抢占的。使I2,1可抢占不会增加系统的存储器需求,因而是我们的首选(它降低了延迟)。
当任务之一已经结束时,正在结束的任务通知任务管理器503它正在结束,导致任务管理器503从系统资源集合去除该任务的资源集合Rk并对等式1求值。如果最坏情况下的存储器使用(考虑这个任务的去除)低于调度器501的可用存储器,任务管理器503就能够取消基于存储器和资源的抢占并清除系统资源集,这样做的好处是使得系统能够对外部事件做出更快的反应(因为处理器不再为子作业的持续时间而被“阻塞”)。通常,任务的结束是由它的环境导致的,例如用户转换频道或所应用的数据流编码的变化(需要另一种解码),意味着任务管理器503和/或调度器501应该知道任务的结束甚至可能指令任务结束。
因此,该方法包括监控任务的结束并响应于任务结束重复识别存储器可用性及可抢占性的所述步骤。在一种实施方案中,在一个任务已经结束后,如果有足够的存储器同时执行其余的任务,监控步骤就被认为是不必要的,并且在对与存储器使用情况有关的输入没有任何监控的情况下允许任务进行。
在另一优选实施方案中,提供了一种调度器用在数据处理系统中,该数据处理系统被安排用来执行定义的多个任务,以使与保护其中所包含资源的另一同步原语匹配的释放资源的同步原语不跨越任务边界并在执行任务中能够访问所用的指定的存储器量,调度器包括:
数据接收器,用来接收标识与任务相关的最大存储器使用量、任务的独占性资源使用、以及任务的可抢占性的数据,其中保护相同资源使用的所述多个任务的一个子集都被标识为可抢占或不可抢占;
用来根据接收到的数据判断是否有足够的存储器执行任务的评估器;
用来选择至少一个任务在该任务的执行期间挂起的选择器,所述挂起符合任务的指定存储器使用情况并且该任务是可抢占的;
其中,响应于评估器判断出没有足够的存储器执行多个任务,
-选择器根据任务指定的存储器使用情况和它的可抢占性以及数据处理系统可用的指定存储器量选择至少一个任务挂起,
-调度器响应于所述任务使用指定存储器并且可抢占暂停至少一个所选择的任务的执行,并
-评估器随后指导执行关于被挂起的至少一个任务的受保护资源的同步原语。
在这个实施方案中,调度器是以硬件或软件之一实现的,并且该数据处理系统是高容量消费电子设备,例如数字电视系统。
在另一实施方案中,提供了发送数据到数据处理系统的一种方法,该方法包括:
定义任务使保护资源使用并与其中包含的别的同步原语相匹配的同步原语不跨越任务边界;
根据任务是否保护至少一个相同资源的使用定义所有任务为可抢占或不可抢占;
发送数据处理系统在处理任务中所用的数据;并
在任务的处理期间根据存储器使用情况和可抢占性发送指定任务挂起的挂起数据,其中该数据处理系统被配置为执行包括如下步骤的过程:
监控表示与其相关的挂起数据相匹配的任务的存储器使用情况的输入;并
如果所述挂起数据指定该任务是可抢占的,根据所述监控到的输入挂起所述任务的处理。
因此这个实施方案涉及数据处理系统要处理的任务所对应的挂起数据的分发。挂起数据是作为定时广播的信号(例如,伴随其它资源的具有挂起数据的附加任务)的一部分而被分发的,或者由服务提供商作为数据处理系统的常规升级的一部分而分发。此外,可以通过单独的链路或设备(例如软盘或CD-ROM)更新该数据处理系统。
尽管已经示出并说明了本发明的优选实施方案,但本领域的技术人员将会理解在不偏离本发明的真实范围的前提下可以对其进行各种不同的变化或修改,可以用等效物代替其中的元件。另外,可以进行很多种修改以在不偏离本发明的中心范围的前提下使本发明适应特殊情况。因此,本发明并不限于所公开的特殊实施方案作为完成本发明的最佳模式,本发明包括在所附权利要求范围内的所有实施方案。
参考文献
以下参考文献支持文中相应的参考标号,在这里包括进来作为参考如同完全引入:
[1]R.Gopalakrishnan and G.M.Parulkar,“Bringing Real-Time Scheduling Theory AndPractice Closer For Multimedia Computing,”In:Proc.ACM Sigmetrics Conf.onMeasurement & modeling of computer systems,pp.1-12,May 1996.
[2]S.Lee,C.-G.Lee,M.Lee,S.L.Min,and C.-S.Kim,“Limited Preemptible Schedulingto Embrace Cache Memory In Real-Time Systems,”In:Proc.ACM Sigplan Workshop onLanguages,Compilers and Tools for Embedded Systems(LCTES),LNCS-1474,pp.51-64,June 1998.
[3]J.Simonson and J.H.Patel,“Use Of Preferred Preemption Points In Cache-BasedReal-Time Systems”,In:Proc IEEE International Computer Performance and DependabilitySymposium(IPDS’95),pp.316-325,April 1995.
[4]R.J.Bril and D.J.C.Lowet,“A Method For Handling Preemption Points,”PhilipsResearch Laboratories,Eindhoven,The Netherlands,Internal IST/IPA document,30September 2002.
[5]R.J.Bril and D.J.C.Lowet,“A Method For Handling Preemption Points-Remarks--,”Philips Research Laboratories,Eindhoven,The Netherlands,Internal IST/IPA document,31 October 2002.
[6]Clemens Szyperski,Component Software-Beyond Object-oriented Programming,Addison-Wesley,ISBN 0-201-17888-5,1997.

Claims (24)

1.在数据处理系统中调度多个任务的一种方法,包括下列步骤:
定义所述多个任务的每个任务,以使与其中包含的保护资源的另一同步原语相匹配的释放资源的同步原语不会跨越任务边界;
根据任务是否保护至少一个相同资源的使用,指定任务的一个子集为可抢占或不可抢占的;
对多个任务中的每个任务,根据其存储器使用情况以及指定的任务可抢占性,提供指定该任务挂起的挂起数据;
处理多个任务中的一个;
监控表示由与任务相关的挂起数据相匹配的任务所用存储器的输入;并
如果所述挂起数据指定所述任务是可抢占的,执行下列步骤:
(1)根据所述监控到的输入挂起所述任务,
(2)执行与被挂起的任务的受保护资源有关的同步原语,直到所述被挂起的任务结束,并
(3)处理该多个任务中的另一个。
2.权利要求1的方法,其中所述输入包括指示挂起请求的数据。
3.权利要求2的方法,还包括下列步骤:
接收标识与多个任务相关的最大存储器使用的第一数据;
接收标识可用于处理多个任务的存储器的第二数据;
根据第一和第二数据判断是否有足够的存储器可用来处理任务。
其中,所述监控、挂起步骤和执行步骤只在判断出存储器不足时才被执行。
4.权利要求3的方法,还包括下列步骤:
监控任务的结束;并
在任务结束时,重复判断存储器的可用性的所述步骤。
5.权利要求4的方法,其中在判断出存储器足以执行余下的任务时,监控步骤就是不必要的。
6.权利要求1的方法,还包括下列步骤:
接收标识与多个任务相关的最大存储器使用的第一数据;
接收标识可用于处理多个任务的存储器的第二数据;
根据第一和第二数据判断是否有足够的存储器可用于处理任务;
其中,所述监控、挂起和执行步骤仅在判断出存储器不足时才会被执行。
7.权利要求6的方法,还包括下列步骤:
监控任务的结束;
在任务结束时,重复判断存储器可用性的步骤。
8.权利要求7的方法,其中如果判断出存储器足以执行余下的任务,监控步骤就是多余的。
9.权利要求1的方法,还包括下列步骤:
接收标识与该多个任务相关的最大存储器使用的第一数据;
接收标识可用于处理该多个任务的存储器的第二数据;
根据第一和第二数据判断是否有足够的存储器可用于处理任务;
其中,所述监控、挂起和执行步骤仅在判断出存储器不足时才会被执行
10.权利要求9的方法,还包括下列步骤:
监控任务的结束;
在任务结束时,重复判断存储器可用性的步骤。
11.权利要求10的方法,其中如果判断出存储器足以执行余下的任务,监控步骤就是多余的。
12.用在数据处理系统中的一种调度器,该数据处理系统用来执行多个任务,定义该多个任务以使与其中包含的保护资源的另一同步原语相匹配的释放资源( )的同步原语不会跨越任务边界,并能够访问指定量的存储器用在执行该任务中,该调度器包括:
数据接收器,用来接收标识与任务相关的最大存储器使用、任务的独占性资源使用、以及任务的可抢占性的数据,其中所述保护相同资源使用的多个任务的一个子集被全部定义为可抢占或不可抢占的;
评估器,用来根据接收到的数据判断是否有足够的存储器执行任务;和
选择器,用来在任务执行期间选择至少一个任务进行挂起,所述挂起与该任务的指定存储器使用相符并且任务是可抢占的;
其中,在评估器判断出没有足够的存储器执行该多个任务时,
-选择器根据任务的指定存储器存储器使用和它的可抢占性,以及该数据处理系统可用的指定存储器量选择至少一个任务进行挂起;
-该调度器在任务使用了指定的存储器并且可抢占时挂起至少一个所选择的任务;
-评估器随后指令执行与所挂起的至少一个任务的受保护资源有关的同步原语,直到所述被挂起的至少一个任务结束。
13.根据权利要求12的调度器,其中评估器还用来监控任务的执行,并在任务结束时,判断是否有足够的存储器存储器执行余下的任务。
14.根据权利要求13的调度器,其中在评估器判断出有足够的存储器执行余下的任务时,选择器用来撤销对所述选出的至少一个任务的选定。
15.一种用来执行多个任务的数据处理系统,定义所述多个任务中的每个任务,以使与其中包含的另一同步原语相匹配的同步原语不会跨越任务边界,该数据处理系统包括:
存储器,用来在任务执行期间保存指令和数据存储器;
接收装置,用来接收标识与任务相关的最大存储器使用的数据以及标识任务的可抢占性的数据;
评估装置,用来根据接收到的数据判断是否有足够的存储器执行任务以及所述任务是否是可抢占的;
调度器,用来根据从评估装置接收到的输入调度任务的执行,
其中,在判断出存储器不足以执行该多个任务时,
调度器用来根据任务的存储器使用情况、任务的独占资源使用和任务的可抢占性挂起至少一个任务,并随后指令执行与所挂起的至少一个任务的受保护资源有关的同步原语,直到所述被挂起的任务结束。
16.权利要求15的数据处理系统,其中所述多个任务的一个子集被根据该任务子集是否保护相同资源的使用而全都被定义为可抢占或不可抢占。
17.发送数据到数据处理系统的方法,该方法包括:
定义任务,以使与其中包含的另一同步原语相匹配的保护资源使用的同步原语不会跨越任务边界;
根据任务是否保护至少一个相同资源的使用,定义所有任务为可抢占或不可抢占的;
发送该数据处理系统在处理任务中要用的数据;并
在任务处理中,根据存储器使用情况和可抢占性发送指定该任务挂起的挂起数据,
其中该数据处理系统被配置用来完成包括下列步骤的过程:
监控表示与任务所关联的挂起数据相匹配的任务的存储器使用情况的输入;
如果所述挂起数据指定任务是可抢占的,就根据所述监控到的输入挂起所述任务的处理,并随后执行与被挂起的任务所保护的资源相关的同步原语,直到被挂起的任务结束。
18.根据权利要求17的方法,其中挂起数据包括标识与任务相关的最大存储器使用、与任务相关的独占性资源使用以及任务的可抢占性的数据。
19.根据权利要求17的方法,其中挂起数据标识至少一个能够根据任务的存储器使用、任务的独占性资源使用以及任务的可抢占性挂起任务处理的时间点。
20.权利要求19的方法,其中任务包括多个子作业并且所述标识至少一个能够挂起任务处理的时间点的数据对应于每个可抢占的子作业。
21.根据权利要求19的方法,其中挂起数据包括标识与任务相关的最大存储器使用,以及与任务相关的独占性资源使用的数据。
22.权利要求21的方法,其中任务包括多个子作业,并且所述标识至少一个能够挂起任务处理的时间点对应于每个可抢占的子作业。
23.配置任务以用在数据处理系统中的一种方法,该方法包括将挂起数据与任务相关联,该挂起数据指定根据与任务相关的存储器使用情况、任务的独占性资源使用以及任务的可抢占性挂起任务,其中数据处理系统用来执行关于多个任务的过程,该过程包括:
定义任务,以使其中包含的与另一同步原语相匹配的同步原语不跨越任务边界;
监控表示与任务所关联的挂起数据相匹配的任务的存储器使用的输入;并
如果挂起数据指示所述任务是可抢占的
-根据所述监控到的输入挂起所述任务的处理,并
-随后执行与被挂起的至少一个任务独占性使用的资源相关的同步原语,直到所述任务结束。
24.存储在存储器中的计算机程序,包括用来使处理系统执行根据权利要求1的方法的指令集。
CNA2004800327446A 2003-11-06 2004-11-04 处理抢占点的改进方法 Pending CN1879085A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US51800703P 2003-11-06 2003-11-06
US60/518,007 2003-11-06

Publications (1)

Publication Number Publication Date
CN1879085A true CN1879085A (zh) 2006-12-13

Family

ID=34572982

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2004800327446A Pending CN1879085A (zh) 2003-11-06 2004-11-04 处理抢占点的改进方法

Country Status (6)

Country Link
US (1) US20070022423A1 (zh)
EP (1) EP1683011A2 (zh)
JP (1) JP2007511819A (zh)
KR (1) KR20060117931A (zh)
CN (1) CN1879085A (zh)
WO (1) WO2005045666A2 (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103945232A (zh) * 2014-03-17 2014-07-23 深圳创维-Rgb电子有限公司 一种电视的资源调度方法和装置
CN108292238A (zh) * 2015-12-18 2018-07-17 想象技术有限公司 控制gpu的调度
CN108463804A (zh) * 2016-01-28 2018-08-28 高通股份有限公司 自适应上下文切换

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7594234B1 (en) * 2004-06-04 2009-09-22 Sun Microsystems, Inc. Adaptive spin-then-block mutual exclusion in multi-threaded processing
US20100010856A1 (en) * 2006-02-08 2010-01-14 Kim Huat David Chua Method and system for constraint-based project scheduling
JP4770602B2 (ja) * 2006-06-23 2011-09-14 株式会社デンソー 電子機器
US20100287553A1 (en) * 2009-05-05 2010-11-11 Sap Ag System, method, and software for controlled interruption of batch job processing
JP2011053995A (ja) * 2009-09-03 2011-03-17 Hitachi Ltd データ処理制御方法および計算機システム
FR2977339B1 (fr) * 2011-06-29 2013-07-26 Commissariat Energie Atomique Dispositif et procede de synchronisation de taches executees en parallele sur une plateforme comprenant plusieurs unites de calcul
US9104491B2 (en) * 2012-02-21 2015-08-11 Disney Enterprises, Inc. Batch scheduler management of speculative and non-speculative tasks based on conditions of tasks and compute resources
US10552774B2 (en) * 2013-02-11 2020-02-04 Amazon Technologies, Inc. Cost-minimizing task scheduler
JP6496732B2 (ja) * 2013-08-16 2019-04-03 シンポアー インコーポレイテッド ナノ多孔性窒化ケイ素膜ならびにそのような膜の製造方法および使用方法
KR102224844B1 (ko) * 2014-12-23 2021-03-08 삼성전자주식회사 선점 방식을 선택하는 방법 및 장치.
EP3357334B1 (en) * 2015-09-30 2021-05-26 Nippon Soda Co., Ltd. Agrochemical composition
US11556374B2 (en) 2019-02-15 2023-01-17 International Business Machines Corporation Compiler-optimized context switching with compiler-inserted data table for in-use register identification at a preferred preemption point
US11204767B2 (en) 2020-01-06 2021-12-21 International Business Machines Corporation Context switching locations for compiler-assisted context switching

Family Cites Families (4)

* 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
US6704489B1 (en) * 1999-05-06 2004-03-09 Matsushita Electric Industrial Co., Ltd. Resource management system and digital video reproducing/recording apparatus
US7284244B1 (en) * 2000-05-02 2007-10-16 Microsoft Corporation Resource manager architecture with dynamic resource allocation among multiple configurations
JP2006523881A (ja) * 2003-04-14 2006-10-19 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ リソース管理方法及び装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103945232A (zh) * 2014-03-17 2014-07-23 深圳创维-Rgb电子有限公司 一种电视的资源调度方法和装置
CN108292238A (zh) * 2015-12-18 2018-07-17 想象技术有限公司 控制gpu的调度
CN108463804A (zh) * 2016-01-28 2018-08-28 高通股份有限公司 自适应上下文切换
CN108463804B (zh) * 2016-01-28 2022-02-15 高通股份有限公司 自适应上下文切换

Also Published As

Publication number Publication date
WO2005045666A3 (en) 2006-02-23
KR20060117931A (ko) 2006-11-17
WO2005045666A2 (en) 2005-05-19
EP1683011A2 (en) 2006-07-26
US20070022423A1 (en) 2007-01-25
JP2007511819A (ja) 2007-05-10

Similar Documents

Publication Publication Date Title
CN1879085A (zh) 处理抢占点的改进方法
JP2007519103A (ja) マルチプロセッサシステムにおけるリソース管理
CN1271517C (zh) 任务切换装置、方法和程序
CN1154928C (zh) 用于多任务设施信息处理系统的资源管理方法和设备
CN1802635A (zh) 资源管理方法以及设备
JP2008527514A5 (zh)
US20070016907A1 (en) Method, system and computer program for automatic provisioning of resources to scheduled jobs
CN1902588A (zh) 在次最佳网格环境中维持应用工作
CN1097798C (zh) 资源分配的方法和系统
CN101051281A (zh) 多cpu对临界资源进行互斥访问的方法和装置
CN100341281C (zh) 一种在网络系统中实现任务管理的方法
CN1111800C (zh) 管理共享资源的装置和方法
CN1909553A (zh) 信息处理设备、通信控制方法和通信控制程序
CN1828541A (zh) Java操作系统中定时任务的实现方法
CN1135472C (zh) 系统应用软件管理方式
CN1553598A (zh) 一种单板故障的检测方法及装置
CN101034383A (zh) 一种实现软/硬件复用的dma控制器和传输方法
CN1870660A (zh) 一种更新地址解析协议表项的方法和节点设备
CN1172986A (zh) 实时控制系统
CN101057220A (zh) 用于管理存储器空间的系统和方法
CN101060683A (zh) 通信系统中告警信息的生成方法及装置
CN101030884A (zh) 电信网络资源oss系统中独占性资源的调度方法
CN1166116C (zh) 在通信网络终端之间进行数据交换的系统及管理呼出呼叫的方法
CN1879086A (zh) 用于限制预算使用的方法和系统
CN1878206A (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
AD01 Patent right deemed abandoned
C20 Patent right or utility model deemed to be abandoned or is abandoned