In [1]:
from mosaic import *
OS2023(10)

10. 并发控制:同步 (2)¶

Changelog & 反馈

  • 反馈:括号模型消灭了并行的可能性?
  • 课堂展示 model 代码不再有讨厌的黄线
  • thread.h 和 thread-sync.h 可以按任意顺序引用

背景回顾:我们分析了同步的本质需求:两个并发的线程等待某个同步条件达成,完成时间线的 “交汇”。相应地,我们有了条件变量实现同步,并且解决了生产者-消费者问题 (括号打印问题)。

本讲内容:另一种共享内存系统中常用的同步方法:信号量 (E. W. Dijkstra)

  • 什么是信号量
  • 信号量适合解决什么问题
  • 哲 ♂ 学家吃饭问题
In [2]:
slideshow('10.1')
In [3]:
demo('pc-sem', 'c/pc-sem.c', libs=['thread.h', 'thread-sync.h'])
In [4]:
model('m/pc-sem.py', check=True)