操作系统概念:第七章进程同步.ppt
《操作系统概念:第七章进程同步.ppt》由会员分享,可在线阅读,更多相关《操作系统概念:第七章进程同步.ppt(36页珍藏版)》请在三一办公上搜索。
1、操作系统概念,第七章:进程同步,2,本章主要内容,背景临界区域问题同步硬件信号量经典同步问题管程,3,7.1 背景,共享数据的并发访问可能导致数据的不一致维护数据的一致性需要能够保证协作进程顺序执行的机制,4,竞争条件(Race Condition),生产者while(1)while(counter=BUFFER_SIZE);/do nothing/produce an item and put in nextProducedbufferin=nextProduced;in=(in+1)%BUFFER_SIZE;counter+;,5,竞争条件,消费者while(1)while(counter
2、=0);/do nothingnextConsumed=bufferout;out=(out+1)%BUFFER_SIZE;counter-;,6,竞争条件,counter+可按如下方式以机器语言实现register1=counterregister1=register1+1counter=register1counter-可按如下方式实现register2=counterregister2=register2 1counter=register2考虑以下交叉执行顺序S0:生产者执行 register1=counter register1=5S1:生产者执行 register1=registe
3、r1+1 register1=6S2:消费者执行 register2=counter register2=5S3:消费者执行 register2=register2 1 register2=4S4:生产者执行 counter=register1 counter=6S5:消费者执行 counter=register2 counter=4,7,多个进程并发访问和操作同一数据且执行结果与访问发生的特定顺序有关,称为竞争条件(race condition),8,7.2 临界区问题的解决,代码块:进入区(entry section)临界区(critical section)退出区(exit sectio
4、n)剩余区(remainder section)互斥(Mutual Exclusion):如果进程Pi在其临界区执行,那么其他进程都不能在其临界区内执行。有空让进(Progress):如果没有进程在其临界区内执行且有进程希望进入临界区,那么只有那些不在剩余区内执行的进程能参加决策,以选择谁能下一个进入临界区,且这种选择不能无限推迟。有限等待(Bounded Waiting):在一个进程做出进入其临界区的请求到该请求被允许期间,其他进程被允许进入期临界区的次数存在一个上限。,9,两进程解法,两个进程标为P0和P1,为了方便,当使用Pi时,用Pj来表示另一个进程;即j=1 i;,10,算法1,进程
5、共享一普通整数变量turn,其初值为0(或1)如果turn=i,Pi允许在其临界区内执行。确保了每个时刻只有一个进程处于临界区域。但不满足“有空让进”需要。为什么?P0能否连续两次进入临界区?do while(turn!=i);/进入区临界区turn=j;/退出区剩余区 while(1);,11,算法2,1.do 2.flagi=true;3.while(flagj);/进入区4.临界区5.flagi=false;/退出区6.剩余区7.while(1);增加了更多的状态信息布尔标志用来表示线程它准备进入其临界区“有空让进”的要求仍然没有得到满足为什么?将语句2与语句3的位置互换,又将如何?,1
6、2,算法3,结合算法1与算法2的思想是否满足临界区的要求?do flagi=true;turn=j;while(flagj,13,多进程解法,面包店算法的思想:在进入商店时,每个客户接收一个号码。具有最小号码的客户先得到服务。然而,面包店算法不能保证两个进程不会收到同样的号码。在出现相同号码时,具有最小名称的进程先得到服务。即如果Pi和Pj收到同样号码,且i j,那么Pi 先得到服务。实现boolean choosingn;int numbern;定义:若a c,若a=c且bd,(a,b)(c,d)max(a0,an-1)是数k,从而kai,对 I=0,n-1成立。算法见下页,14,do ch
7、oosingi=true;numberi=max(number0,number1,numbern-1)+1;choosingi=false;for(j=0;j n;j+)while(choosingj);while(numberj!=0),15,7.3 同步硬件,许多系统提供了临界区代码的硬件支持单处理器系统 可以禁用中断当前正在执行的代码可以顺利执行而不会被抢占在多处理器环境下,这种解决方案是不可行的。现代机器提供了特殊的原子硬件指令原子=不可中断的TestAndSet指令Swap指令(交换内存中两个字的内容),16,TestAndSet指令,TestAndSet指令的定义boolean T
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 概念 第七 进程 同步
链接地址:https://www.31ppt.com/p-4979486.html