欢迎来到天天文库
浏览记录
ID:39361949
大小:1.07 MB
页数:73页
时间:2019-07-01
《《os进程同步》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、软件技术基础制作主讲段景山段景山处理机管理进程的同步1处理机的管理功能分为:进程的描述进程的控制进程的同步进程的通信进程的调度处理机管理2第三章进程的同步与通信第二篇操作系统进程的同步关系进程的同步原则信号量进程的通信3进程的同步进程同步问题的提出进程异步推进可能造成混乱混乱可能导致不可再现进程同步目标维持进程并发性以提高系统效率进程执行异步(断续)资源的非封闭(共享)结果不可再现进程同步进程间相互合作资源有效共享结果可再现4进程的同步关系3.1进程同步的基本概念进程间的两种主要关系临界资源与临界区进程同步必须遵循的原则3.
2、1.1进程间的两种主要关系进程间的关系与进程间的独立性进程间的关系是在进程间相对独立的前提下发展的独立获得资源独立调度5进程间的同步关系(一)正常行车到站停车开车售票开车门关车门司机售票员合作合作检查车况维持秩序6获得打印数据进程间的同步关系(二)打印进程1打印进程2打印打印互斥获得打印数据7进程间的同步关系(三)计算进程打印进程计算结果送到Buffer从Buffer中取数Buffer互斥完成数据计算打印通知打印进程打印通知计算进程送下一个数合作8进程间的同步关系相互合作竞争资源司机与售票员多个打印者计算者与打印者9正常行车
3、到站停车开车售票开车门关车门司机售票员同步同步到站停车否是检查车况维持秩序否关车门是10同步实现初探(二)打印进程1打印进程2打印打印互斥获得打印数据获得打印数据打印机可用?设置打印机为不可用是否打印机可用?设置打印机为不可用是否11同步实现初探(三)计算进程打印进程计算结果送到Buffer从Buffer中取数Buffer互斥互斥向打印进程发信号通知其从Buffer里取数Buffer空?否是完成数据计算打印向计算进程发信号通知其向Buffer送数Buffer空?否是合作12进程间的同步关系进程同步时面临的两种主要关系相互合作
4、竞争资源司机与售票员多个打印者计算者与打印者事件、设备等抽象为资源对进程间关系的处理变为对资源的访问方式13临界资源3.1.2临界资源与临界区(1)临界资源一次只允许一个进程访问的资源资源状态为临界:0或1(2)临界区每个进程用于访问临界资源的那段程序同类临界区:同类资源的临界区进入区退出区最简单的资源14临界区进入区临界区退出区进入区临界区退出区........................阻塞等待资源释放改变资源状态释放资源唤醒等待进程进程1进程215同步四原则3.1.3同步机制应遵循的原则空闲让进忙则等待有限等待让权
5、等待16同步原则进程同步应遵循的原则空闲让进当资源空闲时,应当允许访问资源的进程进入临界区忙则等待当资源被占用时,应使申请访问该资源的进程等待,等待使用者归还资源两个基本原则,必须遵循17同步原则进程同步应遵循的原则让权等待在进程等待资源时,从执行态转为阻塞态,应当让出CPU的使用权。系统将把CPU分配给其它进程使用,以提高系统效率有限等待系统应保证等待的进程能在有限的时间内获得资源,继续执行,以防止无限等待浪费该进程已占用的资源18锁机制3.1.4临界资源锁机制例:商场的试衣间是互斥资源是临界资源是共享资源每个顾客必须遵循
6、以下过程使用试衣间:靠锁实现资源的共享管理观察锁状态关锁使用试衣间开锁19锁机制临界资源锁机制锁锁变量L每个进程必须按照以下过程操作资源L=1关闭状态,资源忙L=0打开状态,资源空闲抽象L=1临界区L=0……20锁机制实现一种简单的锁操作实现voidlock(L){check:if(L==1)gotocheck;elseL=1;}voidunlock(L){L=0;}21锁机制实现............check:if(L==1){gotocheck;elseL=1;临界区L进程1进程2unlock(L);......ch
7、eck:if(L==1){gotocheck;elseL=1;临界区unlock(L);......0101022锁操作模型锁操作的一般模型Pi:......lock(L)C(i)unlock(L).........Pj:......lock(L)C(j)unlock(L).........C(i):Pi的临界区Pi:进程i23出了问题的锁............check:if(L==1){gotocheck;elseL=1;临界区unlock(L);......check:if(L==1){gotocheck;elseL
8、=1;临界区unlock(L);......出现问题的锁进程1进程2L01尚未执行问题出在?判断状态后改变状态前被打断24锁机制实现关锁操作不可被打断用原语实现关锁操作关锁操作在一个指令周期内完成(1)引入TS的操作(2)采用“exchange”(swap)指令利用特殊硬件机制和指令,使关
此文档下载收益归作者所有