CN116244073A - 混合关键分区实时操作***的资源感知型任务分配方法 - Google Patents

混合关键分区实时操作***的资源感知型任务分配方法 Download PDF

Info

Publication number
CN116244073A
CN116244073A CN202310095960.XA CN202310095960A CN116244073A CN 116244073 A CN116244073 A CN 116244073A CN 202310095960 A CN202310095960 A CN 202310095960A CN 116244073 A CN116244073 A CN 116244073A
Authority
CN
China
Prior art keywords
task
level
tasks
key
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
CN202310095960.XA
Other languages
English (en)
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.)
Sun Yat Sen University
Original Assignee
Sun Yat Sen University
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 Sun Yat Sen University filed Critical Sun Yat Sen University
Priority to CN202310095960.XA priority Critical patent/CN116244073A/zh
Publication of CN116244073A publication Critical patent/CN116244073A/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/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)

Abstract

本发明公开了混合关键分区实时操作***的资源感知型任务分配方法,包括:根据资源访问情况对各个任务进行分组;根据任务分组的结果,在保证分配结果在高关键级***模式下可调度的情况下分配高关键级任务;根据任务分组的结果,在保证分配结果在低关键级***模式下可调度的情况下分配低关键级任务;根据分配好的高关键级任务和低关键级任务,使用任务迁移方法进行***模式切换的调度,完成任务分配。本发明能够提高***的整体可调度性,可广泛应用于计算机技术领域。

Description

混合关键分区实时操作***的资源感知型任务分配方法
技术领域
本发明涉及计算机技术领域,尤其是混合关键分区实时操作***的资源感知型任务分配方法。
背景技术
混合关键***是指在同一个计算平台上完成多种功能且满足空间、功率和成本限制的嵌入式实时***。这样的***广泛应用于汽车、航空航天和其他行业领域。在这样的集成***中,具有不同认证要求和不同重要性(关键性)的应用程序可以共存并共享***资源。混合关键***必须确保高关键度任务能够得到正确的执行并满足时间约束而低关键任务在特定情况下可以放弃以确保高关键度任务的运行。混合关键***通常拥有低关键度、高关键度两个***运行模式。***以低关键度模式(low criticality mode)开始运行。在该模式下,低关键度任务(low criticality tasks)与高关键度任务(high criticalitytasks)一起以低关键度模式下的执行时间运行。当***中有任务运行超时,***将切换为高关键度模式,并挂起低关键任务,同时,高关键度任务将以更长的执行时间运行。
在多核混合关键***中,低关键度任务与高关键度任务共享着平台上的各种资源,例如代码段、数据、内存、IO设备等。为了保证数据的完整与一致性,任务需要以锁以互斥的方式访问这些共享资源。AUTOSAR标准规定的自旋锁(spin lock)被广泛应用于保护共享资源的计算正确性,实时***使用基于自旋锁的资源共享协议(resource sharingprotocol)来管理对共享资源的访问,并提供任务等待与执行共享资源的时间上界。但是,由于自旋锁的应用,当任务在不同的处理器上请求相同的资源时,它们会在所属处理器上忙等,直到成功获得请求的资源。这种现象将会给任务带来很高的阻塞时间,并且会严重破坏***的可调度性。
在实时***中,响应时间分析是一种主流的可调度性分析方法,该方法首先预测每个任务最坏情况的响应时间,然后将该值同任务的截止时间进行比较。目前,在基于自旋锁的共享资源协议的可调度分析中,通过分析给定时间内资源访问阻塞情况,可以精确约束三种阻塞时间(直接自旋阻塞、间接自旋阻塞以及到达阻塞),提供了任务等待与执行共享资源的时间上界,将该时间项拟合到响应时间分析方程中可以提供更为精确的分析结果。
近年来,在多处理器***中,为了减少处理器间的资源争用,资源感知的任务分配方法受到了广泛关注。这种任务分配的思想是通过本地化共享资源来减少竞争,即尽可能将访问同一共享资源的任务分配至相同核心。然而,在混合关键级***中,很少有研究工作以资源感知为主要方向来设计任务分配算法。同时,广泛存在于现实***之中的频繁的共享资源访问导致了任务阻塞时间长、***可调度性低下等问题。
目前,混合关键***下的任务分配算法的主要存在以下问题:
现有的研究普遍采用启发式的算法对任务进行分配,任务分配规则主要考虑任务利用率、截止时间,并且通常只考虑任务在其最高关键级别(即最大利用率),这会导致对***利用率的悲观估计,从而降低***可调度性。
部分研究考虑到了多个关键级别上的利用率差异,可以提高***整体的可调度性。但是,以上方案都未考虑到共享资源访问的影响,导致***在实际运行时因过长的阻塞时延而不可调度。
发明内容
有鉴于此,本发明实施例提供混合关键分区实时操作***的资源感知型任务分配方法,以提高***可调度性。
本发明实施例的一方面提供了混合关键分区实时操作***的资源感知型任务分配方法,包括:
根据资源访问情况对各个任务进行分组;
根据任务分组的结果,在保证分配结果在高关键级***模式下可调度的情况下分配高关键级任务;
根据任务分组的结果,在保证分配结果在低关键级***模式下可调度的情况下分配低关键级任务;
根据分配好的高关键级任务和低关键级任务,使用任务迁移方法进行***模式切换的调度,完成任务分配。
可选地,所述根据资源访问情况对各个任务进行分组,包括:
将共享资源按照被访问总次数从大到小排序,得到资源排序结果;
根据所述资源排序结果进行任务分组;
根据任务的关键级,对划分得到的每个资源任务组和独立任务组进一步划分。
可选地,所述根据所述资源排序结果进行任务分组,包括:
从第一个资源开始,如果某个任务需要请求该资源,则加入该资源对应的任务分组;如果任务已加入分组,则不再加入其他任务组;将不请求任何资源的任务都作为一个独立分组;
所述根据任务的关键级,对划分得到的每个资源任务组和独立任务组进一步划分,包括:
对每个资源任务组和独立任务组进一步划分,得到每个资源对应的高关键级任务组和低关键级任务组,以及得到一个独立高关键级任务组和一个独立低关键级任务组。
可选地,所述根据任务分组的结果,在保证分配结果在高关键级***模式下可调度的情况下分配高关键级任务,包括:
根据任务分组的结果,得到每个资源对应的高关键级任务组以及一个独立高关键级组,将每个资源对应的任务组内的任务按照高关键级下的利用率进行升序排序;
从被访问总次数最大的资源对应的任务组开始遍历;
将处理器按照高关键级下的利用率从小到大进行排序;
依次分配当前任务组内的任务,将任务按处理器顺序分配给第一个可调度的处理器,直到所有资源对应的高关键级任务组的任务分配完成;
独立任务分组内的任务按照高关键级下的利用率降序排序,每次分配独立任务前,将处理器按照高关键级下的利用率从小到大排序,按处理器顺序分配给第一个可调度的处理器。
可选地,所述根据任务分组的结果,在保证分配结果在低关键级***模式下可调度的情况下分配低关键级任务,包括:
根据任务分组的结果,得到的每个资源对应的低关键级任务组以及一个独立低关键级任务组,将每个资源对应的任务组内的任务按照低关键级下的利用率升序排序;
从被访问总次数最大的资源对应的任务组开始遍历;
对处理器进行排序,将存在访问当前资源的高关键级任务的处理器排列在前,并且按照低关键级下的利用率从小到大进行排序,剩余处理器按照低关键级下的利用率从小到大排序;
依次分配当前任务组内的任务,将任务按处理器顺序分配给第一个能调度的处理器,直到所有资源对应的低关键级任务组的任务分配完成;
独立任务分组内的任务按照低关键级下的利用率降序排序,每次分配独立任务前,将处理器按照低关键级下的利用率从小到大排序,遍历处理器,分配给第一个可调度的处理器。
可选地,所述根据分配好的高关键级任务和低关键级任务,使用任务迁移方法进行***模式切换的调度,完成任务分配,包括:
计算每个高关键级任务在模式切换时的响应时间,检查模式切换时任务的响应时间是否超过截止期限;
当任务的响应时间超过截止期限,依次检查任务的超时原因,直至任务可被调度;
完成所有高关键级任务的调度。
可选地,所述当任务的响应时间超过截止期限,依次检查任务的超时原因,直至任务可被调度,包括:
当高关键任务在模式切换时受到的到达阻塞时间大于高关键级下受到的到达阻塞时间时,获取造成最大到达阻塞的资源,并执行以下步骤:
如果在当前任务所属处理器上没有高关键任务访问该资源,只有低关键级任务访问该资源:将处理器进行排序,将能够对低关键任务造成自旋阻塞的处理器排列在前,剩余处理器按照松弛时间从大到小排序;按处理器顺序,将该处理器上所有访问该资源的低关键任务迁移至第一个可以满足条件的处理器;
如果在当前任务所属处理器上有高关键任务访问该资源:将对该任务造成到达阻塞的处理器上所有访问该资源的低关键级任务尝试迁移至当前任务所在处理器;
当执行以上步骤后,当前任务仍然不可调度,则继续执行以下步骤:
如果资源访问阻塞时间大于0,则按资源编号遍历,按处理器编号依次检查每个处理器上是否有访问资源的低关键级任务对任务造成自旋阻塞,并将处理器上访问资源的低关键任务迁移至当前任务所在核心;如果本次迁移不会新增任务超时,则执行迁移;
当当前任务可调度或者遍历完所有资源时停止。
本发明实施例的另一方面还提供了一种混合关键分区实时操作***的资源感知型任务分配装置,包括:
第一模块,用于根据资源访问情况对各个任务进行分组;
第二模块,用于根据任务分组的结果,在保证分配结果在高关键级***模式下可调度的情况下分配高关键级任务;
第三模块,用于根据任务分组的结果,在保证分配结果在低关键级***模式下可调度的情况下分配低关键级任务;
第四模块,用于根据分配好的高关键级任务和低关键级任务,使用任务迁移方法进行***模式切换的调度,完成任务分配。
本发明实施例的另一方面还提供了一种电子设备,包括处理器以及存储器;
所述存储器用于存储程序;
所述处理器执行所述程序实现如前面所述的方法。
本发明实施例的另一方面还提供了一种计算机可读存储介质,所述存储介质存储有程序,所述程序被处理器执行实现如前面所述的方法。
本发明实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前面的方法。
本发明的实施例根据资源访问情况对各个任务进行分组;根据任务分组的结果,在保证分配结果在高关键级***模式下可调度的情况下分配高关键级任务;根据任务分组的结果,在保证分配结果在低关键级***模式下可调度的情况下分配低关键级任务;根据分配好的高关键级任务和低关键级任务,使用任务迁移方法进行***模式切换的调度,完成任务分配。本发明能够提高***的整体可调度性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的整体步骤流程图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
下面首先对本发明可能出现的相关技术名词进行解释说明:
固定优先级调度(fixed-priority scheduling,FPS):一种实时***中的调度方法。任务的优先级在***运行前静态分配,并在任务的整个生命周期固定使用。在***运行期间,优先级更大的任务会优先被调度运行。
半分区调度(semi-partitioned Scheme):一种多处理器下的实时调度方案。***在运行前将任务静态分配给各处理器,并在每个处理器上独立进行调度。然而,与全分区不同的是,半分区调度允许一些任务在特定条件下迁移到预先指定的处理器上运行。
偶发性周期任务(sporadic task model):具有明确时间约束的计算任务,其作业的到达没有固定的周期(period),但是有最小到达时间间隔的限制(minimal arrivalinterval),在最坏情况下可以视作周期性任务。
共享资源(shared resources):多个任务可以同时请求但必须独占访问的硬件或软件资源。为保证数据的完整性,每个资源都由指定的锁来保护。任务只有获得资源对应的锁才被允许访问资源;如果资源被占有,则请求该资源的任务将等待,直到资源再次可用。
可调度性(schedulability):指***中所有任务可以在截止期限内完成运行。
可调度性分析(schedulability test):指一种能够计算出任务在目标***执行的最差响应时间(即从释放到完成)的一套数学工具。最差响应时间通常包括任务本身执行需要的最坏时间(WCET)、本地高优先级任务的干扰时间(local high priorityinterference)、任务访问共享资源造成的阻塞时间(具体解释如下)等几个主要部分。
自旋阻塞(spin delay):在使用基于自旋锁的资源共享协议的多处理器***中,远程处理器上的任务访问资源造成本地处理器上请求该资源的任务自旋等待而造成的阻塞。请求资源的任务直接受到远程任务干扰称为直接自旋阻塞,低优先级任务传递性地受到被远程任务干扰的高优先级任务的阻塞,称为间接自旋阻塞。
到达阻塞(arrival blocking):在基于非抢占或优先级提升技术的***中,高优先级任务在到达时因为无法抢占而受到本地低优先级任务的阻塞。
针对现有技术存在的问题,本发明提出一种面向共享资源的任务分配方法,大幅降低任务访问共享资源的阻塞时间,并提高***可调度性。
具体地,本发明实施例的一方面提供了混合关键分区实时操作***的资源感知型任务分配方法,包括:
根据资源访问情况对各个任务进行分组;
根据任务分组的结果,在保证分配结果在高关键级***模式下可调度的情况下分配高关键级任务;
根据任务分组的结果,在保证分配结果在低关键级***模式下可调度的情况下分配低关键级任务;
根据分配好的高关键级任务和低关键级任务,使用任务迁移方法进行***模式切换的调度,完成任务分配。
可选地,所述根据资源访问情况对各个任务进行分组,包括:
将共享资源按照被访问总次数从大到小排序,得到资源排序结果;
根据所述资源排序结果进行任务分组;
根据任务的关键级,对划分得到的每个资源任务组和独立任务组进一步划分。
可选地,所述根据所述资源排序结果进行任务分组,包括:
从第一个资源开始,如果某个任务需要请求该资源,则加入该资源对应的任务分组;如果任务已加入分组,则不再加入其他任务组;将不请求任何资源的任务都作为一个独立分组;
所述根据任务的关键级,对划分得到的每个资源任务组和独立任务组进一步划分,包括:
对每个资源任务组和独立任务组进一步划分,得到每个资源对应的高关键级任务组和低关键级任务组,以及得到一个独立高关键级任务组和一个独立低关键级任务组。
可选地,所述根据任务分组的结果,在保证分配结果在高关键级***模式下可调度的情况下分配高关键级任务,包括:
根据任务分组的结果,得到每个资源对应的高关键级任务组以及一个独立高关键级组,将每个资源对应的任务组内的任务按照高关键级下的利用率进行升序排序;
从被访问总次数最大的资源对应的任务组开始遍历;
将处理器按照高关键级下的利用率从小到大进行排序;
依次分配当前任务组内的任务,将任务按处理器顺序分配给第一个可调度的处理器,直到所有资源对应的高关键级任务组的任务分配完成;
独立任务分组内的任务按照高关键级下的利用率降序排序,每次分配独立任务前,将处理器按照高关键级下的利用率从小到大排序,按处理器顺序分配给第一个可调度的处理器。
可选地,所述根据任务分组的结果,在保证分配结果在低关键级***模式下可调度的情况下分配低关键级任务,包括:
根据任务分组的结果,得到的每个资源对应的低关键级任务组以及一个独立低关键级任务组,将每个资源对应的任务组内的任务按照低关键级下的利用率升序排序;
从被访问总次数最大的资源对应的任务组开始遍历;
对处理器进行排序,将存在访问当前资源的高关键级任务的处理器排列在前,并且按照低关键级下的利用率从小到大进行排序,剩余处理器按照低关键级下的利用率从小到大排序;
依次分配当前任务组内的任务,将任务按处理器顺序分配给第一个能调度的处理器,直到所有资源对应的低关键级任务组的任务分配完成;
独立任务分组内的任务按照低关键级下的利用率降序排序,每次分配独立任务前,将处理器按照低关键级下的利用率从小到大排序,遍历处理器,分配给第一个可调度的处理器。
可选地,所述根据分配好的高关键级任务和低关键级任务,使用任务迁移方法进行***模式切换的调度,完成任务分配,包括:
计算每个高关键级任务在模式切换时的响应时间,检查模式切换时任务的响应时间是否超过截止期限;
当任务的响应时间超过截止期限,依次检查任务的超时原因,直至任务可被调度;
完成所有高关键级任务的调度。
可选地,所述当任务的响应时间超过截止期限,依次检查任务的超时原因,直至任务可被调度,包括:
当高关键任务在模式切换时受到的到达阻塞时间大于高关键级下受到的到达阻塞时间时,获取造成最大到达阻塞的资源,并执行以下步骤:
如果在当前任务所属处理器上没有高关键任务访问该资源,只有低关键级任务访问该资源:将处理器进行排序,将能够对低关键任务造成自旋阻塞的处理器排列在前,剩余处理器按照松弛时间从大到小排序;按处理器顺序,将该处理器上所有访问该资源的低关键任务迁移至第一个可以满足条件的处理器;
如果在当前任务所属处理器上有高关键任务访问该资源:将对该任务造成到达阻塞的处理器上所有访问该资源的低关键级任务尝试迁移至当前任务所在处理器;
当执行以上步骤后,当前任务仍然不可调度,则继续执行以下步骤:
如果资源访问阻塞时间大于0,则按资源编号遍历,按处理器编号依次检查每个处理器上是否有访问资源的低关键级任务对任务造成自旋阻塞,并将处理器上访问资源的低关键任务迁移至当前任务所在核心;如果本次迁移不会新增任务超时,则执行迁移;
当当前任务可调度或者遍历完所有资源时停止。
本发明实施例的另一方面还提供了一种混合关键分区实时操作***的资源感知型任务分配装置,包括:
第一模块,用于根据资源访问情况对各个任务进行分组;
第二模块,用于根据任务分组的结果,在保证分配结果在高关键级***模式下可调度的情况下分配高关键级任务;
第三模块,用于根据任务分组的结果,在保证分配结果在低关键级***模式下可调度的情况下分配低关键级任务;
第四模块,用于根据分配好的高关键级任务和低关键级任务,使用任务迁移方法进行***模式切换的调度,完成任务分配。
本发明实施例的另一方面还提供了一种电子设备,包括处理器以及存储器;
所述存储器用于存储程序;
所述处理器执行所述程序实现如前面所述的方法。
本发明实施例的另一方面还提供了一种计算机可读存储介质,所述存储介质存储有程序,所述程序被处理器执行实现如前面所述的方法。
本发明实施例还公开了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器可以从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行前面的方法。
下面结合说明书附图,对本发明的具体实现过程进行详细描述:
本发明将基于包含高关键级、低关键级两个***模式(System Execution Mode,L∈{HI,LO})的混合关键***(Mixed-Criticality System)展开。***包含一组同样的处理器Φ(symmetric multiprocessor)和一组偶发周期性任务Γ(sporadic task)。***采用半分区式固定优先级调度方法(semi-partitioned fixed-priority scheme)。
在***中,每个任务(task,以τi表示)由周期、截止时间、最坏执行时间估计、优先级、关键级、分配方案(Allocation)以及迁移方案(Migration)来定义,即
Figure BDA0004071691900000091
Figure BDA0004071691900000092
与普通周期性任务不同,混合关键任务的最坏执行估计呈现矢量特性,即在不同的***执行模式下具有不同的最坏时间估计,越高等级的***模式将会采用更保守的方式估计任务的执行时间(Ci(HI)>Ci(LO))。任务在模式L下的最差响应时间表示为Ri(L),任务在模式L下的利用率表示为/>
Figure BDA0004071691900000093
处理器/>
Figure BDA0004071691900000094
在模式L下的利用率表示为/>
Figure BDA0004071691900000095
同时,***中还包含一组由自旋锁保护的共享资源(资源集合以R表示)。对于***中的一个资源(以rk表示),ck(L)表示在关键级L下执行rk的最坏执行时间估计,同样假设ck(HI)>ck(LO)。
Figure BDA0004071691900000096
表示任务τi在一次运行期间访问资源rk的次数;函数F(·)表示给定任务所访问的资源集合,函数G(·)表示访问给定资源的任务集合。以/>
Figure BDA0004071691900000097
表示资源rk对应的任务分组,/>
Figure BDA0004071691900000098
表示不请求资源的任务分组。
混合关键级模型假设***从低关键级启动,所有任务以低关键级下的预算进行调度。在实际运行中,当有一个任务运行时间超过该模式下的预算,则***将切换为高关键级,并暂停所有低关键级的任务。
如图1所示,本发明包含四个核心步骤,首先基于资源访问情况对任务分组,然后根据任务分组的结果优先分配高关键级任务并保证分配结果在高关键***模式下可调度,接着分配低关键级的任务并保证分配结果在低关键级***模式下可调度,最后使用任务迁移方法保证***模式切换时的可调度性。
本发明的具体步骤如下:
步骤1:任务分组:
步骤1.1:将共享资源按照被访问总次数从大到小排序,即
Figure BDA0004071691900000099
步骤2.1:按照步骤1.1的资源排序对任务进行分组。从第一个资源开始,如果某个任务需要请求该资源rk,则加入该资源rk对应的任务分组
Figure BDA0004071691900000101
如果任务已加入分组,则不再加入其他任务组。不请求任务资源的任务都作为一个独立分组/>
Figure BDA0004071691900000102
步骤3.1:对每个资源任务组和独立任务组根据关键级进一步划分,得到每个资源rk对应的高关键级任务组
Figure BDA0004071691900000103
和低关键级任务组/>
Figure BDA0004071691900000104
以及一个独立高关键级任务组/>
Figure BDA0004071691900000105
和一个独立低关键级任务组/>
Figure BDA0004071691900000106
步骤2:高关键级任务的分配:
步骤2.1:基于任务分组(算法1)得到的每个资源对应的高关键级任务组
Figure BDA0004071691900000107
以及一个独立高关键级组/>
Figure BDA0004071691900000108
将每个资源对应的任务组内的任务按照高关键级下的利用率ui(HI)升序排序。
步骤2.2:从被访问总次数Nk最大的资源对应的任务组开始遍历。
步骤2.3:将处理器按照高关键下的利用率
Figure BDA0004071691900000109
从小到大排序(负载较小的处理器能分配到更多同一个任务组的任务);
步骤2.4:依次分配当前任务组内的任务,将任务按处理器顺序分配给第一个可调度的处理器,直到所有资源对应的高关键级任务组的任务分配完成,可调度性测试使用高关键级模式下的可调度性分析。
重复执行步骤2.3、2.4,直到所有资源对应的高关键级任务组的任务分配完成。
步骤2.5:独立任务分组内的任务按照高关键级下的利用率ui(HI)降序排序,每次分配独立任务前,将处理器按照高关键下的利用率从小到大排序,按处理器顺序分配给第一个可调度的处理器,可调度性测试使用高关键级模式下的可调度性分析。
步骤3:低关键级任务的分配:
步骤3.1:基于任务分组(算法1)得到的每个资源对应的低关键级任务组
Figure BDA00040716919000001010
以及一个独立低关键级任务组/>
Figure BDA00040716919000001011
将每个资源对应的任务组内的任务按照低关键级下的利用率ui(LO)升序排序。
步骤3.2:从被访问总次数Nk最大的资源对应的任务组开始遍历。
步骤3.3:对处理器进行排序。存在访问该资源的高关键级任务的处理器排列在前且按照低关键下的利用率
Figure BDA00040716919000001012
从小到大排序,剩余处理器按照低关键下的利用率/>
Figure BDA00040716919000001013
从小到大排序。
步骤3.4:依次分配当前任务组内的任务,将任务按处理器顺序分配给第一个能调度的处理器,可调度性测试使用低关键级模式下的可调度性分析。
重复执行步骤3.3,步骤3.4,直到所有资源对应的低关键级任务组的任务分配完成。
步骤3.5:独立任务分组内的任务按照低关键级下的利用率ui(LO)降序排序,每次分配独立任务前,将处理器按照低关键下的利用率从小到大排序,遍历处理器,分配给第一个可调度的处理器,可调度性测试使用低关键级模式下的可调度性分析。
步骤4:模式切换时任务迁移方法:
混合关键***在运行中,如果一个任务运行时间超过了最坏时间估计,则***模式将升级(即模式切换)。升级后低关键的任务将被挂起,而高关键级任务将以更悲观的最坏时间运行。由于共享资源的存在,为了保证共享资源的完整性,在***模式切换时如果低关键任务持有一个共享资源,则该任务将在当前资源执行完成后挂起,如果任务没有占有共享资源,则直接挂起。
在分析任务的最差响应时间(Ri)时,我们使用更悲观的假设以提供安全的最差响应时间边界。具体的,在模式切换时,低关键级任务将以最低优先级运行,并访问其所需的所有资源一次后挂起。即对于一个低关键级任务τj,如果rk∈F(τj),
Figure BDA0004071691900000111
根据高关键任务分配步骤,我们在分配高关键任务的同时也保证了其在高关键模式下的可调度性,即Ri(HI)<Di。在模式切换时,低关键级任务访问资源将会对高关键级任务的运行造成阻塞,从而导致部分高关键级任务不可调度。我们考虑在模式切换时,通过迁移低关键级任务来解决其对高关键任务带来的影响,从而保证模式切换时高关键级任务的可调度性。
首先,判断模式切换时高关键级任务受到低关键级任务的干扰后是否会超时。
Ri=Ri(HI)+Ii+Bi
其中,Ii为远程处理器上低关键级任务对τi造成的自旋阻塞时间,Bi为τi受到的增加的到达阻塞时间。利用现有的阻塞时间分析方法,可以计算出资源访问阻塞时间Ii和Bi
Figure BDA0004071691900000112
Figure BDA0004071691900000113
为处理器/>
Figure BDA0004071691900000114
上访问资源rk的低关键级任务对任务τi造成的阻塞,其中,FAi)为可能对任务τi造成到达阻塞的资源集合,Bi(HI)为任务τi在高关键级模式下受到的到达阻塞时间。/>
Figure BDA0004071691900000115
迁移算法步骤如下:
步骤4.1:利用Ri=Ri(HI)+Ii+Bi计算每个高关键级任务在模式切换时的响应时间Ri,判断是否超过截止期限Di。基于更新后的Ri,定义核心的松弛(Slack)时间为
Figure BDA0004071691900000121
Figure BDA0004071691900000122
步骤4.2:如果有任务τi超时,依次检查其超时原因;
步骤4.2.1:如果Bi>0,获取造成最大到达阻塞Bi的资源rk,分为两种情况进行处理:
1)、如果在任务τi所属处理器上,没有高关键任务访问该资源,只有低关键级任务访问该资源:将处理器进行排序,能够对这些低关键任务造成自旋阻塞的处理器排列在前,剩余处理器按照松弛时间从大到小排序。按处理器顺序,将该处理器上所有访问该资源rk的低关键任务迁移至第一个可以满足条件的处理器。可以迁移的条件为,没有新增的超时任务。
2)、如果在任务τi所属处理器上,有高关键任务访问该资源:将对该任务造成到达阻塞的处理器上所有访问该资源的低关键级任务尝试迁移至任务τi所在处理器。可以迁移的条件为,没有新增的超时任务。
重复执行步骤4.2.1,直到Bi=0或Ri<Di。如果上述迁移不成功,则进入步骤4.2.2。
步骤4.2.2:如果Ii>0,则按资源编号k遍历,按处理器编号m依次检查每个处理器
Figure BDA0004071691900000123
上是否有访问资源rk的低关键级任务对任务τi造成自旋阻塞,即/>
Figure BDA0004071691900000124
如果/>
Figure BDA0004071691900000125
则将处理器/>
Figure BDA0004071691900000126
上访问资源rk的低关键任务迁移至任务τi所在核心。如果本次迁移不会新增任务超时,则执行迁移。当任务τi可调度(Ri<Di)或者遍历完所有资源时停止。
步骤4.3:如果步骤4.2执行结束,该任务可调度,则继续执行步骤4.2,直到所有高关键级任务可调度(Ri<Di)。
综上所述,相较于现有技术,本发明具有以下特点:
1、该方案考虑了共享资源的影响,尽可能本地化竞争激烈的资源,从而减少核心间资源访问冲突,降低任务阻塞时间,提高***的可调度性。
2、该方案在分配的过程中同时考虑了混合关键***下任务在不同关键级的最坏运行时间(即任务在不同关键级下有不同利用率,关键级越高利用率越高);提出了在各模式与模式切换时的任务分配与迁移方法,保证***全运行场景下的可调度性。
本发明通过任务分配本地化竞争激烈的共享资源,减少资源阻塞时间,提高***可调度性。本发明考虑了混合关键级***的关键级特性,分配过程中保证各关键级模式下的可调度性;使用任务迁移保证模式切换时的可调度性,合理利用***容量,提高***整体可调度性。
在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或所述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。
此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,所述的功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行***、装置或设备(如基于计算机的***、包括处理器的***或其他可以从指令执行***、装置或设备取指令并执行指令的***)使用,或结合这些指令执行***、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行***、装置或设备或结合这些指令执行***、装置或设备而使用的装置。
计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置)、便携式计算机盘盒(磁装置)、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编辑只读存储器(EPROM或闪速存储器)、光纤装置以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行***执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。
以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

Claims (10)

1.混合关键分区实时操作***的资源感知型任务分配方法,其特征在于,包括:
根据资源访问情况对各个任务进行分组;
根据任务分组的结果,在保证分配结果在高关键级***模式下可调度的情况下分配高关键级任务;
根据任务分组的结果,在保证分配结果在低关键级***模式下可调度的情况下分配低关键级任务;
根据分配好的高关键级任务和低关键级任务,使用任务迁移方法进行***模式切换的调度,完成任务分配。
2.根据权利要求1所述的混合关键分区实时操作***的资源感知型任务分配方法,其特征在于,所述根据资源访问情况对各个任务进行分组,包括:
将共享资源按照被访问总次数从大到小排序,得到资源排序结果;
根据所述资源排序结果进行任务分组;
根据任务的关键级,对划分得到的每个资源任务组和独立任务组进一步划分。
3.根据权利要求2所述的混合关键分区实时操作***的资源感知型任务分配方法,其特征在于,
所述根据所述资源排序结果进行任务分组,包括:
从第一个资源开始,如果某个任务需要请求该资源,则加入该资源对应的任务分组;如果任务已加入分组,则不再加入其他任务组;将不请求任何资源的任务都作为一个独立分组;
所述根据任务的关键级,对划分得到的每个资源任务组和独立任务组进一步划分,包括:
对每个资源任务组和独立任务组进一步划分,得到每个资源对应的高关键级任务组和低关键级任务组,以及得到一个独立高关键级任务组和一个独立低关键级任务组。
4.根据权利要求3所述的混合关键分区实时操作***的资源感知型任务分配方法,其特征在于,所述根据任务分组的结果,在保证分配结果在高关键级***模式下可调度的情况下分配高关键级任务,包括:
根据任务分组的结果,得到每个资源对应的高关键级任务组以及一个独立高关键级组,将每个资源对应的任务组内的任务按照高关键级下的利用率进行升序排序;
从被访问总次数最大的资源对应的任务组开始遍历;
将处理器按照高关键级下的利用率从小到大进行排序;
依次分配当前任务组内的任务,将任务按处理器顺序分配给第一个可调度的处理器,直到所有资源对应的高关键级任务组的任务分配完成;
独立任务分组内的任务按照高关键级下的利用率降序排序,每次分配独立任务前,将处理器按照高关键级下的利用率从小到大排序,按处理器顺序分配给第一个可调度的处理器。
5.根据权利要求3所述的混合关键分区实时操作***的资源感知型任务分配方法,其特征在于,所述根据任务分组的结果,在保证分配结果在低关键级***模式下可调度的情况下分配低关键级任务,包括:
根据任务分组的结果,得到的每个资源对应的低关键级任务组以及一个独立低关键级任务组,将每个资源对应的任务组内的任务按照低关键级下的利用率升序排序;
从被访问总次数最大的资源对应的任务组开始遍历;
对处理器进行排序,将存在访问当前资源的高关键级任务的处理器排列在前,并且按照低关键级下的利用率从小到大进行排序,剩余处理器按照低关键级下的利用率从小到大排序;
依次分配当前任务组内的任务,将任务按处理器顺序分配给第一个能调度的处理器,直到所有资源对应的低关键级任务组的任务分配完成;
独立任务分组内的任务按照低关键级下的利用率降序排序,每次分配独立任务前,将处理器按照低关键级下的利用率从小到大排序,遍历处理器,分配给第一个可调度的处理器。
6.根据权利要求1所述的混合关键分区实时操作***的资源感知型任务分配方法,其特征在于,所述根据分配好的高关键级任务和低关键级任务,使用任务迁移方法进行***模式切换的调度,完成任务分配,包括:
计算每个高关键级任务在模式切换时的响应时间,检查模式切换时任务的响应时间是否超过截止期限;
当任务的响应时间超过截止期限,依次检查任务的超时原因,直至任务可被调度;
完成所有高关键级任务的调度。
7.根据权利要求6所述的混合关键分区实时操作***的资源感知型任务分配方法,其特征在于,所述当任务的响应时间超过截止期限,依次检查任务的超时原因,直至任务可被调度,包括:
当高关键任务在模式切换时受到的到达阻塞时间大于高关键级下受到的到达阻塞时间时,获取造成最大到达阻塞的资源,并执行以下步骤:
如果在当前任务所属处理器上没有高关键任务访问该资源,只有低关键级任务访问该资源:将处理器进行排序,将能够对低关键任务造成自旋阻塞的处理器排列在前,剩余处理器按照松弛时间从大到小排序;按处理器顺序,将该处理器上所有访问该资源的低关键任务迁移至第一个可以满足条件的处理器;
如果在当前任务所属处理器上有高关键任务访问该资源:将对该任务造成到达阻塞的处理器上所有访问该资源的低关键级任务尝试迁移至当前任务所在处理器;
当执行以上步骤后,当前任务仍然不可调度,则继续执行以下步骤:
如果资源访问阻塞时间大于0,则按资源编号遍历,按处理器编号依次检查每个处理器上是否有访问资源的低关键级任务对任务造成自旋阻塞,并将处理器上访问资源的低关键任务迁移至当前任务所在核心;如果本次迁移不会新增任务超时,则执行迁移;
当当前任务可调度或者遍历完所有资源时停止。
8.混合关键分区实时操作***的资源感知型任务分配装置,其特征在于,包括:
第一模块,用于根据资源访问情况对各个任务进行分组;
第二模块,用于根据任务分组的结果,在保证分配结果在高关键级***模式下可调度的情况下分配高关键级任务;
第三模块,用于根据任务分组的结果,在保证分配结果在低关键级***模式下可调度的情况下分配低关键级任务;
第四模块,用于根据分配好的高关键级任务和低关键级任务,使用任务迁移方法进行***模式切换的调度,完成任务分配。
9.一种电子设备,其特征在于,包括处理器以及存储器;
所述存储器用于存储程序;
所述处理器执行所述程序实现如权利要求1至7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有程序,所述程序被处理器执行实现如权利要求1至7中任一项所述的方法。
CN202310095960.XA 2023-02-06 2023-02-06 混合关键分区实时操作***的资源感知型任务分配方法 Pending CN116244073A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202310095960.XA CN116244073A (zh) 2023-02-06 2023-02-06 混合关键分区实时操作***的资源感知型任务分配方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202310095960.XA CN116244073A (zh) 2023-02-06 2023-02-06 混合关键分区实时操作***的资源感知型任务分配方法

Publications (1)

Publication Number Publication Date
CN116244073A true CN116244073A (zh) 2023-06-09

Family

ID=86632493

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310095960.XA Pending CN116244073A (zh) 2023-02-06 2023-02-06 混合关键分区实时操作***的资源感知型任务分配方法

Country Status (1)

Country Link
CN (1) CN116244073A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116430738A (zh) * 2023-06-14 2023-07-14 北京理工大学 一种混合关键***的自适应动态调度方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116430738A (zh) * 2023-06-14 2023-07-14 北京理工大学 一种混合关键***的自适应动态调度方法
CN116430738B (zh) * 2023-06-14 2023-08-15 北京理工大学 一种混合关键***的自适应动态调度方法

Similar Documents

Publication Publication Date Title
US9612868B2 (en) Systems and methods generating inter-group and intra-group execution schedules for instruction entity allocation and scheduling on multi-processors
Devi Soft real-time scheduling on multiprocessors
US8108869B2 (en) System and method for enforcing future policies in a compute environment
US6317774B1 (en) Providing predictable scheduling of programs using a repeating precomputed schedule
Lipari et al. A framework for achieving inter-application isolation in multiprogrammed, hard real-time environments
US9021490B2 (en) Optimizing allocation of computer resources by tracking job status and resource availability profiles
Cheng et al. Cross-platform resource scheduling for spark and mapreduce on yarn
US20030061260A1 (en) Resource reservation and priority management
EP2624135B1 (en) Systems and methods for task grouping on multi-processors
CN108123980B (zh) 一种资源调度方法及***
US20080134185A1 (en) Methods and apparatus for scheduling applications on a chip multiprocessor
JP2017004511A (ja) スライディングタイムウィンドウを用いてタスクをスケジュール設定するためのシステムおよび方法
US20130036423A1 (en) Systems and methods for bounding processing times on multiple processing units
Guo et al. The concurrent consideration of uncertainty in WCETs and processor speeds in mixed-criticality systems
CN116244073A (zh) 混合关键分区实时操作***的资源感知型任务分配方法
KR20170023280A (ko) 멀티코어 프로세서 시스템 및 상기 시스템에서의 공유 캐시 관리 방법
CN112925616A (zh) 任务分配方法、装置、存储介质及电子设备
Ali et al. Cluster-based multicore real-time mixed-criticality scheduling
Al-Bayati et al. Partitioning and selection of data consistency mechanisms for multicore real-time systems
Al-Bayati et al. Task placement and selection of data consistency mechanisms for real-time multicore applications
Hobbs et al. Optimal soft real-time semi-partitioned scheduling made simple (and dynamic)
Nemati et al. Multiprocessor synchronization and hierarchical scheduling
Andrews et al. Survey on job schedulers in hadoop cluster
Zeng et al. Optimizing stack memory requirements for real-time embedded applications
Behnam et al. Bounding the number of self-blocking occurrences of SIRAP

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination