2.6 顺序进程通讯 CSP

本节内容提供一个线上演讲:YouTube 在线Google Slides 讲稿

TODO: 请不要阅读此小节,内容编排中

早在上个世纪七十年代,多核处理器还是一个科研主题,并没有进入普通程序员的视野。 Tony Hoare 于 1977 年提出通信顺序进程(CSP)理论,遥遥领先与他所在的时代。

CSP 的模型由并发执行的实体(线程或者进程)所组成,实体之间通过发送消息进行通信, 这里发送消息时使用的就是通道(channel)。也就是我们常说的 『 Don't communicate by sharing memory; share memory by communicating 』。

多核处理器编程通常与操作系统研究、中断处理、I/O 系统、消息传递息息相关

当时涌现了很多不同的想法:

  • 信号量 semaphore [Dijkstra, 1965]
  • 监控 monitors [Hoare, 1974]
  • 锁与互斥 locks/mutexes
  • 消息传递

研究证明了消息传递与如今的线程与锁是等价的 [Lauer and Needham 1979]。

顺序进程间通信 CSP

C.A.R Hoare 1978 的萌芽论文,认为输入输出在一种模型编程语言中是基本要素。通信顺序过程的并行组成。通信是 I/O。

进一步阅读的参考文献

  • [Lauer and Needham 1979] Hugh C. Lauer and Roger M. Needham. 1979. On the duality of operating system structures. SIGOPS Oper. Syst. Rev. 13, 2 (April 1979), 3-19.