面包师问题

一、问题描述:
面包师有很多面包和蛋糕,由 n 个销售人员销售。
每个顾客进店后先取一个号,并且等着叫号。
当一个销售人员空闲下来,就叫下一个号。
请分别编写销售人员和顾客进程的程序。

二、程序实现
由于取号和叫号都属于临界资源,所以用2个互斥信号量来进行表示.

semaphore mutex_c = 1; //控制取号的互斥访问
semaphore mutex_s = 1; //控制
semaphore count_c = 0; //顾客取得的号数
semaphore count_s = 0; //销售人员呼叫的号数
semaphore sale = n; //销售人员数
semaphore customer = 0; //顾客数void Customer() {P(mutex_c); //申请访问取号资源count_c++; //获得号码V(mutex_c) //释放资源V(customer);P(sale); //等待销售人员进行消费,然后离开;
}void Sale() {P(customer); //等待顾客P(mutex_s); //申请叫号资源count_s++; 呼叫号码为 count_s 的顾客;V(mutex_s); //释放资源V(sale);
}

面包师问题--进程同步问题相关推荐

  1. 浅谈进程同步和互斥的概念

    简介 进程同步是一个操作系统级别的概念,是在多道程序的环境下,存在着不同的制约关系,为了协调这种互相制约的关系,实现资源共享和进程协作,从而避免进程之间的冲突,引入了进程同步. 临界资源 在操作系统中 ...

  2. 操作系统学习笔记:进程同步

    互相协作的进程之间有共享的数据,于是这里就有一个并发情况下,如何确保有序操作这些数据.维护一致性的问题,即进程同步. 从底层到高级应用,同步机制依次有临界区.信号量.管程.原子事务. 1.临界区 每个 ...

  3. 卡住无法查看到所有进程_进程同步 进程互斥 软件和硬件实现方式 信号量机制 信号量机制实现进程同步,进程互斥,前驱关系...

    参考:https://www.bilibili.com/video/av31584226/?p=9 进程具有异步性的特征,异步性是指,各并发执行的进程以各自独立的,不可预知的速度向前推进. 回忆我们之 ...

  4. java同步互斥功能检测_猿考研之操作系统篇三(进程同步,管程,死锁)

    进程同步 进程具有异步性的特征.异步性是指,各并发执行的进程以各自独立的.不可预知的速度向前推进. 同步机制应遵循的准则 空闲让进:其他进程均不处于临界区: 忙则等待:已有进程处于其临界区: 有限等待 ...

  5. Python实现进程同步和通信

    Python实现进程同步和通信 如之前创建多进程的例子 # -*- coding:utf-8 -*- from multiprocessing import Process,Pool import o ...

  6. 25 进程同步之Event

    Event用来实现进程之间同步通信,请看下面的例子. [示例 1]multi_process_Event.py 上述代码定义了两个进程函数: 一个是等待事件发生:另一个是等待事件发生并设置超时时间.主 ...

  7. 进程管理3--经典的进程同步问题

    本文地址:http://www.cnblogs.com/archimedes/p/classic-process-synchronization-problems.html,转载请注明源地址. 管程机 ...

  8. 操作系统原理第六章:进程同步

    目录 1 进程同步背景 2 临界区 2.1 进程的互斥 3 信号量 4 哲学家问题 5 生产者消费者问题 6 读写问题 7 P,V操作总结 1 进程同步背景 对于之前所提到的生产者消费者问题,采用共享 ...

  9. linux进程同步/通信,线程同步/通信的区别

    大家常问的是线程的同步和进程的通信,较少问线程通信和进程同步的,那它们有什么区别呢?其实它们没啥区别,线程同步和线程通信其实就是一回事,进程通信和进程同步也是一回事,不要被这些搞混了. linux线程 ...

最新文章

  1. java的this_java的this是什么意思
  2. 假如有人把支付宝所有存储服务器炸了,我们在里边的钱是不是都丢了?
  3. Angular core.js executeTemplate
  4. mysql like in 数组_Web前端学习教程之常用的MySQL优化技巧
  5. 狗和披萨:使用TensorFlow.js在浏览器中实现计算机视觉
  6. 使用MATLAB贝叶斯工具箱(BNT),进行吉布斯采样(Gibbs Sampling)之前需要做的编译工作...
  7. 在vue项目中导入element-ui
  8. 斐波那契数列的第N项
  9. html表单实例:用户反馈表单页面代码
  10. C语言 - 详解回调函数
  11. Windows系统冗余log的清理bat脚本
  12. Java中的观察者模式详解
  13. ACCESS集团VTN 引领跨境电商新机遇 助力海外品牌找到增长突破口
  14. Android Minui 相关API说明
  15. 使用debussy出现的问题
  16. 斗鱼配置管理中心 Minerva 的设计与实现
  17. 物联卡先用流量包还是套餐流量,物联卡流量扣除顺序是什么?
  18. excel表格拆分的快捷操作
  19. WIFI驱动开发——WIFI基础知识汇总
  20. 年货来咯:精选年度最受欢迎干货,覆盖客户端、服务端、前端、数据、算法……...

热门文章

  1. vue 移动端适配flexible.js使用方法
  2. 《灵魂中转站》上线 春来变身“最有型死神”
  3. 学校封杀,大厂禁用,ChatGPT引发大面积恐慌!
  4. Microsoft Edge 开启 IE 模式
  5. 介绍-FreeMarker
  6. 加入收藏js代码 兼容所有浏览器
  7. 雷达导论PART IV.1 多普勒效应
  8. 天融信vm文件_天融信电子文档安全管理系统V3.0
  9. 七个不可思议事件谜题
  10. elasticsearch(es)在用户画像业务上的应用【elasticsearch(es)性能调优】