RTOS (实时操作系统)

  • 什么是实时操作系统?

实时操作系统要求在一个触发信号到来之后能够在一个确定的时间点之前进行响应处理。它与普通的非实时操作系统区别在于:普通操作系统的响应延时受系统负载影响较大,轻负载时可能会满足响应的要求,但是在负载变大的时候响应会变慢,并且这个响应时间是不确定的。因此一个足够快的系统不代表是一个实时操作系统,实时系统必须要求在负载变化的情况下依然能够满足确定的响应时间,如果无法在确定的时候下完成响应,那么会导致系统错误。

  • 实时操作系统的特点?

低延迟,高可靠性。

  • Linux是不是一个实时操作系统?

常规意义上来讲,Linux并不算是一个实时操作系统,它并没有很强的实时处理能力,但是如果加入了PREEMTP_RT补丁后,它可以成为一个实时操作系统。PREEMTP_RT补丁并不属于内核主线,不同内核版本都有对应的PREEMTP_RT补丁,它是由单独项目维护的(Real-Time Linux Project)。我们需要先下载并打上PREEMTP_RT补丁,然后重新配置内核的实时抢占模型,重新编译后才能成为一个实时系统。经过打上补丁,PREEMTP_RT Linux是可以达到硬实时需求的。

硬实时和软实时

实时操作系统分为两种,硬实时和软实时。这两种可以根据实时需求应用在不同的环境中:

  • 硬实时要求极低的响应延迟,否则会导致严重的后果,比如航空航天和工业控制、汽车制动控制系统等,要求特别高的确定性和可靠性。代表产品:vxwork

  • 软实时也要求低延迟和确定的响应时间,但可靠性要求没有硬实时那么高,即使违反截止期限并不会带来严重的后果,比如实时视频流的处理,最多的后果就是视频帧丢失和卡顿。

Preemption Model (抢占模型)

Linux内核主线中的关于Preemption Model(抢占模型)的配置有三种:

Preemption Model:

  • No Forced Preemption (Server)

The traditional Linux preemption model, geared towards throughput . System call returns and interrupts are the only preemption points.

  • Voluntary Kernel Preemption (Desktop)

This option reduces the latency of the kernel by adding more “explicit preemption points” to the kernel code [. . . ] at the cost of slightly lower throughput . In addition to explicit preemption points, system call returns and interrupt returns are implicit preemption points.

  • Preemptible Kernel (Low-Latency Desktop)

This option reduces the latency of the kernel by making all kernel code (that is not executing in a critical section) preemptible 3). An implicit preemption point is located after each preemption disable section.

以上三种是内核中自带的配置,但是这三种都达不到作为一个实时操作系统的低延迟要求,这也就是为什么前面说常规Linux不是一个实时操作系统。

RT Linux中定义了两种更加注重实时性的抢占模型,需要内核打上PREEMPT_RT patch才能看到:

  • Preemptible Kernel (Basic RT): 基础实时系统

This preemption model resembles the “Preemptible Kernel (Low-Latency Desktop)” model. Besides the properties mentioned above, threaded interrupt handlers are forced (as when using the kernel command line parameter threadirqs). This model is mainly used for testing and debugging of substitution mechanisms implemented by the PREEMPT_RT patch.

  • Fully Preemptible Kernel (RT): 实时系统

All kernel code is preemptible except for a few selected critical sections. Threaded interrupt handlers are forced. Furthermore several substitution mechanisms like sleeping spinlocks and rt_mutex are implemented to reduce preemption disabled sections. Additionally, large preemption disabled sections are substituted by separate locking constructs. This preemption model has to be selected in order to obtain real-time behavior.

如何配置实时抢占Linux内核

下载


wget https://www.kernel.org/pub/linux/kernel/v4.x/linux-4.4.12.tar.xz
wget https://www.kernel.org/pub/linux/kernel/projects/rt/4.4/patch-4.4.12-rt19.patch.xz

配置内核

配置内核为完全实时模型(Fully Preemptible Kernel )


CONFIG_PREEMPT_RT_FULL

编译运行

编译和运行和普通的内核一样。

参考链接:

Real-Time Linux Wiki:https://rt.wiki.kernel.org/index.php/Main_Page

Real-Time Linux Project:https://wiki.linuxfoundation.org/realtime/start

RT Preempt Linux简介相关推荐

  1. 教程:1、Linux简介

    Linux简介 Linux是一个多用户多任务的分时操作系统,支持多种处理器架构. 为程序分配系统资源,处理计算机内部细节的软件叫做操作系统或者内核. 用户通过Shell与Linux内核交互.Shell ...

  2. Kali Linux 安全渗透教程第四更1.3 Kali Linux简介

    1.3  Kali Linux简介 Kali Linux的前身是BackTrack Linux发行版.Kali Linux是一个基于Debian的Linux发行版,包括很多安全和取证方面的相关工具.它 ...

  3. linux 简介各发行版

    一.Linux 简介 Linux 内核最初只是由芬兰人李纳斯·托瓦兹(Linus Torvalds)在大学上学时出于个人爱好而编写的. Linux 是一套免费使用和自由传播的类 Unix 操作系统,是 ...

  4. linux的rt补丁安装,微软发布补丁封杀允许Surface RT安装Linux的“漏洞”

    2012年诞生的Surface RT平板机就产品而言挺悲剧的,基于ARM架构跑Windows RT操作系统,但是不兼容x86环境,导致产品和市场定位混乱,消费者也很迷茫,最终在经历了两代之后就回到了x ...

  5. Linux简介之——目录与文件管理

    Linux简介之--目录与文件管理 一.目录与文件管理 1.目录与文件管理 2.常见的子目录 二.查看文件内容:cat 1.直接显示出整个文件的内容 2.常用选项 三.查看文件内容:more 1.全屏 ...

  6. linux实验简介,实验1 Linux简介和基本使用.doc

    实验1 Linux简介和基本使用 嗽鼎院纽艇捉虱抱煌拼劝凰珍纬铅哈联壮赘甘贿苦冯涝考市副烈轰党牧眠妖诱淀常涵赠钨寒嫉谢厘虾侍展怠赠峰殉择空杠供何芜笼蛹懦邯纲俞绎庸庚危围甘懈抽尼安嘶携窜傈骆捉帚四望雍替 ...

  7. linux服务器知识学习:linux简介与linux的发行版

    Linux 简介: Linux内核最初只是由芬兰人李纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的. Linux是一套免费使用和自由传播的类Unix操作系统,是一 ...

  8. Kali Linux简介

    今天开始给大家介绍渗透测试相关知识,本文主要内容是Kali Linux简介. 免责声明: 本文所介绍的内容仅做学习交流使用,严禁利用文中技术进行非法行为,否则造成一切严重后果自负! 一.什么是Kali ...

  9. Linux简介与安装

    文章目录 Linux简介 Linux简介 开源软件简介 Linux应用领域 Linux与Windows的不同 Linxu字符界面的优势 Linux系统安装 虚拟机安装 VMware的特点: 建议配置 ...

  10. 第一章 老虎Linux简介

    第一章 老虎Linux简介 第一章 老虎Linux简介1.简介2.讲师3.面向人群4.课程风格5.听课小建议6.联系我们吧 1.简介 老虎Linux主要讲解Linux及架构等一些相关知识,让大家从零开 ...

最新文章

  1. [原创]WildPackets Omnipeek介绍
  2. VS2017增加数据库连接串
  3. python应用于财务-用6行python代码做一个财务机器人
  4. 调剂2002年计算机科学与技术,教育部关于做好2002年全国研究生录取工作的通知...
  5. mysql 一对多 join_Mysql中FIND_IN_SET与JOIN在一对多关系查询时的优劣
  6. (39)FPGA原语设计(IDDR)
  7. 使用fastJson把对象转字符串首字母大小写问题的解决
  8. 任正非:华为不会拆分;以色列公司称可解锁所有 iOS 设备;Java 13 要来了! | 极客头条...
  9. function adapter bind(C++11)
  10. 编写自己的tomcat, 并运行tomcat源码于eclipse中
  11. atitit 部门日常工作流程体系 日常日程表 日常工作内容列表清单.docx
  12. ubuntu18.04下opencv用CPU编译全过程
  13. opencv矩阵转eigen_矩阵迹运算介绍及C++/OpenCV/Eigen的三种实现
  14. iOS:项目中无用类检测和无用图片检测汇总
  15. 不疯魔不成活,还是偏执狂?
  16. 数据库表结构设计,什么是概念模型、逻辑模型、物理模型
  17. 【求回答】如何在mac上使用pip?zsh: command not found: pip
  18. 【JVM · 字节码】指令集 解析说明
  19. CTF线下赛AWD攻防准备
  20. 特殊矩阵——对称矩阵(Symmetric Matrix)

热门文章

  1. SQL server中函数依赖,完全与部分函数依赖,平凡和非平凡函数依赖
  2. CF235C-Cyclical Quest
  3. Linux内核“问题门” - 学习问题、经验集锦
  4. Java如何处理参数中带特殊符号的请求?
  5. 【CSS】笔记4-浮动、切图、学成在线
  6. 学习笔记(8):ArcGIS10.X入门实战视频教程(GIS思维)-矢量数据数量分级显示、图表显示,多属性、lyr保存
  7. 微博怎么批量取消所有的关注
  8. Ajax关于readyState和status
  9. IE浏览器闪退、自动打开Edge浏览器
  10. python切片练习(League of Legends)