关闭

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

179人阅读 评论(0) 收藏 举报
分类:
一、系统功能
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

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:8431次
    • 积分:431
    • 等级:
    • 排名:千里之外
    • 原创:36篇
    • 转载:0篇
    • 译文:0篇
    • 评论:1条
    文章存档
    最新评论