处理抢占点的改进方法技术

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

【技术实现步骤摘要】
【国外来华专利技术】
本专利技术涉及特别适合(但并不专用于)实时-系统资源管理的资源管理方法和设备。对存储器的管理是资源管理至关重要的一个方面,已经开发出了各种方法来优化对存储器的使用。已经提出文献[1][2][3]中所论述的处理优选抢占点的方法作为通过将对抢占点的使用归纳为对主存储器的管理而提高数据处理系统的效率的手段,尤其是在实时系统中。在这种存储器管理策略中,不是在任务执行中的任意时间点上抢占任务,优选地只根据任务的存储器使用情况在专门的抢占点上抢占任务。在下面的说明中,任务的中止被称作任务抢占,或任务的抢先,而术语“任务”用来表示能够为自己竞争系统资源(如存储器、CPU、I/O设备等)的执行单元。任务可以看作是连续执行的作业系列,每个作业包括一个或多个子-作业。例如,任务可以包括“多路分解视频流”,并涉及读取输入的流、处理流并输出相应的数据。对每个输入的数据流完成这些步骤,所以对单个流的读、处理和输出对应于完成一个作业。因而,当有多个数据分组要读取和处理时,该作业会相应地被执行多次。子-作业可以看作是涉及作业的功能成分。在数据处理系统中调度多个任务的一种已知的方法需要任务的每个子-作业有一组暂停标准,称作挂起数据,挂起数据规定了处理抢占点以及根据子作业的存储器使用情况[4][5]挂起子作业的相应条件。因而数据处理系统所用的存储器量由这个挂起数据通过这些抢占点间接控制,挂起数据规定了在作业执行中这些抢占点上需要的存储器量。因而,可以利用这些抢占点避免数据处理系统由于缺少存储器而崩溃。当实时任务的特征是包括多个子-作业时,它的抢占点优选地或通常都与任务的子-作业边界重合。但是,必须注意到任务自身不会在子作业期间暂停它们自己。根据执行情况,这种不可抢占的子-作业的暂停方式会导致死锁或占用过多存储器。可以通过一行代码在任务中嵌入表示符合与任务的每个子作业相关的挂起数据的存储器使用情况的数据,所述代码行请求调度事件,其表明已经到达任务处理中的抢占点,即已经到达子作业边界。也就是说,任务子作业的起始点集合构成了任务的一组抢占点。任务τi的第j个抢占点Pij由涉及抢占点自身的信息以及涉及第j个抢占点和下一个抢占点(即第j+1个抢占点)之间的后续不可抢占的子作业时间片Iij的信息表征。在运行时期,任务在它到达抢占点时通知控制操作系统,例如,当它启动子-作业时,在子-作业之间切换和完成子-作业时,操作系统决定何时何处抢占该任务的执行。理论上,抢占可以发生在抢占点或任务执行中的任何其它点上。但是,除了上述死锁问题之外,选择抢占点的这种灵活性在下列情况下是以一致性为代价的(1)对一个任务子集的抢占仅限于这个子集的抢占点,同时允许对所有其它任务的任意抢占;(2)对任务子集的抢占限于它们的抢占点,对其它任务的抢占限于它们的抢占点的子集,同时允许对任务子集的剩余时间片的任意抢占。当带有抢占点的任务时间片被任意抢占时,由于部件的设计、分析和测试基于任务时间片只在抢占点被抢占的假设,可能会降低那些子系统的可预测性。当发生对任务时间片的任意抢占时,由于不能确保对资源的互斥访问,产生的系统可能变得不一致。基于不损害系统一致性的主存储器需求的现有技术的抢占点策略必须将所有任务的抢占限制到它们的抢占点。如同本领域中已知的那样,一个组件(例如软件组件,可以包括一个或多个任务)可以有包括该组件定义的属性、函数或方法和事件的可编程接口[6]。出于说明目的,假定任务τi由接口100完成,它至少包括任务所需的主存储器数据,MPij101b,如附图说明图1所示。此外,假定定义抢占点使得相匹配的同步原语不超出子作业边界(或抢占点)。出于说明目的,假定任务是周期性和实时的,由周期T和相位F表征,0<=F<T,这意味着任务包括一系列子-作业,相同的序列被周期性地重复,每个子作业在时间点F+nT被释放,其中n=0,...,N。仅仅作为例子,如图2中所示,假定置顶盒200要执行三个任务-(1)在用户界面205上显示菜单,(2)从内容提供商203取回文本信息,(3)处理一些视频信号-并且假定这3个任务中的每个任务都包括多个子-作业。为了陈述简单起见,假定子-作业被顺序执行。至少这些子-作业中的一些可以被抢占,并且这些可以被抢占的子作业间的边界提供了抢占点,表1中对此做了总结 表1也参考图3,对每个任务,挂起数据101包括涉及抢占点Pij301的信息,例如在抢占点上所需的最大存储器量MPij302,以及涉及连续抢占点之间时间片Iij303的信息,例如抢占点间时间片所需的最坏情况下的存储器量MIi,j304(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的第二行,等等) 表2假定置顶盒200配备了1.5MB的存储器。在正常情况下或基于非存储器的抢占条件下,这个置顶盒如下运行。现在参考图4,可以期望处理器401根据基于某种时间片或优先级的抢占而调度任务,意味着所有3个任务并发运行,即,同时有效。因此可以调度各个任务以便同时运行它的存储器需求最强烈的子作业。下式给出了这三个任务在最坏情况下的存储器需求MPMP=Σi=13maxj=1m(i)MIi,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本文档来自技高网...

【技术保护点】
在数据处理系统中调度多个任务的一种方法,包括下列步骤:定义所述多个任务的每个任务,以使与其中包含的保护资源的另一同步原语相匹配的释放资源的同步原语不会跨越任务边界;根据任务是否保护至少一个相同资源的使用,指定任务的一个子集为 可抢占或不可抢占的;对多个任务中的每个任务,根据其存储器使用情况以及指定的任务可抢占性,提供指定该任务挂起的挂起数据;处理多个任务中的一个;监控表示由与任务相关的挂起数据相匹配的任务所用存储器的输入;并如果所 述挂起数据指定所述任务是可抢占的,执行下列步骤:(1)根据所述监控到的输入挂起所述任务,(2)执行与被挂起的任务的受保护资源有关的同步原语,直到所述被挂起的任务结束,并(3)处理该多个任务中的另一个。

【技术特征摘要】
【国外来华专利技术】US 2003-11-6 60/518,0071.在数据处理系统中调度多个任务的一种方法,包括下列步骤定义所述多个任务的每个任务,以使与其中包含的保护资源的另一同步原语相匹配的释放资源的同步原语不会跨越任务边界;根据任务是否保护至少一个相同资源的使用,指定任务的一个子集为可抢占或不可抢占的;对多个任务中的每个任务,根据其存储器使用情况以及指定的任务可抢占性,提供指定该任务挂起的挂起数据;处理多个任务中的一个;监控表示由与任务相关的挂起数据相匹配的任务所用存储器的输入;并如果所述挂起数据指定所述任务是可抢占的,执行下列步骤(1)根据所述监控到的输入挂起所述任务,(2)执行与被挂起的任务的受保护资源有关的同步原语,直到所述被挂起的任务结束,并(3)处理该多个任务中的另一个。2.权利要求1的方法,其中所述输入包括指示挂起请求的数据。3.权利要求2的方法,还包括下列步骤接收标识与多个任务相关的最大存储器使用的第一数据;接收标识可用于处理多个任务的存储器的第二数据;根据第一和第二数据判断是否有足够的存储器可用来处理任务。其中,所述监控、挂起步骤和执行步骤只在判断出存储器不足时才被执行。4.权利要求3的方法,还包括下列步骤监控任务的结束;并在任务结束时,重复判断存储器的可用性的所述步骤。5.权利要求4的方法,其中在判断出存储器足以执行余下的任务时,监控步骤就是不必要的。6.权利要求1的方法,还包括下列步骤接收标识与多个任务相关的最大存储器使用的第一数据;接收标识可用于处理多个任务的存储器的第二数据;根据第一和第二数据判断是否有足够的存储器可用于处理任务;其中,所述监控、挂起和执行步骤仅在判断出存储器不足时才会被执行。7.权利要求6的方法,还包括下列步骤监控任务的结束;在任务结束时,重复判断存储器可用性的步骤。8.权利要求7的方法,其中如果判断出存储器足以执行余下的任务,监控步骤就是多余的。9.权利要求1的方法,还包括下列步骤接收标识与该多个任务相关的最大存储器使用的第一数据;接收标识可用于处理该多个任务的存储器的第二数据;根据第一和第二数据判断是否有足够的存储器可用于处理任务;其中,所述监控、挂起和执行步骤仅在判断出存储器不足时才会被执行10.权利要求9的方法,还包括下列步骤监控任务的结束;在任务结束时,重复判断存储器可用性的步骤。11.权利要求10的方法,其中如果判断出存储器足以执行余下的任务,监控步骤就是多余的。12.用在数据处理系统中的一种调度器,该数据处理系统用来执行多个任务,定义该多个任务以使与其中包含的保护资源的另一同步原语相匹配的释放资源( )的同步原语不会跨越任务边界,并能够访问指定量的存储器用在执行该任务中,该调度器包括数据接收器,用来接收标识与任务相关的最大存储器使用、任务的独占性资源使用、以及任务的可抢占性的数据,其中所述保护相同资源使用的多个任务的一个子集被全部定义为可抢占或不可抢占的;评估器,用来根据接收到的数据判断是否有足够的存储器执行任务;和选择器,用来在任务执行期间选择至少一个任务进行挂起,所述挂起与该任务的指定存储器使用相符并且任务是可抢占的;其中,在评估器判断出没有足够的存储器执行该多个任务时,-选择器根据任务的指定存储器存储器使用和它的可抢占性,以及该数据处理系统可用的指定存储器量选择至少一个任务进行挂起;-该调度器在任务使用了指定的存储器并且可抢占时挂起至少一个所选择的任务;-评估器随后指令执行与所挂起的...

【专利技术属性】
技术研发人员:RJ布里尔DJC罗韦特
申请(专利权)人:皇家飞利浦电子股份有限公司
类型:发明
国别省市:NL[荷兰]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1