实时系统与编程语言PDF电子书下载
- 电子书积分:17 积分如何计算积分?
- 作 者:(英)Alan Burns ,(英)Andy Wellings著;王振宇,陈利等译
- 出 版 社:北京:机械工业出版社
- 出版年份:2004
- ISBN:7111139879
- 页数:578 页
目录 1
出版者的话 1
专家指导委员会 1
译者序 1
前言 1
第1章 实时系统引论 1
1.1 实时系统的定义 1
1.2 实时系统的例子 2
1.2.1 过程控制 2
1.2.2 制造业 3
1.2.3 通信、指挥与控制 4
1.3.1 大且复杂 5
1.3 实时系统的特征 5
1.2.4 广义嵌入式计算机系统 5
1.3.2 实数处理 6
1.3.3 极其可靠和安全 7
1.3.4 独立系统部件的并发控制 7
1.3.5 实时设施 8
1.3.6 同硬件接口的交互 8
1.3.7 高效的实现和执行环境 9
小结 9
相关阅读材料 9
第2章 设计实时系统 11
2.1 记号系统的级别 12
2.2 需求规格说明 12
2.3.1 封装 13
2.3 设计活动 13
2.3.2 内聚和耦合 14
2.3.3 形式化方法 14
2.4 设计方法 15
2.4.1 JSD 16
2.4.2 Mascot3 17
2.4.3 HRT-HOOD 18
2.4.4 统一建模语言(UML) 19
2.5 实现 19
2.5.1 汇编语言 20
2.5.2 顺序系统实现语言 20
2.5.3 高级并发编程语言 20
2.5.4 通用语言设计标准 21
2.6 测试 22
2.7 原型建造 23
2.8 人机交互 24
2.9 设计的管理 25
小结 26
相关阅读材料 27
练习 27
第3章 小型编程 29
3.1 Ada、Java、C和occam2概述 29
3.2 词法约定 29
3.3 整体风格 30
3.4 数据类型 31
3.4.1 离散类型 32
3.4.2 实数 33
3.4.3 结构化数据类型 35
3.4.4 动态数据类型和指针 37
3.4.5 文件 39
3.5 控制结构 39
3.5.1 顺序结构 39
3.5.2 判断结构 40
3.5.3 循环结构 43
3.6 子程序 46
3.6.1 参数传递模式和机制 46
3.6.2 过程 47
3.6.3 函数 49
3.6.4 子程序指针 50
3.6.5 插入式展开 51
小结 51
相关阅读材料 52
练习 52
第4章 大型编程 55
4.1 信息隐藏 55
4.2 分别编译 59
4.3 抽象数据类型 60
4.4 面向对象编程 61
4.4.1 OOP和Ada 62
4.4.2 OOP和Java 65
4.4.3 继承和Java 66
4.4.4 对象类 69
4.5.1 Ada类属编程 70
4.5 可重用性 70
4.5.2 Java中的接口 73
小结 75
相关阅读材料 76
练习 76
第5章 可靠性和容错 77
5.1 可靠性、失效和故障 78
5.2 失效模式 79
5.3 故障预防与容错 80
5.3.1 故障预防 80
5.3.2 容错 81
5.4 N版本程序设计 82
5.3.3 冗余 82
5.4.1 表决比较 84
5.4.2 N版本程序设计的主要问题 85
5.5 软件动态冗余 86
5.5.1 出错检测 86
5.5.2 损害隔离和评估 87
5.5.3 出错恢复 88
5.5.4 故障处理和继续服务 90
5.6 软件容错的恢复块方法 90
5.7 N版本程序设计和恢复块的比较 92
5.8 动态冗余和异常 93
5.9 软件可靠性的测量和预测 95
5.10 安全性、可靠性和可依赖性 95
小结 97
练习 98
相关阅读材料 98
第6章 异常和异常处理 101
6.1 老式实时语言中的异常处理 101
6.1.1 反常返回值 101
6.1.2 强迫性分支 102
6.1.3 非局部go to 102
6.1.4 过程变量 103
6.2 现代异常处理 104
6.2.1 异常及其表示 104
6.2.2 异常处理程序的定义域 105
6.2.4 恢复模型与终止模型的对比 107
6.2.3 异常传播 107
6.3 Ada、Java和C中的异常处理 110
6.3.1 Ada 110
6.3.2 Java 117
6.3.3 C 123
6.4 其他语言中的异常处理 124
6.4.1 CHILL 124
6.4.2 CLU 125
6.4.3 Mesa 126
6.4.4 C++ 126
6.5 恢复块和异常 127
小结 129
练习 130
相关阅读材料 130
第7章 并发编程 135
7.1 进程概念 135
7.2 并发执行 138
7.3 进程表示 140
7.3.1 合作例程 140
7.3.2 分叉与汇合 140
7.3.3 cobegin 142
7.3.4 显式进程声明 142
7.3.5 occam2的并发执行 143
7.3.6 Ada的并发执行 144
7.3.7 Java的并发执行 148
7.3.8 Ada、Java和occam2的比较 154
7.3.9 POSIX的并发执行 155
7.4 一个简单的嵌入式系统 159
小结 164
相关阅读材料 165
练习 165
第8章 基于共享变量的同步和通信 169
8.1 互斥和条件同步 169
8.2 忙等待 170
8.3 挂起和恢复 175
8.4 信号量 177
8.4.1 挂起进程 179
8.4.2 实现 180
8.4.3 活性 181
8.4.5 Ada信号量编程举例 182
8.4.4 二元信号量和定量信号量 182
8.4.6 使用C和POSIX的信号量编程 184
8.4.7 对信号量的批评 186
8.5 条件临界区 186
8.6 管程 187
8.6.1 Modula-l 189
8.6.2 Mesa 190
8.6.3 POSIX互斥锁和条件变量 192
8.6.4 嵌套管程调用 194
8.6.5 对管程的批评 194
8.7 保护对象 195
8.7.1 入口调用和屏障 197
8.7.2 保护对象和标记类型 199
8.8 同步方法 200
8.8.1 等待和通知 201
8.8.2 继承和同步 206
小结 208
相关阅读材料 210
练习 210
第9章 基于消息的同步与通信 219
9.1 进程同步 219
9.2 进程指名和消息结构 220
9.3 Ada和occam2的消息传递语义 221
9.3.1 occam2模型 221
9.3.2 Ada模型 222
9.3.3 异常处理和会合 225
9.4.1 occam2的ALT 226
9.4 选择性等待 226
9.4.2 Ada的Select语句 230
9.4.3 不确定性、选择性等待和同步原语 232
9.5 POSIX消息 233
9.6 CHILL语言 236
9.7 远程过程调用 238
小结 239
相关阅读材料 240
练习 240
第10章 原子动作、并发进程和可靠性 247
10.1 原子动作 247
10.1.1 两阶段原子动作 248
10.1.3 对原子动作的需求 249
10.1.2 原子事务 249
10.2 并发语言中的原子动作 250
10.2.1 信号量 251
10.2.2 管程 252
10.2.3 用Ada实现原子动作 253
10.2.4 用Java实现原子动作 254
10.2.5 用occam2实现原子动作 258
10.2.6 原子动作的语言框架 259
10.3 原子动作和向后出错恢复 260
10.3.1 会话 260
10.3.2 对话和会谈 261
10.4 原子动作和向前出错恢复 262
10.4.2 异常和内部原子动作 263
10.4.1 并发引发的异常的分辨 263
10.5 异步通知 264
10.6 POSIX信号 265
10.6.1 阻塞信号 267
10.6.2 处理信号 267
10.6.3 忽略信号 268
10.6.4 生成信号 268
10.6.5 一个POSIX信号的简单例子 268
10.6.6 信号和线程 269
10.6.7 POSIX和原子动作 270
10.7 实时Java中的异步事件处理 271
10.8 Ada中的异步控制转移 272
10.8.1 异常和ATC 274
10.8.2 Ada和原子动作 274
10.9 实时Java 中的异步控制转移 281
小结 291
相关阅读材料 292
练习 292
第11章 资源控制 297
11.1 资源控制和原子动作 297
11.2 资源管理 298
11.3 表达能力和易用性 298
11.3.1 请求类型 299
11.3.3 服务器状态 301
11.3.4 请求参数 301
11.3.2 请求顺序 301
11.3.5 请求者优先级 305
11.3.6 小结 306
11.4 重排队设施 306
11.4.1 重排队的语义 309
11.4.2 重排队到其他入口 310
11.5 不对称指名和安全性 312
11.6 资源的使用 313
11.7 死锁 313
11.7.1 死锁发生的必要条件 313
11.7.2 处理死锁的方法 314
小结 316
练习 317
相关阅读材料 317
第12章 实时设施 321
12.1 时间的概念 321
12.2 时钟访问 323
12.2.1 occam2 中的TIMER 323
12.2.2 Ada的时钟包 324
12.2.3 实时Java中的时钟 326
12.2.4 C和POSIX中的时钟 329
12.3 进程延迟 330
12.3.1 相对延迟 330
12.3.2 绝对延迟 330
12.4 超时的编程 332
12.4.1 共享变量通信和超时 332
12.4.2 消息传递和超时 333
12.4.3 动作上的超时 337
12.5 规定时间性需求 339
12.6 时序作用域 340
12.7 时序作用域的语言支持 342
12.7.1 Ada、occam2和C/POSIX 343
12.7.2 实时Euclid和Pearl 344
12.7.3 实时Java 346
12.7.4 DPS 349
12.7.5 Esterel 350
12.8 容错 351
12.8.1 时间性错误检测和向前出错恢复 352
12.8.2 时间性错误检测和向后出错恢复 358
12.8.3 模式改变和基于事件的重配置 359
小结 361
相关阅读材料 362
练习 363
第13章 调度 365
13.1 简单进程模型 365
13.2 循环执行方法 366
13.3 基于进程的调度 368
13.3.1 调度方法 368
13.3.2 抢占和非抢占 368
13.3.3 FPS和速率单调优先级分配 368
13.4 基于利用率的可调度性测试 369
13.5 FPS的响应时间分析 372
13.6 EDF的响应时间分析 375
13.7 最坏情况执行时间 376
13.8.1 硬进程和软进程 377
13.8 偶发和非周期进程 377
13.8.3 非周期进程和EDF服务器 378
13.8.2 非周期进程和固定优先级服务器 378
13.9 D<T的进程系统 379
13.10 进程交互和阻塞 380
13.11 高限优先级协议 383
13.11.1 立即高限优先级协议 385
13.11.2 高限协议、互斥和死锁 385
13.11.3 阻塞和EDF 386
13.12 一个可扩充的进程模型 386
13.12.1 合作调度 386
13.12.2 启动抖动 387
13.12.3 任意的时限 389
13.12.5 引入偏移量 390
13.12.4 容错 390
13.12.6 优先级分配 392
13.13 动态系统和联机分析 392
13.14 基于优先级系统的编程 393
13.14.1 Ada 394
13.14.2 POSIX 397
13.14.3 实时Java 399
13.14.4 实时Java的其他设施 402
小结 402
相关阅读材料 403
练习 404
14.1 分布式系统的定义 409
第14章 分布式系统 409
14.2 论题一览 411
14.3 语言支持 412
14.3.1 远程过程调用 412
14.3.2 分布式对象模型 413
14.4 分布式编程系统和环境 413
14.4.1 occam2 414
14.4.2 Ada 416
14.4.3 Java 419
14.4.4 CORBA 421
14.5 可靠性 423
14.5.1 开放系统互连 424
14.5.3 轻量级协议和局域网 426
14.5.2 TCP/IP层 426
14.5.4 组通信协议 427
14.5.5 处理器失效 428
14.6 分布式算法 432
14.6.1 分布式环境中的事件排序 432
14.6.2 全局时间的实现 433
14.6.3 实现稳定存储 434
14.6.4 故障性进程出现时达成一致 435
14.7 分布式环境中的时限调度 437
14.7.1 分配 437
14.7.2 调度对通信链路的访问 439
14.7.3 整体调度 441
小结 442
练习 444
相关阅读材料 444
第15章 低级编程 447
15.1 硬件输入/输出机制 447
15.1.1 状态驱动 448
15.1.2 中断驱动 448
15.1.3 中断驱动设备所需的要素 449
15.1.4 一个简单的I/O系统的例子 451
15.2 语言要求 452
15.2.1 模块性和封装设施 452
15.2.2 设备处理的抽象模型 453
15.3 Modula-1 454
15.3.1 设备寄存器的寻址和操纵 454
15.3.2 中断处理 455
15.3.3 一个终端驱动程序的例子 456
15.3.4 Modula-1设备驱动方法的问题 459
15.4 Ada 460
15.4.1 设备寄存器的寻址和操作 460
15.4.2 中断处理 462
15.4.3 一个简单的驱动程序的例子 464
15.4.4 通过特别指令访问I/O设备 467
15.5 实时Java 468
15.5.1 设备寄存器的寻址和操纵 468
15.5.2 中断处理 470
15.6 occam2 470
15.6.1 一个设备驱动程序的例子 472
15.7 C和老式实时语言 476
15.6.2 occam2设备驱动的困难 476
15.8 设备驱动程序的调度 477
15.9 存储管理 479
15.9.1 堆管理 479
15.9.2 栈管理 484
小结 484
相关阅读材料 485
练习 485
第16章 执行环境 491
16.1 执行环境的作用 491
16.2 剪裁执行环境 493
16.2.1 Ada中的受限任务 493
16.3 调度模型 495
16.2.2 POSIX 495
16.3.1 非微小的上下文切换时间的建模 496
16.3.2 偶发进程的建模 497
16.3.3 实时时钟处理程序的建模 497
16.3.4 高速缓存对最坏情况执行时间分析的影响 499
16.4 硬件支持 499
16.4.1 传输机和occam2 500
16.4.2 ATAC和Ada 500
小结 501
相关阅读材料 501
练习 502
17.1 矿井排水 503
17.1.1 功能需求 503
第17章 Ada案例研究 503
17.1.2 非功能需求 504
17.2 HRT-HOOD设计方法 506
17.3 逻辑体系结构设计 506
17.3.1 第一级分解 507
17.3.2 水泵控制器 507
17.3.3 环境监控器 509
17.3.4 数据记录器和操作员控制台 509
17.4 物理体系结构设计 509
17.5 翻译到Ada 511
17.5.1 水泵控制器对象 512
17.5.2 环境监控 520
17.5.3 气流传感器处理对象 523
17.5.4 CO传感器处理对象 524
17.5.5 数据记录器 525
17.5.6 操作员控制台 526
17.6 容错和分布 526
17.6.1 设计错误 526
17.6.2 处理器和通信失效 527
17.6.3 其他硬件失效 527
小结 528
相关阅读材料 528
练习 528
第18章 结论 529
附录 实时Java规格说明 533
参考文献 553
索引 565
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《幼儿园课程资源丛书 幼儿园语言教育资源》周兢编 2015
- 《高等学校“十三五”规划教材 C语言程序设计》翟玉峰责任编辑;(中国)李聪,曾志华,江伟 2019
- 《中国西北地区奥陶系达瑞威尔阶至凯迪阶的笔石研究》空 2018
- 《音乐语言的根基》张艺编著 2019
- 《日系亲子摄影》(日)今井忍著;王宇佳译 2019
- 《全国职业院校工业机器人技术专业规划教材 工业机器人现场编程》(中国)项万明 2019
- 《认知语言学视野的抽象方位结构研究》曹爽著 2019
- 《激活语言思维》李蒨,王宏年,汤青编著 2017
- 《汉语言文学本科专业核心课程研究导引教材 古代汉语》马蓝婕责任编辑;(中国)魏宜辉 2019
- 《古代巴比伦》(英)莱昂纳德·W.金著 2019
- 《BBC人体如何工作》(英)爱丽丝.罗伯茨 2019
- 《一个数学家的辩白》(英)哈代(G.H.Hardy)著;李文林,戴宗铎,高嵘译 2019
- 《莎士比亚全集 2》(英)莎士比亚著,朱生豪等译 2002
- 《莎士比亚戏剧精选集》(英)威廉·莎士比亚(William Shakespeare)著 2020
- 《莎士比亚 叙事诗·抒情诗·戏剧》(英)威廉·莎士比亚著 2019
- 《亚历山大继业者战争 上 将领与战役》(英)鲍勃·本尼特,(英)麦克·罗伯茨著;张晓媛译 2019
- 《孩子们的音乐之旅 1 宝宝睡觉 幼儿版》包菊英主编 2016
- 《超级参与者》王金强责编;赵磊译者;(澳)杰里米·海曼斯,(英)亨利·蒂姆斯 2020
- 《物联网导论》张翼英主编 2020
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《高等教育双机械基础课程系列教材 高等学校教材 机械设计课程设计手册 第5版》吴宗泽,罗圣国,高志,李威 2018
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019
- 《高等院校旅游专业系列教材 旅游企业岗位培训系列教材 新编北京导游英语》杨昆,鄢莉,谭明华 2019
- 《中国十大出版家》王震,贺越明著 1991
- 《近代民营出版机构的英语函授教育 以“商务、中华、开明”函授学校为个案 1915年-1946年版》丁伟 2017
- 《新工业时代 世界级工业家张毓强和他的“新石头记”》秦朔 2019
- 《智能制造高技能人才培养规划丛书 ABB工业机器人虚拟仿真教程》(中国)工控帮教研组 2019
- 《AutoCAD机械设计实例精解 2019中文版》北京兆迪科技有限公司编著 2019