uC/OS实时操作系统的基本特征

一、操作系统

操作系统基本功能:

1、任务管理
2、CPU管理
3、内存管理 ----给任务分配内存空间,内存结束后释放内存空间
4、文件管理----对文件存储器的存储空间进行组织,非配和回收,负责文件的存储,检索,共享和保护
5、I/O设备管理

二、 实时操作系统(RTOS)

定义

是指当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,调度一切可利用的资源完成实时任务,并控制所有实时任务协调一致运行的操作系统。

硬实时操作系统:要求在规定的时间内必须完成操作
软实时操作系统:只要按照任务的优先级,尽可能快地完成操作

特征

1:多任务:系统中多个任务同时运行。当时cpu只有一个,在某一个时刻,只有一个任务占有cpu,因此,多任务操作系统的核心任务之一是任务调度,为任务分配cpu时间。

2:多级中断机制:
以确保对紧迫程度较高的实时时间进行及时响应和处理----例如:温度超高的报警先处理

3:优先级调度机制:
越紧迫的任务优先级越高
任务管理模块必须根据优先级调度任务,而又能保证任务在切换过程中不被破坏。

uC/OS实时操作系统具有以下基本特征

uC/OS是一种抢占式的多任务操作系统

1.实时操作系统首先是多任务操作系统

实时操作系统是一个多任务的操作系统,即在多任务的基础上,任务的调度时间固定、中断的响应时间及时、能在规定的时间内完成操作的满足实时性要求的操作系统。所谓多任务,是指允许系统中多个任务同时运行,而CPU只有一个,在某一时刻,只有一个任务占有CPU。因此,多任务操作系统的核心任务之一就是任务调度,为任务分配CPU时间。任务调度就是微核的实时操作系统uC/OS的最核心的功能。另外,实时两个字完全不像读起来那么简单,要做到实时性,中断服务程序的长度就要务必段,因为长的中断服务程序会使优先级低的中断得不到相应。因此,实时操作系统uC/OS是利用了信号量等事件处理机制让系统迅速离开中断服务程序而巧妙地进入本来已经失去CPU的任务,相应的处理任务会完成处理。 例如,串口中断发生,串口中断服务程序发信号量给串口数据处理任务,然后就迅速离开中断服务程序以保证系统的实时性。而这个发信号量会使等待这个信号量的串口数据处理任务就绪,在离开中断时进行的任务切换过程中,这个处理任务由于优先级高会优先运行,待其处理完串口数据会继续等待信号量,原来被中断打断的任务才会继续运行。

2、多级中断机制

一个实时系统通常需要处理多种外部信息或事件,如串口通信、网口通信或者事件报警,例如温度超高。但处理的紧迫程度有轻重缓急之分,很明显,温度超高的报警事件是最急切的,必须立即做出相应,而通信可以延后处理,并不会使整个系统出现问题。因此,建立多级中断嵌套处理机制,以确保对紧迫程度较高的实时事件进行及时相应和处理是实时操作系统必须具备的功能。对应来看,如果给串行通信、网络通信或者事件报警都创建一个处理任务,那么无疑报警事件的处理任务应该优先级最高。

3、优先级调度机制

为做到实时,任务必须分优先级,也就是越急迫的任务优先级越高,一般短的任务也尽量优先级提高。任务管理模块必须能根据优先级调度任务,而又能保证任务在切换的过程中不被破坏。通过该机制,操作系统应能保证优先级高的任务更多地获得CPU,而优先级较低的任务也不至于因为得不到运行而被“饿死”。因此,在编程的时候,当任务无事可做的时候一定要延时阻塞,如果需要等待某些事件的发生一定要等待(PEND)信号量等事件!这些操作都会让任务放弃CPU,低优先级的任务就有运行的机会了!换而言之,如果设计的系统出现低优先级的任务没有机会运行的局面,那不能怪操作系统,是属于自己设计上的问题,对操作系统没有吃透是主要原因。


来源:嵌入式实时操作系统uC/OS原理与实践 ---- 卢有亮

猜你喜欢

转载自blog.csdn.net/weixin_41536025/article/details/89340392