ros2--实时性--preempt-rt
教程
ros2实时编程:
中文官网
官网解析文章
什么是实时性
实时性是指调度的时候,任务响应时间。
也就是任务从产生到被执行的时间。
实时性任务
就是需要在特定时间内完成和响应的任务。
实时性需求--linux系统实时性
链接
preempt-rt实时内核是什么
所谓的内核就是操作系统的核心部分,不完全等于操作系统。
PREEMPT-RT 实时内核是 Linux 内核的一个衍生版本,它被设计用于提供更好的实时性能和可预测性。
PREEMPT-RT 内核通过实时调度程序和内核抢占,实现了更快的响应时间,更好的实时性能和更好的可预测性。它可以在不影响系统常规操作的情况下,捕获和处理实时响应事件。与标准 Linux 内核不同,在 PREEMPT-RT 中,内核可以在任何时间停止执行一个任务并切换到另一个任务,以确保实时任务获得优先级。
PREEMPT-RT 内核的特点包括:
-
低延迟和更好的实时性能,可以在实时系统中实现更好的精度和控制
-
通过实时调度程序使任务的调度更可预测
-
内核和设备驱动程序可以在任何时候实时响应输入事件
-
实现了内核抢占,以支持多任务并行
-
内核代码更容易维护和调试
PREEMPT-RT 适用于需要更好实时性能的 Linux 系统,比如航空、军事、工业机器人、汽车和医疗设备等领域。Ros2的Dashing 和 Eloquent 版本都支持 PREEMPT-RT 实时内核。
preempt-rt
preemptible: 抢占;
rt: real time;
preempt-rt: 实时抢占内核。
“PREEMPT” 是一种操作系统调度技术,指当高优先级的任务到来时,操作系统可以在低优先级任务运行的任何时候中断它,并迅速地处理高优先级任务,以提高系统的实时性和响应性。
“RT” 是实时(Real-Time)的缩写,通常指在某些时间限制内完全响应某个事件或指令的能力。在计算机系统中,实时性是指需要在特定时间限制内完成响应的任务,比如航空控制、工业控制、医疗设备等领域。成为实时操作系统,需要保证内核和用户空间的最大响应时间不超过某个最大值。实时性还意味着,需要在给定时间上限内完成工作,因此,实时任务的预测性和可靠性也很重要。
所以preempt-rt内核就是通过以实时任务为高优先级任务,先处理实时任务的方式来提高任务的实时性。
PREEMPT_RT补丁
PREEMPT-RT 补丁是一段针对 Linux 内核源代码的修改文件,补丁本身就是一组代码。该补丁集包含了对 Linux 内核的一系列修改和增强,以提高系统的实时性和可预测性。在应用 PREEMPT-RT 补丁集时,需要将其应用到 Linux 内核源代码中,然后将整个内核代码重新编译生成新的内核镜像,以便使用者能够在其系统上运行更加实时化的操作系统。
PREEMPT_RT补丁的主要目标是减少Linux内核的不可抢占性(non-preemptibility),即减少内核运行时不可被中断的时间。通过将关键的内核代码段和操作转换为可抢占的形式,PREEMPT_RT使得实时任务能够在特定时间约束下得到及时响应。
(preempt-rt: 将)
链接
PREEMPT_RT的安装
中文官网