问题

独木桥问题1:东西向汽车过独木桥,为了保证安全,只要桥上无车,车过桥,待一方的汽车全部过完后,另一方的汽车才允许过桥。请用信号量和PV操作来写出汽车过独木桥问题的同步算法。

思路

首先对于东西两侧的车辆而言,桥是一个互斥资源,而对东西两侧各自而言,每辆车上桥是同步关系,东西两侧的车辆在抢到这互斥资源后只有最后一辆车通过了独木桥才释放。

 semaphore wait,mutex1,mutex2;mutex1=1;//东侧车辆的互斥信号量mutex2=1;//西侧车辆的互斥信号量wait=1;//互斥信号量,表示独木桥的数量int count1,count2;count1=0;//东侧车辆数count2=0;//西侧车辆数
cobeginprocess P 东(){P(mutex1);//封锁,防止多个进程同时改变count的值,导致修改被覆盖count1++;if(count1==1)//第一辆车上桥P(wait);V(mutex1);/*过独木桥*/P(mutex1);//与上面count++同理count1--;if(count1==0)//东侧车辆全部下桥V(wait);V(mutex1);}process P 西(){P(mutex2);count2++;if(count2==1)//第一辆车上桥P(wait);V(mutex2);/*过独木桥*/P(mutex2);count2--;if(count2==0)//西侧车辆全部下桥V(wait);V(mutex2);}
coend

操作系统,独木桥问题,PV操作相关推荐

  1. 操作系统中的P-V操作(转)

    信号量是最早出现的用来解决进程同步与互斥问题的机制(也可实现进程通信),包括一个称为信号量的变量及对它进行的两个原语操作.信号量为一个整数,我们设这个信号量为:sem.很显然,我们规定在sem大于等于 ...

  2. 【操作系统】经典PV操作题目

    5个经典PV操作题(附答案) 三个进程之间的同步 pv操作的经典习题 PV操作题型整理 生产者和消费者 生产者消费者问题 当只有一个生产者和一个消费者的时候,且只有一个缓冲区 要考虑生产者和消费者两个 ...

  3. Python解决操作系统习题中PV操作过桥问题

    上图是一道操作系统PV操作的习题,用Python解决之,建立一个线程模拟行人从北向南过桥,另一个线程模拟行人从南向北过桥,建立四个信号量,分别实现对桥.北桥段.南桥段和桥中央的互斥. north_si ...

  4. 独木桥问题-PV操作解决同步问题

    问题 独木桥问题1:东西向汽车过独木桥,为了保证安全,只要桥上无车,车过桥,待一方的汽车全部过完后,另一方的汽车才允许过桥.请用信号量和PV操作来写出汽车过独木桥问题的同步算法. 思路 首先对于东西两 ...

  5. 简单理解操作系统中的PV操作

    可以这样理解: 临界区门前有棵树 用来挂红灯 进程想进CPU的门 先得上树取下盏灯(调用一次P) 取下一个去敲门(S=S-1) 如果树上没有灯取(S<=0) 树说暂时欠你一盏灯(S为负时) 进程 ...

  6. 【操作系统-进程】PV操作——吸烟者问题

    文章目录 吸烟者问题 解题步骤 Step 1. 有几类进程 Step 2. 用中文描述动作 Step 3. 添加 PV 操作,用中文描述里面的操作 Step 4. 检查是否出现死锁 Step 5. 定 ...

  7. 【操作系统-进程】PV操作——生产者消费者问题

    文章目录 生产者消费者问题的万能方法步骤 Step 1. 有几类进程 Step 2. 用中文描述动作 Step 3. 添加 PV 操作,用中文描述里面的操作 Step 4. 检查是否出现死锁 Step ...

  8. 【操作系统-进程】PV操作——读者写者问题

    文章目录 读者写者问题万能模板 万能模板 1--读进程优先 万能模板 2--读写公平法 万能模板 3--写进程优先 题目 1:南北过桥问题 题目 2:录像厅问题 题目 3:更衣问题 读者写者问题万能模 ...

  9. 操作系统pv操作学习总结

    PV操作 PV操作与信号量的处理相关,P表示通过的意思,V表示释放的意思. 目录 1 简介 2 详细资料 3 解释 ▪ 信号量的概念 ▪ 典型理解偏差 简介 1962年,狄克斯特拉离开数学中心进入位于 ...

  10. 【操作系统】——PV操作

    大家都说操作系统中的PV操作部分看不懂,确实我在专业课中学习这门课时,PV操作被列为书中的重点和难点,就是因为它不好理解.当时自己听完课也是一头雾水,到期末考试结束,也没弄明白这是怎么一回事,更没有意 ...

最新文章

  1. win10 error LNK1112: 模块计算机类型“X86”与目标计算机类型“x64”冲突
  2. java 文件 加解密_Java实现文件的加密解密功能示例
  3. Codeforces Round #645 (Div. 2)(AB)
  4. SQL SERVER7应用
  5. python3 json模块_详解python 3.6 安装json 模块(simplejson)
  6. python selenium chrome获取每个请求内容_python+selenium调用chrome打开网址获取内容
  7. 移动端采用Flexible将PX转换REM适配及开发中Retina屏1px边框的两种解决方案
  8. Mybatis 原始Dao层开发
  9. svn增量打包部署_超详细的jenkins持续集成工作原理、功能、部署方式等介绍
  10. gecode int branch
  11. OpenUDID 和 IDFA 比较
  12. Echarts世界地图中国分区显示
  13. 大奖赛现场统分。已知某大奖赛有n个选手参赛,m(m2)个评委为参赛选手评分(最高10分,最低0分)。统分规则为:在每个选手的m个得分中,去掉一个最高分和一个最低平 每日一题--2020049--
  14. 使用UDP遇到的问题小结
  15. 刀片服务器改台式电脑_详解刀片服务器如何走向融合
  16. 拉姆达表达式转对象(太给力啦!)
  17. 如何解决Winfrom加载程序未能加载文件或程序集,抛出异常,
  18. 请简述python数据分析流程_简单案例讲解Python数据分析的基本步骤
  19. 输入波长显示颜色 matlab,新手求助:由光谱反射率计算颜色的三刺激值
  20. Linux 常用命令行、配置

热门文章

  1. 2.1 2722 和数
  2. 对主板、创业板和中小板间的区别的理解
  3. 谁,什么地方时间使用了我的人脸识别?
  4. python正则获取豆瓣排行250
  5. C语言深入标准输入输出
  6. java运行库一键修复_在运行时修补Java
  7. matlab旋转机械转子故障信号仿真,二叉树支持向量机的旋转机械故障诊断
  8. 做跨境必不可少的装备,虾扑erp帮东南亚卖家便捷跨境!
  9. java -cp 配置文件_智囊团SSH框架集成(配置文件、MD5、CP配置)
  10. ANSYS Electronic desktop软件无法打开问题--(AppBase.dll,FLEXlm Error-8)