Raw-OS
Raw-OS 起飞于2012年,Raw-OS志在制作中国人自己的最优秀硬实时操作系统。
Raw-OS 操作系统特性
内核最大关中断时间无限接近0us, s3c2440系统最大关中断时间实测0.8us。
支持idle任务级别的事件驱动,基于状态机机制(fsm+hsm),所有idle 级别的事件任务共享一个栈!
支持轻量级线程protothread。
支持普通任务级别的状态机和事件驱动机制。
支持tasklet以及workqueue,轻松降低系统最大关中断时间到最低,以及大大提高了系统的实时性。
支持task 256个优先级
支持task无限多个
支持semaphore无限多个
支持mutex无限多个,同时支持优先级继承算法和优先级置顶算法,当优先级反转发生的的时候。
支持mutex在优先级反转过程中的任务优先级逐步还原策略,以及解决了改变任务优先级等mutex带来的副作用。
支持3种queue模块(queue, queue_size, mqueue)无限多个, 支持queue的一对多群发,包含了mail box 的功能。
支持软件timer无限多个。
支持event无限多个。
支持task block 在任意queue 和semphore 上,同时支持and 和or 的处理。
调度算法采用双向链表就绪队列,省去位图,采用目前世界上最快的bits搜索算法。
支持动态监测所有任务栈空间大小,栈空间小于整体的12%。 系统马上报错。
任务能以FIFO和PRIO 两种方式block 在semphore, mutex, queue, 等等对象上。
采用目前最快的计算tick timeout 的算法。
内核状态机的转换机制非常健全。
同等优先级调度,支持时间片轮。
支持满足posix的标准调度SCHED_RR和SCHED_FIFO
支持posxi的pthread封装
支持整个内核配置成非抢占内核。
支持内核配置成非抢占内核, 追求最大的数据吞吐量。
支持block内存分配机制,适用于整块的内存分配,没有内存碎片.
支持byte内存分配机制,适用于任何体积大小的分配,有内存碎片,采用first fit 算法,支持临接空闲块的合并。
支持slab算法基于buddy。
支持基于大内存的分配page算法。
支持c库标准的malloc, calloc, recalloc,free.
支持发送消息的同时也发送消息长度(raw_queue_size)
支持满足posix标准的大级别消息算法mqueue(raw_mqueue)
极其丰富的的API功能,内核支持配置各种功能,最小内核2K。
支持 8位,16位,32位的cpu以及dsp。