[计算机]windows操作系统课件_第3章调度.pptVIP

[计算机]windows操作系统课件_第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文档。上传文档
查看更多
2021/10/15 * 线程优先级提升的建议值 线程优先级提升是以线程的基本优先级为基点的,不是以线程的当前优先级为基点。 当用完它的一个时间配额后,线程会降低一个优先级,并运行另一个时间配额。这个降低过程会一直进行下去,直到线程的优先级降低至原来的基本优先级。 优先级提升策略仅适用于可变优先级范围(0到15)内的线程。不管线程的优先级提升幅度有多大,提升后的优先级都不会超过15而进入实时优先级。 2021/10/15 * 等待事件和信号量后的线程优先级提升 当一个等待执行事件、信号量对象的线程完成等待后,提升一个优先级。 阻塞于事件或信号量的线程得到的处理机时间比处理机繁忙型线程要少,减少这种不平衡 提升是以线程的基本优先级为基点的,而不是线程的当前优先级。提升后的优先级永远不会超过15。在等待结束时,线程的时间配额被减1,并执行完剩余的时间配额;随后降低1个优先级,运行一个新的时间配额,直到优先级降低到初始的基本优先级。 2021/10/15 * 前台线程在等待结束后的优先级提升 对于前台进程中的线程,一个内核对象上的等待操作完成时,内核函数会提升线程的当前优先级(不是线程的基本优先级) 。 在前台应用完成它的等待操作时小幅提升它的优先级,以使它更有可能马上进入运行状态,有效改进前台应用的响应时间特征。 用户不能禁止这种优先级提升,甚至是在用户已利用Win32的函数SetThreadPriorityBoost禁止了其他的优先级提升策略时,也是如此。 2021/10/15 * 图形用户接口线程被唤醒后的优先级提升 拥有窗口的线程在被窗口活动唤醒(如收到窗口消息)时将得到一个幅度为2的额外优先级提升。 窗口系统(Win32k.sys)在调用函数KeSetEvent时实施这种优先级提升,KeSetEvent函数调用设置一个事件,用于唤醒一个图形用户接口线程。 这种优先级提升的原因是改进交互应用的响应时间。 2021/10/15 * 对处理机饥饿线程的优先级提升 系统线程“平衡集管理器(balance set manager)” 会每秒钟检查一次就绪队列,是否存在一直在就绪队列中排队超过300个时钟中断间隔的线程。 如果找到这样的线程,平衡集管理器将把该线程的优先级提升到15,并分配给它一个长度为正常值两倍的时间配额; 当被提升线程用完它的时间配额后,该线程的优先级立即衰减到它原来的基本优先级。 2021/10/15 * SMP系统上Windows 2000线程调度 亲合关系 亲合掩码该线程可在哪些处理机上运行。 线程的亲合掩码是从进程的亲合掩码继承得到的。 缺省时,所有进程(即所有线程)的亲合掩码为系统中所有可用处理机的集合。应用程序通过调用SetProcessAffinityMask函数来指定亲合掩码; 当Windows 2000试图调度优先级最高的可执行线程时,有几个因素会影响到处理机的选择。Windows 2000只保证一个优先级最高的线程处于运行状态。 2021/10/15 * 首选处理机(ideal processor):线程运行时的偏好处理机; 线程创建后,Windows 2000系统不会修改线程的首选处理机设置; 应用程序可通过SetThreadIdealProcessor函数来修改线程的首选处理机。 第二处理机(last processor):线程第二个选择的运行处理机; 2021/10/15 * 就绪线程的运行处理机选择 当线程进入运行状态时,Windows 2000首先试图调度该线程到一个空闲处理机上运行。如果有多个空闲处理机,线程调度器的调度顺序为: 线程的首选处理机 线程的第二处理机 当前执行处理机(即正在执行调度器代码的处理机)。 如果这些处理机都不是空闲的,Windows 2000将依据处理机标识从高到低扫描系统中的空闲处理机状态,选择找到的第一个空闲处理机。 2021/10/15 * 如果线程进入就绪状态时,所有处理机都处于繁忙状态,Windows 2000将检查一个处于运行状态或备用状态的线程,判断它是否可抢先。检查的顺序如下: 线程的首选处理机 线程的第二处理机 如果这两个处理机都不在线程的亲合掩码中,Windows 2000将依据活动处理机掩码选择该线程可运行的编号最大的处理机。 2021/10/15 * Windows 2000并不检查所有处理机上的运行线程和备用线程的优先级,而仅仅检查一个被选中处理机上的运行线程和备用线程的优先级。 如果在被选中的处理机上没有线程可被抢先,则新线程放入相应优先级的就绪队列,并等待调度执行。 2021/10/15 * 为特定的处理机调度线程 在多处理机系统,Windows 2000不能简单地从就绪队列中取第一个线程,它要在亲合掩码限制下寻找一个满足下列

文档评论(0)

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

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

1亿VIP精品文档

相关文档