REX操作系统详解:实时抢占调度与任务交互

2星 需积分: 9 27 下载量 16 浏览量 更新于2024-12-16 收藏 356KB PPT 举报
"REX操作系统是一个实时抢占式系统,它以高效的任务调度和管理为核心,支持高优先级的任务优先执行。REX中的每个任务都由内核独立调度,并且拥有一个名为rex_tcb_struct的数据结构来表示任务控制块(TCB)。任务按照优先级顺序组织在单链表中,无论活动还是挂起,都在同一个列表中。任务的上下文切换由多种情况触发,包括任务自愿挂起、信号设置、新高优先级任务产生、任务自身提升另一任务优先级或中断发生时的ISR切换。REX的任务优先级范围从1(最低)到65535,0保留给空闲任务,且所有任务的优先级都是唯一的。 在REX中,任务API包括rex_def_task用于定义任务,而rex_set_pri、rex_task_pri和rex_get_pri用于管理和查询任务优先级。信号机制是REX中的关键部分,每个TCB包含Sigs和Wait两个字段,分别记录已设置的信号和等待的信号。信号相关的函数如rex_wait()、rex_set_sigs()、rex_get_sigs()和rex_clr_sigs()用于信号的设置、检查和清除。此外,REX还提供了定时器功能,通过rex_timer_struct结构的双向链表管理,通过rex_def_timer和rex_set_timer来定义和启动计时器。 中断处理在REX中至关重要,中断服务例程(ISR)通过tramp_isr调用来响应中断,进一步判断并处理具体的中断源。任务间的通信则依赖于队列和信号量,接收消息的任务创建全局命令队列和相关信号,发送消息的任务填充消息缓冲区,将其放入队列并设置信号。通常,这些操作会封装在特定的函数中,简化了任务间的交互过程。" 这个摘要详细介绍了REX操作系统的特性,包括其任务调度、优先级管理、信号机制、定时器功能以及中断处理和任务间通信的方式,展示了REX作为实时操作系统的关键特性和使用方式。