《实时系统软件基础》PDF下载

  • 购买积分:16 如何计算积分?
  • 作  者:郑宗汉编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2003
  • ISBN:7302061181
  • 页数:515 页
图书介绍:

第1章 引言 1

1.1 什么是实时系统 1

1.2 实时系统的特点 3

1.3 分布式实时系统的引入 4

1.4 分布式实时系统的优点 5

1.5 分布式实时系统存在的问题 6

1.6 实时操作系统是实时系统软件的基础 7

2.1.1 系统资源的管理者 8

2.1 实时操作系统的功能 8

第2章 实时操作系统概述 8

2.1.2 硬件功能的扩充 9

2.2 系统调用命令 10

2.2.1 实时操作系统与实时任务的接口 10

2.2.2 监控态与用户态 10

2.2.3 中断和中断处理 11

2.2.4 系统调用命令的实现 11

2.3 用户实时应用系统的建立和启动 14

2.3.1 “ROOT”任务和“IDLE”任务 14

2.3.2 “BACKGROUND”任务和“IDLE”任务 16

2.4 实时操作系统的内部结构 17

2.4.1 整体式模型 17

2.4.2 客户/服务器模型 18

第3章 实时任务管理 21

3.1 实时任务的概念 21

3.1.1 用顺序执行的程序实现实时应用系统 21

3.1.2 用并发执行的任务实现实时应用系统 22

3.1.3 实时任务的分解 24

3.1.4 实时任务的状态 25

3.1.5 任务控制块TCB 27

3.1.6 操作任务队列和任务状态的几个函数 29

3.2 实时任务的调度 31

3.2.1 速率单调算法 31

3.2.2 截止期最早优先算法 34

3.2.3 可达截止期最早优先算法 35

3.2.4 最小裕度算法 37

3.2.5 其他的实时调度算法 40

3.2.6 实时任务的可调度性 40

3.3.1 实时任务的建立 43

3.3 实时任务的管理 43

3.3.2 实时任务的启动 47

3.3.3 实时任务的重新启动 49

3.3.4 实时任务的暂停运行 50

3.3.5 实时任务的恢复运行 52

3.3.6 实时任务的退出运行 54

3.3.7 返回码的处理 56

3.3.8 其他任务管理的系统调用命令 57

3.4.2 生产者-消费者问题 58

3.4.1 临界区 58

3.4 实时任务的通信、同步和互斥问题 58

3.5 信号量 59

3.5.1 信号量的数据结构 59

3.5.2 信号量的建立 61

3.5.3 信号量的操作 63

3.5.4 信号量的删除 66

3.5.5 利用信号量进行互斥控制 68

3.5.6 利用信号量解决生产者和消费者问题 70

3.6 消息传递和邮箱通信 72

3.6.1 消息的数据结构 73

3.6.2 消息的发送 75

3.6.3 消息的接收 77

3.6.4 邮箱和邮箱通信 79

3.6.5 邮箱的建立 81

3.6.6 邮件的发送和接收 82

3.6.7 撤消邮箱 85

3.6.8 利用邮箱通信解决生产者-消费者问题 86

3.7.1 事件和事件组 88

3.7 事件 88

3.7.2 事件及事件组的建立和撤消 90

3.7.3 事件的接收和发送 93

3.7.4 事件的应用例子 96

3.7.5 事件中断 100

3.7.6 事件中断的实现机制 101

3.7.7 事件中断服务程序及中断屏蔽的设置 103

3.7.8 事件中断的发生及从事件中断服务程序返回 106

第4章 时钟管理 109

4.1 定时器硬件 109

4.2 时钟管理功能 111

4.3 时钟中断和时钟任务 112

4.3.1 时钟中断处理程序 112

4.3.2 时钟任务 112

4.4 系统日历时间的维护 113

4.4.1 日历时间的获取 113

4.4.2 日历时间的维护 114

4.4.3 系统日历时间的实现 115

4.4.5 时钟同步时的时间补偿 117

4.4.4 系统时钟和实际时钟的同步 117

4.5 软件定时器 120

4.5.1 软件定时器的组织 120

4.5.2 时钟任务中的消息传递 122

4.5.3 时钟任务的实现 125

4.5.4 内核的处理 131

第5章 存储器管理 136

5.1 内存管理概述 136

5.2.1 使用位图的内存管理 138

5.2.2 使用链表的内存管理 138

5.2 存储器空间的管理和分配算法 138

5.2.3 使用链表的内存空间分配算法 139

5.3 实时任务的数据段 143

5.3.1 实时任务的数据段管理 143

5.3.2 数据段的分配 144

5.3.3 数据段的释放 148

5.4 分页存储管理 151

5.4.1 分页原理 151

5.4.2 分页存储管理的实现 151

5.4.3 分页管理的虚拟存储器 156

5.4.4 先进先出的页面交换算法 157

5.4.5 最近最久未用的页面交换算法 158

5.5 分段存储管理 159

5.5.1 分段原理 159

5.5.2 分段存储管理的实现 160

5.5.3 段页式的存储管理 164

第6章 设备管理 167

6.1 外部设备概述 167

6.1.1 外部设备的操作 167

6.1.2 外部设备的分类 168

6.2.1 设备管理软件的设计问题 169

6.2 外部设备的软件结构 169

6.2.2 设备描述符 171

6.2.3 用户空间中的数据输入输出处理程序 171

6.2.4 设备分派程序 172

6.2.5 设备管理程序 172

6.2.6 设备驱动程序 173

6.2.7 设备中断程序 173

6.2.8 设备输入输出的缓冲 174

6.3.1 系统调用命令的执行过程 175

6.3 设备管理的实现过程 175

6.3.2 设备分派程序 176

6.4 打印机输出 178

6.4.1 打印机接口 179

6.4.2 有关打印机的数据结构 180

6.4.3 打印机管理任务 182

6.4.4 打印机输出任务 187

6.4.5 打印机中断处理程序 190

6.4.7 Spool收容任务 191

6.4.6 打印机Spooler 191

6.4.8 Spool输出任务 196

6.5 串口输入输出管理 199

6.5.1 RS-232接口 199

6.5.2 流控制和数据帧格式 203

6.5.3 串口输出的管理 204

6.5.4 串口输出中断处理程序 209

6.5.5 有关串口输入的数据结构 210

6.5.6 串口输入管理任务 213

6.5.7 串口输入任务 218

6.5.8 串口输入中断处理程序 221

6.6 控制台输入输出管理 222

6.6.1 键盘控制器和视频显示卡 223

6.6.2 原始输入方式和加工输入方式 225

6.6.3 键位映射表 226

6.6.4 特殊字符的处理 227

6.6.5 字符输入的回显 228

6.6.6 控制台参数表和键盘输入缓冲池 229

6.6.7 键盘输入管理 233

6.6.8 控制台管理任务 235

6.6.9 键盘输入任务 244

6.6.10 键盘中断处理程序 252

6.6.11 CRT输出任务 253

第7章 文件系统 263

7.1 文件 263

7.1.1 文件的命名 264

7.1.2 文件的内部结构 264

7.1.3 文件类型 265

7.1.5 文件描述符 266

7.1.4 文件属性 266

7.1.6 有关文件操作的系统调用命令 267

7.2 目录 267

7.2.1 目录的内部结构,目录登记项 268

7.2.2 文件系统的组织、根目录 268

7.2.3 文件的路径名 269

7.3 磁盘 271

7.3.1 磁盘的寻址方式,柱面、磁道和扇区 271

7.3.2 磁盘控制器接口 272

7.3.3 磁盘空间的管理 274

7.3.4 磁盘调度算法 277

7.3.5 提前读和滞后写 278

7.3.6 磁盘缓冲算法 279

7.4 文件系统的实现 281

7.4.1 有关文件系统的数据结构 281

7.4.2 文件系统的实现过程 290

7.4.3 文件服务任务 291

7.4.4 目录和文件的建立、文件路径名检索 294

7.4.5 工作目录的设置 308

7.4.6 文件的打开和读写 310

7.4.7 磁盘任务 322

7.4.8 磁盘驱动程序和中断处理程序 327

第8章 死锁 331

8.1 死锁原理及处理策略 331

8.2 死锁的检测和恢复 332

8.2.1 单个资源类型的死锁检测 333

8.2.2 多个资源类型的死锁检测 336

8.2.3 死锁的恢复 338

8.3.1 任务的运行轨迹和不安全区 339

8.3 死锁的避免和预防 339

8.3.2 安全和不安全状态 340

8.3.3 单种资源的银行家算法 341

8.3.4 多种资源的银行家算法 342

8.3.5 死锁的预防 342

8.4 鸵鸟策略 342

第9章 实时系统的局域网 344

9.1 局域网的拓扑结构 344

9.1.1 总线型结构 344

9.1.3 星型结构 345

9.1.2 环型结构 345

9.1.4 实时系统中主机与通信网的连接 346

9.2 实时系统中局域网软件的设计问题 347

9.2.1 局域网协议的分层 347

9.2.2 服务、接口和协议 349

9.2.3 面向连接的服务和无连接服务 350

9.2.4 服务原语 351

9.2.5 实时系统对局域网的需求 352

9.3.1 集中式轮询的存取控制 353

9.3 局域网的存取控制 353

9.3.2 静态分配信道的存取控制 354

9.3.3 令牌存取控制 354

9.3.4 ALOHA协议和载波侦听多路存取协议 355

9.4 IEEE802局域网标准的体系结构 356

9.5 IEEE802.2标准:逻辑链路控制子层LLC协议 357

9.5.1 LLC子层提供的服务和接口 357

9.5.2 LLC协议数据单元PDU的结构 360

9.5.3 LLC的无连接协议 362

9.5.4 LLC的面向连接的协议 363

9.6 IEEE802.3标准:带检测的载波侦听协议 367

9.6.1 IEEE802.3的帧格式 368

9.6.2 解决冲突的算法 369

9.6.3 802.3 MAC子层协议的实现 370

9.7 IEEE802.4标准:令牌总线协议 372

9.7.1 IEEE 802.4.标准的体系结构 372

9.7.2 IEEE 802.4标准的帧格式 373

9.7.3 令牌总线协议 374

9.8 IEEE802.5标准:环型网协议 375

9.8.1 IEEE802.5标准的符号编码和帧格式 376

9.8.2 环路优先级调度算法 381

9.8.3 环路建立和维护 383

9.9 三种协议的比较 386

第10章 用于实时控制的局域网协议 387

10.1 PROWAY C概述 387

10.2 PROWAY C协议的服务规范 389

10.2.1 PLC子层提供给PLC用户的服务 389

10.2.2 PLC的协议数据单元格式 392

10.2.3 MAC子层提供给PLC子层的服务 393

10.2.4 通信节点的管理实体提供给用户的服务 395

10.3 PROWAY C逻辑链路控制子层 397

10.3.1 PLC子层和PLC用户的接口 398

10.3.2 共享存储器的存取控制 400

10.3.3 PLC子层、MAC子层及管理实体的接口 402

10.3.4 PLC子层启动站的操作过程 406

10.3.5 PLC子层响应站的操作过程 414

10.4 PROWAYC的介质存取控制子层 419

10.4.1 PROWAYC的符号编码 419

10.4.2 MAC子层的帧格式 421

10.4.3 MAC子层功能概述 423

10.4.4 时间片和响应窗口 424

10.4.5 令牌逻辑环路的初始化、令牌发布和竞争 425

10.4.6 令牌逻辑环路的建立、争用下一站 427

10.4.7 新节点入环和老节点退环 428

10.4.8 令牌传递和聋站的处理 430

10.4.9 优先级存取控制 431

10.4.10 存取控制机的工作过程 434

11.1 任务通信概述 439

第11章 分布式实时系统中任务的通信 439

11.2 面向连接的通信 440

11.2.1 信口和虚链路 440

11.2.2 信口的动态分配、信口控制块 441

11.2.3 网络通信的系统调用命令 443

11.3 网络通信的实现 446

11.3.1 主机系统中的网络管理程序 447

11.3.2 参数传递和数据封装及卸装过程 449

11.3.3 网络控制任务的实现 452

11.3.4 网络发送任务的实现 466

11.3.5 网络接收任务的实现 470

11.3.6 任务的通信与同步过程 477

第12章 分布式系统设计的若干问题 480

12.1 分布式系统中事件的因果关系 480

12.1.1 “早于(happens before)”关系 480

12.1.2 事件的时空视图 481

12.1.3 事件的交叉视图 482

12.2 分布式系统中的全局状态 483

12.2.1 时空视图中的全局状态 484

12.2.3 全局状态的“快照”算法 485

12.2.2 全局状态的形式定义 485

12.3 逻辑时钟和物理时钟、时钟同步 487

12.3.1 标量逻辑时钟 488

12.3.2 向量逻辑时钟 490

12.3.3 物理时钟 491

12.3.4 Cristian时钟同步算法 492

12.3.5 Berkeley的时钟同步算法 493

12.3.6 分布式的平均算法 493

12.4.1 集中式的互斥算法 494

12.4 分布式系统中的互斥 494

12.4.2 分布式的互斥算法 495

12.5 分布式系统中的死锁检测 497

12.5.1 集中式的死锁检测 497

12.5.2 分布式的死锁检测 498

12.6 协调者的选举 500

12.6.1 Bully算法 500

1 2.6.2 环算法 501

1 2.7.2 同步系统和异步系统 503

12.7.1 组件和处理器故障 503

12.7 容错 503

12.7.3 冗余 504

12.7.4 主动复制冗余和主机备用冗余 504

12.7.5 拜占庭将军问题 507

12.8 分布式实时系统的负载分配和调度 508

12.8.1 分布式系统的负载分配 509

12.8.2 实时系统中任务的组织和划分 509

12.8.3 任务的实时调度 510

12.8.4 任务优先图和甘特图(Gantt Chart) 511

参考文献 514