• 在内存中有很多个进程,它们独自维护着一个虚拟地址
    • 如果进程互相之间需要传输数据,怎么办?
    • 上期讲到共享变量的互斥访问,本节讲述更复杂的同步问题
    • 在两个进程间,首先需要一个共享的固定大小的缓冲区
    • 生产者消费者问题
    • image.png
    • 如何让这两个进程保持同步呢?有界缓冲区问题
    • 实际上会出现复杂的竞争问题
    • image.png
    • CPU的时间片轮换可能发生在任何非临界区的代码段
    • 信号量semaphore
    • 信号量是一个整形变量,相当于自然数,有两个操作down和up,是wake和sleep的一般化
    • 使用信号量解决生产者消费者问题
    • image.png