首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >preempt_rt的缺点

preempt_rt的缺点
EN

Stack Overflow用户
提问于 2012-04-06 10:59:35
回答 2查看 18K关注 0票数 16

目标硬件平台

的马力有限,并且/或您希望实时作业将最小的开销放在系统上。这就是双内核通常比本地抢占系统更好的地方。

出发地:http://www.xenomai.org/index.php/Xenomai:Roadmap#Xenomai_3_FAQ

Preempt_rt确实抢先了整个Linux。先发制人的Linux以什么方式给系统带来了负载?

在那里的FAQ谈论的preempt_rt与Xenomai相比。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-04-09 10:57:56

CONFIG_PREEMPT_VOLUNTARY -

代码语言:javascript
复制
             This option introduces checks to the most common causes of long latencies in the kernel code, so that the kernel can voluntarily yield control to a higher priority task waiting to execute. This option is said to be reducing the occurrances of long latencies to a great degree but still it doesn't eliminate them totally.

CONFIG_PREEMPT_RT -

代码语言:javascript
复制
             This option causes all kernel code outside of spinlock-protected regions (created by raw\_spinlock\_t), to be eligible for non-voluntary preemption by higher priority kernel threads. Spinlocks created by spinlock\_t and rwlock\_t, and the interrupts are also made preemptable with this option enabled. With this option, worst case latency drops to (around) single digit milliseconds.

劣势-

代码语言:javascript
复制
             The normal Linux kernel allows preemption of a task by a higher priority task only when the user space code is getting executed. 

为了减少延迟,CONFIG_PREEMPT_RT补丁迫使内核在较高的优势内核任务到达时,非自愿地抢占手头的任务。这必然会降低系统的总体吞吐量,因为会有几个上下文切换,而优先级较低的任务也没有多少机会通过

来源:https://rt.wiki.kernel.org/index.php/Frequently_Asked_Questions

对使用的__技术术语的描述:

什么是延迟

计算机系统上发出的请求与响应同一需求的开始之间的时间称为延迟或响应时间。

各种延迟:

  • Interrupt延迟

从产生中断到开始执行相应的中断处理程序之间的时间。

当硬件设备执行任务时,它会产生一个中断。此中断包含有关要执行的任务和要执行的中断处理程序的信息。然后,中断处理程序执行特定任务。

  • Scheduling延迟

从一个事件发生的唤醒信号到内核调度程序有机会调度等待唤醒的线程之间的时间(响应)。调度延迟也称为调度延迟。

  • Worst-case延迟

从计算机系统发出的需求到开始响应同一需求之间的最长时间。--

什么是吞吐量

计算机在给定时间内所能完成的工作量称为吞吐量。

什么是上下文切换

上下文切换是CPU从一个进程/线程切换到另一个进程/线程。上下文切换只能在内核模式下进行。这是保存进程当前执行状态的过程(以便稍后恢复执行),并加载新进程/线程的保存状态以供执行。

票数 19
EN

Stack Overflow用户

发布于 2018-05-04 23:57:46

增加最重要的投票答案“低优先级的任务不会有太多的机会通过”

这就是关键所在(尽管在4+核心系统上,那些低优先级的任务仍然可以运行,只要它们被禁止做那些会干扰关键任务的事情-这一点很重要,因为能够确保所有连接的外围设备在运行关键线程的应用程序想访问它们时不阻塞,这一点很重要)。关键位(例如,如果考虑开发一个有用的系统来及时处理外部输入,或者测试数据转换的行为,而不是使用模型),则需要有一种方法来告诉内核时间关键输入是从哪里来的。

当前的问题。Windows系统是指你可能是一个“严肃的玩家或严肃的音乐家”,注意到150微秒的紧张状态。如果您无法指定键盘、鼠标或其他人机界面设备应被以关键优先级处理,那么所有类型的"windows更新“之类的东西都会出现并执行它们的操作,这可能会触发USB控制器中的一些活动,这些活动的优先级高于与执行输入相关的线程。

我读到过这样一种情况,即通过添加第二个USB控制器来解决音频中的故障,除了输入设备之外,任何东西都没有。在便携环境中,您实际上需要Thunderbolt PCIe通入来添加一个专用集线器(或fpga),它可以与驱动程序一起覆盖系统上的所有其他内容。这就是为什么市场上没有足够多的USB产品为音乐家提供足够好的表演。(2 ms往返延迟,全天最大150微秒抖动,无辍学)

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

https://stackoverflow.com/questions/10042550

复制
相关文章

相似问题

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