- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
宁波大学科技学院计算机系陆静 第四章 资源分配与处理机调度 本章要点(1) 一、资源分配 两种资源分配方式 静态分配 动态分配 死锁 定义、起因、产生死锁的必要条件、不产生死锁的最小资源数 规避死锁的方法 预防 避免 检测与恢复 ?银行家算法 本章要点(2) 二、处理机调度 处理机的二级调度 作业级调度 进程级调度 作业调度 作业状态:提交、后备、执行、完成 作业控制块JCB 作业调度的性能评价-平均周转时间、平均带权周转时间 作业调度算法(FCFS、SJF、HRRN、优先数、RR等) 进程调度的主要任务 Unix进程调度:基于优先数的多级反馈轮转算法 静态设置 动态计算 4.1资源分配 1、操作系统对资源管理和分配的目标 保证资源有高的利用率; 在合理的时间内使所有用户进程具有获得所需资源的机会; 对不可共享的资源实施互斥使用; 防止由于资源分配不合理而引起的死锁。 4.1资源分配 2、资源分配的两种方式 静态分配:在作业级实施 当一个作业运行前,将它要求的所有资源一次性分配给该作业,直到该作业完成时释放其占用的所有资源,分配给作业的资源伴随作业的整个运行过程。 缺点:效率太低 动态分配:在进程级实施 当一个进程要求使用某个(类)资源时,向系统提出资源的请求,系统响应进程的请求将某种资源分配给进程,进程使用完毕后立即释放该资源 优点:系统资源的利用率提高 缺点:有可能造成死锁 4.2死锁 5.2.1死锁的概念 死锁:系统中所有的并发进程彼此互相等待对方所拥有的资源,且它们在得到对方资源之前不会释放自己所拥有的资源,从而造成互相死等,却永远等不到的一种任一进程都不能继续运行的系统状态。 在死锁状态下,进程都处于阻塞态,解除它们阻塞的事件或条件永远也不会发生 4.2死锁 4.2死锁 可能产生死锁的情况: 当缓冲区满时,若生产者先到,它可顺利执行p(mutex)操作取得对缓冲区的使用权,但是当它执行p(empty)时,由于没有空缓冲区而被挂起。能将这个生产者唤醒的只能是有一个消费者从缓冲区中取走一个产品,并执行v(empty)操作,但由于缓冲区已被不能存放产品的生产者占用,任何消费者都进不去,因而出现了死锁。 反之,当缓冲区空时消费者先到也会出现死锁。 4.2死锁 产生死锁的根本原因:系统资源不足 死锁是资源竞争和资源分配不合理两个因素同时作用所产生的可能结果 4.2死锁 如果不考虑资源分配的合理性,若要不产生死锁,则资源的个数必须满足以下条件(即系统不会产生死锁的最小资源数): 设系统所拥有的资源总数为M,共享该资源的进程数为P,每个进程所需使用该资源的最大需求为N,则 M≥P*(N-1)+1 时 无论如何分配都不会产生死锁。 4.2死锁 产生死锁的四个必要条件: 1、互斥条件:并发进程所请求的资源是互斥使用的独占资源,即一次只能被一个进程使用的资源,具有排它性。 2、不可剥夺条件(请求和保持)进程所占有的资源在没有使用完之前不能被其它进程强行占用,只能由占有该资源的进程自己释放。 3、部分分配:进程对于自己所需要的资源每次只请求一部分,操作系统允许部分资源的分配。 4、环路条件:系统中各并发进程对于资源的占有和请求形成环路,即请求箭头方向和占有箭头方向形成环路 4.2死锁 规避死锁的3种方法 1、预防---静态(执行前保证) 2、避免---动态(执行中保证) 3、检测与恢复 4.2死锁 1.死锁的预防(针对发生死锁的4个必要条件) 条件1(互斥):是资源本身固有的特性,很难改变和破坏的,但可采用相应的技术,如利用假脱机技术,即用可共享使用的设备模拟非共享的设备; 条件2(不可剥夺):较难否定,但可制定相应的规则,例如,当一个进程(程序)申请某资源被拒绝,则必须释放已占用的资源,如需要再与其它所需资源一起申请;对CPU还可进行可剥夺分配。 条件3(部分分配):容易否定,只要分配策略上规定每个进程一次性将所需资源全部申请到位,用完后释放。(静态分配) 条件4(环路):容易否定,采用有序分配,将资源编号,各进程对于资源的请求只能按号的递增进行,比如请求了R1才能请求R2,从而破坏环路条件预防死锁。 4.2死锁 预防死锁的缺陷: 1.用户进程必须事先列出所有需要的资源,以便系统一次性分配; 2.系统一次性分配给进程的资源在很多时间内是处于空闲状态的; 3.用户进程必须得到所有资源才能运行,减低了并发度,增加了等待时间。 总结: 采用静态预防的方式来解决死锁问题牺牲了资源的利用率,而资源利用率的降低直接导致并发度的降低。 4.2死锁 2、死锁的避免 指操作系统在动态分配过程中对每一次的分配都要采取某种策略去判断一下当前的分配有没有导致死锁的可能性,没有则实施分配,有则
文档评论(0)