14. RT

您所在的位置:网站首页 pg279qhdmi接口14还是20 14. RT

14. RT

2024-07-14 13:25| 来源: 网络整理| 查看: 265

14. RT-Linux¶

本章配套视频介绍:

《23-在鲁班猫上使用实时RT-Linux》

https://www.bilibili.com/video/BV1Js4y1B7jd/

RT-Linux是一个基于Linux内核的实时操作系统,它结合了Linux操作系统的通用性和实时性能,为开发者提供了一个统一的平台来开发实时应用程序。

RT-Linux的核心是Linux内核的一个实时扩展,它为实时任务提供了必要的调度机制和时间管理。 通过采用抢占式调度策略,高优先级的实时任务可以打断低优先级的任务,确保实时任务能够及时响应。 RT-Linux对任务的调度和中断处理进行了改进,使得任务能够按照预定的时间要求执行。

RT-Linux适用于对时间要求敏感的应用领域,例如工业自动化、机器人控制、航空航天系统等。 它可以提供精确的任务调度和快速的响应时间,以确保系统能够在实时任务的要求下正常运行。

与传统的Linux内核相比,RT-Linux在实时性能方面有所提升,但它并不是一个硬实时系统,无法保证任务的执行时间绝对精确。 对于对时间要求极高的应用,可能需要采用更专门的实时操作系统。

RT-Linux兼容Linux操作系统的通用性,可以利用Linux生态系统中的各种工具和库进行开发。 开发者可以使用广泛的开发工具和资源来构建实时应用程序,从而提高开发效率。

注解

鲁班猫的内核也支持RT-Linux,使用PREEMPT_RT补丁对内核进行修改。

14.1. 鲁班猫RT-Linux安装方法¶ 14.1.1. 在线更新内核¶

卸载旧的内核:因为旧的内核不兼容RT-Linux,所以要把他卸载

1 2#卸载旧内核 sudo apt remove linux-headers-4.19.232 linux-image-4.19.232

获取RT-Linux内核

1 2#在线安装新内核 sudo apt install linux-headers-4.19.232-rt104 linux-image-4.19.232-rt104

重启生效内核

1reboot 14.2. 鲁班猫RT-Linux测试¶ 14.2.1. cyclictest¶

Cyclictest是一个用于测试Linux系统实时性能的工具,它能够测量系统的响应时间和时钟精度。Cyclictest通过创建周期性的负载来评估系统在实时任务处理方面的能力。

注意

该测试为带载测试,负载很大,ssh登录的话,可能会无法进入控制台和显示信息,所以推荐使用串口root登录,下面的命令都是依照串口root登录来写的

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29#apt更新软件包 apt update #安装工具 apt install -y python git #下载cyclictest的源码 git clone https://github.com/jlelli/rt-tests.git #进入源码目录 cd rt-tests #编译源码(如果有报错,应该是依赖没弄好,根据缺失的依赖安装即可) make -j4 #负载测试(该方法需要在rt-tests目录下面执行) ./cyclictest -t 4 -p 99 -n -m -d 0 & ./hackbench -l -1 -g 15 -f 25 -P & #空载测试(该方法需要在rt-tests目录下面执行) ./cyclictest -t 4 -p 99 -n -m -d 0 #安装到/usr/bin中(该选项可选) make install #负载测试(该选项可选,可在其他目录下执行) cyclictest -t 4 -p 99 -n -m -d 0 & hackbench -l -1 -g 15 -f 25 -P & #空载测试(该选项可选,可在其他目录下执行) cyclictest -t 4 -p 99 -n -m -d 0

hackbench -l -1 -g 15 -f 25 -P 是用来制作负载的

-l -1: 表示hackbench将以无限循环方式运行,不会自动退出。

-g 15: 设置每个进程组(group)的进程数量为15。每个进程组将会生成一组进程进行通信。

-f 25: 设置每个进程组之间的父子关系的数量为25。这决定了进程组之间的通信方式。

-P: 使用多个CPU核心来运行测试,以模拟多核系统的情况。

cyclictest -t 4 -p 99 -n -m -d 0

-t 4: 指定使用4个线程进行测试。每个线程将创建一个周期性负载。

-p 99: 设置线程的优先级为99,这是最高的实时优先级。使用最高优先级可以更好地测试系统的实时性能。

-n: 在测试期间禁止休眠。这将防止系统进入休眠状态,以保持系统处于活跃状态。

-m: 运行测试前锁定内存。这将防止测试期间的内存分页错误,并提供更一致的测试结果。

-d 0: 禁用延迟输出。这将阻止输出每个线程的详细延迟数据,只显示测试的总体统计信息

14.2.2. cyclictest测试结果(无桌面镜像)¶

RT-Linux满载的情况下,跑了174447434us(174447秒,约等于两天),稳定性比较好,最大的延迟为58us,平均延迟为21us

RT-Linux在目前的测试中,最大的延迟时间测试到为71us,如下图

RT-Linux空载的情况下

可以看到在空负载下,平均延迟仅有10us不到,最大延迟不超过71

正常linux满载下

正常linux空载下

14.2.3. cyclictest测试结果(带桌面镜像)¶

带桌面的镜像cyclictest的测试比较差,系统还没有完全适配



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3