第1章 实时嵌入式系统简介 1
1.1 实时嵌入式系统 1
1.2 示例:汽车防抱死制动系统 2
1.2.1 侧滑率和制动力 2
1.2.2 ABS部件 3
1.2.3 ABS控制 5
1.3 实时嵌入式系统的特性 6
1.3.1 系统结构 6
1.3.2 实时响应 7
1.3.3 高度制约的环境 7
1.3.4 并发性 7
1.3.5 可预测性 8
1.3.6 安全性和可靠性 8
1.4 硬实时嵌入式系统和软实时嵌入式系统 8
习题 9
阅读建议 10
参考文献 10
第2章 硬件组件 11
2.1 处理器 11
2.1.1 微处理器 11
2.1.2 微控制器 12
2.1.3 专用集成电路 12
2.1.4 现场可编程门阵列 13
2.1.5 数字信号处理器 13
2.1.6 专用指令集处理器 13
2.1.7 多核处理器 13
2.1.8 冯·诺依曼结构和哈佛结构 13
2.1.9 复杂指令集计算机和精简指令集计算机 14
2.2 存储器和高速缓存 15
2.2.1 只读存储器 15
2.2.2 随机访问存储器 15
2.2.3 高速缓存 16
2.3 I/O接口 17
2.4 传感器和执行器 18
2.5 定时器和计数器 19
习题 20
阅读建议 20
参考文献 20
第3章 实时操作系统 22
3.1 通用操作系统的主要功能 22
3.1.1 进程管理 22
3.1.2 内存管理 24
3.1.3 中断管理 26
3.1.4 多任务 26
3.1.5 文件系统管理 27
3.1.6 I/O管理 27
3.2 RTOS内核的特性 28
3.2.1 时钟和定时器 29
3.2.2 优先级调度 30
3.2.3 任务间通信和资源共享 30
3.2.4 异步I/O 31
3.2.5 内存锁定 32
3.3 RTOS示例 32
3.3.1 LynxOS 32
3.3.2 OSE 33
3.3.3 QNX 33
3.3.4 VxWorks 33
3.3.5 Windows Embedded Compact 34
习题 34
阅读建议 35
参考文献 35
URL 35
第4章 任务调度 36
4.1 任务 36
4.1.1 任务说明 36
4.1.2 任务状态 38
4.1.3 优先约束 39
4.1.4 任务分配与调度 39
4.2 时钟驱动调度 40
4.2.1 结构化时钟驱动调度 42
4.2.2 调度非周期任务 46
4.2.3 调度偶发任务 46
4.3 轮询方法 48
4.4 基于优先级的调度算法 48
4.4.1 固定优先级算法 49
4.4.2 动态优先级算法 53
4.4.3 非周期和偶发任务的基于优先级调度 57
4.4.4 实际因素 59
4.5 任务分配 62
4.5.1 装箱算法 62
4.5.2 考虑通信成本的分配 65
习题 66
阅读建议 68
参考文献 69
第5章 资源共享与访问控制 70
5.1 资源共享 70
5.1.1 资源操作 70
5.1.2 资源请求描述 71
5.1.3 优先级反转和死锁 72
5.1.4 资源访问控制 73
5.2 非抢占的临界区协议 73
5.3 优先级继承协议 75
5.3.1 优先级继承协议的规则 75
5.3.2 优先级继承协议的特性 77
5.4 优先级上限协议 79
5.4.1 优先级上限协议的规则 79
5.4.2 优先级上限协议的特性 81
5.4.3 最坏情况的阻塞时间 83
5.5 堆栈共享优先级上限协议 85
5.5.1 堆栈共享优先级上限协议的规则 85
5.5.2 堆栈共享优先级上限协议的特性 86
习题 87
阅读建议 89
参考文献 89
第6章 并发编程 90
6.1 简介 90
6.2 POSIX线程 90
6.3 同步机制 93
6.3.1 竞争条件和临界区 94
6.3.2 互斥 95
6.3.3 条件变量 97
6.3.4 信号量 101
6.4 任务间通信 106
6.4.1 消息队列 106
6.4.2 共享内存 111
6.4.3 共享内存保护 114
6.5 实时设施 116
6.5.1 实时信号 116
6.5.2 定时器 119
6.5.3 周期任务的实现 121
6.5.4 多周期任务系统的实现 124
习题 124
阅读建议 127
参考文献 127
第7章 有限状态机 128
7.1 有限状态机基础 128
7.2 确定性有限自动机 129
7.2.1 Moore机 130
7.2.2 Mealy机 132
7.3 非确定性有限自动机 135
7.4 有限状态机的编程 135
习题 137
阅读建议 140
参考文献 140
第8章 UML状态机 141
8.1 状态 141
8.2 转移 143
8.3 事件 144
8.4 复合状态 145
8.4.1 层次结构 145
8.4.2 正交性 146
8.4.3 子状态机状态 147
8.5 伪状态 147
8.5.1 历史伪状态 147
8.5.2 进入点和退出点 149
8.5.3 分叉和汇入伪状态 150
8.5.4 终止伪状态 150
8.6 ABS系统的UML状态机 151
习题 154
阅读建议 156
参考文献 156
第9章 时间Petri网 157
9.1 Petri网定义 157
9.1.1 变迁激发 158
9.1.2 建模能力 159
9.2 Petri网属性 161
9.2.1 行为属性 161
9.2.2 结构属性 165
9.3 时间Petri网 168
9.3.1 确定性时间Petri网 168
9.3.2 时间Petri网 173
习题 176
阅读建议 180
参考文献 181
第10章 模型检查 182
10.1 模型检查简介 182
10.2 时序逻辑 183
10.2.1 线性时序逻辑 184
10.2.2 计算树逻辑 190
10.2.3 LTL与CTL的比较 194
10.3 模型检查工具NuSMV 194
10.3.1 描述语言 195
10.3.2 格式 198
10.3.3 运行NuSMV 199
10.4 实时计算树逻辑 202
习题 206
阅读建议 209
参考文献 209
第11章 实际问题 211
11.1 软件可靠性 211
11.1.1 软件错误 211
11.1.2 可靠性测量 212
11.1.3 提高软件的可靠性 212
11.2 软件老化和重启 213
11.3 信息安全性 214
11.3.1 挑战 214
11.3.2 常见漏洞 214
11.3.3 信息安全软件设计 215
11.4 安全性 216
11.5 节电 216
阅读建议 217
参考文献 217