实时操作系统相关概念整理

何谓实时系统

实时系统是指能对事件做出及时响应。

实时系统分:

a.硬实时系统

对任务的执行有严格的时间限制,不在某段时间内执行完毕会导致灾难后果

或者财产损失。

b.软实时系统

相对硬实时系统而言,对时间的响应没有严格的时间限制,能够容忍一定程

度的miss deadline。

需要注意的是,硬实时系统还是软实时系统都不是对操作系统而言,是对具

体的应用环境而言!

更具体的可以参考《嵌入式系统中的实时概念》一书。

前后台系统

中断程序处理异步事件,理解为前台行为。后台为任务级的应用程序。

可重入函数

可重入函数可被多个任务调用,而不必担心数据被破坏。可重入函数或者只使

用局部变量,或者使用全局变量的时候对全局变量进行保护(作为临界资源)。

可剥夺型内核与不可剥夺型内核

a不可剥夺型内核

1.任务只能主动放弃CPU的使用权。中断服务使一个高优先级的任务进入就绪态

,中断服务以后,使用权还是原来低优先级的任务,只有低优先级的任务执行

完毕发起处理器之后高优先级的任务才有机会执行。

2.任务级之间可使用不可重入函数。

3.任务级响应时间比前后台快,注意是与前后台比。

4.缺点在于高优先级的任务的响应时间不确定,有可能要等很长时间。

b.可剥夺内核

1.最高优先级的任务一旦处于就绪态总能获得CPU的使用权

2.不能调用不可重入函数,会有隐患。

优先级反转

高优先级的任务在实际中的优先级降低了,晚于低优先级的任务运行。例如:

有1、2、3三个优先级依次降低的任务,有临界资源s。

a.1、2处于挂起状态,3在运行,3运行的时候占用了临界资源s

b.此时,1进入就绪态,1就绪态后占用cpu控制权3挂起,然后1任务申请临界资源s,

但是s被3占用,所以1任务挂起。

c.1任务挂起后3任务继续运行,此时2任务就绪

d.2任务就绪后抢占cpu,3任务挂起直到2任务运行结束。

e.3任务运行结束后释放临界资源s,此时1任务才有机会占用cpu

这种情况系最高优先级的1任务运行级别反而比2任务低,产生优先级反转的情况。

μC/OS互斥方法

1.关中断

2.禁止任务切换

3.信号量

μC/OS任务间通信

1.邮箱

2.消息队列

3.全局变量

中断中的时间概念

a.中断延迟

中断延迟是实时内核的最重要指标之一。实时系统在进入临界区之前需要先关中断,执行完临界

代码段之后再开中断。在这期间系统的中断响应是被关闭,所有产生的中断均得不到

响应,所以这段时间越长则中断延迟就越长。所以这中断延迟不是一个固定的时间,是

在实际应用中根据具体开关中断的代码来计算的。这是软件上面导致的中断延迟。

例如在μC/OS中就是:
#OS_ENTER_CRITICAL()

FUNC()

..

#OS_EXIT_CRITICAL()

中断延迟就是从ENTER开始到EXIT之间的时间。

除了软件上的中断延迟之外还包括硬件上的中断延迟。硬件上的中断延迟主要为在产生中断后CPU到

中断处理器读取中断向量,并且查找中断向量表,找到对应的中断服务子程序(ISR)的首地址,然后

跳转到对应的ISR去做相应处理的时间。

硬件上的延迟和软件上的延迟结合=中断延迟

b.中断响应

中断发生到开始执行用户的中断服务子程序来处理这个中断的时间。

所以在中断延迟的基础上+保存现场的时间

c.中断恢复时间

d.中断处理时间

你可能感兴趣的:(实时操作系统相关概念整理)