- 进程的同步与互斥 - 进程同步定义 - 多个进程按一定次序执行 - 类比接力比赛的配合 - 进程互斥定义 - 多个进程争夺同一资源 - 资源使用时互相制约 - 解决进程问题的方法 - 硬件方法 - 软件方法 - 信号量机制 - 提出者:荷兰学者迪杰斯特拉 - 核心概念 - 整型变量与等待队列 - P操作与V操作 - P操作分析 - value值减1表示申请资源 - value值小于0时进程阻塞 - 绝对值表示等待队列中进程数量 - V操作分析 - value值加1表示释放资源 - 唤醒等待队列中的进程 - 信号量的应用实例 - 生产者消费者问题 - 缓冲池结构 - 生产者进程放入产品 - 消费者进程取出产品 - 进程间关系 - 互斥关系 - 缓冲池同时只能被一个进程访问 - 同步关系 - 缓冲池满时生产者等待 - 缓冲池空时消费者等待 - 信号量设计 - mutex信号量 - 初始值为1 - 实现互斥访问 - full信号量 - 表示缓冲池中数据数量 - empty信号量 - 表示缓冲池中空间数量 - 生产者进程流程 - 执行P操作申请资源 - 放入产品后执行V操作 - 消费者进程流程 - 执行P操作申请资源 - 取出产品后执行V操作 - 思考题 - P操作次序能否互换