操作系统习题3—进程的互斥与同步
操作系统习题3—进程的互斥与同步
1.例举两个现实生活中需要同步与互斥的例子。
我们去吃自助餐时,店里的厨师会在后台厨房制作食物,然后将食物运送到公共饮食区域,让顾客自行挑选。如果公共饮食区域的食物都被顾客吃光了,那么顾客只有先进行等待,等厨师做出更多食物再送到公共饮食区;如果公共饮食区域食物数量多到一定程度,厨师会暂停制作食物。
驾驶员开车行驶到一个十字路口时,如果本路口的绿灯亮起,驾驶员可以顺利通过;如果本路口的红灯亮起,驾驶员必须停车进行等待,让其他路口的车辆通过。
2.何谓原语?它与系统调用有何区别?如何实现原语执行的不可分割性?
原语是由若干条机器指令构成的可完成特定功能的程序段。具有以下三个特点:
- 处于操作系统最底层,是最接近硬件的部分
- 程序的运行具有原子性,作为一个整体而不可分割,即要么全都完成,要么全都不做
- 程序的运行时间都较短,而且调用频繁
原语与系统调用的区别:原语只要强调操作的不可分割性,可以认为是一个不可中断的子程序调用;系统调用是由用户态进入核心态,一般也不会被中断,但如果有更紧迫的系统调用的话,原来的系统调用还是会被打断。
原语可通过硬件实现不可中断性,或通过实现临界段的元方法(屏蔽中断、加硬锁)达到不被逻辑上中断。
3.如果 P、V 操作不作为原语,即可分割执行,那么是否还可以用于
解决互斥问题?若不能,举例说明。
如果 P、V 操作不作为原语,就不能用于解决互斥问题。
举例:在生产者-消费者问题中,由于 P、V 操作可以分割执行,很大可能会出现当前缓冲池中满缓冲区个数仅为 1,而多个消费者同时成功使用到这个缓冲区的情况,造成不可避免的系统错误。
4.请用并行语句和 P、V 操作描述图 1 所示的任务执行过程
int synch=0; //两进程 P1、P2 共享信号量ParbeginP1():{S1;V(synch);S2;S4;V(synch);S5;V(synch);}P2():{P(synch);S3;P(synch);S6;P(synch);S7;}
Parend;
5.“理发师睡觉”问题:假设理发店由等待间(n 个座位)和理发间(只有一个座位)构成。无顾客时,理发师睡觉。顾客先进等待间再进理发间,当顾客进入理发间发现理发师在睡觉时,则唤醒理发师,请求理发;如果理发师正在理发,又有顾客到来时,只要有空椅子,他就坐下来等待,如果没有空椅子,他就离开。请为理发师和顾客各编写一段程序来描述他们的同步问题。
int customer=0,barber=0; //顾客和理发师的信号量
int customerNumber=0,mutex=1; //当前顾客数目和互斥控制量//理发师
Barber(){while(1){P(customer); //唤醒等待的一位顾客P(mutex); //顾客被唤醒,准备理发。没有顾客就睡觉customerNumber--; //店里顾客数减一V(barber); //有顾客来了,醒来理发V(mutex); //释放信号量}
}//顾客
Customer(){while(1){P(mutex); //顾客想要理发if(customerNumber<N){ //理发店人数未满,进店customerNumber++; //店里顾客数加一V(customer); //唤醒理发师理发V(mutex); //释放信号量P(barber); //理发师进行理发}else //理发店人数已满,离店V(mutex);}
}
操作系统习题3—进程的互斥与同步相关推荐
- 操作系统习题4—进程死锁
操作系统习题4-进程死锁 1.试解释在十字路口产生的交通死锁现象中包括了死锁产生的 4 个必要条件,并给出避免产生交通死锁的简要规则. 四个必要条件: ① 互斥:同一时刻只能有一辆车占据道路上的同一个 ...
- 2.3.5 操作系统之信号量机制实现进程的互斥、同步与前驱关系
文章目录 0.思维导图 1.信号量机制实现进程互斥 2.信号量机制实现进程同步 3.信号量机制实现前驱关系 0.思维导图 在看此小结内容之前,需熟悉这一篇博客里面的知识,关于P.V操作内部实现原理等h ...
- 【操作系统原理】进程的互斥以及上锁与解锁原语
什么是进程互斥? 所谓进程互斥,就是对于系统的某种资源,若一个进程正在访问它,其他进程必须等待,不能同时使用.这是一种源于资源共享的制约关系,也称为间接制约关系. 接下来,我们来简要的了解一下几个概念 ...
- [OS复习]进程互斥与同步2
互斥与同步的解决策略 当前,利用软件方法.硬件方法.信号量方法.管程方法.消息传递方法都可以有效地解决进程间的互斥与同步,其中信号量的方法更具有优势(目前已经通用). 1. 软件方法: 软件方法是指由 ...
- 操作系统_进程管理_进程的控制与同步
目录 1.进程控制的概念 2.进程的创建 3.进程间互斥与同步的概念 4.临界资源和临界区 5.同步机制应遵循的原则 6.信号量与P/V操作 7.生产者与消费者问题 1.进程控制的概念 进程由创建产生 ...
- 操作系统第二章 进程管理
写在前面:本文参考王道论坛的 操作系统考研复习指导单科书 文章目录 第二章 进程管理 进程同步 读者写者问题 哲学家就餐问题 练习题 哲学家就餐:加碗(2019真题) 既是生产者又是消费者 和尚取水( ...
- 笔记篇:操作系统第二章 进程管理
笔记篇:操作系统第二章 进程管理 目录 笔记篇:操作系统第二章 进程管理 2.1 进程的基本概念 2.1.1 程序的顺序执行及其特征 2.1.2 前驱图 2.1.3 程序的并发执行及其特征 2.1.4 ...
- 王道考研——操作系统(第二章 进程管理)(进程的同步,进程的互斥,管程)
一.进程同步与进程互斥 什么是进程同步 "进程同步"讨论的就是怎么解决"进程异步"的问题 什么是进程互斥 知识回顾与重要考点 二.进程互斥的软件实现方法 学习提 ...
- 操作系统(二十二)用信号量机制实现进程互斥、同步、前驱关系
2.3.5 用信号量机制实现进程互斥.同步.前驱关系 目录 2.3.5 用信号量机制实现进程互斥.同步.前驱关系 2.3.5.1 用信号量机制实现进程互斥 2.3.5.2 用信号量机制实现进程同步 2 ...
最新文章
- 如何通俗解释欧拉公式?
- php根据宽度显示html,我怎样才能动态地改变PHP的HTML div的宽度?
- 计算机应用基础(本)实训任务1,计算机应用基础(本)实训任务1-2.pdf
- 编程题A+B Format的总结(第二次作业一)
- WARNING: cell0 mapping not found - not syncing cell0
- 计算机数据链路层教案,第三章 数据链路层(2) 新.ppt
- linux的一些命令总结
- cas登录成功返回用户更多信息
- 苹果mac os x系统的两种快捷截图技巧
- 残酷的生命,严峻的人生,短暂的美好
- 泛在电力物联网建设大纲ppt
- python queue put阻塞_python queue length_queue length_python queue put
- Tycho build 3: 创建一个全局构建项目
- 用户注册密码加密和后端校验的权衡
- postman批量生产body信息(实现批量修改数据)
- 什么是OKR?OKR对于目标管理有什么意义?
- [内附完整源码和文档] 基于Java的宾馆住宿管理系统
- 讯飞-糖尿病遗传风险检测挑战赛
- acm竞赛中tle的原因 2021-3-9
- css 滚动公告,用DIV+CSS布局,怎么做滚动的公告栏?
热门文章
- IO:select、poll、epoll
- java速算24,Java扑克牌速算24的方法
- java 静态内部类 线程安全问题_单例模式的七种写法, 面试题:线程安全的单例模式...
- 压缩机电流保护原因是什么?压缩机烧毁常见原因有哪些?
- 浓烟滚滚!某市联通集体断网,谁的锅?
- calibre中的hcell_关于calibre的Hcell你知道多少?
- roobo机器人怎么唱歌_智能机器人都长什么样?提前探秘中国智能机器人大赛
- Python之spyder-kernels:spyder-kernels的简介、安装、使用方法之详细攻略
- Interview:算法岗位面试—11.06早上上海某智能驾驶科技公司(创业)笔试+面试之手撕代码、项目考察、比赛考察、图像算法的考察等
- 成功解决UnicodeDecodeError: 'utf-8' codec can't decode byte 0x9a in position 0: invalid start byte