摘要 | 第1-4页 |
Abstract | 第4-9页 |
第1章 绪论 | 第9-15页 |
·选题背景 | 第9-10页 |
·信息技术发展趋势 | 第9页 |
·国家战略和产业目标 | 第9-10页 |
·嵌入式操作系统发展现状及特点 | 第10-12页 |
·不支持操作系统调用接口标准 | 第11页 |
·不支持多处理器 | 第11-12页 |
·嵌入式操作系统领域不容易被垄断 | 第12页 |
·本文研究内容 | 第12-13页 |
·论文结构安排 | 第13-15页 |
第2章 嵌入式实时操作系统设计理论 | 第15-40页 |
·操作系统的基本概念 | 第15-19页 |
·什么是操作系统 | 第15-16页 |
·操作系统内核 | 第16-18页 |
·实时操作系统 | 第18-19页 |
·嵌入式实时操作系统标准 | 第19-20页 |
·TRON | 第19-20页 |
·POSIX | 第20页 |
·实时系统中的调度算法和调度策略 | 第20-28页 |
·调度算法综述 | 第21-22页 |
·单处理器实时调度算法 | 第22-26页 |
·多处理器实时调度算法 | 第26-27页 |
·实时调度策略 | 第27-28页 |
·任务间的同步和通讯 | 第28-32页 |
·共享变量 | 第29-30页 |
·信号量 | 第30-31页 |
·事件标志组 | 第31页 |
·邮箱和消息队列 | 第31-32页 |
·任务间的竞争和线程安全问题 | 第32-34页 |
·任务间竞争 | 第32-33页 |
·线程安全和可重入函数 | 第33-34页 |
·死锁和优先级反转问题 | 第34-37页 |
·死锁问题 | 第34-35页 |
·优先级反转问题 | 第35-37页 |
·饥饿问题 | 第37-38页 |
·多处理器操作系统设计问题 | 第38-39页 |
·本章小结 | 第39-40页 |
第3章 构建准对称多处理器系统 | 第40-55页 |
·对称多处理系统模型 | 第40-43页 |
·对称的访问能力 | 第40-41页 |
·高速缓存(Cache)一致性问题 | 第41-42页 |
·实例研究——MPCore | 第42-43页 |
·NiosⅡ处理器体系结构 | 第43-49页 |
·概述 | 第43-45页 |
·NiosⅡ的通用寄存器 | 第45页 |
·NiosⅡ的控制寄存器 | 第45页 |
·NiosⅡ处理器运行时状态 | 第45-46页 |
·算术逻辑单元(ALU) | 第46-47页 |
·NiosⅡ的异常处(Exception processing) | 第47页 |
·异常发生后,硬件处理流程 | 第47-48页 |
·异常的优先级 | 第48页 |
·异常的嵌套 | 第48页 |
·异常返回 | 第48-49页 |
·NiosⅡ多处理器系统 | 第49-54页 |
·NiosⅡ多处理器间的互斥机制 | 第50页 |
·NiosⅡ多处理器间的通信机制 | 第50-51页 |
·本文设计的NiosⅡ双核系统 | 第51-52页 |
·共享代码、全局变量和中断服务程序 | 第52-54页 |
·本章小节 | 第54-55页 |
第4章 Skernel的设计 | 第55-69页 |
·Skernel的系统构架 | 第55-58页 |
·目标硬件的限制 | 第55-56页 |
·应用程序的要求 | 第56-57页 |
·Skernel的设计目标及系统构架 | 第57-58页 |
·Skernel的任务状态 | 第58-59页 |
·Skernel的调度器 | 第59-63页 |
·调度器模型 | 第59-60页 |
·调度算法 | 第60-63页 |
·Skernel的时钟模块 | 第63-64页 |
·Skernel的互斥机制 | 第64-65页 |
·Skernel的同步和通讯机制 | 第65-66页 |
·Skernel的内存管理机制 | 第66-67页 |
·SKernel的中断处理机制 | 第67页 |
·本章小结 | 第67-69页 |
第5章 Skernel的实现 | 第69-94页 |
·Skernel的系统调用接口 | 第69页 |
·Skernel任务管理的实现 | 第69-74页 |
·任务管理相关的数据结构 | 第70-73页 |
·任务管理相关的系统函数 | 第73-74页 |
·Skernel任务调度的实现 | 第74-83页 |
·Bitmap算法的实现 | 第74-80页 |
·老化算法的实现 | 第80-81页 |
·调度器的实现 | 第81-83页 |
·Skernel时间管理模块的实现 | 第83页 |
·Skernel信号量的实现 | 第83-86页 |
·事件控制块 | 第84-85页 |
·创建一个信号量SK_CreateSem() | 第85页 |
·等待一个信号量SK_PendSem()和SK_AcceptSem() | 第85页 |
·释放一个信号量SK_PostSem() | 第85-86页 |
·删除一个信号量SK_DeleteSem() | 第86页 |
·Skernel邮箱的实现 | 第86-87页 |
·创建一个邮箱SK_CreateMbox() | 第86页 |
·接收邮件SK_PendMbox()和SK_AcceptMbox() | 第86-87页 |
·发送邮件SK_PostMbox() | 第87页 |
·删除邮箱SK_DeleteMbox() | 第87页 |
·Skernel事件标志组的实现 | 第87-89页 |
·创建一个事件标志组SK_CreateFlag() | 第88页 |
·等待事件标志组有效SK_PendFlag()和SK_AcceptFlag() | 第88-89页 |
·设置事件标志组SK_PostFlag() | 第89页 |
·删除事件标志组SK_DeleteFlag() | 第89页 |
·Skernel内存管理模块的实现 | 第89-93页 |
·内存字节池 | 第89-91页 |
·内存块池 | 第91-93页 |
·本章小结 | 第93-94页 |
第6章 Skernel在NiosⅡ处理器上的移植 | 第94-103页 |
·Skernel的移植构架 | 第94-95页 |
·Includes.h | 第95页 |
·SK_CPU.H | 第95-97页 |
·SK_CPU_ASM.S | 第97-99页 |
·SK_StartHighRdy() | 第97-98页 |
·SK_CtxSw() | 第98-99页 |
·SK_IntCtxSw() | 第99页 |
·SK_CPU_C.C | 第99-101页 |
·SK_TaskStkInit() | 第99-100页 |
·SK_TimerISR() | 第100-101页 |
·Skernel在多处理器上的启动和运行 | 第101-102页 |
·本章小结 | 第102-103页 |
第7章 Skernel的测试 | 第103-110页 |
·测试平台和方法 | 第103页 |
·任务调度功能测试 | 第103-105页 |
·老化算法测试 | 第105-106页 |
·信号量测试 | 第106-107页 |
·邮箱功能测试 | 第107-109页 |
·本章小结 | 第109-110页 |
第8章 总结和展望 | 第110-111页 |
·未来研究展望 | 第110-111页 |
致谢 | 第111-112页 |
参考文献 | 第112-113页 |