fans-rt介绍(2)-系统功能介绍

一、系统功能
1、任务管理(完成度90%)
提供抢占式任务管理,支持256级优先级,支持1024个任务同时运行,相同优先级采用轮转调度,不同优先级采用抢占调度,调度时间复杂度O1。任务管理提供至多3级位图(256bit)最少1级位图(8bit)描述就绪状态,调度时查表获得最高优先级的就绪任务。支持多种堆栈模型,包括全局内核堆栈、局部内核堆栈,在tiny模式下所有任务使用单堆栈运行,以节约内存空间,其他模式下普通任务采用双堆栈方式以便保护系统内核。
2、系统功能调用管理(完成度100%)
提供内核服务管理,所有内核服务均注册到服务软中断上,在中断上下文中完成服务功能,为减少服务所开销的CPU时间片保证系统实时性提高系统对中断的响应速度,所有内核服务均只提供原子化的单一功能,对于复杂的API调用由API层完成对系统功能的集成和组合,例如创建任务的API功能被划分为任务上下文对象分配、用户堆栈分配、用户堆栈初始化、内核堆栈分配、内核堆栈初始化、局部堆分配、局部变量管理对象分配等一系列原子化的步骤。
3、中断管理(100%)
提供至多256个中断管理,支持共享中断,支持中断优先级抢占。
4、内存管理(完成度50%)
内存采用2级管理,分为系统全局内存管理和应用全局堆管理、任务局部堆管理,系统全局内存管理由MMS服务完成,提供较大的页分配,支持最多8个Region,每个 Region最大64MB,最多可管理512MB内存,所有内存管理活动必须先通过MMS分配。应用全局堆管理由HMS提供,提供较小的块分配,所有任务共享全局堆,全局堆的管理数据和堆空间完全隔离,以防止应用程序缺陷导致问题扩散。局部堆为任务独享,局部堆的分配和释放均在应用层完成。系统支持tiny内存模型 (不编译全局内存管理模块),内核最小内存需求3KB(1个IDLE任务,1个BOOT任务,以及1KB管理数据)。全局内存和堆的分配和释放均使用Buddy算法。
5、类和对象管理(完成度100%)
提供类和对象管理,允许驱动程序或其他内核模块向系统注册类。对象管理的内存分配采用2级索引方式,相同大小的对象使用一个对象容器(Container)进行管理,每个容器中有若干个池(POOL),每个POOL中有若干个块(BLOCK),容器描述符使用最大32BIT的位图描述BLOCK的空闲状态,分配时通过2次查表获得空闲块的ID。系统内核所使用的各种对象(例如任务上下文对象、IPC对象、堆栈对象、局部变量对象等)均由对象管理器统一管理。对象分为命名对象(唯一名称,不可重名)和无名对象。
6、IPC服务(完成度40%)
事件(100%) 互斥体(100%) 信号量(20%) 信号量集(20%) 管道FIFO(0%) 邮箱(0%) 消息队列(0%)
7、内核闹铃(完成度0%)
在系统时钟中断中执行,闹铃分为单次闹铃和周期闹铃。
  单次闹铃:在指定闹铃时间超时后,只闹一次。
  周期闹铃:以指定周期频率回调闹铃函数。
8.任务局部变量(完成度0%)
为任务提供局部变量空间,在创建任务时可根据需求配置所需要的局部变量数量。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值