操作系统概论-第6章-并发进程-课件.pptVIP

操作系统概论-第6章-并发进程-课件.ppt

  1. 1、本文档共101页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

第6章并发进程重点:分析与时间有关的错误;用PV操作实现进程的互斥与同步;解决死锁问题的方法程序顺序执行在顺序环境下:先A,后BCPU利用率=40/80=50%DEV1利用率=18.75%DEV2利用率=31.25%

程序并发执行在并发环境下CPU利用率=89%DEV1并发环境下利用=33%DEV2并发环境下利用=66%并行和并发在单CPU系统中,系统调度在某一时刻只能让一个线程(进程)运行,虽然这种调度机制有多种形式(大多数是时间片轮巡为主),但无论如何,要通过不断切换需要运行的线程让其运行的方式就叫并发(concurrent)。而在多CPU系统中,可以让两个以上的线程(进程)同时运行,这种可以同时让两个以上线程同时运行的方式叫做并行(parallel)多道程序设计和并发的关系无关的并发进程并发进程分类:无关的,交互的无关的并发进程:一组并发进程分别在不同的变量集合上操作,一个进程的执行与其他并发进程的进展无关并发进程的无关性是进程的执行与时间无关的一个充分条件交互的并发进程交互的并发进程:一组并发进程共享某些变量,或者一组进程相互合作;一个进程的执行可能影响其他并发进程的结果与时间有关的错误执行的相对速度无法相互控制表现形式:结果不唯一例:P111,P113永远等待例:死锁进程的交互:竞争与协作并发进程之间的竞争关系共享资源进程的互斥并发进程之间的协作关系进程的相互合作进程的同步

进程的交互:竞争与协作

第一种是竞争关系资源竞争的两个控制问题:一个是死锁(Deadlock)问题一个是饥饿(Starvation)问题既要解决饥饿问题,又要解决死锁问题进程的交互:竞争与协作进程互斥是解决进程间竞争关系(间接制约关系)的手段进程互斥指若干进程要使用同一共享资源时,任何时刻最多允许一个进程使用,其他进程必须等待,直到占有资源的进程释放该资源进程的交互:竞争与协作

第二种是协作关系(1)?某些进程为完成同一任务需要分工协作?进程的同步是解决进程间协作关系(直接制约关系)的手段进程的交互:竞争与协作

第二种是协作关系(2)?进程同步指两个以上进程基于某个条件来协调它们的活动。一个进程的执行依赖于协作进程的消息或信号,当一个进程没有得到来自于协作进程的消息或信号时需等待,直到消息或信号到达才被唤醒进程的交互:竞争与协作

第二种是协作关系(3)进程互斥关系是一种特殊的进程同步关系,即逐次使用互斥共享资源,是对进程使用资源次序上的一种协调信号量整型信号量记录型信号量信号量集(Linux)公有信号量私有信号量记录型信号量设s为一个记录型数据结构,一个分量为整形量value,另一个为信号量队列queue,P和V操作原语定义:P(s);将信号量s减去l,若结果小于0,则调用P(s)的进程被置成等待信号量s的状态V(s):将信号量s加1,若结果不大于0,则释放一个等待信号量s的进程记录型信号量typesemaphore=recordvalue:integer;queue:listofprocess;EndprocedureP(vars:semaphore);begins:=s–1;/*把信号量减去1*/ifs<0thenW(s);/*若信号量小于0,则调用P(s)的进程被置成等待信号量s的状态*/end;procedureV(vars:semaphore);begin s:=s+1; /*把信号量加1*/ ifs<=0thenR(s);/*若信号量小于等于0,则释放一个等待信号量s的进程*/end;1、由V操作唤醒的进程是否一定能够直接进入运行状态?举例说明之答:否。一般来说,唤醒是将进程状态由等待状态变成就绪状态,而就绪进程何时获得处理机则是由系统的处理机调度策略确定的。如果采用抢占式优先级调度算法,并且被唤醒的进程是当前系统中优先级最高的进程,那么该进程将被调度执行,该进程的状态变成运行态。如果该进程不是系统中优先级最高的进程或系统采用其它调度算法,那么该进程不会被调度执行,其状态将维持在就绪态2.若用PV操作管理某一组相关临界区,其信号量S的值在[-1,1]之间变化,当S=-1,S=0,S=1时它们各自的物理含义是什么?S=-1表示已有一个进程在相关临界区执行,且有一个进程正在等

文档评论(0)

clevercatty + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档