【STM32】入门(十二):实时操作系统RTOS和通用操作系统GPOS的区别

【STM32】STM32单片机总目录

1、简述

实时操作系统(RTOS,Real Time Operating System)
通用操作系统(GPOS,General Purpose Operating System)

2、区别

1)任务
实时操作系统:使用分时设计,其中每个任务被分配一小段时间,在切换到另一任务之前执行其指令。 切换过程尽可能快,从而使用户感觉不到任务执行被延迟,专注于计算吞吐量
通用操作系统:使用分时设计,但是任务密度低得多,以确保处理器永远不会过载,从而可以减少响应时间;或使用事件驱动架构设计 ,系统仅在发生事件或中断时才切换任务,专注于快速的响应时间

2)响应时间:
通用操作系统:任务响应时间(在给定时间内处理指令的能力)要快,并且可预测,即每次运行程序时,代码始终一致地执行(任务时间界限严格)
实时操作系统:最短的时间内进行尽可能多的计算,因为优先级、竞争等原因,响应时间不可预测(任务时间界限不固定)

3)我的理解
实时操作系统:操作系统和应用程序编译链接成一个程序,只有一个进程,内存等资源可以在多任务中共享;
通用操作系统:操作系统和应用程序分开,如Linux分父子进程;

3、特点

实时操作系统的五大特点:
确定性:重复输入将导致输出内容也相同;
高性能:实时操作系统反应速度快,相比通用操作系统,只需要花费一小段时间即可完成任务;
安全性:实时操作系统常被用于安全关键型系统,如机器人或飞行控制器,以预防发生故障进而造成灾难性后果。为了确保安全,它们必须满足更严格的安全标准并具有更可靠的安全功能;
优先级调度:优先级调度是指优先分配优先级高的任务,再分配优先级低的任务。基于此,实时操作系统始终优先执行最重要的任务;
占用空间小:与庞大的通用操作系统相比,实时操作系统仅占据很小的空间。

4、定义

1)实时操作系统
实时操作系统(Real Time Operating System,简称RTOS)是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,调度一切可利用的资源完成实时任务,并控制所有实时任务协调一致运行的操作系统。提供及时响应和高可靠性是其主要特点。
2)硬实时和软实时
实时操作系统是保证在一定时间限制内完成特定功能的操作系统。实时操作系统有硬实时和软实时之分,硬实时要求在规定的时间内必须完成操作,这是在操作系统设计时保证的;软实时则只要按照任务的优先级,尽可能快地完成操作即可。我们通常使用的操作系统在经过一定改变之后就可以变成实时操作系统。
3)实时任务
在实时系统中必然存在着若干个实时任务,这些任务通常与某些个外部设备相关,能反应或控制相应的外部设备,因而带有某种程度的紧迫性。可从不同的角度对实时任务加以分类。

按任务执行时是否呈现周期性变化来划分:

周期性实时任务——外部设备周期性地发出激励信号给计算机,要求它按照指定周期循环执行,以便周期性的控制某种外部设备。
非周期性实时任务——外部设备所发出的激励信号并无明显的周期性,但都必须联系着一个截止时间。 

它又可分为开始截止时间(任务在某时间以前必须开始执行)和完成截止时间(任务在某时间以前必须完成)两部分。
根据对截至时间的要求来划分:

硬实时任务
软实时任务

5、概念

1)代码临界段:
指处理时不可分割的代码。一旦这部分代码开始执行则不允许中断打入。

2)资源:
任何为任务所占用的实体。

3)共享资源:
可以被一个以上任务使用的资源。

4)任务:
也称作一个线程,是一个简单的程序。每个任务被赋予一定的优先级,有它自己的一套CPU寄存器和自己的栈空间。典型地,每个任务都是一个无限的循环,每个任务都处在以下五个状态下:休眠态,就绪态,运行态,挂起态,被中断态。

5)任务切换:
将正在运行任务的当前状态(CPU寄存器中的全部内容)保存在任务自己的栈区,然后把下一个将要运行的任务的当前状态从该任务的栈中重新装入CPU的寄存器,并开始下一个任务的运行。

6)内核:
负责管理各个任务,为每个任务分配CPU时间,并负责任务之间通讯。分为不可剥夺型内核和可剥夺型内核。

7)调度:
内核的主要职责之一,决定轮到哪个任务运行。一般基于优先级调度法。

8)任务优先级:
分为优先级不可改变的静态优先级和优先级可改变的动态优先级。

9)优先级反转:
优先级反转问题是实时系统中出现最多的问题。共享资源的分配可导致优先级低的任务先运行,优先级高的任务后运行。解决的办法是使用“优先级继承”算法来临时改变任务优先级,以遏制优先级反转。

10)互斥:
虽然共享数据区简化了任务之间的信息交换,但是必须保证每个任务在处理共享共享数据时的排他性。使之满足互斥条件的一般方法有:关中断,使用测试并置位指令(TAS),禁止做任务切换,利用信号量。
因为采用实时操作系统的意义就在于能够及时处理各种突发的事件,即处理各种中断,因而衡量嵌入式实时操作系统的最主要、最具有代表性的性能指标参数无疑应该是中断响应时间了。

11)中断响应时间:
中断响应时间=中断延迟时间+保存CPU状态的时间+该内核的ISR进入函数的执行时间。
中断延迟时间=MAX(关中断的最长时间,最长指令时间) + 开始执行ISR的第一条指令的时间。

12)最大中断禁止时间:
当RTOS运行在核态或执行某些系统调用的时候,是不会因为外部中断的到来而中断执行的。只有当RTOS重新回到用户态时才响应外部中断请求,这一过程所需的最大时间就是最大中断禁止时间。

13)任务切换时间:
当由于某种原因使一个任务退出运行时,RTOS保存它的运行现场信息、插入相应队列、并依据一定的调度算法重新选择一个任务使之投入运行,这一过程所需时间称为任务切换时间。

上述几项中, 最大中断禁止时间和任务切换时间是评价一个RTOS实时性最重要的两个技术指标。

猜你喜欢

转载自blog.csdn.net/u010168781/article/details/129274360