信号量机制-课堂练习..docVIP

  • 75
  • 0
  • 约1.07万字
  • 约 15页
  • 2016-12-25 发布于重庆
  • 举报
用wait,signal操作解决进程的同步和互斥问题,绝大部分题目可以按以下步骤解决: ⑴根据题目要求将每个进程的执行过程一步一步描述出来; ⑵分析每个进程每一步的执行条件,将条件一一记录; ⑶比较各个条件,将同一条件归为一个,若条件可以归结为一种资源,设置一个信号量表示; 注意:这里是做题,不是实现系统,所以若某个条件题目中没有加以说明或限制,则删除; ⑷设置信号量初值:若信号量是代表某种资源,则为系统初始时的可使用的资源数或可使用资源的进程数,若为互斥则为“1”; ⑸重新分析每个进程的每个步骤:若该步骤有执行条件涉及信号量A,则在该步骤语句前加入wait(A);若该步骤有执行后某个信号量B会增值,则在该步骤语句后加入signal(B); 注意:若某个步骤前同时有几个wait操作,则一般同步信号量在前,互斥信号量在后; ⑹题目已经做完,最后检查各个进程是否能按题目要求并发执行,若可以,停止;若不可以,检查上述过程,查找错误。 例1 有一个生产者和一个消费者共享容量为n的缓冲器(n均大于1),生产者把生产的物品存入缓冲器,而消费者从缓冲器中取出物品去消费。要求用wait,signal操作对生产者和消费者进行正确管理。 第一步 根据题目要求将每个进程的执行过程一步一步描述出来: 生产者进程 L1: 生产一件产品; 产品放入缓冲; goto L1; 消费者进程 L

文档评论(0)

1亿VIP精品文档

相关文档