这是我在网上看到的一篇文档。作者的目的是设计一个简单的嵌入式操作系统,只实现了一个基本的任务调度器的功能。正如作者所说,虽然不能称之为操作系统,但它已经体现了一个小型嵌入式操作系统的精髓。对我们来说是很好的学习资料,从中可以一窥操作系统的真面目,今天分享给大家。1、多任务机制其实在单CPU的情况下,并没有真正意义上的多任务机制。只有不同的任务轮流使用CPU,所以本质上是一个单一的任务。但是因为CPU执行速度很快,而且任务切换很频繁,切换很快,所以我们感觉好像有很多任务在同时运行。这就是所谓的多任务机制。实时系统的特点是具有可预测的延迟和在指定时间内(通常为毫秒级别)响应某些信号的能力。2.任务状态任务有以下特点:任务不能随时运行,已经运行的任务不能保证在运行完之前会占用CPU。一般有就绪状态、运行状态、挂起状态等。运行状态:运行状态任务是正在使用CPU的任务。任何时候只有一项正在运行的任务。就绪状态:一个就绪状态的任务是可运行的,等待占用CPU的任务释放CPU。暂停状态:不满足某些条件,系统暂停,无法运行的状态。3、如何转换为就绪状态INT32UOSRdyTbl;/*就绪任务表*/上面定义了一个32位的变量,每一位代表一个任务,0表示挂起状态,1表示就绪状态。它记录了每个任务的就绪状态,并将其称为就绪表。OSRdyTbl定义为32位变量,对应32个任务。当然,如果定义为64位,最多可以支持64个任务。这样就可以定义两个宏来改变任务的状态为就绪或挂起。/*在就绪列表中注册就绪任务*/#defineOSSetPrioRdy(prio){OSRdyTbl|=0x01<
