《嵌入式实时操作系统测试理论和方法》以理论为指导,提出了操作系统测试需要解决的问题,证明了基于有限状态机测试策略的正确性,使用动态代码走查方法提高代码走查的效率和效果,使用地址监控方法解决临界保护正确性测试问题。每种测试方法都以理论为指导,测试充分性得到有效保证。《嵌入式实时操作系统测试理论和方法》适合于从事嵌入式操作系统设计和测试的科研人员参考和使用。
《嵌入式实时操作系统测试理论和方法》编辑推荐:嵌入式实时操作系统在通信、医疗、核电站控制等领域的广泛应用,使人们越来越关注嵌入式实时操作系统的安全性。目前,系统介绍高安全嵌入式实时操作系统测试理论和方法的文献还比较少,《嵌入式实时操作系统测试理论和方法》介绍了关于高安全嵌人式实时操作系统的测试理论和方法。
第1部分嵌入式实时操作系统的基本原理
第1章嵌入式实时操作系统概述
1.1操作系统概述
1.1.1操作系统作用
1.1.2操作系统发展简史
1.2嵌入式实时操作系统
1.2.1嵌入式实时操作系统的特点
1.2.2嵌入式实时操作系统实例
1.3本章小结
第2章RTEMS嵌入式实时操作系统
2.1RTEMS概述
2.2RTEMS超级内核
2.2.1对象
2.2.2任务队列
2.3RTEMS功能组件
2.3.1任务组件
2.3.2中断组件
2.3.3时钟组件
2.3.4定时器组件
2.3.5进程间通信组件
2.3.6存储管理组件
2.4调度策略
2.4.1调度策略控制
2.4.2任务状态转换
2.5本章小结
第2部分嵌入式实时操作系统测试的理论和方法
第3章问题和策略
3.1软件测试概述
3.1.1软件测试过程
3.1.2软件测试类型
3.2操作系统测试特殊性
3.2.1三角形判定问题描述
3.2.2三角形判定程序实现
3.2.3三角形判定程序测试
3.2.4操作系统测试的特殊性
3.3操作系统测试问题描述
3.3.1ψprg的特点
3.3.2ψprg的分类
3.3.3问题描述
3.3.4基于独立系统调用的测试方法的不足
3.4基于资源管理视点的测试策略
3.4.1资源的表示方法
3.4.2资源表示的本质
3.4.3问题重新描述
3.4.4基路径测试
3.5信号量测试案例
3.5.1常规测试法
3.5.2基于有限状态机的测试法
3.5.3正确性证明
3.6其他考虑
3.7本章小结
第4章动态代码走查方法
4.1代码走查定义
4.2基于软件动态执行的代码走查方法DCW
4.2.1软件移植
4.2.2代码走查
4.3RTEMS超级内核代码走查
4.3.1Score移植
4.3.2Score代码走查
4.4本章小结
第5章临界保护正确性测试
5.1问题描述
5.2基于地址监控的临界保护正确性测试
5.2.1RTEMS临界保护特点
5.2.2地址监控的临界区保护正确性测试
5.2.3正确性证明
5.2.4SVAM方法优化
5.2.5Bochs实现SVAM
5.2.6实际操作
5.3本章小结
第6章基于有限状态机的API测试
6.1方法概述
6.2RTEMS有限状态机
6.2.1固定大小存储管理有限状态机
6.2.2可变大小存储管理有限状态机
6.2.3事件通信有限状态机
6.2.4消息队列有限状态机
6.2.5信号量有限状态机
6.2.6异步信号有限状态机
6.2.7BARRIER通信有限状态机
6.2.8任务管理有限状态机
6.3状态树
6.3.1分区状态树
6.3.2堆状态树
6.3.3事件状态树
6.3.4消息队列状态树
6.3.5信号量状态树
6.3.6异步信号状态树
6.3.7BARRIER状态树
6.3.8任务管理状态树
6.4测试用例设计
6.5本章小结
第3部分嵌入式实时操作系统测试方法的具体实现
第7章构建测试环境
7.1安装VMware虚拟机
7.2安装Linux操作系统
7.3安装RTEMS交叉编译环境
7.4编译RTEMS操作系统
7.5本章小结
第8章测试程序设计
8.1测试程序架构
8.2RMMT详细设计
8.2.1分区创建测试
8.2.2分区删除测试
8.2.3获取分区ID测试
8.2.4分区申请缓冲测试
8.2.5分区释放缓冲测试
8.2.6状态转换测试
8.2.7程序文件结构和编译指令
8.3分区测试运行效果
8.4本章小结
第9章测试结果分析
9.1测试结果统计
9.2典型问题分析
9.2.1自动释放BARRIER任务问题
9.2.2任务在休眠状态下挂起问题
9.2.3双口地址映射错误问题
9.2.4堆扩展后及时分配问题
9.2.5优先级变化后堆及时分配问题
9.3复杂度的抢占式资源队列调度
9.3.1问题提出
9.3.2抢占式资源调度
9.3.3具体实现
9.4本章小结
第10章有限状态机测试程序源代码
10.1堆存储有限状态机测试
10.2信号量有限状态机测试
参考文献
版权页:
插图:
5.2基于地址监控的临界保护正确性测试
上面介绍了进程的竞争条件和临界区的概念,为了避免竞争条件的出现,操作系统内核的设计必须考虑如何确保共享数据不被交错执行的控制路径破坏其一致性。而操作系统测试的一个重点是验证临界保护设计和实现的正确性。
5.2.1RTEMS临界保护特点
RTEMS操作系统实现了对临界区的保护,RTEMS临界区保护具有如下特点:
内核进程的非抢占性。对于非抢占性的操作系统而言,以下断言总是成立:(1)运行的进程不会被其他进程取代。(2)异常处理可以中断在内核态中运行的进程。但是,在中断处理程序结束时,该进程的执行路径被恢复。(3)异常处理的内核执行路径只能被执行中断或异常处理的其他内核执行路径所中断。由以上断言可以知道,对于系统调用启用的其他控制路径来说,处理非阻塞的系统调用的内核控制路径是原子的,这简化了很多内核函数的实现:不是由中断或异常处理程序更新的内核数据结构都可以安全地被访问。
临界区保护通过关中断实现。关中断是用来确保内核语句序列可以作为一个临界区进行操作的一种机制。即使硬件设备发出IRQ信号时,关中断也允许内核控制路径继续执行,这样就提供了一种有效的方法,来保护中断处理程序也会访问的数据结构。
5.2.2地址监控的临界区保护正确性测试
由于所讨论的操作系统具有非抢占性的特点,所以对共享变量的竞争条件出现在中断打断任务或中断嵌套的情况下。对一个共享变量的写操作必须关闭中断,操作完毕之后,再打开中断。为了验证对每一次共享变量的写操作,都关闭了中断,本章提出基于地址监控的临界区保护正确性测试方法SVAM(Shared Varible Address Monitor)。