概述
实时操作系统分为:硬实时操作系统和软实时操作系统
- 硬实时操作系统:超过了规定时间后,得到正确结果,是不能容忍的,会对整个程序造成影响
- 软实时操作系统:对于超过了规定时间后,得到正确结果这一举措是可以容忍的
前后台结构系统
- 后台:线程
- 前台:中断服务程序
实时内核
在设计实时系统时,可以把系统功能划分为多个任务,每个任务只实施单一的功能,任务一般都是是循环。当任务在执行时,可以说这个任务在独占CPU的资源。实时内核,做的事情就是什么时候运行哪个任务,什么时候让任务挂起。当多个任务间的切换就造成了,有多个CPU的假象。
ucosIII是剥夺型内核,优先级最高的就绪线程先执行
如上图所示:低优先级的线程有中断请求产生就会进去中断,中断产生一个信号,这个信号唤醒高优先级的线程,那么高优先级的线程就会执行,执行完后,再回去执行低优先级线程,这个线程就好像没有被打断断过一样。
由此可得:中断服务函数的优先级最高,然后线程就根据优先级的高低,判断先执行哪个线程
RTOS(实时操作系统)
实时操作系统除了提供多任务管理内核外,还会提供其他组件,如:文件系统、协议栈、GUI等等
ucosiii
ucosiii特有功能:内嵌的实时性能测试、直接向线程发送信号量和消息、同时等待多个内核对象(双核MUC会跑ucos的原因)等
基本特性:
- 可剥夺型多任务管理器:最高优先级的线程“抢占”CPU
- 同优先级时间片轮转调度:时间片是线程占用CPU的最大时间,超过这个时间就要挂起线程,要是线程执行完后,还没用完整个时间片,就会将CPU让给同一优先级的线程
- 用锁定内核的调度方式,保护方位内部数据结构和变量的临界段