1.理解生产者和消费者问题

没有引入信号量时的生产者和消费者进程,什么情况下会出现结果不唯一?什么情况下会出现永远等待?

用信号解决生产者和消费者的同步与互斥,要求能自己写出来。

答:生产者进程和消费者进程对counter的交替操作会使其结果不唯一。

生产者进程和消费者进程的交替执行会导致进程永远等待,造成系统死锁。

2、哲学家吃面问题

semaphore fork[5];

for(int i=0; i<5;i++)

fork[i]=1;

cobegin

process philosopher_i( ){

while(ture){

think( );

P(fork[i]);

P(fork[(i+10%5]);

eat();

V(fork[i]);

V(fork[(i+10%5]);

}

}

coend

4.理发师问题

int waiting=0, chairs=n;

semaphore customers=0,barbers=0,mutex=1;

cobegin

process barbers() {

while(ture) {

P(customers);

P(mutex);

waiting--;

V(barbers);

V(mutex);

cuthair();  } }

process customer_i() {

P(mutex);

if(waiting<chairs) {

waiting++;

V(customers);

V(mutex);

P(barbers):

get_haircut();

}

else

V(mutex);

}

coend

6.某银行有人民币储蓄业务,由n个储蓄员负责。每个顾客进入银行后先取一个号,并且等着叫号。当一个储蓄人员空闲下来,就叫下一个号。请用P,V操作正确编写储蓄人员和顾客进程的程序。

  答:semaphore mutex=A, customer_count=0:
  main()
  {  
  Cobegin
  Customeri()
  {
  p(mutex);
  取号码,进入队列;
  v(mutex);
  v(customer_count);
  }
  serversi()
  {
  while(A)
  {
  p(customer_count);
  p(mutex);
  从队列中取下一个号码;
  v(mutex);
  为该号码持有者服务;
  }  
  end
  Coend

7.下面是两个并发执行的进程。它们能正确运行吗?若不能请举例说明,并改正之。(5分)

parbegin

var X:integer;

process  P1                    process  P2

var y,z:integer:            var t,u:integer;

begin                          begin

x:=1;                           x:=0:

y:=0:                           t=0;

if  x≥l  then y:=y十1;    if  x≤l  then  t:=t+2;

z:=y;                           u:=t;

end;                         end;

parend.

  答:能。

转载于:https://www.cnblogs.com/zzj520/p/10821446.html

用信号量进程同步与互斥相关推荐

  1. 信号量进程同步与互斥

    2.哲学家吃面问题 semaphore fork[5]; for(int i=0; i<5;i++) fork[i]=1; cobegin process philosopher_i( ){ w ...

  2. 操作系统之进程管理:11、用信号量机制实现进程同步、互斥、前驱关系

    11.用信号量机制实现进程同步.互斥.前驱关系 思维导图 用信号量机制实现进程同步 用信号量机制实现进程互斥 用信号量机制实现进程的前驱关系 思维导图 用信号量机制实现进程同步 先来看一下什么是进程同 ...

  3. 计算机操作系统专题一:多道环境下进程同步与互斥制约关系的学习

    1. 问题描述 设自行车生产线上有一只箱子,其中有N个位置(N≥3),每个位置可存放一个车架或一个车轮,又设有三名工人,其活动分别为: 2. 问题分析(包括涉及的知识点.制约关系分析.问题的解决思路等 ...

  4. 操作系统:第二章 进程管理3 - 进程同步与互斥

    本文已收录至 Github(MD-Notes),若博客中有图片打不开,可以来我的 Github 仓库:https://github.com/HanquanHq/MD-Notes,涵盖了互联网大厂面试必 ...

  5. (王道408考研操作系统)第二章进程管理-第三节5:用信号量实现进程互斥、同步和前驱关系

    文章目录 一:使用信号量实现进程互斥 二:使用信号量实现进程同步 三:使用信号量实现前驱关系 一:使用信号量实现进程互斥 思想: 1:分析并发进程的关键活动,划定临界区 2:设置互斥信号量mutex, ...

  6. 操作系统实验四 进程同步与互斥

    一.实验目的: 掌握基本的同步与互斥算法,理解P,V操作. 理解生产者消费者模型,了解其它典型的同步互斥模型,如哲学家就餐.读者-写者模型等. 了解LINUX中进程同步互斥的实现方法,掌握相关函数的使 ...

  7. 进程同步与互斥:Windows环境

    一.实验目的: 1. 掌握基本的同步与互斥算法,理解P,V操作. 2. 理解生产者消费者模型,了解其它典型的同步互斥模型,如哲学家就餐.读者-写者模型等. 3. 了解LINUX中进程同步互斥的实现方法 ...

  8. 【操作系统基础】进程管理(三)进程同步与互斥

    一.进程同步.互斥的基本概念 1. 什么是进程同步 进程具有异步性的特征.异步性是指各并发执行的进程以各自独立的.不可预知的速度向前推进.举一个线程通信的例子,管道通信: 读进程和写进程并发运行,由于 ...

  9. 经典进程同步与互斥问题

    经典进程同步与互斥问题 1. 生产者-消费者问题 1.1 简单的"生产者-消费者"问题 设进程A.B是两个相互合作的进程,它们共享一个缓冲区,进程A向其中写入数据,进程B从中读出数 ...

最新文章

  1. 离开页面提示是否保存页面修改内容的简单实现
  2. (转)CentOS 5.5 64bit 编译安装Adobe FlashMediaServer 3.5
  3. html input submit 执行,HtmlInputSubmit 服务器控件声明性语法
  4. 进腾讯实习要交钱?腾讯2021年开除70名员工,拉黑13家公司
  5. es6 嵌套数组循环_ES6 常用数组循环
  6. win7c盘空间越来越小_C盘空间越来越小?学会这几招,让你轻松驾驭磁盘管理
  7. linux防火墙 限制流量,linux – iptables和阻止可能不可能的流量
  8. JavaScript应用程序开发(游娱平台)
  9. k线符号图解大全_k线图解大全,带你了解k线形态!
  10. 淘宝商家再也看不到客户手机号了
  11. matlab命令行窗口显示长度设置_设置命令行窗口输出显示格式 | MATLAB format| MathWork...
  12. Fallout 4 辐射4 技巧统计
  13. 如何使用HTTPS防止dns劫持、https如何防止dns劫持
  14. 16位转10位c语言,10进制数转换为16位二进制数
  15. AR行业报告:甩掉VR,5年内AR将迎来大爆发 | 报告
  16. 日内回转交易(股票)——Python量化
  17. STM32一个定时器同时捕获4路PWM波
  18. android彩信数据字段
  19. 结束语:从爬虫小白到高手的必经之路
  20. 演讲稿丨傅小兰 Simon与认知科学研究

热门文章

  1. tornado的异步效果
  2. php ffmpeg
  3. 如何在symfony 控制器里面创建soap web service
  4. MonoTouch 二三事(三)mono mkbundle 打包程序的解包支持
  5. 轻量级持久存储系统 MemcacheDB
  6. Protocol Buffers proto语言语法说明
  7. HtmlNinja-图片预加载以及图片元素img的complete属性
  8. 牛客网模拟笔试——庆祝61(JavaScript)
  9. 企业做微信营销有什么优势
  10. 工龄是怎么计算的?几个月算工龄吗?