同步互斥问题之硬件PPT课件_第1页
同步互斥问题之硬件PPT课件_第2页
同步互斥问题之硬件PPT课件_第3页
同步互斥问题之硬件PPT课件_第4页
同步互斥问题之硬件PPT课件_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2021/7/241同步互斥问题之硬件同步互斥问题之硬件2021/7/242为什么会出现同步互斥问题为什么会出现同步互斥问题? 为了提高系统中各种资源的利用率,引进了并发的概念,让多个进程可以并发执行,但又因为并发执行,容易引发死锁等一些问题2021/7/243互斥关系与同步关系互斥关系与同步关系 互斥关系:指由于竞争同一个物理资源而产生的相互制约关系 同步关系:指进程间共同完成一项任务时直接发生相互作业的关系2021/7/244如何判断同步互斥关系 互斥:主要是看这些进程是否竞争同一个临界资源(临界资源每次只允许一个进程访问的资源)这些进程间有没有合作关系,如果是竞争同一临界资源,进程间又没

2、有合作关系,那这些进程间就为互斥关系,应该让它们互斥执行 同步:方法一两个以上的进程共同使用一个临界资源,但使用的是两种不同的状态,而且两个进程是合作关系方法二两个进程是合作进程,做两种不同的事,但像接力跑一样,必须前一个进程做完,后一个进程才做工作,或者两个进程的工作交替进行着2021/7/245解决同步互斥问题方法解决同步互斥问题方法.软件方面.硬件方面锁,信号量机制2021/7/246锁锁 任何临界区问题都需要一个简单的工具-锁锁。通过要求临界区用锁来防护,就可以避免竞争条件,即一个进程在进入临界区之前必须得到锁,而在其推出临界区时释放锁。2021/7/247基本概念 信号量机构:信号量

3、、p、v操作 信号量 p、v操作 原语2021/7/248什么是信号量?通常用234567表示,它的作用与交通管理中的信号灯一样,由它来控制进程的行进速度,一般情况,信号量为正数和8时可通行,负数时就必须等待(网上的定义)。但是从我们所学基本代码可以看出,差不多S0的时候,就是可以通行的。2021/7/249pv操作信号量s为一整型变量,则P(S): While S0 ;/no-op S = S-1 ; V(S):S = S1; P、V操作是两条原语,即保证P、V操作对变量S的访问是互斥操作。2021/7/2410原语 原语:指完成某种功能且不被分割或不被中断执行的操作序列。(即老师讲的原子操

4、作) 原语可通过硬件实现不可中断性;或通过实现临界段的元方法达到不被中断。 实现临界段的元方法:屏蔽中断(只用于单机)加硬锁。2021/7/2411利用信号量解决同步互斥问题 互斥:用于n个进程的临界段互斥,n进程共享一个信号量mutex,初值为1,任一进程Pi的结构为:Process Pi: do wait(mutex); critical section signal(mutex); remainder section while (1);2021/7/2412同步:有P1、P2 两进程,必须在P1执行完S1语句后,P2才能执行S2。需同步的两进程共享信号量synch,初值为0。Parbe

5、gin P2: begin P1: beginS1;V(synch);end; P(synch);S2;end;Parend;2021/7/2413操作系统实现信号量时与进程调度相结合,信号量时与进程调度相结合,消除忙等待消除忙等待现象。原则是:在原则是:在P P操作循环等待的地方加入放弃操作循环等待的地方加入放弃处理机处理机/ /挂入等待队列动作,在挂入等待队列动作,在V V操作时,操作时,从等待队列中摘取进程变为就绪态。从等待队列中摘取进程变为就绪态。(P P、V V原语本身的互斥操作通过屏敝中断原语本身的互斥操作通过屏敝中断或为信号量加硬锁实现)或为信号量加硬锁实现)信号量的具体实现20

6、21/7/24141 1、信号量定义、信号量定义 type Semaphore=recordtype Semaphore=record value:integer; value:integer; 一个数型变量一个数型变量 L:List of process;L:List of process;一个一个PCBPCB队列队列 end;end;2 2、P P操作操作 P(S):S.Value=S.value 1;P(S):S.Value=S.value 1; If S.value0 then If S.value0 then 保存现场,保存现场, 将本进程挂入将本进程挂入S.LS.L队列,重新调度队列,重新调度。3 3、V V操作操作 V V(S):S.value:=value+1S):S.value:=value+1 If S.value 0 then If S.value 0 then 从从S.LS.L队列队列 取一进程,挂入就绪队列。取一进程,挂入就绪队列。2021/7/2415实例 甲甲 5:00 查看冰箱,面包没了查看冰箱,面包没了 5:05 去超市去超市 5:10 到达超市到达超市 5:15 买好面包买好面包 5:20 回家回家,把面包放入冰箱把面包放入冰箱 5:25 5:30 乙乙 5:00 5:05 5:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论