[go: up one dir, main page]

CN107589993A - A kind of dynamic priority scheduling algorithm based on linux real time operating systems - Google Patents

A kind of dynamic priority scheduling algorithm based on linux real time operating systems Download PDF

Info

Publication number
CN107589993A
CN107589993A CN201710694888.7A CN201710694888A CN107589993A CN 107589993 A CN107589993 A CN 107589993A CN 201710694888 A CN201710694888 A CN 201710694888A CN 107589993 A CN107589993 A CN 107589993A
Authority
CN
China
Prior art keywords
task
time
real
algorithm
memory module
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
CN201710694888.7A
Other languages
Chinese (zh)
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.)
Zhengzhou Yunhai Information Technology Co Ltd
Original Assignee
Zhengzhou Yunhai Information Technology Co Ltd
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 Zhengzhou Yunhai Information Technology Co Ltd filed Critical Zhengzhou Yunhai Information Technology Co Ltd
Priority to CN201710694888.7A priority Critical patent/CN107589993A/en
Publication of CN107589993A publication Critical patent/CN107589993A/en
Pending legal-status Critical Current

Links

Landscapes

  • Memory System Of A Hierarchy Structure (AREA)

Abstract

本发明涉及一种基于linux实时操作系统的动态优先级调度算法,其特征在于,包括以下步骤:实时任务加入任务队列时,更新当前的恢复时间并获取当前任务的状态,实时任务进入缓存记忆模块;当实时任务超限时,调用SLAD或BACKSLASH算法,并在缓存记忆模块中计数;否则调用EDF算法,并在缓存记忆模块中计数;缓存记忆模块计算设定时间段内实时任务超限的频率;根据实时任务超限的频率决定直接调度SLAD或BACKSLASH算法,或者调度EDF算法,更新任务优先级和下次恢复时间。这样就在处理正常任务负载时有效的利用了EDF算法的优势,易于实现并且较少的占用处理器的资源。

The invention relates to a dynamic priority scheduling algorithm based on a linux real-time operating system, which is characterized in that it comprises the following steps: when a real-time task is added to the task queue, the current recovery time is updated and the state of the current task is obtained, and the real-time task enters the cache memory module ; When the real-time task exceeds the limit, call the SLAD or BACKSLASH algorithm, and count in the cache memory module; otherwise call the EDF algorithm, and count in the cache memory module; the cache memory module calculates the frequency of the real-time task overrun in the set time period; According to the frequency of real-time tasks exceeding the limit, it is decided to directly schedule the SLAD or BACKSLASH algorithm, or schedule the EDF algorithm, and update the task priority and next recovery time. In this way, the advantages of the EDF algorithm are effectively used when dealing with normal task loads, which are easy to implement and occupy less processor resources.

Description

一种基于linux实时操作系统的动态优先级调度算法A dynamic priority scheduling algorithm based on linux real-time operating system

技术领域technical field

本发明属于实时操作系统技术领域,具体涉及一种基于linux实时操作系统的动态优先级调度算法。The invention belongs to the technical field of real-time operating systems, and in particular relates to a dynamic priority scheduling algorithm based on a linux real-time operating system.

背景技术Background technique

在众多的实时操作系统中,基于Linux的实时操作系统,由于开放源代码,以及Linux系统的稳定性,日益受到人们的欢迎。但Linux本身并不是真正的实时操作系统,必须通过对Linux操作系统作相应的改进,提高它的实时性,使之具有满足实时系统要求的实时性和可靠性。Among many real-time operating systems, Linux-based real-time operating systems are increasingly popular due to the open source code and the stability of Linux systems. But Linux itself is not a real real-time operating system. It must improve its real-time performance by making corresponding improvements to the Linux operating system, so that it has the real-time and reliability that meet the requirements of real-time systems.

实时系统的行为正确性不仅取决于结算结果的正确性,还取决于得到这个结果所花费的时间。实时系统的基本特性是任务响应时间的确定性和系统处理任务的高吞吐量。实时系统的应用领域十分广泛,不同的应用对时间确定性的要求也不同。除了必须具备响应时间确定性以外,实时系统其它的重要特性包括并发性、可预测性和可靠性。并发性是指实时系统必须能够在规定时段内处理多个外部输入。可预测性实质上是对响应时间确定性的保证。外部输入的本质是并发和随机分布,每一个输入触发实时系统产生相应的动作,而这些动作的流程、所需的处理器时间是可预知的。只有在这种情况下才能保证响应时间的确定性。The correct behavior of a real-time system depends not only on the correctness of the settlement result, but also on the time it takes to obtain this result. The fundamental properties of real-time systems are the determinism of task response time and the high throughput of system processing tasks. The application fields of real-time systems are very extensive, and different applications have different requirements for time determinism. Besides having to have deterministic response times, other important properties of real-time systems include concurrency, predictability, and reliability. Concurrency means that a real-time system must be able to handle multiple external inputs within a specified period of time. Predictability is essentially a guarantee of response time determinism. The nature of external input is concurrency and random distribution. Each input triggers the real-time system to generate corresponding actions, and the flow of these actions and the required processor time are predictable. Deterministic response times are only guaranteed in this case.

实时调度算法是实时系统解决并发和保证可预测性的基本手段。实时调度算法根据调度策略为并发的外部输入确定处理顺序,并按照该顺序为每一个处理操作分配系统资源。实时调度算法的另一个主要功能是根据可调度条件确定系统现有资源是否满足处理操作的时间确定性。与通用调度算法不同,实时调度算法首先保证所有就绪处理操作均能在规定时限前结束,其次才是尽可能多地处理外部事件以提高系统的资源利用率。如何在保证时间确定性的前提下提高系统资源利用率是实时调度算法研究的热点问题。Real-time scheduling algorithm is the basic means for real-time systems to solve concurrency and ensure predictability. The real-time scheduling algorithm determines the processing sequence for the concurrent external input according to the scheduling strategy, and allocates system resources for each processing operation according to the sequence. Another main function of the real-time scheduling algorithm is to determine whether the existing resources of the system meet the time certainty of processing operations according to the schedulable conditions. Different from the general scheduling algorithm, the real-time scheduling algorithm first ensures that all ready processing operations can be completed before the specified time limit, and then processes as many external events as possible to improve the resource utilization of the system. How to improve the utilization of system resources on the premise of ensuring time determinism is a hot issue in the research of real-time scheduling algorithms.

经典的EDF(Earliest Deadline First)算法是一种基于优先级的动态调度算法,这种算法虽然能够保证在出现某个任务的最终期限不能满足之前,不存在处理器的空闲时间,从而尽可能的保证任务调度的实时性,理论上可对可调度负载进行优化,但它不能解决过载问题。一旦发生过载,就会导致CPU将大量时间花费在调度上,导致性能迅速退化。The classic EDF (Earliest Deadline First) algorithm is a priority-based dynamic scheduling algorithm. Although this algorithm can ensure that there is no idle time for the processor before the deadline of a certain task cannot be met, so as possible Guaranteeing the real-time nature of task scheduling can theoretically optimize the schedulable load, but it cannot solve the overload problem. Once overload occurs, it will cause the CPU to spend a lot of time on scheduling, resulting in rapid performance degradation.

另外,EDF调度算法采用的是非抢占式的调度策略,在内核分配给实时任务的时间片内,实时任务在执行时间到来之前就能完成了任务。这样,在空余的时间片内别的任务是不可以抢占内核,CPU在这一段的空闲时间内有可能是空闲的,这就会造成了实时任务的延误。另一方面一个实时任务超出任务执行时间后,任务并没有完成,则在下一周期内以当前的最高优先级继续抢占内核,会造成了后续的实时任务执行时间的顺延,由此形成的“多米诺骨牌”效应会使多个进程超出任务最后截止时间,而导致任务系统的崩溃。In addition, the EDF scheduling algorithm adopts a non-preemptive scheduling strategy. In the time slice allocated by the kernel to the real-time task, the real-time task can complete the task before the execution time arrives. In this way, other tasks cannot preempt the core in the spare time slice, and the CPU may be idle during this period of idle time, which will cause delays in real-time tasks. On the other hand, after a real-time task exceeds the task execution time and the task is not completed, it will continue to preempt the core with the current highest priority in the next cycle, which will cause the delay of the subsequent real-time task execution time, thus forming a "domino" The domino effect will cause multiple processes to exceed the deadline of the task, resulting in the collapse of the task system.

针对以上问题的出现,Lin和Brandt基于ISM思想,提出了SLAD(SLACK Donation)算法和BACKSLASH(BACK SLACK Donation)算法。ISM的思路是将实时任务分别分配到几个同级别服务级,各个服务按照一定比例分配CPU,如果某个服务上的实时任务超限继续运行下去,则占用该服务的CPU,并顺延该服务上的其它实时任务。这种策略不考虑任务间的影响,对减小截止期错失率DMR(deadline miss ratio)有一定效果。In response to the above problems, Lin and Brandt proposed the SLAD (SLACK Donation) algorithm and the BACKSLASH (BACK SLACK Donation) algorithm based on the ISM idea. The idea of ISM is to allocate real-time tasks to several service levels of the same level, and each service allocates CPU according to a certain ratio. If the real-time task on a service continues to run beyond the limit, the CPU of the service will be occupied and the service will be postponed. other real-time tasks on the This strategy does not consider the impact between tasks, and has a certain effect on reducing the deadline miss rate DMR (deadline miss ratio).

虽然SLAD和BACKSLASH算法可以让一个超预算的任务更好的动态分配剩余时间和在处理从下一个周期借入时间片,这样就能解决系统的实时任务(超限)overrun问题。但是由于对时限任务有一个预先的判断,以便决定是否采用动态分配剩余时间和在处理从下一个周期借入时间片。这样就会占用处理器的资源,当不是频繁出现实时任务超限的情况时;这种调度是效率不高的。Although the SLAD and BACKSLASH algorithms can allow an over-budget task to better dynamically allocate the remaining time and borrow time slices from the next cycle during processing, this can solve the real-time task (overrun) overrun problem of the system. However, because there is a pre-judgment for time-limited tasks, it is necessary to decide whether to use dynamic allocation of remaining time and borrow time slices from the next cycle during processing. This will occupy the resources of the processor, when the real-time task is not frequently exceeded; this kind of scheduling is not efficient.

由以上可知,上述两种类型算法单独应用于Linux实时操作系统中时,均无法满足实时系统要求的实时性和可靠性的要求。此为现有技术中的不足之处。It can be known from the above that when the above two types of algorithms are applied to the Linux real-time operating system alone, they cannot meet the real-time and reliability requirements of the real-time system. This is the weak point in the prior art.

发明内容Contents of the invention

本发明的目的在于,针对上述现有技术存在的问题,提出一种基于linux实时操作系统的动态优先级调度算法,以解决上述技术问题。The object of the present invention is, aim at the problem that above-mentioned prior art exists, propose a kind of dynamic priority scheduling algorithm based on linux real-time operating system, to solve above-mentioned technical problem.

为了达到上述目的,本发明的技术方案是:In order to achieve the above object, technical scheme of the present invention is:

一种基于linux实时操作系统的动态优先级调度算法,包括以下步骤:A kind of dynamic priority scheduling algorithm based on linux real-time operating system, comprises the following steps:

实时任务加入任务队列时,更新当前的释放时间并获取当前任务的状态,实时任务进入缓存记忆模块;When a real-time task is added to the task queue, the current release time is updated and the status of the current task is obtained, and the real-time task enters the cache memory module;

当实时任务超限时,调用SLAD或BACKSLASH算法,并在缓存记忆模块中计数;否则调用EDF算法,并在缓存记忆模块中计数;When the real-time task exceeds the limit, call the SLAD or BACKSLASH algorithm and count in the cache memory module; otherwise call the EDF algorithm and count in the cache memory module;

缓存记忆模块计算设定时间段内实时任务超限的频率;根据实时任务超限的频率决定直接调度SLAD或BACKSLASH算法,或者调度EDF算法,更新任务优先级和下次恢复时间。The cache memory module calculates the frequency of real-time tasks exceeding the limit within a set period of time; according to the frequency of real-time tasks exceeding the limit, it decides to directly schedule the SLAD or BACKSLASH algorithm, or schedule the EDF algorithm, and update the task priority and next recovery time.

所述设定时间段为若干工作周期。The set time period is several working cycles.

进一步的,该算法还包括以下步骤:Further, the algorithm also includes the following steps:

在所有状态任务中选取一个优先级最高的任务作为抢占任务,在有效状态的任务中选取优先级最高的任务作为可能切换的任务;Select a task with the highest priority among all state tasks as the preemptive task, and select the task with the highest priority among the tasks in the effective state as the task that may be switched;

判断若可能切换的任务和抢占任务相同,则下一次作业调度时间设置为可能切换任务的释放时间,否则将可能切换任务的释放时间和抢占任务的释放时间比较,较小值作为下一次作业调度时间;Judging that if the task that may be switched is the same as the preempting task, the next job scheduling time is set as the release time of the possible switching task, otherwise the release time of the possible switching task is compared with the release time of the preempting task, and the smaller value is used as the next job scheduling time;

进行作业切换。Perform job switching.

进一步的,缓存记忆模块设置一个任务期望e,用来对剩余的时间片和可能会借入的时间片的情况做预先的判断,当任务的期望越高,调度SLAD算法或BACKSLASH算法级别就越高;对期望e设置了KC系数,用来对期望e做出调节。Furthermore, the cache memory module sets a task expectation e, which is used to pre-judge the remaining time slices and possible borrowed time slices. When the task expectation is higher, the scheduling SLAD algorithm or BACKSLASH algorithm level is higher. ; The K C coefficient is set for the expected e, which is used to adjust the expected e.

进一步的,0≤KC≤1,根据设定时间发生分配剩余时间和借入时间片的任务的概率动态的分配;若设定时间内完全不发生上述这种任务,这个系数KC的值就会取0,直接调用EDF算法。Further, 0 ≤ K C ≤ 1, according to the probability of assigning the remaining time and borrowing time slice tasks in the set time, the dynamic allocation is done; if the above tasks do not occur at all within the set time, the value of this coefficient K C will be It will take 0 and directly call the EDF algorithm.

进一步的,SLAD算法优先级计算公式是:Further, the formula for calculating the priority of the SLAD algorithm is:

vdeadline=[t/p]*p+d 式(1)vdeadline=[t/p]*p+d formula (1)

BACKSLASH算法优先级计算公式是:The formula for calculating the priority of the BACKSLASH algorithm is:

vdeadline=ds,k-[(ds,k-t)/p]*p 式(2)vdeadline=d s,k -[(d s,k -t)/p]*p formula (2)

其中,t为当前时间,p为该任务周期,d为该任务周期内截止期限,vdeadline最小的任务优先级最高。Among them, t is the current time, p is the task period, d is the deadline in the task period, and the task with the smallest vdeadline has the highest priority.

进一步的,EDF算法任务集可调度的条件为:Further, the schedulable conditions of the EDF algorithm task set are:

任务集τ={T1,T2,…Tn},其中Ti=(ei,di,pi,ri),ei表示周期内的执行时间,di表示完成实现,pi表示周期大小,ri表示该任务的初始释放时刻,即任务投入运行的时刻;Task set τ={T 1 , T 2 ,…Tn}, where T i =(e i , d i , p i , r i ), e i represents the execution time in the cycle, d i represents the completion of realization, p i Indicates the period size, r i indicates the initial release time of the task, that is, the time when the task is put into operation;

其中ei,di,pi为正实数,ri为非负实数;任务周期与截止实现相同,即di=ri时, Where e i , d i , p i are positive real numbers, and ri is a non-negative real number; the task period is the same as the cut-off implementation, that is, when d i = r i ,

本发明的有益效果在于,缓存记忆模块根据一段时间内发生的实时任务超限的频率决定直接调度SLAD或BACKSLASH算法,反之调用EDF调度算法。这样就在处理正常任务负载时有效的利用了EDF算法的优势,易于实现并且较少的占用处理器的资源。在直接调度SLAD或BACKSLASH算法时它能高效的处理实时任务的超限问题。缓存记忆模块设置任务期望e,它用来对剩余的时间片和可能会借入的时间片的情况做出一个预先的判断。当这种任务(分配剩余时间和借入时间片)的期望越高,它所给与调度SLAD或BACKSLASH算法级别就越高。在通常的情况之下这种任务也许并不会频繁的发生。于是对期望e设置了一个KC系数,它用来对期望e做出一个调节,它根据一段时间发生这种任务的概率所动态的分配。当一段时间完全不发生这种任务,这个系数KC的值就会取0。从而转入到直接调用EDF算法。很好的解决了传统算法所不能解决的过载问题,并保证了系统调度的正确性和实时性,大大提高了系统的调度效率。The beneficial effect of the present invention is that the cache memory module decides to directly schedule the SLAD or BACKSLASH algorithm according to the frequency of the overrun of the real-time task occurring within a period of time, and vice versa calls the EDF scheduling algorithm. In this way, the advantages of the EDF algorithm are effectively used when dealing with normal task loads, which are easy to implement and occupy less processor resources. When directly scheduling SLAD or BACKSLASH algorithms, it can efficiently handle the overrun problem of real-time tasks. The cache memory module sets the task expectation e, which is used to make a pre-judgment on the remaining time slices and possible borrowed time slices. When the expectation of this kind of task (allocation of remaining time and borrowing time slice) is higher, the scheduling SLAD or BACKSLASH algorithm level it gives is higher. Under normal circumstances, such tasks may not occur frequently. Therefore, a K C coefficient is set for the expectation e, which is used to adjust the expectation e, and it is dynamically allocated according to the probability of such a task occurring in a period of time. When this task does not occur at all for a period of time, the value of this coefficient K C will take 0. Thus, it is transferred to directly calling the EDF algorithm. It solves the overload problem that cannot be solved by traditional algorithms, and ensures the correctness and real-time performance of system scheduling, greatly improving the scheduling efficiency of the system.

此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。In addition, the design principle of the present invention is reliable, the structure is simple, and has very wide application prospects.

由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。It can be seen that, compared with the prior art, the present invention has outstanding substantive features and remarkable progress, and the beneficial effects of its implementation are also obvious.

附图说明Description of drawings

图1为本发明提供的一种基于linux实时操作系统的动态优先级调度算法的算法流程图。FIG. 1 is an algorithm flow chart of a dynamic priority scheduling algorithm based on a linux real-time operating system provided by the present invention.

具体实施方式detailed description

下面结合附图并通过具体实施例对本发明进行详细阐述,以下实施例是对本发明的解释,而本发明并不局限于以下实施方式。The present invention will be described in detail below with reference to the accompanying drawings and specific embodiments. The following embodiments are explanations of the present invention, but the present invention is not limited to the following embodiments.

如图1所示,本实施例提供的一种基于linux实时操作系统的动态优先级调度算法,包括以下步骤:As shown in Figure 1, a kind of dynamic priority scheduling algorithm based on linux real-time operating system provided by the present embodiment comprises the following steps:

实时任务加入任务队列时,更新当前的释放时间并获取当前任务的状态,实时任务进入缓存记忆模块;When a real-time task is added to the task queue, the current release time is updated and the status of the current task is obtained, and the real-time task enters the cache memory module;

当实时任务超限时,调用SLAD或BACKSLASH算法,并在缓存记忆模块中计数;否则调用EDF算法,并在缓存记忆模块中计数;When the real-time task exceeds the limit, call the SLAD or BACKSLASH algorithm and count in the cache memory module; otherwise call the EDF algorithm and count in the cache memory module;

缓存记忆模块计算设定时间段内实时任务超限的频率;根据实时任务超限的频率决定直接调度SLAD或BACKSLASH算法,或者调度EDF算法,更新任务优先级和下次恢复时间。所述设定时间段为若干工作周期。The cache memory module calculates the frequency of real-time tasks exceeding the limit within a set period of time; according to the frequency of real-time tasks exceeding the limit, it decides to directly schedule the SLAD or BACKSLASH algorithm, or schedule the EDF algorithm, and update the task priority and next recovery time. The set time period is several working cycles.

任务调度算法具体步骤如下:The specific steps of the task scheduling algorithm are as follows:

步骤31:实时任务加入任务队列时更新当前的时间释放时间获取当前任务的状态,实时任务进入缓存记忆模块环节KC*e;Step 31: When the real-time task is added to the task queue, update the current time release time to obtain the status of the current task, and the real-time task enters the cache memory module link K C *e;

步骤32:根据缓存记录的任务过载和正常调度的次数,判断实时任务是否超限选择更新任务优先级的方法;Step 32: According to the number of task overload and normal scheduling recorded in the cache, determine whether the real-time task exceeds the limit and select a method for updating the task priority;

步骤33:更新任务优先级后,根据任务本周期的工作状态将任务进行分类,对于一个周期没有完成工作的任务,状态设为active,对于一个周期完成工作的任务状态设为inactive;Step 33: After updating the task priority, classify the tasks according to the working status of the tasks in this cycle. For the tasks that have not completed the work in one cycle, the state is set to active, and for the tasks that have completed the work in one cycle, the state is set to inactive;

步骤34:在所有的active状态的任务中选取一个优先级最高的任务作为可能切换的任务,并保存到next变量中,在所有状态任务中选取一个优先级最高的任务作为抢占任务,并保存到preemptor变量中,判断,若变量next和变量preemptor相等,则下一次作业调度时间将变量preempt_time设置为变量next的释放时间resume-time,否则将变量preempt_time设置为next的释放时间resume-time和preemptor的释放时间resume-time比较,较小值作为下一次作业调度时间;进行作业切换。Step 34: Select a task with the highest priority among all active state tasks as a possible switching task, and save it in the next variable, select a task with the highest priority among all state tasks as the preemptive task, and save it in In the preemptor variable, judge that if the variable next is equal to the variable preemptor, the next job scheduling time will set the variable preempt_time to the release time resume-time of the variable next, otherwise set the variable preempt_time to the release time resume-time of next and the release time of the preemptor Release time resume-time comparison, the smaller value is used as the next job scheduling time; perform job switching.

选择更新任务优先级的方法包括:Options for updating task priorities include:

若实时任务超限时调用SLAD算法更新任务优先级,并对记忆环节累加计数;若实时任务没有超限时调用EDF算法更新任务优先级,同时对记忆环节累加计数。If the real-time task exceeds the limit, the SLAD algorithm is called to update the task priority, and the memory link is counted up; if the real-time task is not overrun, the EDF algorithm is called to update the task priority, and the memory link is counted up.

缓存记忆模块设置一个任务期望e,用来对剩余的时间片和可能会借入的时间片的情况做预先的判断,当任务的期望越高,调度SLAD级别就越高;对期望e设置了一个KC系数,用来对期望e做出一个调节。The cache memory module sets a task expectation e, which is used to pre-judge the remaining time slices and the time slices that may be borrowed. When the task expectation is higher, the scheduling SLAD level is higher; set a task expectation e The K C coefficient is used to make an adjustment to the expected e.

0≤KC≤1,根据设定时间发生分配剩余时间和借入时间片的任务的概率动态的分配;若设定时间内完全不发生上述这种任务,这个系数KC的值就会取0,直接调用EDF算法。0≤K C ≤1, according to the probability of assigning the remaining time and the task of borrowing time slices according to the set time; if the above tasks do not occur at all within the set time, the value of this coefficient K C will be 0 , call the EDF algorithm directly.

SLAD算法优先级计算公式是:The formula for calculating the priority of the SLAD algorithm is:

vdeadline=[t/p]*p+dvdeadline=[t/p]*p+d

其中,t为当前时间,p为该任务周期,d为该任务周期内截止期限,vdeadline最小的任务优先级最高。Among them, t is the current time, p is the task period, d is the deadline in the task period, and the task with the smallest vdeadline has the highest priority.

EDF算法任务集可调度的条件为:The schedulable conditions for the EDF algorithm task set are:

任务集τ={T1,T2,…Tn},其中Ti=(ei,di,pi,ri),ei表示周期内的执行时间,di表示完成实现,pi表示周期大小,ri表示该任务的初始释放时刻,即任务投入运行的时刻;Task set τ={T 1 , T 2 ,…Tn}, where T i =(e i , d i , p i , r i ), e i represents the execution time in the cycle, d i represents the completion of realization, p i Indicates the period size, r i indicates the initial release time of the task, that is, the time when the task is put into operation;

其中ei,di,pi为正实数,ri为非负实数;任务周期与截止实现相同,即di=ri时, Where e i , d i , p i are positive real numbers, and ri is a non-negative real number; the task period is the same as the cut-off implementation, that is, when d i = r i ,

以上公开的仅为本发明的优选实施方式,但本发明并非局限于此,任何本领域的技术人员能思之的没有创造性的变化,以及在不脱离本发明原理前提下所作的若干改进和润饰,都应落在本发明的保护范围内。The above disclosure is only a preferred embodiment of the present invention, but the present invention is not limited thereto, any non-creative changes that those skilled in the art can think of, and some improvements and modifications made without departing from the principle of the present invention , should fall within the protection scope of the present invention.

Claims (6)

1. a kind of dynamic priority scheduling algorithm based on linux real time operating systems, it is characterised in that comprise the following steps:
When real-time task adds task queue, update current release time and obtain the state of current task, real-time task is entered Enter to cache memory module;
When real-time task transfinites, SLAD or BACKSLASH algorithms are called, and counted in memory module is cached;Otherwise call EDF algorithms, and counted in memory module is cached;
Caching memory module calculates the frequency that real-time task transfinites in setting time section;The frequency to be transfinited according to real-time task determines SLAD or BACKSLASH algorithms, or scheduling EDF algorithms are directly dispatched, updates task priority and next recovery time.
2. a kind of dynamic priority scheduling algorithm based on linux real time operating systems according to claim 1, its feature It is, the algorithm is further comprising the steps of:
The task of a highest priority is chosen in all state tasks as task is seized, is selected in the task of effective status The task of highest priority is taken as may switching for task;
If judging, may the switching of the task is identical with task is seized, next time the job scheduling time be arranged to that task may be switched Release time, the release time that otherwise will likely switch task and the release time for seizing task compare, under smaller value is used as One-stop operation scheduling time;Carry out operation switching.
3. a kind of dynamic priority scheduling algorithm based on linux real time operating systems according to claim 2, its feature It is, caching memory module sets a task it is expected e, for the feelings to remaining timeslice and the timeslice that may be borrowed Condition does advance judgement, and when the expectation of task is higher, scheduling SLAD algorithms or BACKSLASH algorithm ranks are higher;To it is expected e There is provided KCCoefficient, for it is expected that e makes regulation.
4. a kind of dynamic priority scheduling algorithm based on linux real time operating systems according to claim 3, its feature It is, 0≤KC≤ 1, the probability that distribution remaining time occurs according to setting time and borrows the task of timeslice dynamically distributes; If above-mentioned this task, this COEFFICIENT K does not occur in setting time completelyCValue will take 0, directly invoke EDF algorithms.
5. a kind of dynamic priority scheduling algorithm based on linux real time operating systems according to claim 1, its feature It is,
SLAD algorithm priority calculation formula are:
Vdeadline=[t/p] * p+d formulas (1)
BACKSLASH algorithm priority calculation formula are:
Vdeadline=ds,k-[(ds,k- t)/p] * p formulas (2)
Wherein, t is current time, and p is the duty cycle, and d is deadline in the duty cycle, and vdeadline is minimum to be appointed Business highest priority.
6. a kind of dynamic priority scheduling algorithm based on linux real time operating systems according to claim 1, its feature It is,
The condition of EDF algorithm task-set schedulable is:
Task-set τ={ T1,T2... Tn }, wherein Ti=(ei,di,pi,ri), eiRepresent the execution time in the cycle, diRepresent Into realization, piRepresent cycle size, riThe initial release moment of the task is represented, i.e., at the time of task puts into operation;
Wherein ei,di,piFor arithmetic number, riFor nonnegative real number;Duty cycle realizes identical, i.e. d with cut-offi=riWhen,
CN201710694888.7A 2017-08-15 2017-08-15 A kind of dynamic priority scheduling algorithm based on linux real time operating systems Pending CN107589993A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710694888.7A CN107589993A (en) 2017-08-15 2017-08-15 A kind of dynamic priority scheduling algorithm based on linux real time operating systems

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710694888.7A CN107589993A (en) 2017-08-15 2017-08-15 A kind of dynamic priority scheduling algorithm based on linux real time operating systems

Publications (1)

Publication Number Publication Date
CN107589993A true CN107589993A (en) 2018-01-16

Family

ID=61043146

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710694888.7A Pending CN107589993A (en) 2017-08-15 2017-08-15 A kind of dynamic priority scheduling algorithm based on linux real time operating systems

Country Status (1)

Country Link
CN (1) CN107589993A (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109165089A (en) * 2018-09-21 2019-01-08 成都理工大学 A kind of overload real-time system based on MaxSAT optimal solution can not preemption scheduling method
CN111176637A (en) * 2019-12-11 2020-05-19 西北工业大学 Schedulability analysis method of AADL model based on cache preemption delay constraint
CN113010273A (en) * 2021-03-23 2021-06-22 河北冀联人力资源服务集团有限公司 Human resource data distributed task processing method and system
CN113296874A (en) * 2020-05-29 2021-08-24 阿里巴巴集团控股有限公司 Task scheduling method, computing device and storage medium

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5995745A (en) * 1996-12-23 1999-11-30 Yodaiken; Victor J. Adding real-time support to general purpose operating systems
CN101339521A (en) * 2008-07-28 2009-01-07 华中科技大学 A Dynamic Scheduling Algorithm of Task Priority
CN102779047A (en) * 2012-07-09 2012-11-14 哈尔滨工程大学 Embedded software support platform

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5995745A (en) * 1996-12-23 1999-11-30 Yodaiken; Victor J. Adding real-time support to general purpose operating systems
CN101339521A (en) * 2008-07-28 2009-01-07 华中科技大学 A Dynamic Scheduling Algorithm of Task Priority
CN102779047A (en) * 2012-07-09 2012-11-14 哈尔滨工程大学 Embedded software support platform

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
余祖峰 等: ""EDF调度算法的实时性改进"", 《广西工学院学报》 *
余祖峰: ""嵌入式Lunux操作系统调度算法研究"", 《中国优秀硕士学位论文全文数据库 信息科技辑》 *
余祖峰等: ""基于ISM的动态优先级调度算法"", 《计算机工程》 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109165089A (en) * 2018-09-21 2019-01-08 成都理工大学 A kind of overload real-time system based on MaxSAT optimal solution can not preemption scheduling method
CN109165089B (en) * 2018-09-21 2021-10-29 成都理工大学 A non-preemptive scheduling method for overloaded real-time systems based on MaxSAT optimal solution
CN111176637A (en) * 2019-12-11 2020-05-19 西北工业大学 Schedulability analysis method of AADL model based on cache preemption delay constraint
CN111176637B (en) * 2019-12-11 2023-01-13 西北工业大学 Schedulability analysis method of AADL model based on cache preemption delay constraint
CN113296874A (en) * 2020-05-29 2021-08-24 阿里巴巴集团控股有限公司 Task scheduling method, computing device and storage medium
CN113296874B (en) * 2020-05-29 2022-06-21 阿里巴巴集团控股有限公司 Task scheduling method, computing device and storage medium
CN113010273A (en) * 2021-03-23 2021-06-22 河北冀联人力资源服务集团有限公司 Human resource data distributed task processing method and system
CN113010273B (en) * 2021-03-23 2022-07-19 河北冀联人力资源服务集团有限公司 Human resource data distributed task processing method and system

Similar Documents

Publication Publication Date Title
Singh et al. An optimized round robin scheduling algorithm for CPU scheduling
JP5311732B2 (en) Scheduling in multi-core architecture
US8056083B2 (en) Dividing a computer job into micro-jobs for execution
WO2016078178A1 (en) Virtual cpu scheduling method
CN101887383B (en) Process real-time scheduling method
CN101339521A (en) A Dynamic Scheduling Algorithm of Task Priority
CN107589993A (en) A kind of dynamic priority scheduling algorithm based on linux real time operating systems
US20120297216A1 (en) Dynamically selecting active polling or timed waits
CN106776395B (en) A kind of method for scheduling task and device of shared cluster
CN106569891A (en) Method and device for carrying out task scheduling in storage system
CN107341041A (en) Cloud task Multi-dimensional constraint backfill dispatching method based on Priority Queues
JP2011501309A (en) Managing preemption in real-time operating systems
Stavrinides et al. Scheduling single-task jobs along with bag-of-task-chains in distributed systems
CN118132271A (en) Asynchronous application execution system and method for embedded software interface
Garg Real-time linux kernel scheduler
EP2038747A1 (en) Computer micro-jobs
Manickam et al. A fair and efficient gang scheduling algorithm for multicore processors
CN106325983A (en) Micro program model has less memory usage and supporting concurrence, and scheduling method
Erickson et al. Reducing tardiness under global scheduling by splitting jobs
Xu et al. Multi resource scheduling with task cloning in heterogeneous clusters
Komarasamy et al. Deadline constrained adaptive multilevel scheduling system in cloud environment
De Sensi et al. State-aware concurrency throttling
CN107301085B (en) Queue-based cloud platform task allocation method
WO2017099863A1 (en) Method and apparatus for time-based scheduling of tasks
JP2015041199A (en) Information processing apparatus

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20180116

RJ01 Rejection of invention patent application after publication