𝔖 Scriptorium
✦   LIBER   ✦

📁

实时系统与编程语言

✍ Scribed by (英) Alan Burns, Andy


Publisher
机械工业出版社
Year
2004
Tongue
Chinese
Leaves
596
Series
计算机科学丛书
Category
Library

⬇  Acquire This Volume

No coin nor oath required. For personal study only.

✦ Synopsis


书签已装载,
书签制作方法请找 [email protected]
完全免费

本书在国际上是一本实时系统方面的畅销教材。全面论述实时系统、嵌入式系统和分布式系统的特征,深入分析设计和实现实时嵌入式系统的需求,批评性地介绍了当前的编程语言和操作系统对设计和实现实时系统的支持,重点是Ada95、实时Java、实时POSIX以及实时CORBA。本书建议了对于实现不同的实时系统所使用的最佳编程语言。本书覆盖的丰富内容是其他关于实时(或并发)编程语言的书籍所无可比拟的。
  本书全面论述实时系统、嵌入式系统和分布式系统的特征,深入分析设计和实现实时嵌入式系统的需求,并讨论了当前的编程语言和操作系统如何满足这些需求,重点介绍Ada 95、实时Java和实时POSIX。本书还覆盖了在实时领域的最新成果,包括实时CORBA。
  本书在国外是实时系统方面的畅销教材,涵盖的内容广泛,适合作为高等院校计算机专业的教材,供高年级本科生和研究生使用。

✦ Table of Contents


封面
书名
版权
前言
目录
出版者的话
专家指导委员会
译者序
前言
第1章 实时系统引论
1.1 实时系统的定义
1.2 实时系统的例子
1.2.1 过程控制
1.2.2 制造业
1.2.3 通信、指挥与控制
1.2.4 广义嵌入式计算机系统
1.3 实时系统的特征
1.3.1 大且复杂
1.3.2 实数处理
1.3.3 极其可靠和安全
1.3.4 独立系统部件的并发控制
1.3.5 实时设施
1.3.6 同硬件接口的交互
1.3.7 高效的实现和执行环境
小结
相关阅读材料
第2章 设计实时系统
2.1 记号系统的级别
2.2 需求规格说明
2.3 设计活动
2.3.1 封装
2.3.2 内聚和耦合
2.3.3 形式化方法
2.4 设计方法
2.4.1 JSD
2.4.2 Mascot3
2.4.3 HRT-HOOD
2.4.4 统一建模语言(UML)
2.5 实现
2.5.1 汇编语言
2.5.2 顺序系统实现语言
2.5.3 高级并发编程语言
2.5.4 通用语言设计标准
2.6 测试
2.7 原型建造
2.8 人机交互
2.9 设计的管理
小结
相关阅读材料
练习
第3章 小型编程
3.1 Ada、Java、C和occam2概述
3.2 词法约定
3.3 整体风格
3.4 数据类型
3.4.1 离散类型
3.4.2 实数
3.4.3 结构化数据类型
3.4.4 动态数据类型和指针
3.4.5 文件
3.5 控制结构
3.5.1 顺序结构
3.5.2 判断结构
3.5.3 循环结构
3.6 子程序
3.6.1 参数传递模式和机制
3.6.2 过程
3.6.3 函数
3.6.4 子程序指针
3.6.5 插入式展开
小结
相关阅读材料
练习
第4章 大型编程
4.1 信息隐藏
4.2 分别编译
4.3 抽象数据类型
4.4 面向对象编程
4.4.1 OOP和Ada
4.4.2 OOP和Java
4.4.3 继承和Java
4.4.4 对象类
4.5 可重用性
4.5.1 Ada类属编程
4.5.2 Java中的接口
小结
相关阅读材料
练习
第5章 可靠性和容错
5.1 可靠性、失效和故障
5.2 失效模式
5.3 故障预防与容错
5.3.1 故障预防
5.3.2 容错
5.3.3 冗余
5.4 N版本程序设计
5.4.1 表决比较
5.4.2 N版本程序设计的主要问题
5.5 软件动态冗余
5.5.1 出错检测
5.5.2 损害隔离和评估
5.5.3 出错恢复
5.5.4 故障处理和继续服务
5.6 软件容错的恢复块方法
5.7 N版本程序设计和恢复块的比较
5.8 动态冗余和异常
5.9 软件可靠性的测量和预测
5.10 安全性、可靠性和可依赖性
小结
相关阅读材料
练习
第6章 异常和异常处理
6.1 老式实时语言中的异常处理
6.1.1 反常返回值
6.1.2 强迫性分支
6.1.3 非局部go to
6.1.4 过程变量
6.2 现代异常处理
6.2.1 异常及其表示
6.2.2 异常处理程序的定义域
6.2.3 异常传播
6.2.4 恢复模型与终止模型的对比
6.3 Ada、Java和C中的异常处理
6.3.1 Ada
6.3.2 Java
6.3.3 C
6.4 其他语言中的异常处理
6.4.1 CHILL
6.4.2 CLU
6.4.3 Mesa
6.4.4 C++
6.5 恢复块和异常
小结
相关阅读材料
练习
第7章 并发编程
7.1 进程概念
7.2 并发执行
7.3 进程表示
7.3.1 合作例程
7.3.2 分叉与汇合
7.3.3 cobegin
7.3.4 显式进程声明
7.3.5 occam2的并发执行
7.3.6 Ada的并发执行
7.3.7 Java的并发执行
7.3.8 Ada、Java和occam2的比较
7.3.9 POSIX的并发执行
7.4 一个简单的嵌入式系统
小结
相关阅读材料
练习
第8章 基于共享变量的同步和通信
8.1 互斥和条件同步
8.2 忙等待
8.3 挂起和恢复
8.4 信号量
8.4.1 挂起进程
8.4.2 实现
8.4.3 活性
8.4.4 二元信号量和定量信号量
8.4.5 Ada信号量编程举例
8.4.6 使用C和POSIX的信号量编程
8.4.7 对信号量的批评
8.5 条件临界区
8.6 管程
8.6.1 Modula-l
8.6.2 Mesa
8.6.3 POSIX互斥锁和条件变量
8.6.4 嵌套管程调用
8.6.5 对管程的批评
8.7 保护对象
8.7.1 入口调用和屏障
8.7.2 保护对象和标记类型
8.8 同步方法
8.8.1 等待和通知
8.8.2 继承和同步
小结
相关阅读材料
练习
第9章 基于消息的同步与通信
9.1 进程同步
9.2 进程指名和消息结构
9.3 Ada和occam2的消息传递语义
9.3.1 occam2模型
9.3.2 Ada模型
9.3.3 异常处理和会合
9.4 选择性等待
9.4.1 occam2的ALT
9.4.2 Ada的Select语句
9.4.3 不确定性、选择性等待和同步原语
9.5 POSIX消息
9.6 CHILL语言
9.7 远程过程调用
小结
相关阅读材料
练习
第10章 原子动作、并发进程和可靠性
10.1 原子动作
10.1.1 两阶段原子动作
10.1.2 原子事务
10.1.3 对原子动作的需求
10.2 并发语言中的原子动作
10.2.1 信号量
10.2.2 管程
10.2.3 用Ada实现原子动作
10.2.4 用Java实现原子动作
10.2.5 用occam2实现原子动作
10.2.6 原子动作的语言框架
10.3 原子动作和向后出错恢复
10.3.1 会话
10.3.2 对话和会谈
10.4 原子动作和向前出错恢复
10.4.1 并发引发的异常的分辨
10.4.2 异常和内部原子动作
10.5 异步通知
10.6 POSIX信号
10.6.1 阻塞信号
10.6.2 处理信号
10.6.3 忽略信号
10.6.4 生成信号
10.6.5 一个POSIX信号的简单例子
10.6.6 信号和线程
10.6.7 POSIX和原子动作
10.7 实时Java中的异步事件处理
10.8 Ada中的异步控制转移
10.8.1 异常和ATC
10.8.2 Ada和原子动作
10.9 实时Java 中的异步控制转移
小结
相关阅读材料
练习
第11章 资源控制
11.1 资源控制和原子动作
11.2 资源管理
11.3 表达能力和易用性
11.3.1 请求类型
11.3.2 请求顺序
11.3.3 服务器状态
11.3.4 请求参数
11.3.5 请求者优先级
11.3.6 小结
11.4 重排队设施
11.4.1 重排队的语义
11.4.2 重排队到其他入口
11.5 不对称指名和安全性
11.6 资源的使用
11.7 死锁
11.7.1 死锁发生的必要条件
11.7.2 处理死锁的方法
小结
相关阅读材料
练习
第12章 实时设施
12.1 时间的概念
12.2 时钟访问
12.2.1 occam2 中的TIMER
12.2.2 Ada的时钟包
12.2.3 实时Java中的时钟
12.2.4 C和POSIX中的时钟
12.3 进程延迟
12.3.1 相对延迟
12.3.2 绝对延迟
12.4 超时的编程
12.4.1 共享变量通信和超时
12.4.2 消息传递和超时
12.4.3 动作上的超时
12.5 规定时间性需求
12.6 时序作用域
12.7 时序作用域的语言支持
12.7.1 Ada、occam2和C/POSIX
12.7.2 实时Euclid和Pearl
12.7.3 实时Java
12.7.4 DPS
12.7.5 Esterel
12.8 容错
12.8.1 时间性错误检测和向前出错恢复
12.8.2 时间性错误检测和向后出错恢复
12.8.3 模式改变和基于事件的重配置
小结
相关阅读材料
练习
第13章 调度
13.1 简单进程模型
13.2 循环执行方法
13.3 基于进程的调度
13.3.1 调度方法
13.3.2 抢占和非抢占
13.3.3 FPS和速率单调优先级分配
13.4 基于利用率的可调度性测试
13.5 FPS的响应时间分析
13.6 EDF的响应时间分析
13.7 最坏情况执行时间
13.8 偶发和非周期进程
13.8.1 硬进程和软进程
13.8.2 非周期进程和固定优先级服务器
13.8.3 非周期进程和EDF服务器
13.9 D<T的进程系统
13.10 进程交互和阻塞
13.11 高限优先级协议
13.11.1 立即高限优先级协议
13.11.2 高限协议、互斥和死锁
13.11.3 阻塞和EDF
13.12 一个可扩充的进程模型
13.12.1 合作调度
13.12.2 启动抖动
13.12.3 任意的时限
13.12.4 容错
13.12.5 引入偏移量
13.12.6 优先级分配
13.13 动态系统和联机分析
13.14 基于优先级系统的编程
13.14.1 Ada
13.14.2 POSIX
13.14.3 实时Java
13.14.4 实时Java的其他设施
小结
相关阅读材料
练习
第14章 分布式系统
14.1 分布式系统的定义
14.2 论题一览
14.3 语言支持
14.3.1 远程过程调用
14.3.2 分布式对象模型
14.4 分布式编程系统和环境
14.4.1 occam2
14.4.2 Ada
14.4.3 Java
14.4.4 CORBA
14.5 可靠性
14.5.1 开放系统互连
14.5.2 TCP/IP层
14.5.3 轻量级协议和局域网
14.5.4 组通信协议
14.5.5 处理器失效
14.6 分布式算法
14.6.1 分布式环境中的事件排序
14.6.2 全局时间的实现
14.6.3 实现稳定存储
14.6.4 故障性进程出现时达成一致
14.7 分布式环境中的时限调度
14.7.1 分配
14.7.2 调度对通信链路的访问
14.7.3 整体调度
小结
相关阅读材料
练习
第15章 低级编程
15.1 硬件输入/输出机制
15.1.1 状态驱动
15.1.2 中断驱动
15.1.3 中断驱动设备所需的要素
15.1.4 一个简单的I/O系统的例子
15.2 语言要求
15.2.1 模块性和封装设施
15.2.2 设备处理的抽象模型
15.3 Modula-1
15.3.1 设备寄存器的寻址和操纵
15.3.2 中断处理
15.3.3 一个终端驱动程序的例子
15.3.4 Modula-1设备驱动方法的问题
15.4 Ada
15.4.1 设备寄存器的寻址和操作
15.4.2 中断处理
15.4.3 一个简单的驱动程序的例子
15.4.4 通过特别指令访问I/O设备
15.5 实时Java
15.5.1 设备寄存器的寻址和操纵
15.5.2 中断处理
15.6 occam2
15.6.1 一个设备驱动程序的例子
15.6.2 occam2设备驱动的困难
15.7 C和老式实时语言
15.8 设备驱动程序的调度
15.9 存储管理
15.9.1 堆管理
15.9.2 栈管理
小结
相关阅读材料
练习
第16章 执行环境
16.1 执行环境的作用
16.2 剪裁执行环境
16.2.1 Ada中的受限任务
16.2.2 POSIX
16.3 调度模型
16.3.1 非微小的上下文切换时间的建模
16.3.2 偶发进程的建模
16.3.3 实时时钟处理程序的建模
16.3.4 高速缓存对最坏情况执行时间分析的影响
16.4 硬件支持
16.4.1 传输机和occam2
16.4.2 ATAC和Ada
小结
相关阅读材料
练习
第17章 Ada案例研究
17.1 矿井排水
17.1.1 功能需求
17.1.2 非功能需求
17.2 HRT-HOOD设计方法
17.3 逻辑体系结构设计
17.3.1 第一级分解
17.3.2 水泵控制器
17.3.3 环境监控器
17.3.4 数据记录器和操作员控制台
17.4 物理体系结构设计
17.5 翻译到Ada
17.5.1 水泵控制器对象
17.5.2 环境监控
17.5.3 气流传感器处理对象
17.5.4 CO传感器处理对象
17.5.5 数据记录器
17.5.6 操作员控制台
17.6 容错和分布
17.6.1 设计错误
17.6.2 处理器和通信失效
17.6.3 其他硬件失效
小结
相关阅读材料
练习
第18章 结论
附录 实时Java规格说明
参考文献
索引


📜 SIMILAR VOLUMES


实用C语言编程
✍ Steve Oualline 📂 Library 📅 2000 🏛 中国电力出版社 🌐 Chinese

<p>市面上有很多介绍C语言的书,但这是第一本将C语言以简洁而实用的方式介绍给读者的书籍。</p> <p>用C语言进行编程不仅仅是在程序中使用正确的句法,编程的风格以及程序的调试在编写程序的过程中也占有相当大的篇幅,从而有助于程序的良好运行且易于维护。本书不仅仅向你介绍编程的机制,同时也告诉你如何创建易于阅读、调试和更改的程序。</p> <p>本书也强调了实用的原则。例如,在C语言中有15种有关优先级的规则,而运用实用</p>

汇编语言教程与实验
✍ 刘军 📂 Library 📅 2018 🏛 清华大学出版社 🌐 Chinese

汇编语言课程是计算机类专业的一门专业基础课,理论性和实践性非常强。本书将理论教学与实验有机结合,以8086 CPU为主,详细介绍汇编语言的基础知识和程序设计方法,主要内容包括: 汇编语言基础知识、8086微型机硬件组织、汇编指令与寻址方式、汇编语言程序格式与数据组织、数据传送程序、算术运算程序、位运算程序、串操作、分支程序设计、循环程序设计、子程序、中断与DOS功能调用、宏汇编技术、综合性程序设计案例等。在实验环境上,介绍DEBUG和Masm for Windows集成实验环境的使用方法。在内容上突出实践教学特色,将实验教学内容贯穿于整个教学过程,每章均附以一定的实验内容。通过多层次的上机实验

编程语言实现模式
✍ Terence Parr 📂 Library 📅 2012 🏛 华中科技大学出版社 🌐 Chinese

书签已装载, 书签制作方法请找 [email protected] 完全免费 《编程语言实现模式》旨在传授开发语言应用(工具)的经验和理念,帮助读者构建自己的语言应用。这里的语言应用并非特指用编译器或解释器实现编程语言,而是泛指任何处理、分析、翻译输入文件的程序,比如配置文件读取器、数据读取器、模型驱动的代码生成器、源码到源码的翻译器、源码分析工具、解释器,以及诸如此类的工具。为此,作者举例讲解已有语言应用的工作机制,拆解、归纳出31种易于理解且常用的设计模式(每种都包括通用数据结构、算法、策略)。虽然示例是用Java编写的,但相信读者可以触类旁通,利用这些设计模式

编程语言实现模式
✍ Terence Parr 📂 Library 📅 2012 🏛 华中科技大学出版社 🌐 Chinese

<p>《编程语言实现模式》旨在传授开发语言应用(工具)的经验和理念,帮助读者构建自己的语言应用。这里的语言应用并非特指用编译器或解释器实现编程语言,而是泛指任何处理、分析、翻译输入文件的程序,比如配置文件读取器、数据读取器、模型驱动的代码生成器、源码到源码的翻译器、源码分析工具、解释器,以及诸如此类的工具。为此,作者举例讲解已有语言应用的工作机制,拆解、归纳出31种易于理解且常用的设计模式(每种都包括通用数据结构、算法、策略)。虽然示例是用Java编写的,但相信读者可以触类旁通,利用这些设计模式构建针对其他编程语言(既包括特定领域语言,也包括通用编程语言)的应用。</p>

汇编语言实用教程
✍ 郑阿奇; 吕升旭 📂 Library 📅 2011 🏛 电子工业出版社 🌐 Chinese

本书共10章。首先复习汇编语言数据运算基础和80x86微处理器体系结构,通过一个实例介绍汇编语言程序上机操作过程;然后介绍指令系统和寻址方式、汇编语言源程序的组成和 8086/8088常用指令,在此基础上,介绍基本程序设计、子程序设计、输入输出与中断程序设计和简单应用程序设计。本书主要特点是循序渐进,结构清晰、重点突出,教和学比较方便。