41、实时内核要求与Linux实时路径解析

实时内核要求与Linux实时路径解析

1. 实时内核的常见要求

1.1 细粒度可抢占内核

实时行为要求系统能够尽早且正确地对内部和外部事件做出反应。因此,实时内核需要能够尽快从低优先级上下文切换到需要关注的高优先级任务。这个切换所需的时间被称为抢占粒度,而等待挂起的重新调度发生的最长时间则定义了内核的最坏情况调度延迟。

早期的Linux 2.4系列通过不同的补丁解决了这个问题,在核心代码中引入了任务调度的机会。此前,新任务只能在内核上下文退出时才能被调度。后来,Robert Love提出的可抢占内核支持方法在Linux 2.5开发阶段被合并到主线内核,并成为Linux 2.6的标准特性,平均而言,它显著提高了可抢占性。

然而,任务之间的并发仍然不够理想。只要系统上的任何任务持有独占资源,内核抢占就会全局禁用,即使没有其他任务会竞争相同的资源。这导致只有平均延迟有所改善,最坏情况延迟仍然不符合硬实时要求。可以用一个交通类比来说明这个限制:想象一个城市的所有汽车(任务)都会因为一个十字路口(独占资源)的单个交通灯(抢占禁用锁)而被阻挡。解决这个限制的方法是让每个独占资源的获取和释放真正独立于其他资源,这也是PREEMPT_RT努力的一个基本方面。

1.2 严格执行的任务优先级

即使使用细粒度可抢占内核,被抢占的低优先级任务可能会长时间持有独占资源,导致请求相同资源的高优先级任务严重延迟,这就是优先级反转的例子。由于独占资源在Linux内核中广泛分布,遇到优先级反转的可能性相当高。这个问题必须通过特定的操作系统技术来解决,例如优先级继承或优先级上限,以确保这种反转是短暂且有时间限制的,甚至不会发生。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值