Advertisement

深入Linux内核架构中的进程与调度机制(第十二部分):实时调度

阅读量:

一、实时调度类

基于POSIX标准的硬性规定,在 Linux 系统中除了常规进程之外还提供了两种特殊的实时调度机制。通过 scheduler 架构设计的优化,在 Linux 内核中实现了对实时进程的无缝整合,并且这一特性使得即使在不修改原有 core scheduler 的情况下也能达到预期效果。这种 scheduler 结构带来的显著优势在于其能够在不影响现有系统运行的前提下实现对更高优先级任务的支持。

实时进程的一个显著特点是其Priority值高于普通进程的Priority值,在这种情况下相应的static_prio值较低。rt_task通过检查Priority值来确定指定进程是否属于实时进程,并且task_has_rt_policy用于检测该进程中是否存在与实时调度策略相关的配置设置。

1、性质

在本质上, 实时进程中与普通进程中存在一个显著的区别: 当系统中存在一个可运行的实时进程中时(简称实程), 调度器必然会选择该实程进行执行(简称为选中), 除非存在另一个具有更高优先级的实程任一.

现有的两种实时类,不同之处如下所示。

循环进程中使用SCHED_RR算法具备时间段机制,在该算法下每个循环进程中都有固定的时间片数值,在运行过程中此时间片数值会在逐步减少的趋势下趋近于零状态;当所有时间段均达到截止时,则时间片数值被归零,并将对应的循环进程安置到队列末尾处;从

全部评论 (0)

还没有任何评论哟~