《(8)--2.3 进程的互斥与同步关系.pdf》由会员分享,可在线阅读,更多相关《(8)--2.3 进程的互斥与同步关系.pdf(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、进程的互斥与同步关系 目 录 01 进程的互斥关系 02 进程的同步关系 03 小结 例题 例:设有堆栈S,栈中存放内存中相应的数据块地址。栈指针为top,设有两个进程PA和PB,通过堆栈管理数据块。getaddr(top):从给定栈中取出相应的内存数据块地址,putaddr(blk):将内存数据块地址blk放入椎栈中。Procedure getaddr()begin local r 1.1 r(top)1.2 top top-1 1.3 return r end Procedure putddr(blk)begin 2.1 top top+1 2.2 (top)blk end b a e f
2、 top PA:Begin getaddr()End PB:Begin putaddr(blk)End blk 例题 执行过程putaddr(blk)的 2.1 top top+1 完成top top+1 b a e f top CPU的执行过程:进程切换,执行getaddr(top)完成putaddr(top)的2.2 (top)blk 随机 b a e f top 最后,putaddr和getaddr两个过程都出现结果出错的问题。堆栈的取和存数过程 1.1 r(top)1.2 top top-1 1.3 return r blk 例题 b a e f top 互斥关系 Procedure
3、getaddr(top)begin local r 1.1 r(top)1.2 top top-1 1.3 return r end Procedure putddr(blk)begin 2.1 top top+1 2.2 (top)blk end 进程的互斥关系 互斥是竞争关系,是无意识安排的 互斥可发生在相关进程之间,也可发生在无关进程之间 互斥是进程间的间接制约关系 进程间通过中介发生联系 中介:指共同使用的资源或变量互斥(不同时,独占),又称为临界资源,互斥资源,共享变量。进程的关系 例:计算进程Pc、打印进程Pp实现合作,完成打印任务。在Pc结合Pp之间有一个数据缓冲区buf。计算进
4、程不断把每次计算结果放入buf中,打印进程则取出buf中的数据打印输出。缓冲区buf Pc Pp 计算进程 打印进程 放入 取出结果 进程的关系 缓冲区buf Pc Pp 计算进程 打印进程 放入 缓冲区buf Pc Pp 计算进程 打印进程 取出结果 数据丢失 无效数据 进程的同步关系 进程间的同步关系是合作关系。指系统中一些进程需要相互合作,共同完成一项任务。具体地说,是一个进程运行到某一点时,要求另一个伙伴进程为它提供消息,在未获得消息之前,该进程处于等待状态,获得消息后被唤醒进入就绪态。进程间的同步关系是有意安排的,只发生在相关进程间。直接制约关系。进程的同步关系 缓冲区buf Pc Pp 计算进程 打印进程 1.放入 3.取出结果 2.数据已放入缓冲区,缓冲区已非空 同步关系 进程的同步关系 3.放入 缓冲区buf Pc Pp 计算进程 打印进程 1.取出结果 2.数据已取出,缓冲区已空 小结 本次课程主要讲述了进程之间的互斥和同步关系。如果不考虑进程之间的互斥与同步关系,不对这种关系加以有效的控制,就会产生错误或者是异常。谢 谢 大 家!