0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

详解实时操作系统和非实时操作系统

玩转嵌入式 来源:小麦大叔 2023-12-26 09:54 次阅读

实时操作系统:ucOS/VxWorks/RTLinux

非实时操作系统:Linux/Windows/OSX

1 实时操作系统

实时操作系统,当外界事件和数据产生时,系统能以足够快的速度予以处理,其处理结果能在规定的时间内控制生产结果或对系统做出响应,并控制所有实时任务协调一致运行的操作系统。

在下图中右边的任务优先级("优先级")高于左边的任务,先看实时操作系统的,当优先级更高的任务2就绪的时候,即便任务1正在运行中,也必须立刻交出CPU的使用权,就跟中断一样,先执行任务2,等任务2执行完或者主动挂起(sleep)让出CPU的时候,任务1才能接着运行。

33625b84-a37e-11ee-8b88-92fbcf53809c.jpg

实时操作系统,一般分为硬实时和软实时,硬实时指的是在规定的时间内必须完成任务操作,在操作系统设计时保证;

软实时只要按照任务的优先级,尽可能地完成任务操作即可。

硬实时操作系统

完全满足在指定时间内完成关键行为

硬实时操作系统严格规定了限定时间内必须完成任务,否则会导致严重后果发生。如在自动驾驶场景下,车辆前置摄像头模块,短距长距雷达及助力转向等模块需要连续采集处理数据,并通过算法输出决策行为。其中,系统必须在指定时间内完成对输入的采集数据完成运算及处理,并完成输出。

假设方向盘转角,节气门等驾驶相关控制信号若无法确保实时性,自动驾驶系统的安全性将无法保证。

常见的硬实时操作系统有VxWorks,ThreadX、FreeRTOS、ucOS。

值得提一句的是,VxWorks是世界范围内现役航天,航海,飞机,坦克自动化控制部分使用范围最广的实时操作系统,包括国内网上热度最高的几种军事设备也同使用了此系统。

软实时操作系统

大多数情况下在指定时间内完成关键行为

软实时系统对处理事件的时间要求是统计学预期,即使在处理过程中偶发出现了时间偏差,也不会对系统造成致命后果。

如IP电视解码视频流数据时,可能会出现数据帧的丢失,但即使了,仅是用户视觉上的体验影响,或通过抖动处理,就可以解决图像上的视觉感知问题。

多任务
系统提供了多任务运行机制,系统内核通过调度让CPU运行许多外部事件线程,实现任务的并发性。

抢占调度
系统具有继承的优先级和抢占式内核属性,在执行某一项任务的时候,若有更高优先级的任务进入可执行态,系统将会立即抢占当前CPU资源,退出低优先级任务,运行高优先级任务。

任务间的通讯和同步
实时系统中,可能存在许多任务作为一个应用的部分执行,系统必须提供这些任务间的通讯机制,有效地共享不可抢占的资源或者临界区所需要的同步机制。

任务与中断之间的通信
在真实应用场景中,事件通常作为中断的方式到来,为了系统调度的稳定、提供有效的排队和减小中断服务程序的开销,通常希望在任务级线程处理相应工作,所以需要任务与中断之间的通信。

2 非实时操作系统(分时操作系统)

再看看我们的Linux/Windows/OSX这些基于时间片轮转的操作系统遇到这种问题的时候会怎么样呢,毫无疑问它们都是非实时的操作系统,CPU是不可抢占的,从上图可以看到,即便高优先级的任务就绪了,也不能马上中断低优先级任务而得到执行,必须要等到低优先级任务主动挂起(sleep)或者时间片结束才能得到执行。

所以我们在使用PC的时候经常会遇到应用程序无响应的问题。即硬件资源被其他任务占用,本任务得不到立即执行。

3376c060-a37e-11ee-8b88-92fbcf53809c.jpg

学习过程中最常见的操作系统是通用操作系统,即Windows、Unix、Linux等,此类系统由分时操作系统发展而来。

分时操作系统的基本设计原则是:尽量缩短系统的平均响应时间并提高系统的吞吐率,在单位时间内为尽可能多的用户请求提供服务。

因而相比实时操作系统,非实时操作系统更关注系统平均性能,在响应时间上,非实时操作系统注重所有任务的平均响应时间,也就是说,它注重所有任务的平均响应时间而不关心单个任务的响应时间,针对某单个任务,也是注重每次执行的平均响应时间而不关心某次特定执行的响应时间。

Windows作为最常使用的通用操作系统,支持系统管理多用户多进程的系统资源。

与实时操作系统的内核抢占机制不同的是,分时操作系统内核不可抢占,无论优先级多高的任务,都必须等当前CPU任务完成或当前任务主动退出后才可以执行。

想必都有体会的是,当CPU空闲时,电脑系统运行流畅,但当后台执行补丁下载或杀毒时,一旦CPU进入高负荷状态,操作系统就会出现运行卡顿甚至死机的问题。

计算机同时为多个用户任务服务的操作系统,操作系统以时间片轮询的机制,将系统处理时间与内存按照一定是时间间隔,轮流执行任务,实现任务的调度和执行。

由于间隔时间很短,每个用户的任务感觉独占计算机一样,保证用户任务的响应和执行。

交互性
用户和系统进行人机对话。

多路性
多用户在各自终端上使用同一个CPU。

独立性
用户可以独立操作,互不干扰,互不混淆。

及时性
用户在短时间内可以得到系统的及时应答。

两类操作系统的主要区别在于任务调度处理方式不同,常用的任务调度方式有两种:基于任务优先级的任务调度方式和基于时间片的任务调度方式:

基于任务优先级的调度方式:一旦内核把资源分配给某进程后,便让该进程一直执行,直到该进程完成或发生某事件而被阻塞(常见的方式主动调用delay),才再把处理机分配给其他进程,否则高优先级的任务会一直运行。所以这种情况下,如果某个高优先级的任务运行时间过长最好有阻塞机制,来让出CPU使其他低优先级的任务也有机会运行。

基于时间片的调度方式:这种方式下,所有任务的优先级相同,当内核给该进程分配的时间片结束后,内核会停止正在执行的这个进程,下一个时间片分配给其他进程执行,即便这个任务没有执行完也没有主动delay自己。

因此非实时操作系统与实时操作系统相比,最直接的差别

当内核处于相对消耗状态时,非实时操作系统处理延时会增加,甚至无法保证最高优先级任务执行的最后时限。

为满足实时性与可靠性,车辆ECU目前绝大多数模块都为实时操作系统,近年来Infotainment,Tbox,ADAS部分处理模块,中央网关及所谓的域控制器也逐步使用了Linux等分时系统来拓展部分功能,并配合相关实时操作系统来组合实现某些车载功能,使得车辆因引入了大数据分析,安全渗透分析等能力后实现了更深程度的智能化。

文章来源:小麦大叔

审核编辑:汤梓红
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • cpu
    cpu
    +关注

    关注

    68

    文章

    10854

    浏览量

    211568
  • Linux
    +关注

    关注

    87

    文章

    11292

    浏览量

    209318
  • WINDOWS
    +关注

    关注

    3

    文章

    3541

    浏览量

    88617
  • 操作系统
    +关注

    关注

    37

    文章

    6801

    浏览量

    123280
  • 实时操作系统

    关注

    1

    文章

    197

    浏览量

    30753

原文标题:实时和非实时操作系统有什么区别?

文章出处:【微信号:玩转嵌入式,微信公众号:玩转嵌入式】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    实时操作系统和分时操作系统的区别

    操作系统能否满足实时性要求来区分,可把操作系统分成分时操作系统实时操作系统,分时操作系统按照
    发表于 11-14 17:39 1.3w次阅读

    什么是实时操作系统(RTOS)

    实时操作系统(RTOS)是一种专为实时应用程序设计的操作系统实时应用程序需要在特定时间内做出预测的响应,因此 RTOS 专注于提供对时间约
    的头像 发表于 11-23 17:14 5941次阅读

    #硬声创作季 操作系统操作系统的发展:实时操作系统

    操作系统实时操作系统
    Mr_haohao
    发布于 :2022年10月16日 12:55:03

    NuttX实时操作系统

    (嵌入式 实时操作系统 rtos nuttx 7.1)NuttX 介绍转载请注明出处: NuttX 实时操作系统NuttX 是一个实时
    发表于 08-06 07:53

    uCOS-II实时操作系统实时操作系统与分时操作系统的区别是什么

    文章目录1简介1uCOS-II中的任务1简介uCOS-II实时操作系统实时操作系统与分时操作系统的区别:分时
    发表于 12-14 06:42

    嵌入式实时操作系统教程

    嵌入式实时操作系统教程:以VRTX为对象详细介绍了嵌入式实时操作系统的原理和应用,特别是第一部分关于嵌入式实时
    发表于 04-19 21:55 44次下载
    嵌入式<b class='flag-5'>实时</b><b class='flag-5'>操作系统</b>教程

    国内著名的实时操作系统有哪些?

    国内著名的实时操作系统   国内的实时操作系统研究开发有两种类型。  一类是中国自主开发的实时
    发表于 06-17 00:37 6983次阅读

    BenOS实时操作系统解密

    BenOS实时操作系统解密BenOS实时操作系统解密BenOS实时操作系统解密BenOS
    发表于 01-12 10:54 5次下载

    高效实时操作系统设计

    基于STM34f4开发的高效实时操作系统
    发表于 05-11 14:54 26次下载

    实时操作系统特性的讨论

    嵌入式实时系统中采用的操作系统我们称为嵌入式实时操作系统,它既是嵌入式操作系统,又是
    的头像 发表于 09-30 09:31 5157次阅读

    实时操作系统的特点_实时操作系统的组成

    本文主要阐述了实时操作系统的特点及组成。实时操作系统(RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理
    发表于 09-01 16:48 5131次阅读

    实时操作系统实时操作系统的区别

    本文主要阐述了实时操作系统实时操作系统的区别。
    发表于 09-02 15:58 1.1w次阅读

    什么是分时操作系统,Linux属于实时操作系统吗?

    我们平时分享的µC/OS、FreeRTOS、RT-Thread、ThreadX这些都是实时操作系统(RTOS),那么有读者问:什么是分时操作系统,Linux属于实时
    的头像 发表于 06-23 17:04 9118次阅读

    实时操作系统

    实时操作系统(Real Time Operating System,简称RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或
    的头像 发表于 11-17 20:42 1368次阅读

    带你认识实时操作系统(rtos)

    实时操作系统(RTOS)是为嵌入式系统实时应用提供一个稳定、可预测和高效运行环境的操作系统实时
    的头像 发表于 04-16 16:30 1246次阅读
    带你认识<b class='flag-5'>实时</b><b class='flag-5'>操作系统</b>(rtos)