首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么在诸如preempt-rt内核这样的RTOS上响应时间是确定的?

为什么在诸如preempt-rt内核这样的RTOS上响应时间是确定的?
EN

Stack Overflow用户
提问于 2020-12-12 22:40:42
回答 1查看 153关注 0票数 0

为什么在诸如preempt-rt内核这样的RTOS上响应时间是确定的?preempt-rt中的哪些特性与vanilla内核中的特性不同?

我寻找了原因,我发现它与“自旋锁”有关。然而,我无法理解“自旋锁定”是什么,以及它是如何影响响应时间的。

EN

回答 1

Stack Overflow用户

发布于 2020-12-14 01:44:41

回答“为什么RTOS上的响应时间是确定性的?”和自旋锁没什么关系。Spinlock(至少部分地)回答了另一个问题“为什么默认Linux内核的响应时间是不确定的?”

典型的RTOS调度器使用基于优先级的抢占策略和本身具有确定性的内核代码。也就是说,对于在上下文切换、中断延迟和内核调用中花费的CPU时间,它提供了严格的、有界的和通常较短的保证。它通过避免繁忙等待(自旋锁)和禁用中断(至少在无限周期内)来实现这一点。

默认的Linux调度器没有提供这些保证,部分原因是使用了自旋锁。PREEMPT_RT内核支持基于优先级的抢占式内核调度,并将内核中的一些自旋锁替换为互斥锁以提高确定性。默认的SCHED_OTHER策略是一个简单的时间片调度程序,本质上是不确定的,不适合实时。SCHED_FIFO、SCHED_RR和SCHED_DEADLINE提供了更适合实时系统的调度策略,但仍然是针对内核的调度策略,该内核本身从未为硬实时确定性而设计,这会导致诸如自旋锁失败的构造。PREEMPT_RT解决了内核中不确定行为的主要原因,但并没有真正使Linux成为实时操作系统。具体地说,中断响应仍然存在并出现问题。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65266168

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档