计算机操作系统 教学课件 作者 郁红英 冯庚豹1 第2章 进程管理3——进程调度与死锁.pptVIP

计算机操作系统 教学课件 作者 郁红英 冯庚豹1 第2章 进程管理3——进程调度与死锁.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2.7 死锁 产生死锁的原因 进程的推进顺序不当 进程的推进顺序合适 交换P操作的位置 产生死锁的四个必要条件 死锁的预防 死锁的避免 安全状态 银行家算法 安全状态 不安全状态 检测死锁 资源分配图的简化 死锁的解除 2.8 处理机调度 调度的层次 仅有进程调度的调度队列模型 选择调度方式和算法的若干准则 周转时间 调度算法 先来先服务FCFS与短作业优先SJF FCFS与SJF比较 时间片轮转调度算法 时间片大小 系统处理能力比较 优先权调度算法 多级队列调度算法 多级反馈队列调度算法 Windows2000 中的线程调度 Windows2000线程优先级 线程时间配额 线程调度数据结构 调度策略 主动切换 抢先 时间配额用完 线程优先级提升 ●算法思想 ●根据作业的性质和类型不同,将就绪队列再分为若干个子队列,每个进程分属于一个队列。 ●规定每个队列的优先权,可先在高优先权队列中进行调度,当高优先权队列为空时,再从低优先权队列中进行调度。 ●算法思想 ●在多级队列的基础上,不但设多个队列,且为每个队列赋予不同的优先权,第一个队列的优先权最高,第二个队列次之,其余队列的优先权逐个降低。 ●各个队列中的进程执行时间片大小逐渐增大。 ●新进程投入第一个队列。 ●调度从第一个队列进行,仅当第一个队列为空时,才调度第二个队列中的进程。 ● Windows2000的线程调度特征 Windows2000 实现了一个基于优先级的多处理机调度系统。 ●通常线程可在任何可用处理器上运行,但也可以限制某线程只能在某处理器上运行。 ●亲合处理器集合允许用户通过Win32调度函数选择其偏爱的处理器。 ●线程调度的触发事件有: ●一个线程进入就绪态 ●一个线程时间片用完 ●一个线程的优先级被改变 ●一个正在运行的线程改变了它的亲合处理器集合 Windows2000内部使用32个线程优先级。 ● 16个实时优先级(16~31):用户可以通过Win32编程接口改变实时优先级的级别,但必须有此权限。 ● 15个可变线程优先级(1~15):可通过Win32编程接口指定线程的优先级为:高级、中上、中级、中下、空闲。 ●一个系统线程优先级(0):仅用于对系统中空闲物理页面进行清零的零页线程。 时间配额长度 前后台变化 前后台线程时间配额提升 ●时间配额是一个线程从进入运行状态到系统检查是否有其它优先级相同的线程需要开始运行之间的时间总和。 ●时间配额的计算 ● Windows2000专业版中线程开始时的时间配额为6 ● Windows2000服务器版专业版中线程开始时的时间配额为36 ●每次时钟中断,时钟中断服务例程从线程的时间配额中减少一个固定值3( X86单处理机时钟中断间隔为10毫秒) 。 ●时间配额的控制:在系统注册表中有一个注册项Win32PrioritySeparation,允许用户指定时间配额的长度和前后台线程的时间配额是否加长。 相对 ●主动切换 ●抢先 ●时间配额用完 ●运行结束 * * ● 一组竞争系统资源或相互通信的进程相互的“永久”阻塞。若无外力作用,这组进程将永远不能继续执行。 ●资源数 要求该种资源的进程数 ●进程的推进顺序非法 进程P …… get A ; …… get B ; …… release A ; …… release B ; …… ? 进程Q …… get B ; …… get A ; …… release B ; …… release A ; …… A、B分别代表某种资源 ● 1 、 2 、 4 、 5 正常运行 ● 3 、 6 发生死锁 进程P对资源的申请、释放次序改变后不死锁! void producer //生产者进程 while true produce an item in data_p; P empty ; P mutex ; buffer[i] data_p; i i + 1 % n; V mutex ; V full ; void consumer //消费者进程 while true P mutex ; P full ; data_c buffer[j]; j j + 1 % n; V mutex ; V empty ; consume the item in data_c; 问题的提出:对于生产者-消费者问题,如果将P操作的位置交换,将产生什么样的后果? 消费者先行 死锁! void producer //生产者进程 while true produce an item in data_p; P mutex ; P empty ; buffer[i] data_p;

您可能关注的文档

文档评论(0)

时间加速器 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档