深入Linux内核架构-进程管理和调度(十二)-实时调度类

本文深入探讨Linux内核的实时调度类,包括SCHED_RR和SCHED_FIFO。实时进程具有高于普通进程的优先级,调度器优先选择运行实时进程。实时进程的数据结构、调度算法及调度器操作如进程入队、离队、选择下一个执行进程等进行了详细阐述,并介绍了如何通过sched_setscheduler进行实时调度设置。
摘要由CSDN通过智能技术生成

一、实时调度类

按照POSIX标准的强制要求,除了“普通”进程之外, Linux还支持两种实时调度类。调度器结构使得实时进程可以平滑地集成到内核中,而无需修改核心调度器,这是调度类带来的好处。

实时进程的特点在于其优先级比普通进程高,对应地,其static_prio值总是比普通进程低。rt_task通过检查其优先级来证实给定进程是否是实时进程,而task_has_rt_policy则检测进程是否关联到实时调度策略。

1、性质

实时进程与普通进程有一个根本的不同之处:如果系统中有一个实时进程且可运行,那么调度器总是会选中它运行,除非有另一个优先级更高的实时进程。

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

循环进程( SCHED_RR)有时间片,其值在进程运行时会减少,就像是普通进程。在所有的时间段都到期后,则该值重置为初始值,而进程则置于队列的末尾。这确保了在有几个优先级相同的SCHED_RR进程的情况下,它们总是依次执行。

先进先出进程( SCHED_FIFO)没有时间片,在被调度器选择执行后,可以运行任意长时间。

如果实时进程编写得比

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值