CN117369987A - 一种计算装置及相关任务执行调度方法 - Google Patents
一种计算装置及相关任务执行调度方法 Download PDFInfo
- Publication number
- CN117369987A CN117369987A CN202311061280.2A CN202311061280A CN117369987A CN 117369987 A CN117369987 A CN 117369987A CN 202311061280 A CN202311061280 A CN 202311061280A CN 117369987 A CN117369987 A CN 117369987A
- Authority
- CN
- China
- Prior art keywords
- target
- priority
- interrupt
- task
- processor core
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000004590 computer program Methods 0.000 claims description 10
- 238000012545 processing Methods 0.000 description 21
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 14
- 230000008569 process Effects 0.000 description 14
- 238000007726 management method Methods 0.000 description 8
- 101000767160 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) Intracellular protein transport protein USO1 Proteins 0.000 description 6
- 238000004891 communication Methods 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 4
- 238000010168 coupling process Methods 0.000 description 4
- 238000005859 coupling reaction Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 230000010485 coping Effects 0.000 description 2
- 230000002452 interceptive effect Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013468 resource allocation Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation 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/5038—Allocation 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4812—Task transfer initiation or dispatching by interrupt, e.g. masked
Abstract
本申请实施例公开了一种计算装置及相关任务执行调度方法,计算装置可包括调度模块、中断控制器和至少一个处理器核,调度模块用于调度N个任务,中断控制器用于调度M个中断,N个任务和M个中断使用统一的优先级进行标记,且一个任务对应一个优先级,一个中断对应一个优先级;至少一个处理器核中的目标处理器核,用于:接收并运行调度模块发送的目标任务,目标任务为N个任务中的一个;接收中断控制器发送的目标中断,若目标中断对应的优先级低于或等同于目标任务对应的优先级,则继续运行目标任务,目标中断为M个中断中的一个。采用本申请实施例能够提升系统的性能和稳定性。
Description
技术领域
本申请涉及计算机领域,尤其涉及一种计算装置及相关任务执行调度方法。
背景技术
随着系统与应用的复杂性增加,系统资源分配、中断处理、时延、用户体验、功耗等需求随之而来。若不对现有系统进行优化,导致在一些场景中会出现中断,和/或调度等问题,进而降低系统性能,比如执行延长、额外进出内核开销、确定性降低、功耗增大。在终端场景上也会引起卡顿、功耗大、待机短等问题。在实时性要求较高的场景下,可能会错过时间约束,导致系统操作失败,系统稳定性差。例如,自动驾驶场景下,系统会被非必要中断打断导致系统开销增加,同时也会增加路况感知、自动驾驶等任务时间约束的影响,甚至导致任务失败。因此如何优化系统是当前及未来的研究方向。
发明内容
本申请实施例提供一种计算装置及相关任务执行调度方法,以提升系统的性能和稳定性。
第一方面,本申请实施例提供一种计算装置,计算装置包括调度模块、中断控制器和至少一个处理器核,调度模块用于调度N个任务,中断控制器用于调度M个中断,N个任务和M个中断使用统一的优先级进行标记,且一个任务对应一个优先级,一个中断对应一个优先级,M和N为大于0的整数;至少一个处理器核中的目标处理器核,用于:接收并运行调度模块发送的目标任务,目标任务为N个任务中的一个;接收中断控制器发送的目标中断,若目标中断对应的优先级低于或等同于目标任务对应的优先级,则继续运行目标任务,目标中断为M个中断中的一个。
在本申请实施例中,中断与任务使用统一的优先级进行标记。若中断对应的优先级低于或等同于目标任务对应的优先级,则中断无法打断当前正在运行的任务,只有当中断对应的统一优先级高于目标任务对应的优先级,中断才能打断当前正在运行的任务,从而确保了关键任务运行的完整性。在现有技术中,任务和中断使用独立的优先级,且默认中断的优先级高于任何任务的优先级,中断可以打断任何正在运行的任务,会出现中断无条件抢占在运行的关键任务的问题,系统稳定性差。而在本申请中,由于任务和中断之间使用统一的优先级在进行标记,只有优先级高于任务优先级的中断,才能打断任务,因此中断不会任意打断在运行的关键任务,解决了中断抢占任何在运行任务,导致关键任务整体处理周期长的问题,从而提升了系统的性能和稳定性。
在一些实施例中,目标处理器核还用于:若目标中断对应的优先级高于目标任务对应的优先级,则暂停目标任务并运行目标中断。
在本申请实施例中,若中断对应的优先级高于目标任务对应的优先级,则中断可以打断当前正在运行的任务,进而目标处理器核可以暂停当前任务并运行中断,使得计算机系统具备应对突发事件的能力,提高了处理器核的工作效率。
在一些实施例中,调度模块还用于:从N个任务中确定目标任务,并为目标任务从至少一个处理器核中确定目标处理器核;将目标任务调度至目标处理器核。
在本申请实施例中,调度模块可以根据任务所对应的优先级从多个任务中确定需要优先调度的目标任务,并且可以从多个处理器核中选择一个作为目标处理器核,用于运行目标任务,提升了系统性能和稳定性。
在一些实施例中,目标处理器核中包括优先级寄存器,目标处理器核还用于:将目标任务对应的优先级配置到优先级寄存器中。
在本申请实施例中,处理器核中包括优先级寄存器,该优先级寄存器可以用于存储当前处理器核所运行的任务的优先级,以便于后续处理器核在运行任务过程中接收到中断时,能够判断中断与任务的重要程度,进而决定中断是否能够打断当前正在运行的任务,从而确保了关键任务运行的完整性,提升系统的性能和稳定性。
在一些实施例中,目标处理器核还用于:当接收到目标中断,将目标中断对应的优先级与当前优先级寄存器中存储的优先级进行比较;若目标中断对应的优先级高于当前优先级寄存器中存储的优先级,则目标中断对应的优先级高于目标任务对应的优先级;若目标中断对应的优先级低于或等同于当前优先级寄存器中存储的优先级,则目标中断对应的优先级低于或等同于目标任务对应的优先级。
在本申请实施例中,当目标处理器核在运行目标任务的过程中接收到中断时,可以将中断对应的优先级与当前优先级寄存器中存储的优先级进行比较,以确定中断与当前在运行任务的重要程度,进而决定中断是否能够打断当前正在运行的任务,从而确保了关键任务运行的完整性,提升系统的性能和稳定性。
在一些实施例中,目标处理器核具体用于:若目标中断对应的优先级高于目标任务对应的优先级,将目标中断对应的优先级更新到优先级寄存器中;暂停目标任务并运行目标中断。
在本申请实施例中,当目标处理器核在运行目标任务的过程中接收到中断,且中断对应的优先级高于目标任务对应的优先级,则表示中断的重要程度比目标任务的重要程度高,中断能够打断当前正在运行的目标任务。进而,可以将中断对应的优先级更新到目标处理器核的优先级寄存器中,目标处理器核会在暂停目标任务并运行中断,确保了在运行中断的过程中,中断不会低级或同级的其他中断所打断,确保逻辑的正确性,提升系统的性能和稳定性。
在一些实施例中,目标处理器运行完目标中断后,目标处理器核还用于:将优先级寄存器中的优先级恢复为目标任务对应的优先级,继续运行目标任务。
在本申请实施例中,当目标处理器核运行完中断后,可以将优先级寄存器中的优先级恢复为目标任务对应的优先级,然后继续运行目标任务,以便后续在运行目标任务的过程中再次接收到新产生的中断时,可以将新产生的中断对应的优先级与当前优先级寄存器中存储的优先级进行比较,以确定新产生的中断与当前在运行任务的重要程度,进而可以决定新产生的中断是否能够打断当前正在运行的任务,从而确保了关键任务运行的完整性,提升系统的性能和稳定性。
在一些实施例中,目标处理器核还用于:当目标处理器核运行空闲任务时,将优先级寄存器中的优先级配置为最低的优先级。
在本申请实施例中,当目标处理器核处于空闲状态时,目标处理器核可以运行空闲态任务,并且可以将目标处理器核中的优先级寄存器配置为最低的优先级,使得任何中断都能打断当前正在运行的空闲态任务,提升了系统的性能和稳定性。
在一些实施例中,目标处理器核还用于:当目标处理器核运行目标中断时,若接收到结束中断指令,在预设时间段内保持优先级寄存器中的目标中断对应的优先级之后,将优先级寄存器中的优先级恢复为目标任务对应的优先级。
在本申请实施例中,当目标处理器核运行目标中断时,接收到结束中断指令,在预设时间段内保持优先级寄存器中的目标中断对应的优先级之后,将优先级寄存器中的优先级恢复为目标任务对应的优先级,使其不会在预设时间段内,被同级、或低级的中断、任务所打断,以确保中断整体处理执行时优先级的正确性以及一致性。
在一些实施例中,目标中断包括指示信息,指示信息用于指示目标处理器核运行第一任务,第一任务对应的优先级高于目标任务对应的优先级,或是第一任务对应的优先级低于或等同于目标任务对应的优先级,第一任务为N个任务中的一个。
在本申请实施例中,若高优先级的中断中携带了指示低优先级的任务运行的信息,则处理器核依旧会保持中断对应的优先级,运行低优先级任务,减少关键性业务的非必要打断,提升系统的性能和稳定性。
第二方面,本申请实施例提供一种任务执行调度方法,应用于计算装置,计算装置包括调度模块、中断控制器和至少一个处理器核,调度模块用于调度N个任务,中断控制器用于调度M个中断,N个任务和M个中断使用统一的优先级进行标记,且一个任务对应一个优先级,一个中断对应一个优先级,M和N为大于0的整数;方法包括:通过至少一个处理器核中的目标处理器核,接收并运行调度模块发送的目标任务,目标任务为N个任务中的一个;接收中断控制器发送的目标中断,若目标中断对应的优先级低于或等同于目标任务对应的优先级,则继续运行目标任务,目标中断为M个中断中的一个。
在一些实施例中,若目标中断对应的优先级高于目标任务对应的优先级,则目标处理器核暂停目标任务并运行目标中断。
在一些实施例中,通过调度模块从N个任务中确定目标任务,并为目标任务从至少一个处理器核中确定目标处理器核;将目标任务调度至目标处理器核。
在一些实施例中,目标处理器核中包括优先级寄存器,方法还包括:通过目标处理器核将目标任务对应的优先级配置到优先级寄存器中。
在一些实施例中,当接收到目标中断,目标处理器核将目标中断对应的优先级与当前优先级寄存器中存储的优先级进行比较;若目标中断对应的优先级高于当前优先级寄存器中存储的优先级,则目标中断对应的优先级高于目标任务对应的优先级;若目标中断对应的优先级低于或等同于当前优先级寄存器中存储的优先级,则目标中断对应的优先级低于或等同于目标任务对应的优先级。
在一些实施例中,若目标中断对应的优先级高于目标任务对应的优先级,则目标处理器核暂停目标任务并运行目标中断,包括:若目标中断对应的优先级高于目标任务对应的优先级,通过目标处理器核将目标中断对应的优先级更新到优先级寄存器中;通过目标处理器核暂停目标任务并运行目标中断。
在一些实施例中,目标处理器运行完目标中断后,通过目标处理器核将优先级寄存器中的优先级恢复为目标任务对应的优先级,继续运行目标任务。
在一些实施例中,当目标处理器核运行空闲任务时,通过目标处理器核将优先级寄存器中的优先级配置为最低的优先级。
第三方面,本申请提供了一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述第二方面任意一项所述的方法。
第四方面,本申请提供了一种芯片系统,该芯片系统包括处理器,用于支持电子设备实现上述第二方面中所涉及的功能,例如,生成或处理上述任务执行调度方法中所涉及的信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存电子设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
第五方面,本申请提供一种计算机程序产品,其特征在于,所述计算机程序包括指令,当所述计算机程序被计算机执行时,使得所述计算机执行上述第二方面中任意一项所述的方法。
附图说明
图1是本申请实施例提供的一种电子设备的结构示意图。
图2为本申请实施例提供的一种电子设备的软件结构示意图。
图3为本申请实施例提供的一种软件与硬件结合的系统架构示意图。
图4为本申请实施例提供的一种计算装置的示意图。
图5为本申请实施例提供的一种任务调度的示意图。
图6为本申请实施例提供的一种分配统一优先级的示意图。
图7为本申请实施例提供的一种系统初始化的示意图。
图8为本申请实施例提供的一种系统调度任务的示意图。
图9为本申请实施例提供的一种中断调度的示意图。
图10为本申请实施例提供的一种统一优先级保持的示意图。
图11为本申请实施例提供的一种统一优先级继承的示意图。
图12为本申请实施例提供的一种任务执行调度方法的流程示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例进行描述。
本申请的说明书和权利要求书及所述附图中的术语“第一”、“第二”、“第三”和“第四”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了更好地理解本申请实施例,下面先对本申请实施例涉及的一些专业术语进行介绍:
1、中断:中断是指计算机运行过程中,出现某些意外情况需主机干预时,机器能自动停止正在运行的程序并转入处理新情况的程序,处理完毕后又返回原被暂停的程序继续运行。
图1示出了电子设备100的结构示意图。
下面以电子设备100为例对实施例进行具体说明。应该理解的是,电子设备100可以具有比图中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
电子设备100可以包括:处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,3D摄像模组193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本发明实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
在一些实施例中,电子设备100可以包括多个处理器110。
其中,控制器可以是电子设备100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
电子设备100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行电子设备100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用(比如人脸识别功能,指纹识别功能、移动支付功能等)等。存储数据区可存储电子设备100使用过程中所创建的数据(比如人脸信息模板数据,指纹信息模板等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universalflash storage,UFS)等。
电子设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android系统为例,示例性说明电子设备100的软件结构。
图2是本发明实施例的电子设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。
如图2所示,应用程序包可以包括相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息等应用程序(也可以称为应用)。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图2所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
电话管理器用于提供电子设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话界面形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,电子设备振动,指示灯闪烁等。
Android Runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动,以及本申请中的调度系统。
又请参见图3,图3为本申请实施例提供的一种软件与硬件结合的系统架构示意图,图3中在内核层可包括调度系统;在硬件层(Hardware,HW)可包括一个或多个CPU(图3中仅示出4个,分别为CPU0,CPU1,CPU2,CPU3)、中断控制器以及多个中断模块。其中,调度系统可用于根据任务的优先级调度任务,在本申请中可以提前为多个任务和多个中断提前分配统一优先级,进而调度系统可以根据任务对应的统一优先级来调度任务至目标CPU上进行运行。CPU可用于运行任务,CPU中还可以包括优先级寄存器,优先级寄存器可用于存储当前CPU的优先级。当调度系统为任务确定了目标CPU后,可以将任务对应的统一优先级写入目标CPU的优先级寄存器中,以指示当前目标CPU的优先级与任务的统一优先级一致。多个中断模块中每个中断模块对应一个统一优先级,每个中断模块对应的统一优先级可以指示中断模块发起的中断的重要程度。中断控制器可用于接收中断模块发起的中断,并将中断转发至对应的目标CPU。为了便于理解,假设数字的大小可以对应统一优先级的高低。在本申请中,若中断对应的统一优先级等于或低于目标CPU当前的优先级,则中断无法打断当前正在运行的任务,只有当中断对应的统一优先级高于目标CPU当前的优先级,中断才能打断当前正在运行的任务,从而确保了关键任务运行的完整性。在现有技术中,任务和中断使用独立的优先级,且默认中断的优先级高于任何任务的优先级,中断可以打断任何正在运行的任务,会出现中断无条件抢占在运行的关键任务的问题,系统稳定性差。而在本申请中,由于任务和中断之间使用统一优先级在进行调度,只有优先级高于任务优先级的中断,才能打断任务,因此中断不会任意打断在运行的关键任务,解决了中断抢占任何在运行任务,导致关键任务整体处理周期长的问题,从而提升了系统的稳定性。
请参见附图4,图4为本申请实施例提供的一种计算装置的示意图,计算装置20可包括但不限于调度模块201、中断控制器202和至少一个处理器核,调度模块201用于调度N个任务,中断控制器202用于调度M个中断,N个任务和M个中断使用统一的优先级进行标记,且一个任务对应一个优先级,一个中断对应一个优先级,M和N为大于0的整数。
至少一个处理器核中的目标处理器核203,用于:接收并运行调度模块201发送的目标任务,目标任务为N个任务中的一个;接收中断控制器202发送的目标中断,若目标中断对应的优先级低于或等同于目标任务对应的优先级,则继续运行目标任务,目标中断为M个中断中的一个。
具体的,调度模块201上可以运行调度系统,调度系统可用于根据任务的优先级调度任务。在本申请中,中断与任务使用统一的优先级进行标记。若中断对应的优先级低于或等同于目标任务对应的优先级,则中断无法打断当前正在运行的任务,只有当中断对应的统一优先级高于目标任务对应的优先级,中断才能打断当前正在运行的任务,从而确保了关键任务运行的完整性。在现有技术中,任务和中断使用独立的优先级,且默认中断的优先级高于任何任务的优先级,中断可以打断任何正在运行的任务,会出现中断无条件抢占在运行的关键任务的问题,系统稳定性差。而在本申请中,由于任务和中断之间使用统一的优先级在进行标记,只有优先级高于任务优先级的中断,才能打断任务,因此中断不会任意打断在运行的关键任务,解决了中断抢占任何在运行任务,导致关键任务整体处理周期长的问题,从而提升了系统的性能和稳定性。
在一些实施例中,目标处理器核203还用于:若目标中断对应的优先级高于目标任务对应的优先级,则暂停目标任务并运行目标中断。
具体的,若中断对应的优先级高于目标任务对应的优先级,则中断可以打断当前正在运行的任务,进而目标处理器核203可以暂停当前正在运行的任务,然后运行中断,使得计算机系统具备应对突发事件的能力,提高了处理器核的工作效率。
请参见图5,图5为本申请实施例提供的一种任务调度的示意图,使用统一优先级的任务调度的核心流程可以包括系统分配统一优先级,并对统一优先级、任务、中断建立关系(如图5中的S1所示);中断系统初始化中断,且使用统一优先级为各自中断初始化(如图5中的S2所示);调度切换任务时,可根据任务的统一优先级设置处理器核的硬件优先级(如图5中的S3所示);中断触发时,判断中断是否抢占运行任务(如图5中的S4所示)。
示例性的,统一优先级的分配可以如图6所示,针对系统的任务、中断进行统一优先级映射整合,以解决不同中断、任务之间优先级不一致的问题。新的统一优先级与任务、中断之间的关系类似于集合关系。比如,统一优先级1这个集合可包含任务T1、任务T…、中断INT-1、中断INT-i等。中断和任务与统一优先级之间的关系可以是静态配置的,也可以是运行时动态配置。
在一些实施例中,可由中断系统驱动层来计算能力以及可分配的硬件优先级数量,本申请通过垂直整合软硬件优先级来实现整体逻辑。硬件优先级随架构的不同而不同。通常需要架构、或中断控制器驱动来实现。比如,ARM上优先掩码寄存器(Priority MaskRegister,PMR),或者x86架构上的任务优先级寄存器(Task Priority Register,TPR)。硬件优先级数量取决于平台实现,可以通过写读PMR来计算得到。假设给定平台硬件优先级数量为N。
在一些实施例中,可根据任务及中断的关键性等级,创建统一优先级。假设,N个硬件优先级,从低至高为{HP1,HP2,HP…,HPn},则系统可创建N个对等的统一优先级{UP1,UP2,UP…,UPn},分别对应硬件优先级。与任务优先级不同,统一优先级是关键性等级。一般来说,2-8个统一优先级可以满足大多数场景,也可以与传统的任务优先级一起使用。需要说明的是,每个场景需要创建多少个统一优先级取决于业务。例如,在实时场景中,一般设置有2个统一优先级,分别为关键性实时任务(UP2,优先级较高),其他或默认(UP1,优先级较低)。在交互式应用场景中,比如终端或桌面系统,一般设置有3个统一优先级,交互式实时任务(优先级最高,UP3),性能或默认(优先级较高,UP2),后台(优先级较低,UP1)。
示例性的,如图7所示,系统已经创建1个或多个统一优先级。系统可根据需要,手动、或自动为任务、及中断动态分配、设置统一优先级。一般来说,从系统中选择1个或多个关键性任务、中断。可根据需要,将其分配相应的统一优先级。其他(或未分配的)的任务及中断,可以根据需求做默认应处理。例如,不为其分配统一优先级,或者将其分配到默认的统一优先级上。在对中断进行初始化时,其数据结构需要能表示出其统一优先级。当系统初始化中断时,使用统一优先级作为中断优先级对其进行初始化。一般无特别需求,此过程是一次性的。具体的,在对任务进行初始化时,其数据结构同样需要可以表示出其统一优先级。当初始化任务时,根据其所分配的统一优先级进行初始化。在动态配置环境中,对统一优先级的设置可以是多次,根据运行条件所决定。而静态配置环境中,对任务统一优先级的设置一般是一次性操作。此外,确保系统有空闲态任务(Idle任务)或类似任务存在,并设置相应的统一优先级,以确保系统可以恢复到Idle级别的硬件优先级。
在一些实施例中,调度模块201还用于:从N个任务中确定目标任务,并为目标任务从至少一个处理器核中确定目标处理器核203;将目标任务调度至目标处理器核203。
具体的,调度模块201可以根据任务所对应的优先级从多个任务中确定需要优先调度的目标任务,并且可以从多个处理器核中选择一个作为目标处理器核203,用于运行目标任务,提升了系统性能和稳定性。
在一些实施例中,目标处理器核203中包括优先级寄存器,目标处理器核203还用于:将目标任务对应的优先级配置到优先级寄存器中。
具体的,处理器核中包括优先级寄存器,该优先级寄存器可以用于存储当前处理器核所运行的任务的优先级,以便于后续处理器核在运行任务过程中接收到中断时,能够判断中断与任务的重要程度,进而决定中断是否能够打断当前正在运行的任务,从而确保了关键任务运行的完整性,提升系统的性能和稳定性。
需要说明的是,当为中断和任务分配统一优先级后,调度系统可以使用传统的任务优先级,传统的任务优先级逻辑不变,依旧可以用作细粒度任务调度优先级,比如,进、出运行队列。调度系统也可以使用新的统一优先级,来表示粗粒度的关键性等级,比如根据关键性等级,决定A是否抢占B。
例如,如图8所示,假设数值越小,优先级越低。调度系统可以从多个任务中选择一个任务执行。同时,调度系统也会从多个CPU中选择一个CPU作为目标CPU来执行选择任务。进一步地,可以检查目标CPU的硬件优先级与任务的统一优先级是否一致,如果一致,则不做变更(跳过);如不一致,则使用任务的统一优先级作为目标CPU的硬件优先级。
在一些实施例中,目标处理器核203还用于:当接收到目标中断,将目标中断对应的优先级与当前优先级寄存器中存储的优先级进行比较;若目标中断对应的优先级高于当前优先级寄存器中存储的优先级,则目标中断对应的优先级高于目标任务对应的优先级;若目标中断对应的优先级低于或等同于当前优先级寄存器中存储的优先级,则目标中断对应的优先级低于或等同于目标任务对应的优先级。
具体的,当目标处理器核在运行目标任务的过程中接收到中断时,可以将中断对应的优先级与当前优先级寄存器中存储的优先级进行比较,以确定中断与当前在运行任务的重要程度,进而决定中断是否能够打断当前正在运行的任务,从而确保了关键任务运行的完整性,提升系统的性能和稳定性。
在一些实施例中,目标处理器核203具体用于:若目标中断对应的优先级高于目标任务对应的优先级,将目标中断对应的优先级更新到优先级寄存器中;暂停目标任务并运行目标中断。
具体的,当目标处理器核在运行目标任务的过程中接收到中断,且中断对应的优先级高于目标任务对应的优先级,则表示中断的重要程度比目标任务的重要程度高,中断能够打断当前正在运行的目标任务。进而,可以将中断对应的优先级更新到目标处理器核的优先级寄存器中,目标处理器核会在暂停目标任务并运行中断,确保了在运行中断的过程中,中断不会低级或同级的其他中断所打断,确保逻辑的正确性,提升系统的性能和稳定性。
在一些实施例中,目标处理器核203运行完目标中断后,目标处理器核203还用于:将优先级寄存器中的优先级恢复为目标任务对应的优先级,继续运行目标任务。
具体的,当目标处理器核运行完中断后,可以将优先级寄存器中的优先级恢复为目标任务对应的优先级,然后继续运行目标任务,以便后续在运行目标任务的过程中再次接收到新产生的中断时,可以将新产生的中断对应的优先级与当前优先级寄存器中存储的优先级进行比较,以确定新产生的中断与当前在运行任务的重要程度,进而可以决定新产生的中断是否能够打断当前正在运行的任务,从而确保了关键任务运行的完整性,提升系统的性能和稳定性。
可以理解的是,当系统运行任务时有中断进入,中断是否打断在运行任务,取决于中断、与在运行任务谁的统一优先级更高。例如,如图9所示,系统在CPU2上运行任务Ti,其统一优先级为UP3。中断INT-1(假设绑定CPU2),统一优先级为UP1进入,并被转发至CPU2的CPUIF接口上(如图9中的S4所示)。进一步地,调度将CPU2的硬件优先级设置为对等的统一优先级3。CPU2上的在运行任务Ti高于进入的中断INT-1。因此,中断INT-1排队等待。当CPU2完成任务Ti后,调度切换下个任务时,会决策执行中断INT-1,或队列内其他统一优先级高于中断INT-1的任务。
在一些实施例中,目标处理器核203还用于:当目标处理器核203运行空闲任务时,将优先级寄存器中的优先级配置为最低的优先级。
具体的,当目标处理器核处于空闲状态时,目标处理器核可以运行空闲态任务,并且可以将目标处理器核中的优先级寄存器配置为最低的优先级,使得任何中断都能打断当前正在运行的空闲态任务,提升了系统的性能和稳定性。例如,为确保系统每个CPU有Idle任务或类似任务存在,可为此类任务设置Idle级别的统一优先级,以确保CPU可以还原至能接受中断的状态。
在一些实施例中,目标处理器核203还用于:当目标处理器核203运行目标中断时,若接收到结束中断指令,在预设时间段内保持优先级寄存器中的目标中断对应的优先级之后,将优先级寄存器中的优先级恢复为目标任务对应的优先级。
具体的,当中断系统采用前置清除中断程序(End of Interrupt,EOI)处理中断服务程序(interrupt service routine,ISR)时,中断优先级会随EOI结束而结束。因此,ISR在此窗口期内,可以被其他同级、或低级中断所抢占。因此,系统可根据配置,决定是否在EOI之后,继续保持中断的统一优先级。使其不会在此窗口期内,被同级、或低级的中断、任务所打断。以确保中断整体处理执行时优先级的正确性以及一致性。
例如,如图10所示,中断激活后,系统会根据统一优先级规则,等待或抢占目标CPU的在运行任务;当抢占发生时,调度系统会根据中断的统一优先级来设置目标CPU的硬件优先级,如图10的S4.2所示;进而,ISR实现了优先级保持。可选的,可根据设计需求,使调度感知ISR的运行。
在一些实施例中,目标中断包括指示信息,指示信息用于指示目标处理器核运行第一任务,第一任务对应的优先级高于目标任务对应的优先级,或是第一任务对应的优先级低于或等同于目标任务对应的优先级,第一任务为N个任务中的一个。
具体的,若高优先级的中断中携带了指示低优先级的任务运行的信息,则处理器核依旧会保持中断对应的优先级,运行低优先级任务,减少关键性业务的非必要打断,提升系统的性能和稳定性。不同于上述ISR,中断服务线程(Interrupt Service Thread,IST)本身具备可调度性。但潜在问题是,IST没有继承中断优先级。因此,存在被其他同级、或低级中断反复打断的可能,而且是无边界的。因此,系统可根据需求进行配置,决定当目标IST统一优先级低于中断的统一优先级时,是否运行IST继承中断的统一优先级。来提升中断处理程序的逻辑正确性,以及一致性。
例如,如图11所示,中断激活后,系统会根据统一优先级规则,等待或抢占目标CPU的在运行任务;当抢占发生时,调度系统会根据中断的统一优先级来设置目标CPU的硬件优先级,如图11的S4.2所示;定位目标IST后,如果目标IST的统一优先级低于中断优先级(如默认未分配统一优先级的任务),可根据配置,选择IST继承中断的统一优先级,如图11的S4.3所示。
综上,本申请中断与任务使用统一的优先级进行标记。若中断对应的优先级低于或等同于目标任务对应的优先级,则中断无法打断当前正在运行的任务,只有当中断对应的统一优先级高于目标任务对应的优先级,中断才能打断当前正在运行的任务,从而确保了关键任务运行的完整性。在现有技术中,任务和中断使用独立的优先级,且默认中断的优先级高于任何任务的优先级,中断可以打断任何正在运行的任务,会出现中断无条件抢占在运行的关键任务的问题,系统稳定性差。而在本申请中,由于任务和中断之间使用统一的优先级在进行标记,只有优先级高于任务优先级的中断,才能打断任务,因此中断不会任意打断在运行的关键任务,解决了中断抢占任何在运行任务,导致关键任务整体处理周期长的问题,从而提升了系统的性能和稳定性。
请参见图12,本申请提供了一种任务执行调度方法,应用于计算装置,计算装置包括调度模块、中断控制器和至少一个处理器核,调度模块用于调度N个任务,中断控制器用于调度M个中断,N个任务和M个中断使用统一的优先级进行标记,且一个任务对应一个优先级,一个中断对应一个优先级,M和N为大于0的整数。详细描述如下:
步骤S301:通过至少一个处理器核中的目标处理器核,接收并运行调度模块发送的目标任务。
具体的,目标任务为N个任务中的一个。
步骤S302:接收中断控制器发送的目标中断,若目标中断对应的优先级低于或等同于目标任务对应的优先级,则继续运行目标任务。
具体的,目标中断为M个中断中的一个。
在一些实施例中,若目标中断对应的优先级高于目标任务对应的优先级,则目标处理器核暂停目标任务并运行目标中断。
在一些实施例中,通过调度模块从N个任务中确定目标任务,并为目标任务从至少一个处理器核中确定目标处理器核;将目标任务调度至目标处理器核。
在一些实施例中,目标处理器核中包括优先级寄存器,方法还包括:通过目标处理器核将目标任务对应的优先级配置到优先级寄存器中。
在一些实施例中,当接收到目标中断,目标处理器核将目标中断对应的优先级与当前优先级寄存器中存储的优先级进行比较;若目标中断对应的优先级高于当前优先级寄存器中存储的优先级,则目标中断对应的优先级高于目标任务对应的优先级;若目标中断对应的优先级低于或等同于当前优先级寄存器中存储的优先级,则目标中断对应的优先级低于或等同于目标任务对应的优先级。
在一些实施例中,若目标中断对应的优先级高于目标任务对应的优先级,则目标处理器核暂停目标任务并运行目标中断,包括:若目标中断对应的优先级高于目标任务对应的优先级,通过目标处理器核将目标中断对应的优先级更新到优先级寄存器中;通过目标处理器核暂停目标任务并运行目标中断。
在一些实施例中,目标处理器运行完目标中断后,通过目标处理器核将优先级寄存器中的优先级恢复为目标任务对应的优先级,继续运行目标任务。
在一些实施例中,当目标处理器核运行空闲任务时,通过目标处理器核将优先级寄存器中的优先级配置为最低的优先级。
本申请提供了一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述任意一种任务执行调度方法。
本申请实施例提供一种电子设备,该电子设备中包括处理器,处理器被配置为支持该电子设备实现上述任意一种任务执行调度方法中相应的功能。该电子设备还可以包括存储器,存储器用于与处理器耦合,其保存该电子设备必要的程序指令和数据。该电子设备还可以包括通信接口,用于该电子设备与其他设备或通信网络通信。
本申请提供了一种芯片系统,该芯片系统包括处理器,用于支持电子设备实现上述所涉及的功能,例如,生成或处理上述一种任务执行调度方法中所涉及的信息。在一种可能的设计中,所述芯片系统还包括存储器,所述存储器,用于保存电子设备必要的程序指令和数据。该芯片系统,可以由芯片构成,也可以包含芯片和其他分立器件。
本申请提供一种计算机程序产品,其特征在于,所述计算机程序包括指令,当所述计算机程序被计算机执行时,使得所述计算机执行上述一种任务执行调度方法。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可能可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以为个人计算机、服务器或者网络设备等,具体可以是计算机设备中的处理器)执行本申请各个实施例上述方法的全部或部分步骤。其中,而前述的存储介质可包括:U盘、移动硬盘、磁碟、光盘、只读存储器(Read-Only Memory,缩写:ROM)或者随机存取存储器(Random Access Memory,缩写:RAM)等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。
Claims (20)
1.一种计算装置,其特征在于,所述计算装置包括调度模块、中断控制器和至少一个处理器核,所述调度模块用于调度N个任务,所述中断控制器用于调度M个中断,所述N个任务和所述M个中断使用统一的优先级进行标记,且一个任务对应一个优先级,一个中断对应一个优先级,M和N为大于0的整数;
所述至少一个处理器核中的目标处理器核,用于:
接收并运行所述调度模块发送的目标任务,所述目标任务为所述N个任务中的一个;
接收所述中断控制器发送的目标中断,若所述目标中断对应的优先级低于或等同于所述目标任务对应的优先级,则继续运行所述目标任务,所述目标中断为所述M个中断中的一个。
2.根据权利要求1所述的计算装置,其特征在于,所述目标处理器核,还用于:
若所述目标中断对应的优先级高于所述目标任务对应的优先级,则暂停所述目标任务并运行所述目标中断。
3.根据权利要求1或2所述的计算装置,其特征在于,所述调度模块,还用于:
从所述N个任务中确定所述目标任务,并为所述目标任务从所述至少一个处理器核中确定目标处理器核;
将所述目标任务调度至所述目标处理器核。
4.根据权利要求1-3任一项所述的计算装置,其特征在于,所述目标处理器核中包括优先级寄存器,所述目标处理器核,还用于:
将所述目标任务对应的优先级配置到所述优先级寄存器中。
5.根据权利要求4所述的计算装置,其特征在于,所述目标处理器核,还用于:
当接收到所述目标中断,将所述目标中断对应的优先级与当前所述优先级寄存器中存储的优先级进行比较;
若所述目标中断对应的优先级高于当前所述优先级寄存器中存储的优先级,则所述目标中断对应的优先级高于所述目标任务对应的优先级;
若所述目标中断对应的优先级低于或等同于当前所述优先级寄存器中存储的优先级,则所述目标中断对应的优先级低于或等同于所述目标任务对应的优先级。
6.根据权利要求4或5所述的计算装置,其特征在于,所述目标处理器核,具体用于:
若所述目标中断对应的优先级高于所述目标任务对应的优先级,将所述目标中断对应的优先级更新到所述优先级寄存器中;
暂停所述目标任务并运行所述目标中断。
7.根据权利要求6所述的计算装置,其特征在于,所述目标处理器运行完所述目标中断后,所述目标处理器核,还用于:
将所述优先级寄存器中的优先级恢复为所述目标任务对应的优先级,继续运行所述目标任务。
8.根据权利要求4-7任一项所述的计算装置,其特征在于,所述目标处理器核,还用于:
当所述目标处理器核运行空闲任务时,将所述优先级寄存器中的优先级配置为最低的优先级。
9.根据权利要求4-8任一项所述的计算装置,其特征在于,所述目标处理器核,还用于:
当所述目标处理器核运行所述目标中断时,若接收到结束中断指令,在预设时间段内保持所述优先级寄存器中的所述目标中断对应的优先级之后,将所述优先级寄存器中的优先级恢复为所述目标任务对应的优先级。
10.根据权利要求4-9任一项所述的计算装置,其特征在于,所述目标中断包括指示信息,所述指示信息用于指示所述目标处理器核运行第一任务,所述第一任务对应的优先级高于所述目标任务对应的优先级,或是所述第一任务对应的优先级低于或等同于所述目标任务对应的优先级,所述第一任务为所述N个任务中的一个。
11.一种任务执行调度方法,其特征在于,应用于计算装置,所述计算装置包括调度模块、中断控制器和至少一个处理器核,所述调度模块用于调度N个任务,所述中断控制器用于调度M个中断,所述N个任务和所述M个中断使用统一的优先级进行标记,且一个任务对应一个优先级,一个中断对应一个优先级,M和N为大于0的整数;所述方法包括:
通过所述至少一个处理器核中的目标处理器核,接收并运行所述调度模块发送的目标任务,所述目标任务为所述N个任务中的一个;
接收所述中断控制器发送的目标中断,若所述目标中断对应的优先级低于或等同于所述目标任务对应的优先级,则继续运行所述目标任务,所述目标中断为所述M个中断中的一个。
12.根据权利要求11所述的方法,其特征在于,所述方法还包括;
若所述目标中断对应的优先级高于所述目标任务对应的优先级,则所述目标处理器核暂停所述目标任务并运行所述目标中断。
13.根据权利要求11或12所述的方法,其特征在于,所述方法还包括:
通过所述调度模块从所述N个任务中确定所述目标任务,并为所述目标任务从所述至少一个处理器核中确定目标处理器核;
将所述目标任务调度至所述目标处理器核。
14.根据权利要求11-13任一项所述的方法,其特征在于,所述目标处理器核中包括优先级寄存器,所述方法还包括:
通过所述目标处理器核将所述目标任务对应的优先级配置到所述优先级寄存器中。
15.根据权利要求14所述的方法,其特征在于,所述方法还包括:
当接收到所述目标中断,所述目标处理器核将所述目标中断对应的优先级与当前所述优先级寄存器中存储的优先级进行比较;
若所述目标中断对应的优先级高于当前所述优先级寄存器中存储的优先级,则所述目标中断对应的优先级高于所述目标任务对应的优先级;
若所述目标中断对应的优先级低于或等同于当前所述优先级寄存器中存储的优先级,则所述目标中断对应的优先级低于或等同于所述目标任务对应的优先级。
16.根据权利要求14或15所述的方法,其特征在于,所述若所述目标中断对应的优先级高于所述目标任务对应的优先级,则所述目标处理器核暂停所述目标任务并运行所述目标中断,包括:
若所述目标中断对应的优先级高于所述目标任务对应的优先级,通过所述目标处理器核将所述目标中断对应的优先级更新到所述优先级寄存器中;
通过所述目标处理器核暂停所述目标任务并运行所述目标中断。
17.根据权利要求16所述的方法,其特征在于,所述目标处理器运行完所述目标中断后,所述方法还包括:
通过所述目标处理器核将所述优先级寄存器中的优先级恢复为所述目标任务对应的优先级,继续运行所述目标任务。
18.根据权利要求14-17任一项所述的方法,其特征在于,所述方法还包括:
当所述目标处理器核运行空闲任务时,通过所述目标处理器核将所述优先级寄存器中的优先级配置为最低的优先级。
19.一种计算机存储介质,其特征在于,所述计算机存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述权利要求11-18中任意一项所述的方法。
20.一种计算机程序产品,其特征在于,所述计算机程序包括指令,当所述计算机程序被计算机或处理器执行时,使得所述计算机或处理器执行如权利要求11-18中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311061280.2A CN117369987A (zh) | 2023-08-22 | 2023-08-22 | 一种计算装置及相关任务执行调度方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311061280.2A CN117369987A (zh) | 2023-08-22 | 2023-08-22 | 一种计算装置及相关任务执行调度方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117369987A true CN117369987A (zh) | 2024-01-09 |
Family
ID=89406631
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311061280.2A Pending CN117369987A (zh) | 2023-08-22 | 2023-08-22 | 一种计算装置及相关任务执行调度方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117369987A (zh) |
-
2023
- 2023-08-22 CN CN202311061280.2A patent/CN117369987A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10133598B2 (en) | Systems and methods of using a hypervisor to assign virtual processor priority based on task priority and to schedule virtual processors for guest operating systems | |
US9128736B1 (en) | Common scheduling and synchronization primitives | |
CN110489213B (zh) | 一种任务处理方法及处理装置、计算机系统 | |
US9424085B2 (en) | Recognizing a process group that is related to an application | |
EP2891980A1 (en) | Adjustment and control method and system for multi-core central processing unit | |
EP3971818A1 (en) | Picture processing method and apparatus | |
KR20160130491A (ko) | 애플리케이션간 호출 중의 애플리케이션 디하이드레이션 및 리하이드레이션 | |
JP3938343B2 (ja) | タスク管理システム、プログラム、及び制御方法 | |
CN115629884B (zh) | 一种线程调度方法、电子设备及存储介质 | |
US20190227918A1 (en) | Method for allocating memory resources, chip and non-transitory readable medium | |
WO2023087875A1 (zh) | 进程调度方法和终端设备 | |
CN114020621A (zh) | 一种调试方法、电子设备及存储介质 | |
CN114637536A (zh) | 任务处理方法、计算协处理器、芯片及计算机设备 | |
CN115421787A (zh) | 指令执行方法、装置、设备、系统、程序产品及介质 | |
US9507637B1 (en) | Computer platform where tasks can optionally share per task resources | |
CN113672445A (zh) | 记录目标程序运行状态信息的方法以及电子设备 | |
CN117369987A (zh) | 一种计算装置及相关任务执行调度方法 | |
CN111459462B (zh) | 分散式重锁降级 | |
CN114443255A (zh) | 一种线程调用方法和装置 | |
CN117094876A (zh) | 数据处理的方法、电子设备及可读存储介质 | |
CN116361013A (zh) | 任务处理方法和电子设备 | |
CN117707721A (zh) | 任务提交方法、电子设备及存储介质 | |
CN114911538A (zh) | 一种运行系统的启动方法及计算设备 | |
CN117707716A (zh) | 线程调度方法、电子设备及计算机可读存储介质 | |
CN114911539A (zh) | 一种运行系统的启动方法及计算设备 |
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 |