CN111367652A - 一种嵌入式实时操作系统的任务调度处理系统和方法 - Google Patents
一种嵌入式实时操作系统的任务调度处理系统和方法 Download PDFInfo
- Publication number
- CN111367652A CN111367652A CN202010012778.XA CN202010012778A CN111367652A CN 111367652 A CN111367652 A CN 111367652A CN 202010012778 A CN202010012778 A CN 202010012778A CN 111367652 A CN111367652 A CN 111367652A
- Authority
- CN
- China
- Prior art keywords
- task
- thread
- priority
- scheduling
- scheduler
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 25
- 238000012545 processing Methods 0.000 title claims abstract description 18
- 230000008569 process Effects 0.000 claims description 10
- 230000000903 blocking effect Effects 0.000 claims description 8
- 238000003672 processing method Methods 0.000 claims description 4
- 239000013589 supplement Substances 0.000 abstract description 2
- 230000003111 delayed effect Effects 0.000 description 5
- 230000007246 mechanism Effects 0.000 description 5
- 238000011156 evaluation Methods 0.000 description 4
- 230000004913 activation Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006855 networking Effects 0.000 description 1
Images
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
Abstract
本发明提供了一种嵌入式实时操作系统的任务调度处理系统和方法,系统包括处理器以及设置在处理器内的定时器、中断控制器、调度器和SVC切换模块;调度器包括优先级调度器和时间片轮询调度器;本发明采用基于优先级抢占的调度方式,总是将CPU的使用权分配给当前就绪的、优先级最高的任务,对于拥有同样优先级的的任务按先入先出次序得到调度,同时采用时间片轮询调度方式作为优先级抢占调度方式的补充,可以协调同一优先级多个就绪线程任务共享处理器,导致处理器系统的实时性降低的问题,并且改善多个高优先级就绪线程任务处理的问题。
Description
技术领域
本发明涉及技术领域,尤其是涉及一种嵌入式实时操作系统的任务调度处 理系统和方法。
背景技术
随着多媒体、高速网络等技术的快速发展,越来越多的嵌入式系统要求具 有联网、图形等复杂功能,以提高其图形化管理、网络化协同操作等特性;而 这些发展对于嵌入式系统底层的操作系统提出了越来越高的要求,因嵌入式操 作系统负责嵌入系统的全部软、硬件资源的分配、调度、控制、协调并发等活 动;嵌入式操作系统具备一般操作系统最基本的功能,如任务调度、同步机制、 中断处理、文件处理等。
任务调度是内核的主要职责之一,决定了将哪一个任务投入运行,何时投 入运行以及运行多久,任务调度主要是协调任务对计算机系统资源的争夺使用, 以及对系统资源的合理使用。对系统资源非常匮乏的嵌入式系统来说,任务调 度策略尤为重要,它直接影响到系统的实时性能。
目前基于优先级抢占机制的先进先出调度策略是大多数系统的默认调度策 略,虽然任务之间拥有不同的优先级,但往往还存在多个相同优先级任务的情 况,在这种情况下,若采用默认的基于优先级抢占机制的调度策略,就会出现 同一优先级多个就绪线程任务共享MCU或CPU的问题,严重影响系统的实时 性能,降低系统的实时性。
发明内容
本发明的目的在于提供一种嵌入式实时操作系统的任务调度处理系统和方 法,以解决现有技术中在存在多个相同优先级任务的情况时,若采用传统的基 于优先级抢占机制的调度策略,就会出现同一优先级多个就绪线程任务共享 MCU或CPU,降低系统的实时性的技术问题;本发明提供的诸多技术方案中的 优选技术方案所能产生的诸多技术效果详见下文阐述。
为实现上述目的,本发明提供了以下技术方案:
本发明提供的一种嵌入式实时操作系统的任务调度处理系统,包括处理器 以及设置在处理器内的定时器、中断控制器、调度器和SVC切换模块,
所述定时器与中断控制器捆绑,采用减1计数的方式进行工作,当时间定 时器减到0的时候,中断控制器产生中断,
所述调度器包括优先级调度器和时间片轮询调度器;所述优先级调度器用 于从延时队列中移除到期线程任务,并加入到就绪队列中,若就绪队列最高优 先级的线程任务的优先级高于正在运行的线程任务,则优先级调度器调度就绪 队列最高优先级的线程任务抢占当前运行的线程任务;所述时间片轮询调度器 用于判断对应线程任务时间片是否耗尽,并将时间片耗尽的线程任务移到同一 优先级就绪队列的队尾;
所述SVC切换模块用于进行实际线程任务的上下文切换。
可选地,时间片轮询调度器针对每个轮询线程任务设有有最长时间限制, 在此时间内该线程任务可以被激活,时间片轮询调度器在当线程任务运行到规 定时间片之后,产生一次调度判断,若此时有同优先级的线程任务处于就绪态, 则让出处理器使用权,否则正在运行的线程任务不主动放弃对处理器的使用权。
可选地,调度器还用于在线程任务被阻塞后主动放弃处理器使用权时,调 度器选择当前就绪的线程任务中寻找优先级最高的线程任务,将处理器的使用 权分配给它。
可选地,处理器在调用阻塞功能模块后、或者产生了一个比活动线程任务 所能屏蔽的中断优先级更高的中断、或者更高优先级的线程任务已经处于就绪 状态时,当前线程任务会停止运行,调度器进行任务调度。
可选地,优先级调度器采用FIFO调度的方式进行任务调度,时间片轮询调 度器采用RR调度的方式进行任务调度。
值得说明的是,FIFO调度是指基于优先级抢占机制的先进先出调度策略, 线程任务都以优先级数表示优先级(mbedOS操作系统共有53种优先级,数值分 别为-1~1、8~56、0x7FFFFFFF,优先级数越大,优先级越高,不同操作系统设置 的优先级数不尽相同),其中,线程任务最大优先级数值不宜过大,否则将影响 线程任务管理队列所占的资源和管理的时效性。
基于优先级先进先出的调度策略在运行时具体来说分三种情况:
(1)设线程B的优先级高于线程A,当线程A正在运行时,线程B准备就 绪(发生情景:1.线程A创建了线程B;2.线程B的延时到期;3.用户显式的进 行调度等),则调度系统在下一个中断发生的时候将处理器的使用权从线程A 处抢夺,将其转入就绪态,并分配处理器使用权给线程B;
(2)当线程A被阻塞后主动放弃处理器使用权,此时,调度系统将选择 当前就绪的线程任务中寻找优先级最高的线程任务,将处理器的使用权分配给 它;
(3)当存在同一优先级的多个线程任务都处于就绪态时,较早进入就绪态 的线程任务优先获得系统分配的一段固定时间片供其运行。
当发生以下任意一种情况时,当前线程会停止运行,并进入处理器调度:
(1)由于调用了阻塞功能模块(如等待线程信号和等待信号量等),运行 态线程任务主动放弃处理器使用权;
(2)产生了一个比活动线程所能屏蔽的中断优先级更高的中断;
(3)更高优先级的线程任务已经处于就绪状态。
RR调度,即时间片轮询调度方式是作为FIFO调度方式的补充,RR调度的 特点在于每个轮询线程有最长时间限制(时间片),在此时间内该线程任务可 以被激活。如果时间片的大小设置为0,则不会进行时间片轮询调度,若未出 现优先级抢占或者线程任务阻塞的情况,正在运行的线程不会主动放弃对处理 器的使用权。反之,当线程任务运行到规定时间片之后,会产生一次调度判断, 若此时有同优先级的线程任务处于就绪态,则让出处理器使用权,否则继续运 行。
在RR调度策略中,相同优先级的线程任务将以时间片的方式共享处理器 时间。注意这里是相同优先级的线程任务才会使用轮询,低优先级的线程任务 是不会参与到高优先级的线程任务中来轮询的。即当采用RR调度时,不同优 先级的线程是按照FIFO策略排列的;相同优先级的线程会采用时间片轮询来调 用。若系统定义了时间片为5,也就意味着时间片轮转调度的时间间隔为5ms。 在线程任务执行的时间片中并不是禁止抢占的,这就意味着处理器控制权可能 被其他线程任务抢占。
一种嵌入式实时操作系统的任务调度处理方法,基于上述任务调度处理系 统,处理器在运行时其使用权分配给当前就绪的、优先级最高的任务,而对同 一优先级的任务则采用时间片轮询的调度方法,具体包括以下步骤,
步骤S1:通过定时器进行系统计时;
步骤S2:从延时队列移出到期线程任务,并加到就绪队列中;
步骤S3:若就绪队列最高优先级的线程任务的优先级高于正在运行的线程 任务,则抢占当前运行的线程任务;
步骤S4:当线程任务运行到时间片轮询调度器设置的最长时间限制,则优 先级相同的线程任务之间进行轮询调度;
步骤S5:进入SVC中断,SVC中断模块进行实际线程任务的上下文切换。
可选的,步骤S1中,定时器与中断控制器捆绑,其协同执行如下流程:
a:将线程栈和连接寄存器入栈;
b:对当前的任务状态进行更改,任务状态包括就绪状态和延时状态。
可选的,步骤S3中,进行优先级调度时,
若任务B的优先级高于任务A,当任务A正在运行时,任务B准备就绪, 则调度系统在下一个中断发生的时候将处理器的使用权从任务A处抢夺,将其 转入就绪态,并分配处理器使用权给任务B;
当任务A被阻塞后主动放弃处理器使用权,此时,优先级调度器在当前就 绪队列的任务中寻找优先级最高的任务,将处理器的使用权分配给它。
可选的,步骤S4中,采用轮询调度时,不同优先级的线程任务按照优先级 调度策略排列;相同优先级的线程任务采用时间片轮询进行调用,轮询调度包 括以下流程;
步骤4.1:若未出现优先级抢占或者线程任务阻塞的情况,正在运行的线程 任务不主动放弃对处理器的使用权;
步骤4.2:当线程运行到规定时间片之后,产生一次调度判断,若此时有同 优先级的线程任务处于就绪态,则让出处理器使用权,并且较早进入就绪态的 线程任务优先获得系统分配的一段固定时间片供其运行;
步骤4.3:否则当前任务线程继续运行。
可选地,线程任务在执行的时间片中,允许被其他线程任务抢占控制器使 用权。
本发明提供的一种嵌入式实时操作系统的任务调度处理系统和方法,其有 益效果为:
本发明采用基于优先级抢占的调度方式,总是将CPU的使用权分配给当前 就绪的、优先级最高的任务,对于拥有同样优先级的的任务按先入先出次序得 到调度,同时采用时间片轮询调度方式作为优先级抢占调度方式的补充,可以 协调同一优先级多个就绪线程任务共享处理器,导致处理器系统的实时性降低 的问题,并且改善多个高优先级就绪线程任务处理的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施 例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述 中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付 出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明任务调度处理方法的流程图;
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方 案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不 是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创 造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。
实施例1:
一种嵌入式实时操作系统的任务调度处理系统,包括处理器以及设置在处 理器内的定时器、中断控制器、调度器和SVC切换模块,定时器与中断控制器 捆绑,采用减1计数的方式进行工作,当时间定时器减到0的时候,中断控制 器产生中断,调度器包括优先级调度器和时间片轮询调度器;所述优先级调度 器用于从延时队列中移除到期线程任务,并加入到就绪队列中,若就绪队列最 高优先级的线程任务的优先级高于正在运行的线程任务,则优先级调度器调度 就绪队列最高优先级的线程任务抢占当前运行的线程任务;所述时间片轮询调 度器用于判断对应线程任务时间片是否耗尽,并将时间片耗尽的线程任务移到 同一优先级就绪队列的队尾;SVC切换模块用于进行实际线程任务的上下文切 换。
实施例2:
在上述实施例的基础上,作为进一步的优选方案:时间片轮询调度器针对 每个轮询线程任务设有有最长时间限制,在此时间内该线程任务可以被激活, 时间片轮询调度器在当线程任务运行到规定时间片之后,产生一次调度判断, 若此时有同优先级的线程任务处于就绪态,则让出处理器使用权,否则正在运 行的线程任务不主动放弃对处理器的使用权。
实施例3:
在上述实施例的基础上,作为进一步的优选方案:调度器还用于在线程任 务被阻塞后主动放弃处理器使用权时,调度器选择当前就绪的线程任务中寻找 优先级最高的线程任务,将处理器的使用权分配给它。
实施例4:
在上述实施例的基础上,作为进一步的优选方案:处理器在调用阻塞功能 模块后、或者产生了一个比活动线程任务所能屏蔽的中断优先级更高的中断、 或者更高优先级的线程任务已经处于就绪状态时,当前线程任务会停止运行, 调度器进行任务调度;优先级调度器采用FIFO调度的方式进行任务调度,时间 片轮询调度器采用RR调度的方式进行任务调度。
实施例5:
一种嵌入式实时操作系统的任务调度处理方法,基于上述任务调度处理系 统,处理器在运行时其使用权分配给当前就绪的、优先级最高的任务,而对同 一优先级的任务则采用时间片轮询的调度方法,如图1所示,具体包括以下步 骤,
步骤S1:通过定时器进行系统计时;其中,定时器与中断控制器捆绑,其 协同执行如下流程:
a:将线程栈和连接寄存器入栈;
b:对当前的任务状态进行更改,任务状态包括就绪状态和延时状态;
步骤S2:从延时队列移出到期线程任务,并加到就绪队列中;
步骤S3:若就绪队列最高优先级的线程任务的优先级高于正在运行的线程 任务,则抢占当前运行的线程任务,其中,进行优先级调度时,
若任务B的优先级高于任务A,当任务A正在运行时,任务B准备就绪, 则调度系统在下一个中断发生的时候将处理器的使用权从任务A处抢夺,将其 转入就绪态,并分配处理器使用权给任务B;
当任务A被阻塞后主动放弃处理器使用权,此时,优先级调度器在当前就 绪队列的任务中寻找优先级最高的任务,将处理器的使用权分配给它;
步骤S4:当线程任务运行到时间片轮询调度器设置的最长时间限制,则优 先级相同的线程任务之间进行轮询调度,其中,采用轮询调度时,不同优先级 的线程任务按照优先级调度策略排列;相同优先级的线程任务采用时间片轮询 进行调用,轮询调度包括以下流程;
步骤4.1:若未出现优先级抢占或者线程任务阻塞的情况,正在运行的线程 任务不主动放弃对处理器的使用权;
步骤4.2:当线程运行到规定时间片之后,产生一次调度判断,若此时有同 优先级的线程任务处于就绪态,则让出处理器使用权,并且较早进入就绪态的 线程任务优先获得系统分配的一段固定时间片供其运行;
步骤4.3:否则当前任务线程继续运行;
步骤S5:进入SVC中断,SVC中断模块进行实际线程任务的上下文切换。
实施例6:
在上述实施例的基础上,作为进一步的优选方案:线程任务在执行的时间 片中,允许被其他线程任务抢占控制器使用权。
实施例7:
在上述实施例的基础上,作为进一步的优选方案:下面结合以下硬件,配 套线程调度演示程序,对线程调度过程进行分段解析,如图2所示,并给出各 段的运行结果;
硬件及连接:
MCU芯片选择KL36板套件,该套件的MCU是内核为ARM Cortex-M0+的 KinetisMKL36Z64VLH4,该芯片为64引脚LQFP封装、64KB Flash,包含SysTick 定时器、GPIO、串口、A/D、D/A、I2C、SPI、CAN、USB;以及测试硬件和MUC 评估板,所述串口与MUC评估板连接,所述测试硬件连接于MUC评估板并由 主控制模块控制;串口作为默认通信设备与外界通信,将“USB-MicroUSB串口 线”的“USB端口”接PC机的USB口,串口线的MicroUSB端接AHL-IOT-GEC评估板上的MicroUSB口(对应UART_2,由PTE16、PTE17作为串口的收发引脚); 测试硬件为三色灯硬件,连接于AHL-IOT-GEC评估板的S1,由KL36芯片的PTA5、 PTA12和PTA13引脚控制,以上述硬件连接为样例工程,实现三个任务的调度;
各段的运行结果:
(1)线程启动
在本样例程序中,芯片上电启动最后转到主线程的运行函数app_init执行, 在该函数中创建并先后启动了红灯、蓝灯和绿灯三个线程,然后阻塞该函数的 运行。此时,就绪队列中按优先级高低和先后顺序依次是红灯线程、蓝灯线程、 绿灯线程和空闲线程,接着由mbedOS开始对这些线程调度。首先,取出就绪 队列最高优先级线程(即红灯线程)激活运行,然后按时间片(5ms)对蓝灯 线程和绿灯线程进行轮询调度;
(2)红灯线程延时3秒
红灯线程调用延时函数延时3秒,在调用该函数的过程中红灯线程会按延 时时长被放到延时队列相应位置,并从就绪队列中取最高优先级的线程(此时 为蓝灯线程)激活运行;
(3)蓝灯线程延时2秒
蓝灯线程调用延时函数延时2秒,在调用该函数的过程中蓝灯线程会按延 时时长被放到延时队列相应位置(因为蓝灯线程的延时时长2秒<红灯线程的延 时时长3秒,故蓝灯线程会被放到红灯线程之前),同时修改红灯线程的delay 值=3000-2000(蓝灯线程延时时长)-5(时间片时长)=995,并从就绪队列中 取最高优先级的线程(此时为绿灯线程)激活运行;
(4)绿灯线程延时1秒
绿灯线程调用延时函数延时1秒,在调用该函数的过程中绿灯线程会按延 时时长被放到延时队列相应位置(因为绿灯线程的延时时长1秒<蓝灯线程的延 时时长3秒,故绿灯线程会被放到蓝灯线程之前),同时修改蓝灯线程的delay 值=2000-1000(绿灯线程延时时长)-5(时间片时长)=995。由于此时红灯线 程、蓝灯线程和绿灯线程都已经放到了延时队列中,在就绪队列中只剩下空闲 线程,因此空闲线程得以激活运行(实际上空闲线程什么都没做,只是让CPU 处于运行状态);
(5)轮询调度激活绿灯线程
SysTick中断会每1ms中断一次按每次时间片(5ms)到时,对线程进行轮 询调度。当空闲线程运行达到1秒,此时绿灯线程延时结束,从延时队列移出 并被放到就绪队列中。由于绿灯线程的优先级24>空闲线程的优先级1,则绿灯 线程会抢占空闲线程,并阻塞空闲线,同时激活绿灯线程运行;
(6)绿灯线程结束
当绿灯延时结束后,绿灯反转,接着又开始新一轮的延时等待
(7)轮询调度激活蓝灯线程
SysTick中断会每1ms中断一次按每次时间片(5ms)到时,对线程进行轮 询调度。当空闲线程运行达到1秒,此时蓝灯线程延时结束,从延时队列移出 并被放到就绪队列中。由于蓝灯线程的优先级24>空闲线程的优先级1,则蓝灯 线程会抢占空闲线程,并阻塞空闲线,同时激活蓝灯线程运行;
(8)蓝灯线程结束
当蓝灯延时结束后,蓝灯反转,接着又开始新一轮的延时等待;
(9)轮询调度激活红灯线程
SysTick中断会每1ms中断一次按每次时间片(5ms)到时,对线程进行轮 询调度。当空闲线程运行达到1秒,此时红灯线程延时结束,从延时队列移出 并被放到就绪队列中。由于红灯线程的优先级24>空闲线程的优先级1,则红灯 线程会抢占空闲线程,并阻塞空闲线,同时激活红灯线程运行;
(10)红灯线程结束
当红灯延时结束后,红灯反转,接着又开始新一轮的延时等待
说明:演示程序主要是在相关的代码之间通过插入printf函数的方式,打 印出相关的信息,且执行printf函数需要占用一些时间。同时,由于线程优先 级相同,SysTick中断会每1ms中断一次,按每次时间片(5ms)到就会对线程 进行轮询调度。因此在串口实际输出执行结果时,会出现有些输出错位现象。 1FFFFA74表示红灯线程,1FFFFBFC表示绿灯线程,1FFFFB38表示蓝灯线程, 1FFFFC8C表示空闲线程,地址539表示缺省处理函数DefaultISR。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于 此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到 变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应 以所述权利要求的保护范围为准。
Claims (10)
1.一种嵌入式实时操作系统的任务调度处理系统,包括处理器以及设置在处理器内的定时器、中断控制器、调度器和SVC切换模块,其特征在于,
所述定时器与中断控制器捆绑,采用减1计数的方式进行工作,当时间定时器减到0的时候,中断控制器产生中断,
所述调度器包括优先级调度器和时间片轮询调度器;所述优先级调度器用于从延时队列中移除到期线程任务,并加入到就绪队列中,若就绪队列最高优先级的线程任务的优先级高于正在运行的线程任务,则优先级调度器调度就绪队列最高优先级的线程任务抢占当前运行的线程任务;所述时间片轮询调度器用于判断对应线程任务时间片是否耗尽,并将时间片耗尽的线程任务移到同一优先级就绪队列的队尾;
所述SVC切换模块用于进行实际线程任务的上下文切换。
2.根据权利要求1所述的一种嵌入式实时操作系统的任务调度处理系统,其特征在于,所述时间片轮询调度器针对每个轮询线程任务设有有最长时间限制,在此时间内该线程任务可以被激活,时间片轮询调度器在当线程任务运行到规定时间片之后,产生一次调度判断,若此时有同优先级的线程任务处于就绪态,则让出处理器使用权,否则正在运行的线程任务不主动放弃对处理器的使用权。
3.根据权利要求1或2所述的一种嵌入式实时操作系统的任务调度处理系统,其特征在于,所述调度器还用于在线程任务被阻塞后主动放弃处理器使用权时,调度器选择当前就绪的线程任务中寻找优先级最高的线程任务,将处理器的使用权分配给它。
4.根据权利要求1或2所述的一种嵌入式实时操作系统的任务调度处理系统,其特征在于,所述处理器在调用阻塞功能模块后、或者产生了一个比活动线程任务所能屏蔽的中断优先级更高的中断、或者更高优先级的线程任务已经处于就绪状态时,当前线程任务会停止运行,调度器进行任务调度。
5.根据权利要求1或2所述的一种嵌入式实时操作系统的任务调度处理系统,其特征在于,所述优先级调度器采用FIFO调度的方式进行任务调度,时间片轮询调度器采用RR调度的方式进行任务调度。
6.一种嵌入式实时操作系统的任务调度处理方法,其特征在于,基于上述任务调度处理系统,处理器在运行时其使用权分配给当前就绪的、优先级最高的任务,而对同一优先级的任务则采用时间片轮询的调度方法,具体包括以下步骤,
步骤S1:通过定时器进行系统计时;
步骤S2:从延时队列移出到期线程任务,并加到就绪队列中;
步骤S3:若就绪队列最高优先级的线程任务的优先级高于正在运行的线程任务,则抢占当前运行的线程任务;
步骤S4:当线程任务运行到时间片轮询调度器设置的最长时间限制,则优先级相同的线程任务之间进行轮询调度;
步骤S5:进入SVC中断,SVC中断模块进行实际线程任务的上下文切换。
7.根据权利要求6所述的一种嵌入式实时操作系统的任务调度处理方法,其特征在于,所述步骤S1中,定时器与中断控制器捆绑,其协同执行如下流程:
a:将线程栈和连接寄存器入栈;
b:对当前的任务状态进行更改,任务状态包括就绪状态和延时状态。
8.根据权利要求6所述的一种嵌入式实时操作系统的任务调度处理方法,其特征在于,所述步骤S3中,进行优先级调度时,
若任务B的优先级高于任务A,当任务A正在运行时,任务B准备就绪,则调度系统在下一个中断发生的时候将处理器的使用权从任务A处抢夺,将其转入就绪态,并分配处理器使用权给任务B;
当任务A被阻塞后主动放弃处理器使用权,此时,优先级调度器在当前就绪队列的任务中寻找优先级最高的任务,将处理器的使用权分配给它。
9.根据权利要求6所述的一种嵌入式实时操作系统的任务调度处理方法,其特征在于,所述步骤S4中,采用轮询调度时,不同优先级的线程任务按照优先级调度策略排列;相同优先级的线程任务采用时间片轮询进行调用,轮询调度包括以下流程;
步骤4.1:若未出现优先级抢占或者线程任务阻塞的情况,正在运行的线程任务不主动放弃对处理器的使用权;
步骤4.2:当线程运行到规定时间片之后,产生一次调度判断,若此时有同优先级的线程任务处于就绪态,则让出处理器使用权,并且较早进入就绪态的线程任务优先获得系统分配的一段固定时间片供其运行;
步骤4.3:否则当前任务线程继续运行。
10.根据权利要求6所述的一种嵌入式实时操作系统的任务调度处理方法,其特征在于,所述线程任务在执行的时间片中,允许被其他线程任务抢占控制器使用权。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010012778.XA CN111367652B (zh) | 2020-01-07 | 一种嵌入式实时操作系统的任务调度处理系统和方法 | |
PCT/CN2020/140487 WO2021139560A1 (zh) | 2020-01-07 | 2020-12-29 | 一种嵌入式实时操作系统的任务调度处理系统和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010012778.XA CN111367652B (zh) | 2020-01-07 | 一种嵌入式实时操作系统的任务调度处理系统和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111367652A true CN111367652A (zh) | 2020-07-03 |
CN111367652B CN111367652B (zh) | 2024-05-17 |
Family
ID=
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111538580A (zh) * | 2020-04-23 | 2020-08-14 | 苏州大学 | 一种嵌入式实时操作系统的线程信号操作方法与系统 |
CN111897637A (zh) * | 2020-07-15 | 2020-11-06 | 重庆紫光华山智安科技有限公司 | 作业调度方法、装置、主机及存储介质 |
CN112395064A (zh) * | 2020-11-18 | 2021-02-23 | 中国联合网络通信集团有限公司 | 一种线程调度方法及装置 |
CN112667369A (zh) * | 2020-06-08 | 2021-04-16 | 宸芯科技有限公司 | 一种线程调度方法、装置、存储介质及电子设备 |
CN112860395A (zh) * | 2021-01-25 | 2021-05-28 | 中国人民解放军军事科学院国防科技创新研究院 | 用于gpu的多任务调度方法 |
WO2021139560A1 (zh) * | 2020-01-07 | 2021-07-15 | 苏州大学 | 一种嵌入式实时操作系统的任务调度处理系统和方法 |
CN113377517A (zh) * | 2021-06-28 | 2021-09-10 | 上海鲲宜软件技术有限公司 | 基于实时操作系统的线程调度方法及系统 |
CN114880102A (zh) * | 2022-07-04 | 2022-08-09 | 北京智芯半导体科技有限公司 | 安全芯片及其多任务调度方法和装置、存储介质 |
CN114928644A (zh) * | 2022-07-20 | 2022-08-19 | 深圳市安科讯实业有限公司 | 一种物联网网络融合加速网关 |
CN116450306A (zh) * | 2022-09-26 | 2023-07-18 | 宁德时代新能源科技股份有限公司 | 任务调度方法、装置、设备、存储介质及产品 |
CN117234740A (zh) * | 2023-11-13 | 2023-12-15 | 沐曦集成电路(杭州)有限公司 | 一种gpu硬件资源的调度方法、装置、设备及介质 |
CN117858262A (zh) * | 2024-03-07 | 2024-04-09 | 成都爱瑞无线科技有限公司 | 基站资源调度优化方法、装置、基站、设备、介质及产品 |
CN117858262B (zh) * | 2024-03-07 | 2024-05-14 | 成都爱瑞无线科技有限公司 | 基站资源调度优化方法、装置、基站、设备、介质及产品 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003122586A (ja) * | 2001-08-09 | 2003-04-25 | Matsushita Electric Ind Co Ltd | タスク・スケジューリング装置 |
US20100242041A1 (en) * | 2009-03-17 | 2010-09-23 | Qualcomm Incorporated | Real Time Multithreaded Scheduler and Scheduling Method |
CN103412790A (zh) * | 2013-08-07 | 2013-11-27 | 南京师范大学 | 移动安全中间件的多核并发调度方法与系统 |
CN106293902A (zh) * | 2015-05-28 | 2017-01-04 | 宇龙计算机通信科技(深圳)有限公司 | 一种处理器调度方法及系统 |
CN108196950A (zh) * | 2018-01-24 | 2018-06-22 | 苏州大学 | 一种应用于窄带物联网的实时化操作系统及其方法 |
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2003122586A (ja) * | 2001-08-09 | 2003-04-25 | Matsushita Electric Ind Co Ltd | タスク・スケジューリング装置 |
US20100242041A1 (en) * | 2009-03-17 | 2010-09-23 | Qualcomm Incorporated | Real Time Multithreaded Scheduler and Scheduling Method |
CN103412790A (zh) * | 2013-08-07 | 2013-11-27 | 南京师范大学 | 移动安全中间件的多核并发调度方法与系统 |
CN106293902A (zh) * | 2015-05-28 | 2017-01-04 | 宇龙计算机通信科技(深圳)有限公司 | 一种处理器调度方法及系统 |
CN108196950A (zh) * | 2018-01-24 | 2018-06-22 | 苏州大学 | 一种应用于窄带物联网的实时化操作系统及其方法 |
Cited By (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021139560A1 (zh) * | 2020-01-07 | 2021-07-15 | 苏州大学 | 一种嵌入式实时操作系统的任务调度处理系统和方法 |
CN111538580A (zh) * | 2020-04-23 | 2020-08-14 | 苏州大学 | 一种嵌入式实时操作系统的线程信号操作方法与系统 |
CN112667369A (zh) * | 2020-06-08 | 2021-04-16 | 宸芯科技有限公司 | 一种线程调度方法、装置、存储介质及电子设备 |
CN111897637B (zh) * | 2020-07-15 | 2022-08-19 | 重庆紫光华山智安科技有限公司 | 作业调度方法、装置、主机及存储介质 |
CN111897637A (zh) * | 2020-07-15 | 2020-11-06 | 重庆紫光华山智安科技有限公司 | 作业调度方法、装置、主机及存储介质 |
CN112395064A (zh) * | 2020-11-18 | 2021-02-23 | 中国联合网络通信集团有限公司 | 一种线程调度方法及装置 |
CN112860395A (zh) * | 2021-01-25 | 2021-05-28 | 中国人民解放军军事科学院国防科技创新研究院 | 用于gpu的多任务调度方法 |
CN112860395B (zh) * | 2021-01-25 | 2022-03-25 | 中国人民解放军军事科学院国防科技创新研究院 | 用于gpu的多任务调度方法 |
CN113377517B (zh) * | 2021-06-28 | 2023-02-28 | 上海鲲宜软件技术有限公司 | 基于实时操作系统的线程调度方法及系统 |
CN113377517A (zh) * | 2021-06-28 | 2021-09-10 | 上海鲲宜软件技术有限公司 | 基于实时操作系统的线程调度方法及系统 |
CN114880102A (zh) * | 2022-07-04 | 2022-08-09 | 北京智芯半导体科技有限公司 | 安全芯片及其多任务调度方法和装置、存储介质 |
CN114880102B (zh) * | 2022-07-04 | 2022-10-25 | 北京智芯半导体科技有限公司 | 安全芯片及其多任务调度方法和装置、存储介质 |
CN114928644A (zh) * | 2022-07-20 | 2022-08-19 | 深圳市安科讯实业有限公司 | 一种物联网网络融合加速网关 |
CN116450306A (zh) * | 2022-09-26 | 2023-07-18 | 宁德时代新能源科技股份有限公司 | 任务调度方法、装置、设备、存储介质及产品 |
CN116450306B (zh) * | 2022-09-26 | 2023-12-26 | 宁德时代新能源科技股份有限公司 | 任务调度方法、装置、设备、存储介质及产品 |
CN117234740A (zh) * | 2023-11-13 | 2023-12-15 | 沐曦集成电路(杭州)有限公司 | 一种gpu硬件资源的调度方法、装置、设备及介质 |
CN117234740B (zh) * | 2023-11-13 | 2024-02-20 | 沐曦集成电路(杭州)有限公司 | 一种gpu硬件资源的调度方法、装置、设备及介质 |
CN117858262A (zh) * | 2024-03-07 | 2024-04-09 | 成都爱瑞无线科技有限公司 | 基站资源调度优化方法、装置、基站、设备、介质及产品 |
CN117858262B (zh) * | 2024-03-07 | 2024-05-14 | 成都爱瑞无线科技有限公司 | 基站资源调度优化方法、装置、基站、设备、介质及产品 |
Also Published As
Publication number | Publication date |
---|---|
WO2021139560A1 (zh) | 2021-07-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Ramos-Thuel et al. | On-line scheduling of hard deadline aperiodic tasks in fixed-priority systems | |
Leontyev et al. | Generalized tardiness bounds for global multiprocessor scheduling | |
Goel et al. | A comparative study of cpu scheduling algorithms | |
US20110302587A1 (en) | Information processing device and information processing method | |
CN108123980B (zh) | 一种资源调度方法及系统 | |
CN101131652A (zh) | 多核多中央处理器的执行线程分配方法 | |
EP4209903A1 (en) | Task scheduling method and apparatus | |
CN112214319A (zh) | 一种计算资源感知的任务调度方法 | |
CN100468342C (zh) | 基于硬件资源的多核多中央处理器的执行绪分配方法 | |
CN112925616A (zh) | 任务分配方法、装置、存储介质及电子设备 | |
CN111597044A (zh) | 任务调度方法、装置、存储介质及电子设备 | |
CN115048206A (zh) | 资源调度方法及服务器 | |
CN111538580A (zh) | 一种嵌入式实时操作系统的线程信号操作方法与系统 | |
CN114461365A (zh) | 一种进程调度处理方法、装置、设备和存储介质 | |
Racu et al. | Improved response time analysis of tasks scheduled under preemptive round-robin | |
Horowitz | A run-time execution model for referential integrity maintenance | |
CN111367652A (zh) | 一种嵌入式实时操作系统的任务调度处理系统和方法 | |
CN112346836A (zh) | 共享计算资源的抢占方法、装置、用户设备及存储介质 | |
CN109656716B (zh) | 一种Slurm作业调度方法及系统 | |
CN111367652B (zh) | 一种嵌入式实时操作系统的任务调度处理系统和方法 | |
CN116880986A (zh) | 任务调度方法、装置、车载控制器、电子设备和存储介质 | |
CN113051064A (zh) | 任务调度方法、装置、设备及存储介质 | |
CN112506640B (zh) | 一种用于加密运算芯片的多处理器架构及调配方法 | |
CN113986484B (zh) | 社交软件的任务处理全局调度方法 | |
CN110647393A (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 |