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。