浙江网站建设推广公司,河北设计公司排名,查企业信息的黄页有哪些,网站开发和运行 法律1 题目描述
面包师有很多面包和蛋糕#xff0c;由N个销售人员销售。每个顾客进店后先取一个号#xff0c;并且等着叫号。当一个销售人员空闲下来#xff0c;就叫下一个号。试用信号量的P、V操作设计该问题的同步算法#xff0c;给出所用共享变量#xff08;如果需要…1 题目描述
面包师有很多面包和蛋糕由N个销售人员销售。每个顾客进店后先取一个号并且等着叫号。当一个销售人员空闲下来就叫下一个号。试用信号量的P、V操作设计该问题的同步算法给出所用共享变量如果需要和信号量及其初始值并说明各自的含义。
2 条件分析
题目需要满足的要求
1 顾客之前取号要互斥保证每一个顾客取到的号码不一样引入mutex_sale
2 销售员叫号之间也要互斥 引入mutex_customer
3 销售员在卖面包之前要保证1有顾客2叫到号
4 顾客在买面包之前要保证1 有店员 2 叫到号
3 伪代码实现
1.customer_ticket0 //取号数
2.sale_ticket0 //叫号数
3.mutex_sale1;//销售员之间叫号要互斥
4.mutex_customer1;//顾客之间叫号要互斥
5.sale_numberN;//店员人数
6.customer_number0//顾客人数
7.int
8.void Sale(void){
9. while(1){
10. P(customer_number) //等待顾客到来
11. P(mutex_sale);//销售员申请叫号
12. sale_ticket;
13. V(mutex_sale);//销售员释放叫号
14. sell_bread(); //卖面包
15. V(sale_number);//释放店员占用
16. }
17.
18.}
19.void Customers(void){
20. while(1){
21. P(mutex_customer) //申请取号
22. customer_ticket;
23. V(mutex_customer) //释放取号
24. V(customer_number)
25. P(sale_number);//请求店员服务
26. buy_bread();
27. }
28.
29.} 系列文章如下
学习过程中一定要有系统观念知识框架每一章开头都会有一个思维导图知道目前自己在学习的是哪一板块的内容和前面有什么样的联系
操作系统的很多知识点前后都是联系非常紧密的去一点一点理解而不是死记硬背会学习的非常愉快的
操作系统相关文章
概述初步了解操作系统功能及其一些概念
操作系统一| 概述 作业 批处理 OS运行环境要求 基本特征-CSDN博客
进程管理部分重头戏
操作系统二 | 进程控制 进程状态 进程描述 进程控制 进程同步互斥-CSDN博客
操作系统三| 进程管理上 进程状态 同步 互斥-CSDN博客
操作系统三| 进程管理下 经典进程问题分析 线程 死锁-CSDN博客
内存管理部分
操作系统四| 内存管理 实存储器管理 虚拟存储器管理 分页 分段式管理-CSDN博客
文件系统管理部分
操作系统五| 文件系统上 结构 存取方式 文件目录 检索-CSDN博客
操作系统六| 文件系统下 文件使用 共享 保护-CSDN博客
设备管理部分
操作系统七| 设备管理-- 端口 驱动程序 基本I/O控制 磁盘I/O-CSDN博客