进程互斥与同步-互斥.ppt

进程互斥与同步-互斥.ppt

ID:48132099

大小:703.00 KB

页数:38页

时间:2020-01-17

进程互斥与同步-互斥.ppt_第1页
进程互斥与同步-互斥.ppt_第2页
进程互斥与同步-互斥.ppt_第3页
进程互斥与同步-互斥.ppt_第4页
进程互斥与同步-互斥.ppt_第5页
资源描述:

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

1、4.4进程之间的约束关系程序并发执行的相互制约间接的相互制约关系——资源共享(竞争资源系统)直接的相互制约关系——公共变量(进程协作)341.进程互斥的概念临界资源例1:x代表某航班机座号,p1和p2两个售票进程,售票工作是对变量x加1。这两个进程在一个处理机C上并发执行,分别具有内部寄存器r1和r2。35例2:两个进程共享一个变量x两个进程共享一个变量x时,两种可能的执行次序:A:p1:r1:=x;r1:=r1+1;x:=r1;p2:r2:=x;r2:=r2+1;x:=r2;设x的初值为10,两种情况下的执行结果:情况A:x=10+2情况B:x=10+1B:

2、p1:r1:=x;r1:=r1+1;x:=r1;p2:r2:=x;r2:=r2+1;x:=r2;36一次仅允许一个进程使用的资源称为临界资源。硬件:如输入机、打印机、磁带机等软件:如公用变量、数据、表格、队列等每个进程中访问临界资源的那段程序称为临界区。x:=x+1;csa{进程A进程Bx:=x+1;csb{37互斥在操作系统中,当某一进程正在访问某一存储区域时,就不允许其他进程来读出或者修改存储区的内容,否则,就会发生后果无法估计的错误。进程间的这种相互制约关系称为互斥。x:=x+1;csa{进程A进程Bx:=x+1;csb{间接制约由于共享

3、某一公有资源而引起的在临界区内不允许并发进程交叉执行的现象,称为由共享公有资源而造成的对并发进程执行速度的间接制约。受间接制约的类中各程序段在执行顺序上是任意的。间接制约的几个进程是互斥关系使用临界区应遵守的原则各进程享有独立,平等的竞争共享资源的权利。某个进程不在临界区,不阻止其他进程进入排它性,只能有一个进程进入临界区有限等待,某个进程申请使用临界区后,必须在有限的时间内离开。382.进程同步的概念什么是进程同步并发进程在一些关键点上可能需要互相等待与互通消息,这种相互制约的等待与互通消息称为进程同步。进程同步的例病员就诊看病活动:要病人去化验;等化验

4、结果;继续诊病;化验活动:需要进行化验?进行化验;开出化验结果;39共享缓冲区的计算进程与打印进程的同步计算进程cp和打印进程iop公用一个单缓冲缓冲区bufiopcpABCDABCD10直接制约一组在异步环境下的并发进程,各自的执行结果互为对方的执行条件,从而限制各进程的执行速度的过程称为并发进程间的直接制约。直接制约的进程之间是同步关系4.5同步机构操作系统提供的同步机构如下两种:锁和上锁、开锁操作信号灯和PV操作401.锁和上锁、开锁操作什么是锁用变量w代表某种资源的状态,w称为“锁”。上锁操作和开锁操作检测w的值(是0还是1);如果w的值为1,

5、继续检测;如果w的值为0,将锁位置1(表示占用资源),进入临界区执行。(此为上锁操作)临界资源使用完毕,将锁位置0。(此为开锁操作)42上锁原语算法lock输入:锁变量w输出:无{test:if(w为1)∕*测试锁位的值*∕gototest;elsew=1;∕*上锁*∕}不断的测试锁的状态,耗费CPU时间开锁原语算法unlock输入:锁变量w输出:无{w=0;∕*开锁*∕}432.信号灯和P、V操作什么是信号灯信号灯是一个确定的二元组(s,q),s是一个具有非负初值的整型变量,q是一个初始状态为空的队列。操作系统利用信号灯的状态对并发进程和共享资源进行

6、控制和管理。信号灯信号灯是整型变量。变量值≥0时,表示绿灯,进程执行;变量值0时,表示红灯,进程停止执行。注意:创建信号灯时,应准确说明信号灯s的意义和初值(这个初值绝不能为负值)。44P操作P操作的定义对信号灯s的p操作记为p(s)。p(s)是一个不可分割的原语操作,即取信号灯值减1,若相减结果为负,则调用p(s)的进程被阻,并插入到该信号灯的等待队列中,否则可以继续执行。P操作的实现入口S-1→SS≥0?转进程调度返回入信号灯等待队列置“等待状态”≥0045V操作V操作的定义对信号灯s的v操作记为v(s)。v(s)是一个不可分割的原语操作,即取信号灯值

7、加1,若相加结果大于零,进程继续执行,否则,要帮助唤醒在信号灯等待队列上的一个进程。V操作的实现入口S+1→S从信号灯的等待队列中取出首元素入就绪队列置“就绪状态”返回S≤0?>0PV操作是通过原语实现的4.6进程互斥的实现461.用上锁原语和开锁原语实现进程互斥框图描述上锁原语进入临界区csa进程pa开锁原语上锁原语进入临界区csb进程pb开锁原语47程序描述程序task1main(){intw=1;∕*互斥锁*∕cobeginpa();pb();coend}47程序描述pa(){lock(w);csa;unlock(w);}pb(){lock(w)

8、;csb;unlock(w);}48

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

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

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