欢迎来到天天文库
浏览记录
ID:43805415
大小:2.36 MB
页数:82页
时间:2019-10-14
《计算机操作系统原理与核心设计-第5章》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第5章并发性:互斥、同步和通信并发执行的各个进程之间,既有独立性,又有制约性。独立性:各进程可独立地向前推进制约性:一个进程会受到其他进程的影响,这种影响关系可能有:互斥同步通信1第5章并发性:互斥、同步和通信5.1并发的原理5.2信号量机制5.3管程机制5.4进程通信25.1并发的原理5.1.1与时间有关的错误5.1.2互斥与同步的概念5.1.3临界区与进程互斥5.1.4硬件支持互斥的方法35.1.1与时间有关的错误例:Pl,P2两并发进程共享变量count,如果按如下顺序运行:P1:R1=count;R1=R1+1;count=R1;P2:R2=count;R2=R2+1;c
2、ount=R2;结果:count的值+2,正确45.1.1与时间有关的错误如果Pl,P2按如下顺序运行:P1:R1=count;R1=R1+1;count=R1;P2:R2=count;R2=R2+1;count=R2;结果:count的值+1,错误!55.1.1与时间有关的错误原因:1、共享了变量;2、“同时”使用了这个变量。解决办法:1、取消共享(×)2、允许共享,不允许同时使用(√)------进程互斥65.1.2互斥与同步的概念1、进程间两种形式的制约关系间接制约关系:进程间要通过某种中介发生联系,是无意识安排的。直接制约关系:进程间的相互联系是有意识的安排的。72、进程
3、的同步(直接制约)进程的同步:synchronism指系统中多个进程中发生的事件存在某种时序关系,需要相互合作,共同完成一项任务。具体说,一个进程运行到某一点时要求另一伙伴进程为它提供消息,在未获得消息之前,该进程处于等待状态,获得消息后被唤醒进入就绪态5.1.2互斥与同步的概念8例:司机P1售票员P2while(true)while(true){{启动车辆;关门;正常运行;售票;到站停车;开门;}}5.1.2互斥与同步的概念93、进程的互斥(间接制约)mutualexclusion由于各进程要求共享资源,而有些资源需要互斥使用,因此各进程间竞争使用这些资源,进程的这种关系
4、为进程的互斥。5.1.2互斥与同步的概念105.1.3临界区与进程互斥1、临界资源(criticalresource)系统中某些资源一次只允许一个进程使用,称这样的资源为临界资源或互斥资源或共享变量。2、临界区(互斥区):criticalsection在进程中涉及到临界资源的程序段叫临界区多个进程的临界区称为相关临界区11进程的互斥(间接作用)…a:=a+1print(a)…P1互斥…a:=a-1print(a)…P2互斥…Ifa<0thena:=a+1elsea:=a-1…P3互斥临界区的例子12程序段1共享变量程序段2程序段3临界区的例子13While(1){进入区代码;临界
5、区代码;退出区代码;其余代码;}3、实现各进程互斥进入临界区进程须在临界区前面增加一段用于进行上述检查的代码,称为进入区(entrysection)。在临界区后面加上一段称为退出区(exitsection)的代码5.1.3临界区与进程互斥14空闲让进:当无进程在互斥区时,任何有权使用互斥区的进程可进入忙则等待:不允许两个以上的进程同时进入互斥区有限等待:任何进入互斥区的要求应在有限的时间内得到满足让权等待:处于等待状态的进程应放弃占用CPU,以使其他进程有机会得到CPU的使用权4、使用互斥区的原则:5.1.3临界区与进程互斥155、进程互斥的解决主要有两种:硬件方法:分为中断禁用
6、、专用机器指令两种(5.1.4节)软件方法:用编程解决,包括操作系统或程序设计语言中提供某种级别的支持,比如信号量机制和管程机制(5.2~5.3节),但常常忙等待5.1.3临界区与进程互斥165.1.4硬件支持互斥的方法1.中断禁用为保证互斥,只需保证进程不被中断就可以了,通过系统内核为启用中断和禁用中断定义的原语实现。进程结构:While(true){禁用中断;临界区;启用中断;其余部分;}缺点:效率低,不能用于多处理器结构。175.1.4硬件支持互斥的方法2.专用机器指令可用于多处理器机器,2条硬件指令:testset指令和exchange指令testset指令定义:bool
7、eantestset(inti){if(i==0){i=1;returntrue;}else{returnfalse;}}185.1.4硬件支持互斥的方法testset指令实现进程的互斥访问设置—个共享变量bolt,其初值=0,代表资源空闲,其值为1代表资源被占用。实现互斥的各个进程为:while(true){while(!testset(bolt));/*当资源占用时等待*/临界区;bolt=0;其余部分;}195.1.4硬件支持互斥的方法exchange指令定义:voidex
此文档下载收益归作者所有