CN109800073B - 实时进程的调度方法、装置、终端及存储介质 - Google Patents
实时进程的调度方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN109800073B CN109800073B CN201910079921.4A CN201910079921A CN109800073B CN 109800073 B CN109800073 B CN 109800073B CN 201910079921 A CN201910079921 A CN 201910079921A CN 109800073 B CN109800073 B CN 109800073B
- Authority
- CN
- China
- Prior art keywords
- cpu
- time process
- processing
- real
- scheduling
- 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.)
- Active
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
- Power Sources (AREA)
Abstract
本申请实施例公开了一种实时进程的调度方法、装置、终端及存储介质,属于计算机技术领域,由于本方法能够根据预定选择方式从终端中选定第一CPU,并检测第一CPU是否处于关闭调度模式,当第一CPU处于关闭调度模式时,检测第二CPU是否处于关闭调度模式,当第二CPU不处于关闭调度模式时,将目标实时进程放置在第二CPU中处理。因此,本申请实施例提供的方法,能够在为目标实时进程调度CPU时主动检测CPU是否处于关闭调度模式,当CPU处于调度关闭模式时,使用其它不处于调度关闭模式的CPU处理目标实时进程,节约了目标实时进程在CPU处于调度关闭模式时,等待该CPU转变为不处于调度关闭模式的时间,降低了实时进程的延迟,提高了实时进程的调度效率。
Description
技术领域
本申请实施例涉及计算机技术领域,特别涉及一种实时进程的调度方法、装置、终端及存储介质。
背景技术
随着计算机技术的发展,作为终端核心的中央处理器(Central ProcessingUnit,CPU)的调度过程也越来越重要。
在一种可能的方式中,终端为了提高处理任务的能力,可以在终端中集成若干个CPU。当终端中集成若干个CPU时,终端需要合理的调度的方法,使得终端中的任务能够被高效的执行。
发明内容
本申请实施例提供了一种实时进程的调度方法、装置、终端及存储介质。
所述技术方案如下:
根据本申请的一方面内容,提供了一种实时进程的调度方法,所述方法包括:
根据预定选择方式从终端中选定第一中央处理器CPU;
检测所述第一CPU是否处于关闭调度模式,所述关闭调度模式用于指示停止响应终端的调度的模式;
当所述第一CPU不处于关闭调度模式时,检测第二CPU是否处于所述关闭调度模式;
当所述第二CPU不处于所述关闭调度模式时,将目标实时进程放置在所述第二CPU中处理。
根据本申请的另一方面内容,提供了一种实时进程的调度装置,所述装置包括:
CPU选取模块,用于根据预定选择方式从终端中选定第一中央处理器CPU;
第一检测模块,用于检测所述第一CPU是否处于关闭调度模式,所述关闭调度模式用于指示停止响应终端的调度的模式;
第二检测模块,用于当所述第一CPU处于所述关闭调度模式时,检测第二CPU是否处于所述关闭调度模式;
进程处理模块,用于当所述第二CPU不处于关闭调度模式时,将目标实时进程放置在所述第二CPU中处理。
根据本申请的另一方面内容,提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如本申请实施提供的实时进程的调度方法。
根据本申请的另一方面内容,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如本申请实施提供的实时进程的调度方法。
本申请实施例提供的技术方案带来的有益效果可以包括:
由于本方法能够根据预定选择方式从终端中选定第一CPU,并检测第一CPU是否处于关闭调度模式,该关闭调度模式用于指示停止响应终端的调度的模式,当第一CPU不处于关闭调度模式时,检测第二CPU是否处于关闭调度模式,在第二CPU处于关闭调度模式时,将目标实时进程放置在第二CPU中处理。因为本方法能够为目标实时进程调度CPU时,主动检测第一CPU是否处于关闭调度模式,当第一CPU处于关闭调度模式时,检测第二CPU是否处于关闭调度模式,当第二CPU不处于调度关闭模式时,使用该第二CPU处理目标实时进程,节约了目标实时进程在第一CPU处于调度关闭模式时,等待该CPU转变为不处于调度关闭模式的时间,降低了实时进程的延迟,提高了实时进程的调度效率。
附图说明
为了更清楚地介绍本申请实施例中的技术方案,下面将对本申请实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1是是本申请一个示例性实施例提供的终端的结构框图;
图2是本申请一个示例性实施例提供的实时进程的调度方法的流程图;
图3是本申请另一个示例性实施例提供的实时进程的调度方法流程图;
图4是本申请另一个示例性实施例提供的实时进程的调度方法流程图;
图5是本申请另一个示例性实施例提供的实时进程的调度方法流程图;
图6是本申请一个示例性实施例提供的实时进程的调度装置的结构框图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本申请的描述中,需要说明的是,除非另有明确的规定和限定,术语“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
为了本申请实施例所示方案易于理解,下面对本申请实施例中出现的若干名词进行介绍。
预定选择方式:指设置在终端中的选定第一CPU的方式。在一种可能的场景中,该预定选择方式可以是遍历的选择方式。在另一种可能的场景中,该预定选择方式可以是轮询的选择方式。
可选地,在本申请中,终端还能够采用相同的预定选择方式从终端的CPU中选择第二CPU。例如,终端通过遍历的方式中终端的CPU中选择了第一CPU,则在没有选择过的CPU中选择一个CPU作为第二CPU。
第一CPU:指被本实施例进行调度检测的CPU。在一种可能的实施方式中,终端中包括至少两个CPU,其中,至少两个CPU包括第一CPU。
第二CPU:终端中除第一CPU外的其它CPU中的一个CPU。
关闭调度模式:指示第一CPU停止响应终端对该第一CPU的调度。在一种可能的方式中,该关闭调度模式包括处于硬中断(又称硬件中断)的模式、处于软中断的模式和处于包含原子锁的模式等等。需要说明的是,当CPU中的进程正持有原子锁等禁止进程抢占机制的锁时,终端确定该CPU处于关闭调度模式。
可选地,作为一种可能的方式,本申请实施例所示的实时进程的调度方法,应用在搭载linux操作系统的终端中。
示例性地,本申请实施例所示的实时进程的调度方法,可以应用在终端中,该终端具备处理器且具备实时进程的调度的功能。终端可以包括手机、平板电脑、膝上型电脑、台式电脑、电脑一体机、服务器、工作站、电视、机顶盒、智能眼镜、智能手表、数码相机、MP4播放终端、MP5播放终端、学习机、点读机、电纸书、电子词典、车载终端、虚拟现实(VirtualReality,VR)播放终端或增强现实(Augmented Reality,AR)播放终端等。
请参考图1,其是本申请一个示例性实施例提供的终端的结构框图,如图1所示,该终端包括处理器120和存储器140,所述存储器140中存储有至少一条指令,所述指令由所述处理器120加载并执行以实现如本申请各个方法实施例所述的实时进程的调度方法。
在本申请中,终端100是具备实时进程的调度功能的电子设备。当终端100根据预定选择方式从终端中选定第一CPU时,终端100能够检测该第一CPU是否处于关闭调度模式,当该第一CPU不处于关闭调度模式,将目标实时进程放置在该第一CPU中处理。
处理器120可以包括一个或者多个处理核心。处理器120利用各种接口和线路连接整个终端100内的各个部分,通过运行或执行存储在存储器140内的指令、程序、代码集或指令集,以及调用存储在存储器140内的数据,执行终端100的各种功能和处理数据。可选的,处理器120可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器120可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器120中,单独通过一块芯片进行实现。
存储器140可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器140包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器140可用于存储指令、程序、代码、代码集或指令集。存储器140可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等;存储数据区可存储下面各个方法实施例中涉及到的数据等。
请参考图2,其是本申请一个示例性实施例提供的实时进程的调度方法的流程图。该实时进程的调度方法可以应用在上述所示的终端中。在图2中,实时进程的调度方法包括:
步骤210,根据预定选择方式从终端中选定第一中央处理器CPU。
在本申请实施例中,终端中可以搭载操作系统,不同的操作系统中提供不同的CPU调度方式。在一些操作系统中,终端可以将进程根据优先级划分为多个层级。例如,终端可以按照优先级从高到低的顺序,将进程分为stop class进程、deadline进程、real time(实时)进程、fair class进程和idle class进程等五个层级。本申请实施例可以用于调度其中的实时进程。
步骤220,检测第一CPU是否处于关闭调度模式,关闭调度模式用于指示停止响应终端的调度的模式。
在本申请实施例中,终端能够在从终端中选定第一CPU后,检测第一CPU是否处于关闭调度模式。在一种可能的检测方式中,终端检测第一CPU是否处于抢占禁止状态。其中,抢占禁止状态用于指示终端禁止第一CPU被第一任务抢占,该第一任务是除当前正在第一CPU中处理的第二任务外的任务。
可选地,若该第一CPU处于抢占禁止状态,这说明第一CPU处于关闭调度模式。
可选地,若该第一CPU不处于抢占禁止状态,这说明第一CPU不处于关闭调度模式。
在另一种可能的方式中,终端也可以在第一CPU中设置标识位,通过标识位的数值来确定第一CPU是否处于关闭调度模式。例如,标识位的取值可以是0,也可以是1。终端可以将标识位的取值是0,设置为第一CPU处于抢占禁止状态。同时,终端可以将标识位的取值是1,设置为第一CPU不处于抢占禁止状态。
步骤230,当第一CPU处于关闭调度模式时,检测第二CPU是否处于关闭调度模式。
在本申请实施例中,终端在检测到第一CPU处于关闭调度模式时,终端将检测第二CPU是否处于关闭调度模式。
可选地,在一种可能的实时方式中,终端能够从终端中选出第二CPU,并针对第二CPU进行检测,检测该第二CPU是否处于关闭调度模式。
步骤240,当第二CPU不处于关闭调度模式时,将目标实时进程放置在第二CPU中处理。
在本申请实施例中,终端能够当第二CPU不处于关闭调度模式时,将目标实时进程放置在第二CPU中处理。需要说明的是,目标实时进程在被放置在第二CPU中后,可以直接进行执行处理。由于本申请实施例对第一CPU是否处于关闭调度模式进行了判断,在第一CPU处于关闭调度模式时,检测第二CPU是否处于关闭调度模式,在第二CPU不处于关闭调度模式时直接调用该第二CPU处理目标实时进程,避免了终端在第一CPU处于关闭调度模式时一直等待该第一CPU从关闭调度模式跳出,造成的实时进程延迟处理,提高了终端调度实时进程的效率,降低了实时进程运行的时延。
综上所述,本实施例提供的实时进程的调度方法,能够在为目标实时进程调度CPU时主动检测CPU是否处于关闭调度模式,节约了目标实时进程在CPU处于调度关闭模式时,等待该CPU转变为不处于调度关闭模式的时间,降低了实时进程的延迟,提高了实时进程的调度效率。
请参见图3,其是本申请另一个示例性实施例提供的实时进程的调度方法流程图。该实时进程的调度方法可以应用在上述图1所示的终端中。在图3中,该实时进程的调度方法包括:
步骤311,根据预定选择方式从终端中选定目标中央处理器CPU。
步骤311的执行过程和步骤210的执行过程相同,此处不再赘述。
步骤312,检测第一CPU是否处于关闭调度模式。
在本申请实施例中,步骤312的执行过程和步骤220的执行过程相同,此处不再赘述。
步骤320,当第一CPU处于关闭调度模式时,检测第二CPU是否正在处理硬中断任务。
在本申请实施例中,终端能够检测第二CPU是否正在处理硬中断任务。在本申请中,硬中断处理任务是终端中的硬件产生的信号,硬件可以包括磁盘、网卡、键盘和时钟中的至少一种。在一种可能的实现方式中,每个硬件都可以有归属于该硬件的中断请求,终端中的总线通过中断请求,将向第二CPU发送硬中断任务。在相应的任务安排方式中,第二CPU能够处理硬中断任务。
作为一种可能的分类方式,硬中断任务可以包括可屏蔽中断(英文:maskableinterrupt)、非可屏蔽中断(英文:non-maskable interrupt,简写:NMI)、处理器间中断(英文:interprocessor interrupt)和伪中断(英文:spurious interrupt)。
在本申请实施例的一种可能的实现方式中,终端能够通过查询第二CPU的执行状态或者指定标识位,以检测该第二CPU是否正在处理硬中断任务。
步骤331,当第二CPU正在处理硬中断任务时,确定第二CPU处于抢占禁止状态。
步骤332,当第二CPU不在处理硬中断任务时,确定第二CPU不处于抢占禁止状态。
步骤340,当第二CPU不处于抢占禁止状态时,将目标实时进程放置在第二CPU中处理。
步骤340中将目标实时进程放置在第二CPU中处理的执行过程和步骤240的相应执行过程相同,此处不再赘述。
综上所述,本实施例检测第二CPU是否处于关闭调度模式,在第二CPU不处于关闭调度模式时,将目标实时进程放置在第二CPU中处理,从而避免了当第二CPU处于正在处理硬中断任务时,实时进程需要一直等待至该硬中断任务处理完成,提高了终端的CPU正在处理硬中断任务时,针对实时进程的调度效率,降低了该场景中实时进程运行的延迟。
请参见图4,其是本申请另一个示例性实施例提供的实时进程的调度方法流程图。该实时进程的调度方法可以应用在上述图1所示的终端中。在图4中,该实时进程的调度方法包括:
步骤411,根据预定选择方式从终端中选定第一中央处理器CPU。
步骤411的执行过程和步骤210的执行过程相同,此处不再赘述。
步骤412,检测第一CPU是否处于关闭调度模式。
在本申请实施例中,步骤412的执行过程和步骤220的执行过程相同,此处不再赘述。
步骤420,当第一CPU处于关闭调度模式时,检测第二CPU是否涉及处理软中断任务。
在一种可能的实现方式中,终端将检测第二CPU是否正在处理软中断任务。
在另一种可能的实现方式中,终端将检测第二CPU中是否有处于等待(英文:pending)状态的软中断任务。
在又一种可能的实现方式中,终端将同时检测第二CPU是否正在处理软中断任务,且检测第二CPU中是否有处于等待状态的软中断任务。当上述两个检测中存在第二CPU正在处理软中断任务或第二CPU中有处于等待状态的软中断任务时,终端将确定第二CPU是否涉及处理软中断任务。
步骤431,当第二CPU涉及处理软中断任务时,确定第二CPU处于抢占禁止状态。
步骤432,当第二CPU不涉及处理软中断任务时,确定第二CPU不处于抢占禁止状态。
步骤440,当第二CPU不处于抢占禁止状态时,将目标实时进程放置在第二CPU中处理。
步骤440中将目标实时进程放置在第二CPU中处理的执行过程和步骤240的相应执行过程相同,此处不再赘述。
综上所述,本实施例在终端确定第一CPU后,检测第一CPU是否处于关闭调度模式,在第一CPU处于关闭调度模式时,检测第二CPU是否处于关闭调度模式,在第二CPU不处于关闭调度模式时,将目标实时进程放置在第二CPU中处理,从而避免了当第一CPU涉及处理软中断任务时,实时进程需要一直等待至该软中断任务处理完成,提高了终端的CPU涉及处理软中断任务时,针对实时进程的调度效率,降低了该场景中实时进程运行的延迟。
请参见图5,其是本申请另一个示例性实施例提供的实时进程的调度方法流程图。该实时进程的调度方法可以应用在上述图1所示的终端中。在图5中,该实时进程的调度方法包括:
步骤511,根据预定选择方式从终端中选定第一中央处理器CPU。
在本申请实施例中,步骤511的执行过程和步骤210的执行过程相同,此处不再赘述。
步骤512,检测第一CPU是否处于关闭调度模式。
在本申请实施例中,步骤512的执行过程和步骤220的执行过程相同,此处不再赘述。
步骤520,当第一CPU处于关闭调度模式时,检测第二CPU是否正在处理硬中断任务。
在本申请实施例中,步骤520的执行过程和步骤320的执行过程相同,此处不再赘述。
步骤530,当第二CPU不正在处理硬中断任务时,检测第二CPU是否涉及处理软中断任务。
在本申请实施例中,步骤530中检测第二CPU是否涉及处理软中断任务的执行过程和步骤420的执行过程相同,此处不再赘述。
需要说明的是,步骤520和步骤530的执行顺序可以互换。例如,终端先检测第二CPU是否涉及处理软中断任务,然后,当第二CPU不涉及处理软中断任时,检测第二CPU是否正在处理硬中断任务。
步骤540,当第二CPU不涉及处理软中断任务时,确定第二CPU不处于关闭调度模式。
步骤551a,当第二CPU不处于关闭调度模式时,检测第二CPU中是否存在比目标实时进程的优先级高的进程。
在本申请实施例中,当第二CPU不处于关闭调度模式时,终端还可以检测第二CPU中是否存在比目标实时进程的优先级高的进程。
在一种可能的实现方式中,终端将进程的优先级通过数值表示。例如,终端可以使用[0,99]区间中的实数或者整数值表示优先级。例如进程A的优先级的数值为67,进程B的优先级的数值为89,进程C的优先级的数值为36。则进程B的优先级高于进程A的优先级,进程A的优先级高于进程C的优先级。
步骤551b,当第二CPU中不存在比目标实时进程的优先级高的进程时,将目标实时进程放置在第二CPU中处理。
步骤552a,当第二CPU不处于关闭调度模式时,获取第二CPU的剩余能力。
在本申请实施例中,当第二CPU不处于关闭调度模式时,终端获取第二CPU的剩余能力。在一种可能的实现方式中,终端能够获取第二CPU的剩余能力,该剩余能力可以指第一CPU运行完成当前所处理的进程的剩余时长,例如2毫秒,5毫秒等。
步骤552b,当第二CPU的剩余能力不小于目标实时进程的需求能力时,将目标实时进程放置在第二CPU中处理。
在本申请实施例中,当第二CPU的剩余能力不小于目标实时进程的需求能力时,将目标实时进程放置在第二CPU中处理。需要说明的是,当剩余能力和目标实时进程的需求能力均用时长表示时,第二CPU运行完成当前所处理的进程的剩余时长短于目标实时进程的所能接收的等待时长阈值时,表示第二CPU的剩余能力不小于目标实时进程的需求能力。
例如,目标实时进程的所能接收的等待时长阈值是50微秒,第二CPU运行完成当前所处理的进程的剩余时长是30微秒,则说明第二CPU的剩余能力不小于目标实时进程的需求能力,终端此时将目标实时进程放置在第二CPU中处理。
在一种可能的实现方式中,CPU的剩余能力是CPU的总能力减去CPU上运行进程的负载之和。
作为一种步骤552b的替代实现方式,终端还可以遍历终端中所有的CPU,获取其中剩余能力最强的。在一种实现场景中,终端还可以遍历终端中所有的CPU,获取其中剩余等待时长最短的,将目标实时进程放置在该剩余等待时长最短的CPU中处理。
可选地,在将目标实时进程放置在第二CPU中处理之前,终端还能够判断第二CPU中的进程是否正持有原子锁等禁止进程抢占机制的锁,若不存在上述禁止进程抢占机制的锁,则终端将目标实时进程放置在第二CPU中处理。
综上所述,本实施例能够在在第二CPU不处理硬中断任务,不涉及处理软中断,且其中的进程的优先级比目标实时进程低,且第二CPU的剩余能力能够满足第二CPU的需求能力时,将目标实时进程放置在第二CPU中处理,使得终端能够确定影响目标实时进程执行速度的各个因素,避免了目标实时进程在执行前的盲目等待,降低了终端处理实时进程运行的延迟,提高了终端运行实时进程的效能。
请参考图6,其示出了本申请一个示例性实施例提供的实时进程的调度装置的结构框图。该实时进程的调度装置可以通过软件、硬件或者两者的结合实现成为终端的全部或一部分。该装置包括:
CPU选取模块610,用于根据预定选择方式从终端中选定第一中央处理器CPU;
第一检测模块620,用于检测所述第一CPU是否处于关闭调度模式,所述关闭调度模式用于指示停止响应终端的调度的模式;
第二检测模块630,用于当所述第一CPU处于所述关闭调度模式时,检测第二CPU是否处于所述关闭调度模式;
进程处理模块640,用于当所述第二CPU不处于所述关闭调度模式时,将目标实时进程放置在所述第二CPU中处理。
在一个可选的实施例中,所述第二检测模块630,用于检测所述第二CPU是否处于抢占禁止状态,所述抢占禁止状态用于指示禁止所述第二CPU被第一任务抢占,所述第一任务是除当前正在所述第二CPU中处理的第二任务外的任务。
在一个可选的实施例中,所述第二检测模块630,用于检测所述第二CPU是否正在处理硬中断任务;其中,当所述第二CPU正在处理硬中断任务,确定所述第二CPU处于抢占禁止状态;当所述第二CPU不在处理硬中断任务,确定所述第二CPU不处于抢占禁止状态。
在一个可选的实施例中,所述第二检测模块630,用于检测所述第二CPU是否涉及处理软中断任务;其中,当所述第二CPU涉及处理软中断任务,确定所述第二CPU处于抢占禁止状态;当所述第二CPU不涉及处理软中断任务,确定所述第二CPU不处于抢占禁止状态。
在一个可选的实施例中,所述第二检测模块630,用于检测所述第二CPU是否正在处理软中断任务;和/或,检测所述第二CPU中是否有处于等待状态的软中断任务。
在一个可选的实施例中,所述进程处理模块640,用于当所述第二CPU不处于关闭调度模式时,检测所述第二CPU中是否存在比所述目标实时进程的优先级高的进程;当所述第二CPU中不存在比所述目标实时进程的优先级高的进程时,将所述目标实时进程放置在所述第二CPU中处理。
在一个可选的实施例中,所述装置还包括执行模块,所述执行模块,用于当所述第二CPU不处于关闭调度模式时,获取所述第二CPU的剩余能力;当所述第二CPU的剩余能力不小于所述目标实时进程的需求能力时,将所述目标实时进程放置在所述第二CPU中处理。
本申请实施例还提供了一种计算机可读介质,该计算机可读介质存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的实时进程的调度方法。
需要说明的是:上述实施例提供的实时进程的调度装置在执行实时进程的调度方法时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的实时进程的调度装置与实时进程的调度方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本申请的能够实现的示例性的实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (7)
1.一种实时进程的调度方法,其特征在于,所述方法包括:
根据预定选择方式从终端中选定第一CPU;
检测所述第一CPU是否处于关闭调度模式,所述关闭调度模式用于指示停止响应终端的调度的模式;
当所述第一CPU处于所述关闭调度模式时,检测第二CPU是否涉及处理软中断任务;其中,当所述第二CPU涉及处理软中断任务,确定所述第二CPU处于抢占禁止状态;当所述第二CPU不涉及处理软中断任务,确定所述第二CPU不处于抢占禁止状态,所述抢占禁止状态用于指示禁止所述第二CPU被第一任务抢占,所述第一任务是除当前正在所述第二CPU中处理的第二任务外的任务,所述抢占禁止状态还用于说明CPU处于所述关闭调度模式;
当所述第二CPU不处于所述关闭调度模式且所述第二CPU的剩余能力不小于目标实时进程的需求能力时,将所述目标实时进程放置在所述第二CPU中处理。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
检测所述第二CPU是否正在处理硬中断任务;
其中,当所述第二CPU正在处理硬中断任务,确定所述第二CPU处于抢占禁止状态;当所述第二CPU不在处理硬中断任务,确定所述第二CPU不处于抢占禁止状态。
3.根据权利要求1所述的方法,其特征在于,所述检测第二CPU是否涉及处理软中断任务,包括:
检测所述第二CPU是否正在处理软中断任务;
和/或,
检测所述第二CPU中是否有处于等待状态的软中断任务。
4.根据权利要求1至3任一所述的方法,其特征在于,所述当所述第二CPU不处于关闭调度模式且所述第二CPU的剩余能力不小于目标实时进程的需求能力时,将所述目标实时进程放置在所述第二CPU中处理,包括:
当所述第二CPU不处于关闭调度模式时,检测所述第二CPU中是否存在比所述目标实时进程的优先级高的进程;
当所述第二CPU中不存在比所述目标实时进程的优先级高的进程时,将所述目标实时进程放置在所述第二CPU中处理。
5.一种实时进程的调度装置,其特征在于,所述装置包括:
CPU选取模块,用于根据预定选择方式从终端中选定第一CPU;
第一检测模块,用于检测所述第一CPU是否处于关闭调度模式,所述关闭调度模式用于指示停止响应终端的调度的模式;
第二检测模块,用于当所述第一CPU处于所述关闭调度模式时,检测第二CPU是否涉及处理软中断任务;其中,当所述第二CPU涉及处理软中断任务,确定所述第二CPU处于抢占禁止状态;当所述第二CPU不涉及处理软中断任务,确定所述第二CPU不处于抢占禁止状态,所述抢占禁止状态用于指示禁止所述第二CPU被第一任务抢占,所述第一任务是除当前正在所述第二CPU中处理的第二任务外的任务,所述抢占禁止状态还用于说明CPU处于所述关闭调度模式;
进程处理模块,用于当所述第二CPU不处于所述抢占禁止状态且所述第二CPU的剩余能力不小于目标实时进程的需求能力时,将目标实时进程放置在所述第二CPU中处理。
6.一种终端,其特征在于,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如权利要求1至4任一所述的实时进程的调度方法。
7.一种计算机可读存储介质,其特征在于,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如权利要求1至4任一所述的实时进程的调度方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910079921.4A CN109800073B (zh) | 2019-01-28 | 2019-01-28 | 实时进程的调度方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910079921.4A CN109800073B (zh) | 2019-01-28 | 2019-01-28 | 实时进程的调度方法、装置、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109800073A CN109800073A (zh) | 2019-05-24 |
CN109800073B true CN109800073B (zh) | 2021-06-18 |
Family
ID=66560517
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910079921.4A Active CN109800073B (zh) | 2019-01-28 | 2019-01-28 | 实时进程的调度方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109800073B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102822802A (zh) * | 2010-03-30 | 2012-12-12 | 富士通株式会社 | 多核处理器系统、控制程序以及控制方法 |
CN103389913A (zh) * | 2013-07-30 | 2013-11-13 | 武汉邮电科学研究院 | 一种用于Linux系统的实时中断处理方法 |
CN105550029A (zh) * | 2015-12-24 | 2016-05-04 | 迈普通信技术股份有限公司 | 一种进程调度方法及装置 |
CN106375239A (zh) * | 2016-08-25 | 2017-02-01 | 北京智芯微电子科技有限公司 | 一种网络数据接收的处理方法及装置 |
CN108123850A (zh) * | 2017-12-25 | 2018-06-05 | 上海交通大学 | 针对中断持有者抢占问题的综合调度方法及装置 |
CN108694151A (zh) * | 2017-04-09 | 2018-10-23 | 英特尔公司 | 通用图形处理单元内的计算集群抢占 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101887383B (zh) * | 2010-06-30 | 2013-08-21 | 中山大学 | 一种进程实时调度方法 |
CN108241522B (zh) * | 2016-12-27 | 2022-05-17 | 阿里巴巴集团控股有限公司 | 虚拟化环境中的睡眠状态切换方法、装置及电子设备 |
CN107066340B (zh) * | 2017-03-27 | 2020-05-12 | 恒安嘉新(北京)科技股份公司 | 一种基于linux的无中断线速收包、发包方法及设备 |
-
2019
- 2019-01-28 CN CN201910079921.4A patent/CN109800073B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102822802A (zh) * | 2010-03-30 | 2012-12-12 | 富士通株式会社 | 多核处理器系统、控制程序以及控制方法 |
CN103389913A (zh) * | 2013-07-30 | 2013-11-13 | 武汉邮电科学研究院 | 一种用于Linux系统的实时中断处理方法 |
CN105550029A (zh) * | 2015-12-24 | 2016-05-04 | 迈普通信技术股份有限公司 | 一种进程调度方法及装置 |
CN106375239A (zh) * | 2016-08-25 | 2017-02-01 | 北京智芯微电子科技有限公司 | 一种网络数据接收的处理方法及装置 |
CN108694151A (zh) * | 2017-04-09 | 2018-10-23 | 英特尔公司 | 通用图形处理单元内的计算集群抢占 |
CN108123850A (zh) * | 2017-12-25 | 2018-06-05 | 上海交通大学 | 针对中断持有者抢占问题的综合调度方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109800073A (zh) | 2019-05-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021088419A1 (zh) | 一种多业务请求进程调用fpga设备的方法及相关装置 | |
US7689749B2 (en) | Interrupt control function adapted to control the execution of interrupt requests of differing criticality | |
US7725637B2 (en) | Methods and apparatus for generating system management interrupts | |
CN110968415B (zh) | 多核处理器的调度方法、装置及终端 | |
US11301952B2 (en) | Full screen processing in multi-application environments | |
CN111831410A (zh) | 任务处理方法、装置、存储介质及电子设备 | |
CN110837420B (zh) | 资源调度方法、装置、终端及存储介质 | |
CN110008027B (zh) | 进程的运行方法、装置、终端及存储介质 | |
CN115033393B (zh) | 批量请求下发的优先排队处理方法、装置、服务器及介质 | |
US11182318B2 (en) | Processor and interrupt controller | |
CN111831411A (zh) | 任务处理方法、装置、存储介质及电子设备 | |
CN114461365A (zh) | 一种进程调度处理方法、装置、设备和存储介质 | |
US11237994B2 (en) | Interrupt controller for controlling interrupts based on priorities of interrupts | |
CN109800073B (zh) | 实时进程的调度方法、装置、终端及存储介质 | |
US11360702B2 (en) | Controller event queues | |
CN112988355B (zh) | 程序任务的调度方法、装置、终端设备及可读存储介质 | |
US7984446B1 (en) | Method and system for multitasking BIOS initialization tasks | |
CN114546171A (zh) | 数据分发方法、装置、存储介质及电子设备 | |
CN110515736B (zh) | 限制后台对象的方法、装置、终端及存储介质 | |
KR100651722B1 (ko) | 실시간 성능 지원을 위한 리눅스 커널의 구성 방법 및실시간 성능 테스트 방법 | |
CN110968595A (zh) | 一种单线程sql语句执行方法、设备及存储介质 | |
CN109426529B (zh) | 基于x窗口系统图形绘制的方法、装置及终端 | |
CN114911538A (zh) | 一种运行系统的启动方法及计算设备 | |
CN114168300A (zh) | 线程调度方法、处理器以及电子装置 | |
CN113032098A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |