实例:同步问题.pptVIP

  • 15
  • 0
  • 约2.13千字
  • 约 11页
  • 2016-04-08 发布于湖北
  • 举报
实例:同步问题 * 同步问题1:理发师问题 一个理发店由一个有几张椅子的等待室和一个放有一张理发椅的理发室组成。 问题分析: 题目中要求描述理发师和顾客的行为,因此需要两类进程Barber ()和Customer()分别描述理发师和顾客的行为。当理发师看报时顾客进来需要唤醒理发师为其理发,当有顾客时理发师为其理发,没有的时候理发师看报,因此理发师和顾客之间是同步的关系,由于每次理发师只能为一个人理发,且可供等侯的椅子有限只有n个,即理发师和椅子是临界资源,所以顾客之间是互斥的关系。 * 同步问题1:理发师问题 1. 若没有要理发的顾客,则理发师去睡觉; 2. 若一顾客进入理发店,理发师正在为别人理发,且等待室有空椅子,则该顾客就找张椅子按顺序坐下; 3. 若一顾客进入理发店,理发师在睡觉,则叫醒理发师为该顾客理发; 4. 若一顾客进入理发店且所有椅子都被占用了,则该顾客就离开。 * 同步问题1:理发师问题 互斥信号量:mutex ,初始值为1; 信号量customers用来记录等候理发的顾客数,并用作阻塞理发师进程,初值为0; barbers用来记录正在等候顾客的理发师数,并用作阻塞顾客进程,初值为0; 这里barbers只有两种取值, 0或1; 临界变量:waiting由理发师进程和顾客进程共同访问,用来记录在椅子上等着的顾客数; * 同步问题1:理发师问题

文档评论(0)

1亿VIP精品文档

相关文档