进程互斥详解.ppt

进程互斥详解.ppt

ID:48132122

大小:121.00 KB

页数:23页

时间:2020-01-17

进程互斥详解.ppt_第1页
进程互斥详解.ppt_第2页
进程互斥详解.ppt_第3页
进程互斥详解.ppt_第4页
进程互斥详解.ppt_第5页
资源描述:

《进程互斥详解.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、3.5进程互斥互斥:两个或两个以上的进程,由于不能同时使用同一临界资源,只能是一个进程使用完,另一个进程才能使用。这种现象称为进程互斥。返回3.5.1资源共享所引起的制约3.5.2互斥的加锁实现3.5.3信号量(semaphore)与PV原语3.5.4用PV原语实现进程互斥3.5.1资源共享引起的制约3.5.1.1临界资源3.5.1.2临界区的访问过程3.5.1.3进程互斥的软件方法4.5.1.4进程互斥的硬件方法3.5.1.1临界资源多道程序环境->进程之间存在资源共享,进程的运行时间受影响临界资源:把一次仅允许一个进程使用的资源称为临界资源。进程间资源访问冲突

2、共享变量的修改冲突操作顺序冲突进程间的制约关系间接制约:进行竞争--独占分配到的部分或全部共享资源,“互斥”直接制约:进行协作--等待来自其他进程的信息,“同步”共享变量的修改冲突举例:共享变量x3.5.1.2临界区的访问过程临界区各进程对于临界区资源的操作必须互斥,互斥执行的程序段为临界区(criticalsection)临界区(criticalsection):进程中访问临界资源的一段代码。进入区(entrysection):在进入临界区之前,检查可否进入临界区的一段代码。如果可以进入临界区,通常设置相应"正在访问临界区"标志退出区(exitsection):

3、用于将"正在访问临界区"标志清除。剩余区(remaindersection):代码中的其余部分。3.5.1.3进程互斥的软件方法有两个进程Pi,Pj,其中的Pi,Pj算法1:单标志设立一个公用整型变量s:描述允许进入临界区的进程标识在进入区循环检查是否允许本进程进入:turn为i时,进程Pi可进入;在退出区修改允许进入进程标识:进程Pi退出时,改turn为进程Pj的标识j;while(S=i);criticalsectionturn=j;remaindersectionwhile(S=j);criticalsectionturn=i;remaindersectio

4、n缺点:强制轮流进入临界区,没有考虑进程的实际需要。容易造成资源利用不充分:在Pi出让临界区之后,Pj使用临界区之前,Pi不可能再次使用临界区;3.5.2互斥的加锁实现当某个进程进入临界区后,它将锁上临界区,直到它退出临界区为止。Lock(key[s])/key[s]=0加锁《临界区》Unlock(key[s])/key[s]=1解锁3.5.3信号量(semaphore)4.4.2.1信号量和P、V原语4.4.2.2信号量集前面的互斥算法都存在问题,它们是平等进程间的一种协商机制,需要一个地位高于进程的管理者来解决公有资源的使用问题。OS可从进程管理者的角度来处理

5、互斥的问题,信号量就是OS提供的管理公有资源的有效手段。信号量代表可用资源实体的数量。信号量和P、V原语1965年,由荷兰学者Dijkstra提出(所以P、V分别是荷兰语的test(proberen)increment(verhogen)),是一种卓有成效的进程同步机制。每个信号量s除一个整数值s.count(计数)外,还有一个进程等待队列s.queue,其中的s是阻塞在该信号量的各个进程的标识信号量只能通过初始化和两个标准的原语来访问--作为OS核心代码执行,不受进程调度的打断初始化指定一个非负整数值,表示空闲资源总数(又称为"资源信号量")--若为非负值表示当

6、前的空闲资源数,若为负值其绝对值表示当前等待临界区的进程数"二进制信号量(binarysemaphore)":只允许信号量取0或1值1.P原语wait(s)--s.count;//-1表示申请一个资源;if(s.count<0)//表示没有空闲资源;{调用进程进入等待队列s.queue;阻塞调用进程;}用消息wait(消息名)等待合作进程发来消息2.V原语signal(s)++s.count;//+1表示释放一个资源;if(s.count<=0)//表示有进程处于阻塞状态;{从等待队列s.queue中取出一个进程P;进程P进入就绪队列;}V原语通常唤醒进程等待队列

7、中的头一个进程用消息signal(消息名)表示向合作进程发去消息3.5.4利用信号量实现互斥为临界资源设置一个互斥信号量mutex(MUTualExclusion),其初值为1;在每个进程中将临界区代码置于P(mutex)和V(mutex)原语之间必须成对使用P和V原语:遗漏P原语则不能保证互斥访问,遗漏V原语则不能在使用临界资源之后将其释放(给其他等待的进程);P、V原语不能次序错误、重复或遗漏互斥模型:进程P1进程P2P(S)P(S)S1S2V(S)V(S)其中信号量初值:S=1;S1、S2为两个互斥程序段。并发进程之间存在相互制约关系“同步“进程P1:进程P

8、2:L1:

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。