一些对UCOSII的最最最浅度的理解和最最最基本的使用方法的记录:
操作系统分为两大类型: 实时操作系统、分时操作系统。
实时操作系统: 对优先级很敏感。
操作系统的作用: 多任务并发执行。不是同时。
空余的时间拿出来做有用的事情。思考问题的方式变化了。
操作系统: 操作系统内核 + 图形系统 +文件系统 +网络协议栈
操作系统实现多任务的并发执行(调度算法): 依靠操作系统的内核。
队列、信号量、消息邮箱、互斥锁、临界区………操作系统的堆任务资源的保护和通讯实现的一些机制。
移植操作系统:
- 给操作系统提供心跳功能(时间基准)—硬件定时器提供。
UCOSII操作系统怎么切换任务的?
- 概念: UCOSII操作每个任务有一个独立的优先级,优先级级数字越小优先级越高。
任务的优先级编号作为任务的唯一标识符。 - 每一个任务都是一个死循环函数。
- 每一个任务都拥有个独立的栈空间。
- CPU执行代码依靠PC指针。 只需要修改PC指针就可以切换任务。(指向就绪任务表的第一个函数(优先级最高的))
- 高优先级的任务可以打断低优先级的任务执行(所以必须有防冲突机制,如信号量或者临界区)。
- 为了防止高优先级的任务霸占CPU,可加入UCOS操作系统的自带的延时函数(触发任务切换)。
- 操作系统的任务一般有以下的状态: 就绪状态、挂起状态、运行状态。
- 触发就绪任务表更新的方法(任务调度): UCOSII的本身的延时函数、从中断出来的时候OSIntExit()。