Please enable JavaScript.
Coggle requires JavaScript to display documents.
RTOS (RTOS功能 (基于静态优先级的抢占式任务调度, 进程间通信(基于消息,消息邮箱,管道), 基于信号量的进程同步,…
RTOS
RTOS功能
基于静态优先级的抢占式任务调度
进程间通信(基于消息,消息邮箱,管道)
基于信号量的进程同步
任务的创建、暂停、删除
资源访问控制(并发控制与防止互锁)
临界区控制
驱动程序的管理与接口
MMU内存管理、内存动态申请与分配
其他功能:GUI、TCP/IP等
选用指标
其他
文档完整程度
是否有GUI
是否支持防死锁
是否支持优先级反转
操作系统自身占用的时间大小
对关键应用,是否具备确定的执行时间
是否支持调试功能(尤其是多线程、多核);
支持的调试工具
使用的任务调度算法:
(决定了任务响应时间的可分析性)
时间片轮转调度
加权轮转调度
先入先出
优先级调度
支持的优先级数量:如64/128/256
中断响应速度
上下文切换时间
操作系统的大小及资源使用
(footprint、ROM、RAM)
授权费用及方式
常见RTOS
uCOSII
需授权,常用,资料多
FreeRTOS
免费,常用,资料多
可以实现部分posix
RTLinux(需要MMU支持)
免费,适用于使用复杂文件、数据库、网络等功能时;
对实时性和确定性要求非常高时,用简单的uCOSII等较好,根据需要再开发通信协议或软件包
实现:在linux内核与硬件中断间增加一个精巧的可抢先的实时内核,把标准的linux内核作为实时内核的一个进程与用户进程一起调度;
标准linux进程优先级最低,可被抢占
缺点:RTLinux的实时性比其他RTOS较差,需要MMU,运行所需资源多
优点:好多linux资源可以利用
支持IP over CAN总线;可以Socket编程
总结
操作系统的复杂性于应用软件复杂性一致
复杂的RTOS对硬件系统资源需求也会更高
uCLinux
精简版linux;非抢占式(非实时);没有MMU;有文件系统;
STM32可以跑,需大封装,外扩SDRAM和NORFLASH
支持shell、部分posix
简介
任务在等待资源时,将CPU使用权释放给其他就绪任务
提供抢占式调度机制,高优先级可剥夺低优先级的CPU使用权
误区
实时系统系统响应一定快
不一定,操作系统本身引入执行开销;
小型应用可能不如无操作系统
优势体现在中大型系统:任务间存在复杂耦合和依赖,应用程序长时间等待外部资源
实时系统可保证实时性
不一定,使用实时系统可以改善系统实时性;
但还需对任务的可调度性和响应时间进行分析
Linux实时性问题
低版本内核不可抢占
Linux2.4及以前版本,内核是不可抢占的,Linux2.6才开始部分可抢占
中断开关
一些同步操作中使用了中断开关指令,将增大中断延迟,降低系统实时性。
自旋锁
两个任务访问共享资源时,没有得到的将会自旋等待,这种锁机制非常高效,但是自旋锁期间将失效抢占,延迟将增大且不确定
中断总是最高优先级的
中断会挂起正常任务,若有繁重的网络负载或IO负负载,系统一直处于中断处理状态,实时任务根本无法保证实时性。
调度算法和调度点
即使内核可抢占,也不是任何地方都可发生调度;
如中断中唤醒1高优先级进程,因中断上下文不能发生调度,中断处理完后内核还要执行挂起的软中断。若在临界区,还要等临界区代码执行完。
MMU
负责虚拟地址到物理地址的映射,
并提供硬件机制的内存访问权限检查。
虚拟内存管理最主要的作用就是让每个进程有独立的地址空间。
这样,某一进程的错误指令或恶意代码导致的非法内存访问不会影响其他进程
MMU就是为了解决操作系统越来越复杂的内存管理而产生的(如linux)
crotex-M没有,crotex-A有
uclinux与ucos区别
uCLinux
(Micro-Control Linux)
主要针对没有MMU处理器设计,由于没有MMU其多任务的实现需要一定技巧
从Linux2.0/2.4内核派生而来,用于少内存少FLASH嵌入式系统;
经优化裁剪形成高度优化,代码紧凑的嵌入式Linux;
可以使用几乎所有的Linux API函数
体积小、稳定、良好移植性、优秀的网络功能、完备的各种文件系统,丰富的API;
除不能实现fork()外,其余API和标准Linux完全相同
uCLinux由于没有MMU,所有程序中访问的地址都是实际地址,各个进程共享一个运行空间。需要实现多进程时数据保护,用户程序使用的空间可能占用系统内核空间,这样容易导致系统崩溃
继承了Linux完善的文件系统,采用romfs文件系统,相对简单,比ext2文件系统要求更少的空间。
但不支持动态擦写保存
继承了Linux网络操作系统的优势,可方便支持网络文件系统且内嵌tcp/ip协议
适合复杂的需要较多文件处理的嵌入式系统
需要几百KB以上的ROM和RAM
uClinux可以使用Rt-linux的patch,从而增强uClinux的实时性
uCOSII
可基于ROM运行、可裁剪、抢占式、实时多任务内核,高可移植性
没有文件系统,支持扩展,可自行加入
适合控制系统
文件系统
简介:负责存取和管理文件的信息机构;
文件的建立、撤销、组织、读写、修改、复制以及对文件管理所需资源(如目录表、存储介质等)实施管理的软件部分
操作系统的选择
操作系统的选择是由需求决定的,小型系统小巧、实时性强、确定性强。
复杂的多文件系统或网络系统uCLinux更好