如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第5章并发性:互斥、同步和通信并发执行的各个进程之间,既有独立性,又有制约性。独立性:各进程可独立地向前推进制约性:一个进程会受到其他进程的影响,这种影响关系可能有:互斥同步通信清华大学出版社1/19第5章并发性:互斥、同步和通信5.1并发的原理5.2信号量机制5.3管程机制5.4进程通信清华大学出版社2/195.1并发的原理5.1.1与时间有关的错误5.1.2互斥与同步的概念5.1.3临界区与进程互斥5.1.4硬件支持互斥的方法清华大学出版社3/195.1.1与时间有关的错误例:Pl,P2两并发进程共享变量count,如果按如下顺序运行:P1:P2:R1=count;R2=count;R1=R1+1;R2=R2+1;count=R1;count=R2;结果:count的值+2,正确清华大学出版社4/195.1.1与时间有关的错误如果Pl,P2按如下顺序运行:P1:P2:R1=count;R2=count;R1=R1+1;count=R1;R2=R2+1;count=R2;结果:count的值+1,错误!清华大学出版社5/195.1.1与时间有关的错误原因:1、共享了变量;2、“同时”使用了这个变量。解决办法:1、取消共享(×)2、允许共享,不允许同时使用(√)------进程互斥清华大学出版社6/195.1.2互斥与同步的概念1、进程间两种形式的制约关系间接制约关系:进程间要通过某种中介发生联系,是无意识安排的。直接制约关系:进程间的相互联系是有意识的安排的。清华大学出版社7/195.1.2互斥与同步的概念2、进程的同步(直接制约)进程的同步:synchronism指系统中多个进程中发生的事件存在某种时序关系,需要相互合作,共同完成一项任务。具体说,一个进程运行到某一点时要求另一伙伴进程为它提供消息,在未获得消息之前,该进程处于等待状态,获得消息后被唤醒进入就绪态清华大学出版社8/195.1.2互斥与同步的概念例:司机P1售票员P2while(true)while(true){{启动车辆;关门;正常运行;售票;到站停车;开门;}}清华大学出版社9/195.1.2互斥与同步的概念3、进程的互斥(间接制约)mutualexclusion由于各进程要求共享资源,而有些资源需要互斥使用,因此各进程间竞争使用这些资源,进程的这种关系为进程的互斥。清华大学出版社10/195.1.3临界区与进程互斥1、临界资源(criticalresource)系统中某些资源一次只允许一个进程使用,称这样的资源为临界资源或互斥资源或共享变量。2、临界区(互斥区):criticalsection在进程中涉及到临界资源的程序段叫临界区多个进程的临界区称为相关临界区清华大学出版社11/19临界区的例子…P1…P3Ifa<0a:=a+1互斥thenprint(a)互斥a:=a+1……elseP2a:=a-1互斥a:=a-1print(a)……进程的互斥(间接作用)清华大学出版社12/19临界区的例子程序程序程序段1段2段3共享变量清华大学出版社13/195.1.3临界区与进程互斥3、实现各进程互斥进入临界区进程须在临界区前面增加一段用于进行上述检查的代码,称为进入区(entrysection)。在临界区后面加上一段称为退出区(exitsection)的代码While(1){进入区代码;临界区代码;退出区代码;其余代码;}清华大学出版社14/195.1.3临界区与进程互斥4、使用互斥区的原则:空闲让进:当无进程在互斥区时,任何有权使用互斥区的进程可进入忙则等待:不允许两个以上的进程同时进入互斥区有限等待:任何进入互斥区的要求应在有限的时间内得到满足让权等待:处于等待状态的进程应放弃占用CPU,以使其他进程有机会得到CPU的使用权清华大学出版社15/195.1.3临界区与进程互斥5、进程互斥的解决主要有两种:硬件方法:分为中断禁用、专用机器指令两种(5.1.4节)软件方法:用编程解决,包括操作系统或程序设计语言中提供某种级别的支持,比如信号量机制和管程机制(5.2~5.3节),但常常忙等待清华大学出版社16/195.1.4硬件支持互斥的方法1.中断禁用为保证互斥,只需保证进程不被中断就可以了,通过系统内核为启用中断和禁