|
MSP430F149的实时多任务操作系统该如何使用 |
|
|
1 RTOS的基本概念 实时多任务操作系统(RTOS-Real Time Operating System)是根据操作系统的工作特性而言的。实时是指物理进程的真实时间。实时操作系统是指具有实时性,能支持实时控制系 统工作的操作系统。首要任务是调度一切可利用的资源完成实时控制任务,重要特点是要满足对时间的限制和要求。
实时操作系统中的任务(Task)有四种状态:运行(Executing),就绪(Ready),挂起(Suspended),休眠(Dormant)。
运行:获得CPU控制权。
就绪:进入任务等待队列。通过调度转为运行状态。
挂起:任务发生阻塞,移出任务等待队列,等待系统实时事件的发生而唤醒。从而转为就 绪或运行。
休眠:任务完成或错误等原因被清除的任务。也可以认为是系统中不存在了的任务。
某一时刻,系统中只能有一个任务在运行状态。各任务按级别通过时间片分别获得对CPU的访问权。
RTOS内核按照任务的调度机制可以分为两种:一种是占先式内核,一种是非占先式内核。
占先式内核:当一个低优先级的任务正在运行时,一个高优先级的任务就绪,那么RTOS就会把低优先级的任务挂起,来运行高优先级的任务。等高优先级的任务执行了一个循环挂起之后,再回到低优先级任务的断点继续运行。也就是说,任务的优先级越高,响应起来越及时。
非占先式内核:当一个低优先级的任务在运行时,一个高优先级的任务就绪,RTOS不会把CPU切换给高优先级的任务,必须等低优先级的任务执行了一个循环挂起之后,再由RTOS根据所有就绪任务的优先级判断将CPU切到哪个任务。
绝大多数商业RTOS, 以及著名的开放源码的uC/OS-II操作系统,都采用的是占先式内核,它的优点是实时性要比非占先式内核高。
在RTOS中,一般情况下,每个任务都一无限循环,每循环一次,任务挂起一段时间,以供调度程序把这段时间交给优先级更高的其它就绪任务,让其它任务运行(如图1)。当所有任务都挂起时,RTOS把任务切到空闲任务来执行。

|
|
|