Review & Comments

Review & Comments

2025 南京大学《操作系统原理》
Review & Comments

并发编程的核心抽象

计算图

  • 计算在节点上,依赖是计算结果之间的依赖关系
    • 最长公共子序列 (LCS)
    • 数字电路模拟
    • 深度神经网络……
  • 计算图可能是运行时变化 (动态) 的

实现计算图

  • 同步条件:uu 的所有 predecessors 都执行完毕
    • 条件变量:直接等待这个条件
    • 信号量:需要 predecessor 那么多个球
2025 南京大学《操作系统原理》
Review & Comments

但这并不是计算图优雅的实现方式

我们会在代码中引入众多干扰代码

  • while (...) { cond_wait; }
  • P(); V();
  • mutex_lock();
    • 潜在的数据竞争、死锁、原子性/顺序违反

来自编程语言的 approach

  • 增加一些功能受限的语法
    • 本质上都是描述计算图
    • 但能避免许多问题
2025 南京大学《操作系统原理》