μcos是一种常见的嵌入式实时操作系统(Embedded RTOS),与计算机操作系统一样,它以“进程”为单位对CPU资源进行调度和分配,ucos中的“进程”被命名为任务(下文记为TASK,以与ucos内核代码保持一致)。
μcos最多可同时运行21(或22*1)个TASK,即最多有21(或22)个TASK根据μcos的CPU资源调度分配策略获取CPU资源,得到执行。其中用户可用20个,其他的为μcos系统自用TASK。
根据μcos的CPU资源调度分配策略,所有TASK所处状态有五种,如下图所示,
DeleteSleepingCreateFinish WaitingReadyFinish ISRPendingScheduleISRWaitExecutingINT 其中,
Sleeping:睡眠态,指TASK驻留在程序空间之中,还没有建立的状态。TASK可以在μcos系统启动时建立,也可以由其他TASK建立。TASK建立后,即进入Ready状态,等待分配CPU资源。处于Sleeping的TASK不能得到CPU资源的分配,处于其他状态的TASK都可以被删除而回归到Sleeping状态。
Ready:就绪态,即等待分配CPU资源的状态。处于Ready中的所有TASK中优先级最高的,可以获取CPU资源。分配到CPU资源后,TASK即从Ready状态切换到Executing状态。 Pending:挂起态,即将TASK挂起等待某“事件”的触发而重新回到Ready状态。这样的“事件”包括EVENT、Flag和时钟节拍器超时(将在XXX小节详述)。处于Pending的TASK不能得到CPU资源的分配
ISR:中断服务态,即CPU收到中断后,根据中断向量服务表执行相应的中断服务子程序,此时正在执行的TASK就进入ISR,等待中断子程序执行完成后,该TASK回归到Ready。若该TASK是处于Ready中的所有TASK优先级最高的,则该TASK可以进入Executing得到继续执行,否则继续处于Ready等待CPU资源。
Executing执行态:TASK获取到CPU资源,正在执行的状态。
(本文完)
本系列文档主要是分析μcos在ARM的运用以及μcos内核运行机制。 本文档纯属自我学习总结,只做学习交流用途!
Pilot
因篇幅问题不能全部显示,请点此查看更多更全内容