《并发程序设计》- Concurrency Programming

原始路径: /田浩然上传的资料/电子书/并发程序设计.pdf 处理方式: 扫描版PDF,tesseract前10页OCR + pdftotext兜底 页面数: 261页 下载大小: 4.07 MB 处理日期: 2026-09-03


核心概述

《并发程序设计》是一本系统性的计算机并行处理技术教材,融合了硬件技术、算法、语言、程序设计等多个层面的知识。本书从并行性概念出发,系统地阐述了计算机系统结构中各个层次引入并行技术的方法和原理,然后深入介绍并发程序设计的具体技术和算法。

“并发程序设计,是一门综合性的计算机学科,它包括硬件技术,也包括算法、语言、程序设计等软件方面的课题,当然还包括各种理论上的探讨。这些内容相互联系,相辅相成。“

关键概念

并行性的两种含义

  1. 同时性 (Simultaneity/Parallelism) - 指两个或多个事件在同一时刻发生
  2. 并发性 (Concurrency) - 指两个或多个事件在同一时间间隔内发生

“严格地说,并行性 (parallelism) 有两种含义:一是同时性 (simultaneity),二是并发性 (concurrency)。“

硬件层次的并行技术

位并行 vs 位串行

  • 位串行加法:只需一个位加法部件,需m个周期完成m位加法
  • 位并行加法:需要m个位加法部件,1个周期完成m位加法

存储器操作的并行

  • 交叉存储器 (Interleaved Memory) - 按地址规律将存储器分成多个体,各体能同时并行存取
  • 相关存储器 (Associative Memory) - 按内容特征一次查找所有匹配地址,适合数据库检索、模式匹配等应用

时间重叠技术

通过在并行性概念中引入时间因素,克服重复硬件设备的价格问题,主要包括:

  1. 分时系统 - 多个处理过程在时间上交叉轮流使用同一套硬件设备
  2. 流水线结构 - 明确以时间上重叠使用中央处理机为目的的硬件结构

“流水线系统则明确地以时间上重叠使用中央处理机为目的,引起硬件结构的巨大变革。“

主要章节主题

第一章:并行性的概念及其发展

  • 并行性的定义与含义
  • 计算机性能提高与并行技术发展的关系
  • 不同层次等级引入并行性的方法

第二章:计算机系统结构中的并行性

  • 存储器操作的并行技术
  • 总线结构与输入输出系统的并行
  • 指令级并行
  • 处理机级并行

第三章:并发程序设计

  • 进程/线程模型
  • 同步与互斥
  • 死锁与饥饿
  • 进程间通信与同步
  • 并发算法设计

第四章:并行算法

  • 并行计算模型
  • 并行排序算法
  • 矩阵运算的并行化
  • 查找与搜索的并行算法

可行动点

  • 理解并行性和并发性的区别,在并发编程中正确使用同步原语
  • 熟悉硬件层次的并行机制,有助于编写更高效的并发程序
  • 学习并发算法的设计方法,掌握并行问题的解决思路

与其他知识的关联