第五章资源分配与调度 - read.pptVIP

  1. 1、本文档共50页,可阅读全部内容。
  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文档。上传文档
查看更多
第五章资源分配与调度 - read

宁波大学科技学院计算机系陆静 第五章 资源分配与处理机调度 本章要点(1) 一、资源分配 两种资源分配方式 静态分配 动态分配 死锁 定义、起因、产生死锁的必要条件、不产生死锁的最小资源数 规避死锁的方法 预防 避免 检测与恢复 ?银行家算法 本章要点(2) 二、处理机调度 处理机的二级调度 作业级调度 进程级调度 作业调度 作业状态:提交、后备、执行、完成 作业控制块JCB 作业调度的性能评价-平均周转时间、平均带权周转时间 作业调度算法(FCFS、SJF、HRRN、优先数、RR等) 进程调度的主要任务 Unix进程调度:基于优先数的多级反馈轮转算法 静态设置 动态计算 5.1资源分配 1、操作系统对资源管理和分配的目标 保证资源有高的利用率; 在合理的时间内使所有用户进程具有获得所需资源的机会;(尽可能满足更多用户的需求) 对不可共享的资源实施互斥使用; 防止由于资源分配不合理而引起的死锁。 5.1资源分配 2、资源分配的两种方式 静态分配:在作业级实施 当一个作业运行前,将它要求的所有资源一次性分配给该作业,直到该作业完成时释放其占用的所有资源,分配给作业的资源伴随作业的整个运行过程。 缺点:效率太低 动态分配:在进程级实施 当一个进程要求使用某个(类)资源时,向系统提出资源的请求,系统响应进程的请求将某种资源分配给进程,进程使用完毕后立即释放该资源 优点:系统资源的利用率提高 缺点:有可能造成死锁 作业 VS. 进程 作业是用户向计算机系统提交一项工作的基本单位,是用户在一次事务处理或计算过程中要求计算机所做工作的总和。进程是一个具有一定独立功能的程序关于某个数据集合的一次运行活动,是操作系统分配资源和进行调度的基本单位。 作业是描述用户向系统提交工作任务的实体单位,而进程是系统完成工作任务时程序执行的实体单位。从这个角度讲,他们处于不同的层次,作业描述用户和操作系统之间的任务委托关系,而进程描述操作系统内部任务的具体执行过程。一个用户的任务,即作业,由用户提交给系统,必须以进程的形式具体完成。 5.2死锁 算法描述: main() { int full=0; int empty=n; int mutex=1; cobegin produceri(); consumerj(); coend } /*某个生产者进程i*/ produceri() { while(生产未完成) { 生产一个产品; P(empty); //请求缓冲区有空条件 P(mutex); //请求进入临界区 送一个产品到缓冲区; //临界区 V(mutex); //释放临界区 V(full); //释放缓冲区有数条件 } } /*某个消费者进程j*/ cosumerj() { while(还要继续消费) { P(full); //请求缓冲区有数条件 P(mutex); //请求进入临界区 从缓冲区中取一个产品;//临界区 V(mutex); //释放临界区 V(empty); //释放缓冲区有空条件 消费产品; } } /*某个生产者进程i*/ produceri() { while(生产未完成) { 生产一个产品; P(mutex); //请求进入临界区 P(empty); //请求缓冲区有空条件 送一个产品到缓冲区; //临界区 V(mutex); //释放临界区 V(full); //释放缓冲区有数条件 } } 5.2死锁 5.2.1死锁的概念 死锁:系统中所有的并发进程彼此互相等待对方所拥有的资源,且它们在得到对方资源之前不会释放自己所拥有的资源,从而造成互相死等,却永远等不到的一种任一进程都不能继续运行的系统状态。 在死锁状态下,进程都处于阻塞态,解除它们阻塞的事件或条件永远也不会发生。 5.2死锁 5.2.2产生死锁的根本原因:系统资源不足 死锁是资源竞争和资源分配不合理两个因素同时作用所产生的可能结果 5.2死锁 如果不考虑资源分配的合理性,若要不产生死锁,则资源的个数必须满足以下条件(即系统不会产生死锁的最小资源数): 设系统所拥有的资源总数为M,共享该资源的进程数为P,每个进程所需使用该资源的最大需求为N,则   M≥P*(N-1)+1 时 无论如何分配都不会产生死锁。 5.2死锁 证明方法一:

文档评论(0)

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

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

1亿VIP精品文档

相关文档