操作系统—PV操作—理发师问题

  • 前言
  • 问题描述
  • 解决思路
  • 伪代码
  • 总结

前言

hello,大家好,使用pv操作来实现进程的同步和互斥是我们本科授课的重点,同时也是研究生入学考试的重点考察题型。今天给大家带来一道常见的pv操作的考题-理发师理发问题,这里的伪代码仅给大家提供一下思路

问题描述

理发店有一间工作室,有一名理发师,接待室内有n(n≥1)把椅子。如果没有顾客,理发师就去睡觉;如果理发师在睡觉;有顾客需要理发,则顾客会唤醒他;如果理发师在忙且接待室有空闲椅子,那么此顾客会坐在其中1把空闲的椅子上等待;如果来时所有椅子都有人,那么顾客离去。请采用信号量机制解决该理发师问题(用伪代码描述)

解决思路

题目中涉及到两个进程,一个理发师进程,一个顾客进程。在分析一下题目中的同步互斥关系:
理发师和顾客之间是同步关系,若理发师睡觉,顾客需要唤醒他,设置一个同步信号量;
设置一个int值,来代表屋子里的椅子数量
设置一个int值来代表人数。
为了实现对人数的增加和减少,设置一个互斥信号量,来对人数进行互斥访问。

伪代码

//理发师问题
int CHAIR=n,waiting=0  //椅子和人数
semaphore mutex=1      //人数的互斥访问
semaphore customer=0   //顾客信号量
semaphore service=0        //同步    process 顾客:
while(1){p(mutex)           if(waiting<CHAIR):waiting++v(mutex)v(customer)P(service)       //等待被服务else:v(mutex)//离开}process 理发师:
while(1){p(customer)p(mutex)waiting--v(mutex)V(service)     //服务//理发
}

总结

这个问题与银行存款问题的解决思路高度一致,实际上就是同步和互斥问题的混合应用。

操作系统-PV操作-理发师问题相关推荐

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

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

  2. 计算机操作系统pv实验,计算机操作系统PV操作例题.doc

    计算机操作系统PV操作例题 问题1 一个司机与售票员的例子 在公共汽车上,为保证乘客的安全,司机和售票员应协调工作: 停车后才能开门,关车门后才能行车.用PV操作来实现他们之间的协调. S1:是否允许 ...

  3. 操作系统-PV操作-独木桥问题

    操作系统-PV操作-独木桥问题 前言 问题描述 解决思路 伪代码实现 改造题型 解决思路 伪代码实现 总结 前言 在操作系统中,使用pv操作实现进程的同步和互斥是进程管理的重要内容.pv操作不仅是本科 ...

  4. 操作系统 | PV操作七大经典问题 生产者消费者 读者写者 哲学家进餐 理发师理发睡觉 和尚打水 吸烟者 吃水果

    一.生产者消费者问题 生产者消费者问题(英语:Producer-consumer problem),也称有限缓冲问题(英语:Bounded-buffer problem),是一个多线程同步问题的经典案 ...

  5. 操作系统——PV操作

    PV操作概念:操作系统中的一种同步机制,实现对于并发进程中临界区的管理. 并发进程分为两种: ①无交互的并发进程:每个进程是相互独立的,谁也不影响谁,基本不会用到PV操作. ②有交互的并发进程:多个进 ...

  6. 操作系统中pv操作用c语言,操作系统-pv操作.doc

    <现代操作系统>课程设计 第 PAGE 5 页 共 NUMPAGES 20 页 课程设计报告(论文) 报告(论文)题目: PV操作解决生产者-消费者问题 作者所在系部: 计算机科学与工程系 ...

  7. 操作系统PV操作的几个例子

    操作系统中PV操作的几个例子 题1:面包师有很多面包,由n个销售人员推销.每个顾客进店后取一个号,并且等待叫号,当一个销售人员空闲下来时,就叫下一个号.试设计一个使销售人员和顾客同步的算法. 思路:顾 ...

  8. 难懂的操作系统--PV操作

    PV操作概念:操作系统中的一种同步机制,实现对于并发进程中临界区的管理. 并发进程分为两种: ①无交互的并发进程:每个进程是相互独立的,谁也不影响谁,基本不会用到PV操作. ②有交互的并发进程:多个进 ...

  9. 计算机操作系统PV操作

    PV操作 和尚打水问题 某寺庙,有小和尚和老和尚若干,有一个水缸,由小和尚提水入缸供老和尚饮用.水缸可以容纳10桶水,水取自同一口井中,由于水井口窄,每次只能容纳一个水桶取水.水桶总数为3个.每次入水 ...

最新文章

  1. PowerShell学习笔记(三)
  2. JAVA 解析xml字符串
  3. 区块链学堂(3):Solidity
  4. Spring-学习笔记10【Spring事务控制】
  5. 小程序跳转页面与传值
  6. Elasticsearch-2.3.x填坑之路
  7. 转移符 个人工作中使用记录一下
  8. linux安装pip3教程,linux下pip的安装步骤及使用详解
  9. 基于IAR for RH850的瑞萨RH850 FCL库用法介绍(二)
  10. Aurora 64B66B IP核的硬件跑通
  11. 【问题解决】 请点击工具-Internet选项-高级,关闭“启用集成WINDOWS验证”选项。然后关闭浏览器,重新登录系统。
  12. maven mybatis实现递归查询和使用存储过程
  13. CAD图纸导入REVIT内并精准建模
  14. java 删除指定文件夹 以及文件下下面的所有文件
  15. FutureTask源码解析二
  16. 利用注册表处理计算机故障骤,第七章WINDOWS注册表及其维护-江苏大学.ppt
  17. wazuh agent功能详解
  18. 「网络流 24 题」孤岛营救问题
  19. python批量下载必应图片
  20. 计算机毕业设计JAVA的影视资讯管理系统mybatis+源码+调试部署+系统+数据库+lw

热门文章

  1. Oracle数据库多表连接查询操作以及查询操作的补充
  2. 记一道USB流量分析题
  3. 探寻51个大数据应用案例背后的故事
  4. ajax判断远程服务器是否存在某文件
  5. Python处理高光谱数据#1 图像显示
  6. scratch(图形化编程工具)3.28.0版本更新了!
  7. 算法课程设计:使用Python完成可视化的五子棋AI
  8. JavaScript和Jqurery
  9. android 虹软 例子,虹软免费人脸识别 Demo [Android]
  10. 微信开发工具制作会动的海绵宝宝