usoc-ii的特点:
优点:简单
缺点:若管理的任务过多的话,不可以用。
特点:1,基于ROM运行。
2,可裁剪,抢占式,实时多任务内核。
3,具有高度可移植性。
知识点1:临界代码段
处理时不可分割的代码,一旦这部分代码开始执行,不允许任何中断打入,确保了临界代码的执行。
一般写法:EA= 0; 关闭中断
//临界代码段
EA = 1; 打开中断
知识点2:任务
一个简单的程序,该程序可以认为CPU完全只属于该程序自己
任务切换:任务1切换至任务2
先将任务1当前的状态从CPU中拷贝至堆栈中。
将任务2的堆栈拷贝至CPU,
任务执行由PC指针控制,当切换任务时,要保存PC 指针的地址,以确保下次执行该任务时,仍从切换 前的开始。
知识点3:任务状态
典型的,每个任务都是一个无限的循环,任务的5种状态如上。
休眠:该任务驻留在内存中,但并不被多任务内核所调度。
就绪:该任务已经准备好,可以运行了。
知识点4:任务切换
保存task1的状态。
载入task2的状态。
跳转到task2的地址空间。
知识点5:内核
负责每个任务的使用CPU时间
知识点6:调度
决定了哪个任务运行。多数实时内核都是基于优先级调度法的,CPU总是让处在就绪状态的优先级最高的任务先运行。
知识点7:内核是否可剥夺
不可剥夺内核:
如果当前进程只是在进程执行结束,或者因某种原因自愿放弃处
理器使用权,而使待运行进程获得处理器使用权,那么以这种方
式实现处理器使用权发生转移的内核就是属于不可剥夺型的
可剥夺内核:
如果当前进程并未执行完毕,又不是自愿放弃处理器使用权,而
被强制中止执行被迫将处理器使用权转移给其他进程。
知识点8:可重入性
可重入函数可以被一个以上的任务调用,而不必担心数据的破
坏,任何时候都可以被中断,一段时间后又可以运行,而相应数
据也不会丢失。
知识点 9:时间片轮转法
每个进程被分配一个时间段,称作它的时间片,即该进程允许运
行的时间。如果在时间片结束时进程还在运行,则CPU将被剥夺
并分配给另一个进程,依此轮回。
知识点10:任务优先级
64个优先级,0~63。
最低的优先级总是给空闲任务使用。
每个任务的优先级必须各不相同
ucos-ii,使用静态优先级
实时内核应避免出现优先级反转问题(共享资源导致)
知识点11:信号量
其实就是全局变量
标志性信号量
计数式信号量
知识点12:任务间通讯
任务间的通信是指进程之间的信息交换。任务间的同步与互
斥可以看作是传递的信息量较少的一种通信方式。
目前常见的任务通信方式可以分为3大类:共享存储器、报文
传递
系统和管道通信。
知识点13:消息邮箱
通过内核服务给任务发送消息,一般为指针变量,
消息邮箱通过在两个需要通信的任务之间传递数据缓冲区指针来
进行通信。
知识点14:消息队列
三部分组成:事件控制块,消息队列,消息。
先进先出原则(FIFO)
后进后出原则(LIFO)
知识点15:时钟节拍
特定的周期中断
一般在10ms~200ms
时钟节拍率越快,系统的额外开销越大。