欢迎来到天天文库
浏览记录
ID:52475208
大小:734.55 KB
页数:66页
时间:2020-04-08
《《多进程编程教程》PPT课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章进程同步与互斥并发(concurrency)是多道程序技术、多处理技术、分布式处理技术的基础,也是OS设计的重点资源的共享和争用多个进程活动的同步分配给进程的处理器时间等。5.1并发的原理单处理器,多道程序:交错多处理器,多道程序:交错和重叠5.1并发的原理---示例共享变量的修改冲突例1:一飞机订票系统,两个终端,运行T1、T2进程T1:T2:......Read(x);Read(x);ifx>=1thenifx>=1thenx:=x-1;x:=x-1;write(x);write(x);......设x的当前值为:
2、1001.若执行顺序为:先T1;后T2;则结果:x=982.若执行顺序为:T1:Read(x);T2:Read(x);T1:ifx>=1thenx:=x-1;T2:ifx>=1thenx:=x-1;T1:write(x);T2:write(x);则结果x=99分析:产生错误的原因是不加控制地访问共享变量xCobeginget;copy;put;Coendgetcopyputfstg复制一个记录5.1并发的原理---示例与进程的执行顺序有关的错误源记录目标记录cmpmc1g2p1c2g3p2g1并发环境下进程间的制约关系上例的
3、正确执行顺序5.1并发的原理-控制对共享资源的访问不加控制地访问共享资源会出现问题,要求控制对共享资源的访问!5.2进程间的制约关系进程的同步(直接制约):synchronism指系统中一些进程需要相互合作,共同完成一项任务。具体说,一个进程运行到某一点时要求另一伙伴进程为它提供消息,在未获得消息之前,该进程处于等待状态,获得消息后被唤醒进入就绪态进程的互斥(间接制约)mutualexclusion由于各进程要求共享资源,而有些资源需要互斥使用,因此各进程间竞争使用这些资源,进程的这种关系为进程的互斥5.2进程间的制约关系相
4、关概念:互斥:指多个进程不能同时使用同一个资源;死锁:指多个进程互不相让,都得不到足够的资源;饥饿:指一个进程一直得不到资源(其他进程可能轮流占用资源)临界资源:系统中某些资源一次只允许一个进程使用,称这样的资源为临界资源或互斥资源或共享变量临界区:进程中访问临界资源的一段代码。司机P1售票员P2REPEATREPEAT启动关门正常运行售票到站停开门UNTILFALSEUNTILFALSE5.2进程间的制约关系5.3临界区问题进入区退出区临界区剩余区临界区(criticalsection):进程中访问临界资源的一段代
5、码。进入区(entrysection):在进入临界区之前,检查可否进入临界区的一段代码。如果可以进入临界区,通常设置相应"正在访问临界区"标志退出区(exitsection):用于将"正在访问临界区"标志清除。剩余区(remaindersection):代码中的其余部分。5.3临界区问题-原语内核在执行某些基本操作时,往往利用原语操作实现原语是一种广义指令,相当于扩充了机器指令集原语是由若干条指令构成、用于完成一定功能的一个过程.原语是原子操作(atomicoperation)原子操作:一个操作中的所有动作,要么全做,要么全
6、不做.原子操作是一个不可分割的操作5.3临界区问题-互斥的要求使用临界区应遵循的准则有空让进:当无进程在临界区时,任何有权使用临界区的进程可进入无空等待:不允许两个以上的进程同时进入临界区多中择一:当没有进程在临界区,而同时有多个进程要求进入临界区,只能让其中之一进入临界区,其他进程必须等待有限等待:任何进入临界区的要求应在有限的时间内得到满足让权等待:处于等待状态的进程应放弃占用CPU平等竞争:任何进程无权停止其它进程的运行进程之间相对运行速度无硬性规定5.4实现互斥的方法实现互斥的方法软件方法硬件方式:利用专门机器指令5
7、.4.1实现互斥的方法:软件的方法(自学)特点无需硬件、OS和程序设计语言的支持处理开销大,容易出错学习的意义更好地理解并发处理的复杂性适用范围单处理器系统共享主存的多处理系统前提假设:存储器级的访问是互斥的5.4.1互斥:软件的方法-Dekker算法Dijkstra报告了Dekker(荷兰数学家)设计的算法尝试1:单标志Dekker算法-尝试1有两个进程Pi,Pj,设立一个共享全局整型变量turn:描述允许进入临界区的进程标识在进入区循环检查是否允许本进程进入:turn为i时,进程Pi可进入;在退出区修改允许进入进程标识:
8、进程Pi退出时,改turn为进程Pj的标识j;优点:保持了互斥的特性缺点:严格轮流使用临界区,限制推进速度,由执行较慢的进程决定容易造成资源利用不充分:在Pi出让临界区之后,Pj使用临界区之前,Pi不可能再次使用临界区;如果一个进程失败了,另一个进程将被永久阻塞忙等待(busywaitin
此文档下载收益归作者所有