rk3568 RT-LINUX 测试

news2025/1/31 20:09:00

G5501 产品详情

主线Linux是软实时系统,加入实时补丁后将其改造为硬实时系统。RT-LINUX 特点如下:

可抢占性

实现实时内核很重要的特点是可抢占性,就绪的高优先级的任务能够抢占低优先级任务。

进程调度策略

Linux内核支持实时进程和非实时进程调度(无PREEMPT_RT补丁支持也是支持实时进程调度,只是软实时,有补丁后就是硬实时)。

对于Linux进程任务来说,Linux 内核实现了多种调度策略。它们分为非实时和实时策略。调度策略已经在主线 Linux 中实现。

非实时策略:

SCHED_OTHER:每个任务都有一个所谓的“nice值”。它是一个介于 -20(最高 nice 值)和 19(最低 nice 值)之间的值。任务执行时间的平均值取决于相关的 nice 值。SCHED_BATCH:此策略源自 SCHED_OTHER 并针对吞吐量进行了优化。SCHED_IDLE:它也是从 SCHED_OTHER 派生的,但它的值比 19 弱。

实时策略:

SCHED_FIFO:任务的优先级介于 1(低)和 99(高)之间。在此策略下运行的任务将被调度,直到它完成或更高优先级的任务抢占它。SCHED_RR:此策略源自 SCHED_FIFO。与 SCHED_FIFO 的区别在于任务在定义的时间片的持续时间内运行(如果它没有被更高优先级的任务抢占)。一旦时间片用完,它可以被具有相同优先级的任务中断。时间片定义在 procfs (/proc/sys/kernel/sched_rr_timeslice_ms) 中导出。SCHED_DEADLINE:此策略实施全局最早deadline优先 (GEDF) 算法。在此策略下调度的任务可以抢占使用 SCHED_FIFO 或 SCHED_RR 调度的任何任务。

高分辨率定时器

中断线程化自旋锁spinlock_t改为互斥锁rt_mutex,要使用自旋锁则使用raw_spinlock_t

打入PREEMPT_RT后内核抢占模型配置则会多了如下两项:

Preemptible Kernel (Basic RT):这种抢占模型类似于“抢占内核(低延迟桌面)”模型。除了上面提到的属性外,线程中断处理程序是强制的(就像使用内核命令行参数时一样threadirqs)。该模型主要用于 PREEMPT_RT 补丁实现的替代机制的测试和调试。

Fully Preemptible Kernel (Real-Time):除了少数选定的关键部分之外,所有内核代码都是可抢占的。线程中断处理程序是强制的。此外,还实现了几种替代机制,如睡眠自旋锁和 rt_mutex,以减少抢占禁用部分。此外,大的抢占禁用部分被单独的锁定结构取代。必须选择这种抢占模型以获得硬实时行为。

图片

图片

G5501 测试

hackbench 可用于生成系统负载,同时使用cyclictest测量延迟。

图片

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

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

  • -g 15: 定义启动多少组发送者和接受者。

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

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

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

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

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

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

图片

可以  看到

T: 0 序号为0的线程    P: 0 线程优先级为0

I: 1000 时间间隔为1000微秒(us) C: 计数器。线程的时间间隔每达到一次,计数器加1。上面的图位5784673us即94分钟。

Min: 最小延时(us) 8    Act: 最近一次的延时(us) 20    Avg:平均延时(us) 22      Max:最大延时(us) 72

得出RT-Linux的实时性:

最大的延迟时间测试到为76us  平均延迟为27us

这个实时性 是 很优越的,跑ethercat 没有压力。

硬件 参数  :G5501 产品详情

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1094033.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Java-lambda表达式与流处理

文章目录 一、lambda表达式二、方法引用三、Stream流 一、lambda表达式 在Java中,Lambda表达式是一种函数式编程的特性,它允许以简洁的语法编写函数或操作,而无需显式创建匿名类。Lambda表达式在Java 8中引入,是使Java更适应现代编…

RabbitMQ从0到1完整学习笔记一:《基础篇》

目录 启篇 一、初识MQ 1.1 同步调用 1.2异步调用 1.3 技术选型 二、RabbitMQ 架构 2.2 收发消息 2.2.1 交换机 2.2.2 队列 2.2.3 绑定关系 2.2.4 发送消息 2.3 数据隔离 2.3.1 用户管理 2.3.2 virtual host 三、SpringAMQP 3.1 案例入门 3.1.1 导入依赖 3.1.2 消息发送 3.1.2 消…

IIS 部署.NetCore,最细步骤

服务器安装环境 将.net core程序部署到IIS总体需要经过以下3个大步骤&#xff0c;其中在IIS上配置网站有些比较繁琐&#xff0c;我都会逐一给出详细步骤。 <1>安装IIS和.NetCORE运行时程序 <2>以文件的形式发布.NETCORE程序到指定目录 <3>IIS上面建立网站…

【BiLSTM-Adaboost预测】基于双向长短期记忆网络的Adaboost时间序列预测研究(matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

【LeetCode: 137. 只出现一次的数字 II | 位运算 | 哈希表】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

综述:大规模小目标检测

论文地址: Towards Large-Scale Small Object Detection: Survey and Benchmarks​arxiv.org/abs/2207.14096 目录 摘要 1.Introduction 1.1 与之前综述的比较 1.2 总结 2.小目标检测回顾 2.1 问题定义 2.2 主要挑战 2.3 小目标检测算法回顾 3.小目标检测的数据集 …

java网上商城购物网站管理系统69bz5 用户 会员springboot+vue

主要目的是通过网络平台方便商家进行商品订单管理并让客户有更好的购物体验。以商家在后端提供商品供客户在前端商城选购&#xff0c;客户将所需的商品加入购物车&#xff0c;然后通过结算购物车功能填写相应信息生成订单&#xff0c;付款以后再由商家在后端接收到订单进行处理…

自动驾驶中的数据安全和隐私

自动驾驶技术的发展已经改变了我们的出行方式&#xff0c;但伴随着这项技术的普及&#xff0c;数据安全和隐私问题也变得愈发重要。本文将探讨自动驾驶中的数据收集、数据隐私和安全挑战&#xff0c;以及如何保护自动驾驶系统的数据。 自动驾驶中的数据收集 在自动驾驶技术中…

深入理解 JVM(重点:双亲委派模型 + 垃圾回收算法)

一、什么是 JVM&#xff1f; JVM 是 Java Virtual Machine 的简称&#xff0c;意为 Java虚拟机。虚拟机是指通过软件模拟的具有完整硬件功能的、运行在一个完全隔离的环境中的完整计算机系统。可以认为 JVM 是一台被定制过的现实当中不存在的计算机&#xff0c;Java程序最终是…

Tuxera NTFS for Mac2024最新中文版本下载

如果你想用U盘在Mac和其他设备之间传输文件&#xff0c;可能会遇到一些问题。因为Mac系统支持的U盘格式和其他系统不同&#xff0c;而且苹果电脑对U盘的读写权限也有一定的限制。那么&#xff0c;Mac系统支持什么格式的U盘呢&#xff1f;苹果电脑读写权限怎么开启呢&#xff1f…

前端打包项目上线-nginx

第一步&#xff1a;下载nginx。 直接下载 nginx/Windows-1.25.2 pgp 第二步&#xff1a;解压zip包 第三步&#xff1a;打开文件夹&#xff0c;把http里的路径打开cmd 第四步&#xff1a;打开你的http-server服务&#xff0c;没有下载去下一次就ok了 打开后就可以访问了 第五步…

黑豹程序员-页面录音-在vue页面中进行录音wav/mp3

功能 在vue页面中进行录音wav/mp3 效果图 官网展示页面 https://recorder.zhuyuntao.cn/ 安装组件 npm i js-audio-recorder 测试页面 <template><h3>录音时长&#xff1a;{{ recorder.duration.toFixed(4) }}</h3><el-row><el-button type…

QE01/QA11/QA02屏幕增强

1、业务需求 需要对来料检验增加“合格数量”和“不合格数量”字段&#xff0c;涉及三个增强开发 2、QE01\QE02\QE03\QE51N屏幕增强 增强表 增强点BADI&#xff1a;QEEM_SUBSCREEN_5000 创建程序&#xff0c;包含子屏幕&#xff0c;在增强点中调用 在程序屏幕中绘制字段 在输…

【CNN-GRU预测】基于卷积神经网络-门控循环单元的单维时间序列预测研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

Redux 错误处理

Redux 错误处理 这两天正好收尾一个 Redux 页面的重构&#xff0c;碰到了一些错误处理的方式&#xff0c;这里就写个笔记总结一下碰到的问题和几种处理方式 大体上是分为同步函数和异步函数两个方面去处理 同步函数 这个是指的是直接在 reducer 中进行操作&#xff0c;可以…

基于springboot实现医疗服务系统项目【项目源码+论文说明】计算机毕业设计

摘要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 医疗服务系统&#xff0c;主要的模块包括查看管理员&#xff1b;首页、个人中心、普通村民管理、乡村医生管理、公告信息管理、乡村诊室管理、…

抖音店铺提供优质服务|成都瀚网科技

抖音是中国领先的电子商务平台。为了帮助商家增加销量和品牌曝光度&#xff0c;抖音推出了精选联盟计划。精选联盟是由优质商家组成的联盟&#xff0c;旨在为消费者提供更多优质、高性价比的产品选择。那么&#xff0c;如何使用抖店开通精选联盟呢&#xff1f;这将在下面详细描…

计算机中了360后缀勒索病毒怎么办?360勒索病毒解密数据恢复

最近一段时间360后缀勒索病毒变得异常嚣张&#xff0c;时不时就会攻击企业的计算机服务器&#xff0c;导致众多的企业服务器被360后缀勒索病毒攻击。360后缀的勒索病毒并非360公司&#xff0c;是黑客专门具有针对性地研发的勒索病毒&#xff0c;通过加密企业的计算机给企业带来…

Docker容器与虚拟化技术:DaoCloud账户注册

目录 一、实验 1.DaoCloud 一、实验 1.DaoCloud &#xff08;1&#xff09;概念 DaoCloud是企业级容器云平台&#xff0c;它提供了一套容器集群解决方案&#xff0c;Daocloud可以管理你的计算资源&#xff0c;包括物理机和公有云环境&#xff0c;你可以在DaoCloud平台上部…

基于springboot实现音乐网站与分享平台项目【项目源码+论文说明】计算机毕业设计

摘要 本论文主要论述了如何使用JAVA语言开发一个音乐网站与分享平台 &#xff0c;本系统将严格按照软件开发流程进行各个阶段的工作&#xff0c;采用B/S架构&#xff0c;面向对象编程思想进行项目开发。在引言中&#xff0c;作者将论述音乐网站与分享平台的当前背景以及系统开…