顾客银行办理业务时,首先在取号机上取号,然后坐在椅子上等候业务员叫号时前往窗口办理业务,假设银行现在有3个窗口可办理业务,请采用信号量和PV操作描述顾取号等候叫号和银行业务员叫号办理业务的同步操作。

1)首先识别哪些事务可以作为进程

顾客,业务员

2)其次识别临界资源,即进程共享的事务

取号机,椅子,顾客,业务员

3)定义数据结构

定义共享变量及私有变量

int number=0;//顾客计数器

定义代表临界资源的信号量

Semaphore getNum=1;//互斥改变顾客序号number

4)定义进程操作

4.1顾客操作进程:

顾客进入银行

取号机取号

顾客数增1

业务员叫号

办理业务

顾客数减1

4.2业务员进程操作

呼叫一位顾客

办理业务

5)进程的伪代码实现

int Number=0;//顾客计数器semaphore getNum=1;//互斥改变顾客序Numbersemaphore customers=0;//顾客数信号量semaphore callMe=0; //等待叫号的顾客数信号量/*顾客进程的实现*/Process customer(){到来;P(getNum);//互斥取号Number++;//取号V(getNum);V(customers);/顾客数加1P(callMe);//等待叫号办理业务;P(getNum);//顾客数减1Number--;V(getNum);离开;}/*业务员进程实现*/Process worker(){While(1){P(customers);//取一个顾客号V(callMe);//叫号办理业务;}}

拓展问题:顾客银行办理业务时,首先在取号机上取号,然后坐在椅子上等候业务员叫号时前往窗口办理业务,如果等待时间超过1小时,则顾客离开.椅子有20把,如果没有空椅子,则顾客站立,如果站立等待超过30分钟,则顾客离开,等待假设银行现在有3个窗口可办理业务,请采用信号量和PV操作描述顾取号等候叫号和银行业务员叫号办理业务的同步操作。

顾客银行办理业务时,首先在取号机上取号,然后坐在椅子上等候业务员叫号时前往窗口办理业务,假设银行现在有3个窗口可办理业务,请采用信号量和PV操作描述顾取号等候叫号和银行业务员叫号办理业务的同步操作。相关推荐

  1. 城市道路十字路口的通行规则是“红灯停,绿灯行”,请用信号量和PV操作描述交通信号灯和汽车通过十字路口的同步行为

    城市道路十字路口的通行规则是"红灯停,绿灯行",请用信号量和PV操作描述交通信号灯和汽车通过十字路口的同步行为 1)识别那些可以作为进程 信号灯,汽车 2)其次识临界资源,即进程共 ...

  2. 转 信号量与PV操作

    在计算机操作系统中,PV操作是进程管理中的难点. 首先应弄清PV操作的含义:PV操作由P操作原语和V操作原语组成(原语是不可中断的过程),对信号量进行操作,具体定义如下:     P(S):①将信号量 ...

  3. 系统架构设计师考试知识点整理-3:信号量与PV操作

    出现场景 进程之间会出现互斥和同步两种关系.为了处理这两种情况,提出信号量和PV操作. 1.信号量:是一种特殊的变量,变现形式是一个整型S和一个队列. 2.P操作:S=S-1,若S<0,进程暂停 ...

  4. 【系统架构设计师】第一章:操作系统(1.2.2) 信号量与pv操作

    本篇帖子继续上篇.有兴趣可以点击链接进行查看以前写过的文章. [系统架构设计师]第一章:操作系统(1.2.2) 参考教材: <系统架构设计师考试全程指导(第二版)> <系统架构设计师 ...

  5. 操作系统复习——信号量与PV操作

    信号量与PV操作 问题的提出 TS或swap指令管理临界区,采用忙式轮询,效率低 关开中断管理临界区,不便交给用户程序使用 信号量的构思 一种可动态定义的软件资源:信号量 核心数据结构:等待进程队列 ...

  6. 用户信号量及其PV操作处理实际问题

    P187-43 Cemaphore empty=1;橘子精=0;糖=0:水=0; Process product(){ While(true){ P(empty); 产生一个随机数s; If(s==0 ...

  7. 小和尚挑水(信号量和PV操作)

     <--------个人网站传送门-------> 某寺庙,有小和尚.老和尚若干.庙内有一水缸,由小和尚提水入缸,供老和尚饮用. 水缸可容纳 30 桶水,每次入水.取水仅为1 桶,不可 ...

  8. Operating System-进程/线程内部通信-信号量和PV操作

    本文介绍操作系统进程管理的两个核心概念: 信号量 PV操作 一.信号量介绍 1.1 信号量引入 信号量(Semaphore)1965年由Dijkstra引入的.信号量一般由一个值是一个变量,其值有可能 ...

  9. 试利用记录型信号量和pv操作写出_计算机操作系统知识点汇总

    1.基本特征 (1)并发:并发是指宏观上在一段时间内能同时运行多个程序,而并行则指同一时刻能运行多个指令.操作系统通过引入进程和线程使得程序能够并发运行: (2)共享:共享是指系统中的资源可以被多个并 ...

最新文章

  1. Blender未来科幻武器全流程制作视频教程
  2. 网络爬虫框架cetty的实现
  3. python websocket server_Python Websocket服务端
  4. 一家企业为何使用多家公司的防火墙
  5. easyui关机图标_如何在Windows 10中创建关机图标
  6. 贴出一个php的批量搜索吧
  7. C#反射读取和设置类的属性
  8. 爬取100页京东商品评论
  9. 【论文笔记】—低光图像增强—Zero-reference—ZeroDCE—2020-CVPR
  10. YDOOK:ANSYS 谐波分析的要点和主要应用场景 谐波效应的来源
  11. Android Mvp架构的小demo
  12. 【毕业设计全篇论文和源码】基于SSM的实体商城商户在线租赁以及信息管理系统的设计与实现(多人在线聊天室,微信扫码支付,在线签字,PDF合同在线生成,商户评分)
  13. TI AM3352/54/59 工业核心板硬件说明书
  14. 【计算几何】求三角形外接圆的周长、面积公式
  15. Win10压缩卷提示磁盘空间不足
  16. android 百度地图大头针,百度地图API 地理位置获取和大头针显示当前位置
  17. Linux安装和部署
  18. journald.conf 中文手册
  19. Selenium-淘宝登录
  20. 首次发布!《5G移动通信基站电磁辐射环境监测方法》征求意见

热门文章

  1. both and和both of 得用法 和区别
  2. 【背包问题】基于matlab禁忌搜索算法求解背包问题【含Matlab源码 373期】
  3. Python二级--命运-3
  4. 在程序中打开系统设置页
  5. 重磅消息!微信电脑版本,终于支持刷朋友圈啦!附内测下载地址!
  6. 一个springboot 项目a集成另一个springboot 项目b
  7. 自然语言处理技术之词嵌入方法-2
  8. android studio增加一个界面,Android Studio在同一个窗口中打开多个Project【附效果图附源码...
  9. 查询与退订中国移动短信服务
  10. 被迫解除劳动关系通知书