欢迎来到天天文库
浏览记录
ID:48809805
大小:651.50 KB
页数:108页
时间:2020-01-27
《第2章 进程与线程(2).ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、2.5进程同步和通信进程的同步和互斥临界资源与临界区互斥实现方式信号量信号量的一般应用12.5进程同步和通信进程间的相互关系分为3种互斥同步通信22.5.1进程的同步与互斥1.同步同步进程通过共享资源来协调活动,在执行时间的次序上有一定约束。虽然彼此不直接知道对方的名字,但知道对方的存在和作用。在协调动作的情况下,多个进程可以共同完成一项任务。例如:接力赛跑的接棒区;流水线工作;卡片读写:读卡器->缓存1->缓存2->打印机;3有计算进程Pc和打印进程Pp共同使用同一缓冲区BUF。计算进程反复把每次计算结果放入BUF,打印进程把计算进程放入BUF中的数据
2、通过打印机打印。1.同步——举例4缓冲区BUF供者PcBUF空用者PpBUF满1.同步——举例5缓冲区BUF供者PcBUF空用者Pp1.同步——举例6供者Pc用者Pp缓冲区BUF1.同步——举例7供者Pc用者Pp缓冲区BUF满1.同步——举例8供者Pc用者Pp缓冲区BUF1.同步——举例9缓冲区BUF供者PcBUF空用者Pp1.同步——举例10要实现Pc和Pp的协同工作,提高效率,可做如下规定:只有当取空BUF中的内容时Pc才能向其中写入新信息;只有当写满BUF时,Pp才能从中取出内容打印。1.同步——举例11BUF中的内容取空时,Pp不应继续进行,需要
3、等待Pc向其中送入新信息;反之,当BUF中的内容尚未取走时,Pc应等待,防止把原有的信息冲掉而造成信息丢失。Pp与Pc是一种同步关系。1.同步——举例12指系统中一些进程需要相互合作,共同完成一项任务。具体说,一个进程运行到某一点时要求另一伙伴进程为它提供消息,在未获得消息之前,该进程处于阻塞状态,获得消息后被唤醒进入就绪态。1.同步13在逻辑上这两个进程本来完全独立,毫无关系,只是由于竞争同一个物理资源而相互制约。它们的运行不具有时间次序的特征。例如:交叉路口争用车道;争抢篮板球;一台打印机,多个进程竞争使用;火车站售票,2个窗口同时出售同一车次的票。
4、2.5.1进程的同步与互斥2.互斥14对互斥进程,单独执行正确,但不能交叉执行,只要互斥进行,先后没有关系;对同步进程,单独执行会产生错误,必须相互配合,有先后次序关系。竞争条件(RaceCondition),即两个或多个进程同时访问和操纵相同的数据时,最后的执行结果取决于进程运行的精确时序。2.5.1进程的同步与互斥152.5.2临界资源和临界区包含有竞争条件的程序在运行时,结果不确定;必须找到某种途径来阻止一个以上的进程同时使用这种资源——多进程共享这种资源时,必须互斥使用;162.5.2临界资源和临界区临界资源:一次仅允许一个进程使用的资源称为临界
5、资源。宿舍电话和打印机都属于临界资源。除此之外,还有内存变量、指针、数组等等也是临界资源。临界区:在每个进程中访问临界资源的那段程序叫做临界区。一次只允许有一个程序在临界区中。172.5.2临界资源和临界区进程的一般结构进程互斥进入临界区的模式:进入前要申请;获准后方可进入;执行后要退出怎样设计入口和出口?182.5.2临界资源和临界区临界区进入准则如果若干进程要求进入空闲的临界区,一次仅允许一个进程进入。(空闲则入)任何时候,处于临界区内的进程不可多于一个。(忙则等待)进入临界区的进程要在有限时间内退出。(有限等待)如果进程不能进入自己的临界区,则应让
6、出CPU,避免进程出现“忙等”现象。(让权等待)根据准则设计入口区、出口区192.5.3实现进程互斥的方法硬件方法禁止中断专用机器指令软件方法置锁变量法信号量法在操作系统或程序设计语音中提供某种级别的支持202.5.3实现进程互斥的硬件方法——禁止中断While(true){/*禁止中断*/;/*临界区*/;/*启用中断*/;/*其余部分*/;}中断禁止21中断禁止缺点一旦某个进程关闭中断后,如果不再开放中断,系统可能因此而终止对多处理器系统不起作用2.5.3实现进程互斥的硬件方法——禁止中断22专用机器指令——TSL指令可以利用某些硬件指令--其读写操
7、作由一条指令周期中执行完成,因而保证读操作与写操作不被打断;2.5.3实现进程互斥的硬件方法——专用机器指令232.5.3实现进程互斥的硬件方法——专用机器指令TSL(TestandSetLock),读数和存数不可分割;enter_region:TSLREGISTER,LOCK//LOCK→REG,LOCK置1CMPREGISTER,#0JNEenter_region//如果不等于0,则循环,”CPU忙式等待”RETLeave_region:MOVELOCK,#0//将lock置为0RET24可能导致忙等待机器指令缺点252.5.3实现进程互斥的软件方法
8、原语(primitive):为完成某些特定功能而编制的一段系统程序。也称为“原子
此文档下载收益归作者所有