python - 如何使用树莓派 PREEMPT_RT 补丁让进程实时运行?

标签 python c raspberry-pi real-time rtos

我已经使用 PREEMPT_RT 补丁修补了我的 Raspbian 操作系统,以使我的操作系统可抢占。如何使我的应用程序之一实时运行? (可加载内核模块等)

最佳答案

Linux 中的进程已经可以通过循环时间切片来抢占。 PREEMPT_RT 补丁的作用是支持基于优先级的抢占。这是最高优先级的就绪线程,直到它阻塞或被更高优先级的就绪线程抢占为止。如果没有 PREEMPT_RT,更高优先级的线程只会被分配更多和/或更大的时间片。 (有些简单的描述 - Linux 调度比实践中稍微复杂一些)。

进程不会通过在实时操作系统甚至 PREEMPT_RT 上运行而神奇地变成“实时”。这些只是提供实时支持 - 您的应用程序仍然必须适当设计才能满足实时期限。来自 Real-time Linux Wiki FAQ :

A bad designed application on non-RT will never behave realtime on RT.

您可以使用 chrt 设置现有进程的优先级和调度策略。但正如所解释的,以高优先级运行进程并不一定使其成为“实时”。最坏的情况是您的进程占用处理器,以致其他任何程序都无法运行。

关于python - 如何使用树莓派 PREEMPT_RT 补丁让进程实时运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57421474/

相关文章:

python - 计算嵌套列表中的元素出现次数

python - VS代码: How to debug Flask app that uses Connexion?

c - 当用户未给出大小时求数组的总和,

c - 如何创建 const 结构数组

c++ - 如何让KDevelop使用c风格的注释?

python - 如何使用 QtWebEngine 在 Raspberry Pi 上安装 PySide2/PyQt5?

python - Django url 重定向不起作用

python - Django 测试 : RequestFactory() follow redirect

Raspberry 上的 node.js]Pi 未显示任何终端输出

Linux 驱动程序。仅读取 IOCTL 命令有效