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)