正在加载图片...
经典信号量 资源竞争 (2)经典信号量的P,V操作 33经典进程同步问题 ◆资源的申请与释放一一原语 资源竞争时的进程同步 信号量:S c对竞争资源的互斥访问 进程1 ≤s<=0 释放一个 访问资源 P(s) 资源 临界区 临界区 V(s) V(s) V(s) s=s1申请一个资源 临界区资派访问区 状庵:就绪执行 唤醒 状:就绪执行阻基 相互合作 公用与私用信号量 ◆相互合作时的进程同步 保证进程间的前驱、后继关系信号量初值为0 公用售号量:一组进程共享,都可进行P、V操作 司机进程 售纂员进程 用于进程间资源的竞争 前驱L正常行车崇 程1:P(s) 访问资源 后继进程2:P(s) 访问资源 到站停车 停车) (sV(停车)”同步点开车门P(s)用号量:拥有信号量的进程只对信号量进行P操作 V操作由其他进程进行 关车门 用于进程间的合作 向同步点y(关车门) 后继进程 正常行车 前驱进程;V(s) 经典进程同步问题 生产者一消费者问题 读者—写者问题 哲学家进餐问题 331生产者—消费者问题 有多个生产者在生产消息,有多个消费者在消费消息,消费者消费的是生产者生产的消息 上产者消费者问题 生产者消费者算法分析 ◆消息缓冲池 m算法分析 c生产者产生的消息放入缓生产者消费者 ◆两类进程:生产者进程和消费者进程 冲池内 1)进程间的关系 c消费者从缓冲池内取走消 c生产者生产消息后消费者消费 息消费; 辆量冲地 c消费者消费后的空白消息 后箔费者:—P(fa) 前生 V(fuD 央放进空白缓冲池内供生 产者使用 c消费者消费后的空白缓冲块由生产者生产消息 后生进看 P(empty) 前消授者:经典信号量 ◼ (2)经典信号量的P,V操作 ◆资源的申请与释放--原语 信号量:S P(s) s <= 0 ? s = s -1 N Y V(s) s = s + 1 申请一个资源 释放一个 资源 忙等 临界区/资源访问区 资源竞争 ◼ 3.3经典进程同步问题 ◆资源竞争时的进程同步 对竞争资源的互斥访问 … P(s) 临界区 V(s) 进程1 进程2 … … P(s) 临界区 V(s) … P(s) 访问资源 V(s) 状态: 状态: 唤醒 就绪执行 就绪执行阻塞 ◆相互合作时的进程同步 保证进程间的前驱、后继关系 相互合作 司机进程 正常行车 到站停车 V(停车) 喝茶 P(关车门) 正常行车 售票 P(停车) 开车门 关车门 V(关车门) 售票 售票员进程 同步点 V(s) 同步点 P(s) 前驱 后继 信号量初值为0 公用与私用信号量 公用信号量: 私用信号量: 一组进程共享,都可进行P、V操作 用于进程间资源的竞争 拥有信号量的进程只对信号量进行P操作 V操作由其他进程进行 用于进程间的合作 P(s) 访问资源 V(s) P(s) 访问资源 V(s) 进程1: 进程2: P(s) V(s) 后继进程: 前驱进程: 经典进程同步问题 生产者——消费者问题 读者——写者问题 哲学家进餐问题 3.3.1 生产者——消费者问题 有多个生产者在生产消息,有多个消费者在消费消息,消费者消费的是生产者生产的消息 生产者消费者问题 ◆消息缓冲池 生产者产生的消息放入缓 冲池内; 消费者从缓冲池内取走消 息消费; 消费者消费后的空白消息 块放进空白缓冲池内供生 产者使用。 生产者 消费者 消息缓冲池 空白块缓冲池 1 2 3 1 2 生产者消费者算法分析 ◼ 算法分析 ◆两类进程:生产者进程和消费者进程 ◆(1)进程间的关系 生产者生产消息后消费者消费 消费者消费后的空白缓冲块由生产者生产消息 P(s) V(s) 后继进程: 前驱进程: P(s) V(s) 后继进程: 前驱进程: P(full) V(full) 生产者: 消费者: 生产者: 消费者: P(empty) V(empty)
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有