网站大量收购闲置独家精品文档,联系QQ:2885784924

windows處理機調度.ppt

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
windows處理機調度

Windows处理机调度 Windows Server 2003的线程调度概述 每个优先级的就绪进程排成一个先进先出队列; 当一个线程状态变成就绪时,它可能立即运行或排到相应优先级队列的尾部。 总运行优先级最高的就绪线程; 在内核中实现线程调度代码 完全的事件驱动机制,在被抢先前没有保证的运行时间; 在同一优先级的各线程按时间片轮转算法进行调度; 在多处理机系统中多个线程并行运行; 线程调度的触发事件 一个线程进入就绪状态,如一个刚创建的新线程; 时间配额用完事件; 调用系统服务而改变优先级或Windows本身改变优先级; 改变亲合处理机集合; Win32的线程调度应用编程接口 进程优先级类函数: GetPriorityClass(读取) SetPriorityClass(设置) 线程优先级偏移: GetThreadPriority(读取) SetThreadPriority(设置) Windows 2003的中断优先级 Windows2003线程的优先级 实时(real-time):从16到31,如设备监控线程。 可变优先级(variable-priority):从1到15(级别0保留为系统使用)。 线程的基本优先级 = [进程的基本优先级 - 2,进程的基本优先级 + 2],由应用程序控制 线程的动态优先级 = [进程的基本优先级 - 2, 31],由windows2000核心控制 Windows2000的线程优先级由进程优先级类和线程优先级偏移构成,分别由相关函数控制。 Win32和Windows2000/xp线程优先级 就绪位图 为了提高调度速度,Windows 2000维护了一个称为就绪位图的32位量。就绪位图中的每一位指示一个调度优先级的就绪队列中是否有线程等待运行。B0与调度优先级0相对应,B1与调度优先级1相对应,等待。 空闲位图 Windows 2000还维护一个称为空闲位图的32位量。空闲位图中的每一位指示一个处理机是否处于空闲状态。 调度器自旋锁 线程时间配额 时间配额是一个线程从进入运行状态到Windows 2000检查是否有其他优先级相同的线程需要开始运行之间的时间总和。一个线程用完了自己的时间配额时,如果没有其它相同优先级线程,Windows 2000将重新给该线程分配一个新的时间配额,并继续运行。 每个线程都有一个代表本次运行最大时间长度的时间配额。时间配额不是一个时间长度值,而一个称为配额单位的整数。 时间配额的计算 缺省时,在Windows 2000专业版中线程时间配额为6;而在Windows 2000服务器中线程时间配额为36。 在Windows 2000服务器具备较长缺省时间配额,保证客户请求所唤醒的服务器应用有足够的时间在它的时间配额用完前完成客户的请求并回到等待状态。 每次时钟中断,时钟中断服务例程从线程的时间配额中减少一个固定值(3)。 如果没有剩余的时间配额,系统将触发时间配额用完处理,选择另外一个线程进入运行状态。 在Windows 2000专业版中,由于每个时钟中断时减少的时间配额为3,一个 线程的缺省运行时间为2个时钟中断间隔;在Windows 2000服务器中,一个线程的缺省运行时间为12个时钟中断间隔。 如果时钟中断出现时系统正在处在DPC/线程调度层次以上(如系统正在执行一个延迟过程调用或一个中断服务例程),当前线程的时间配额仍然要减少。甚至在整个时钟中断间隔期间,当前线程一条指令也没有执行,它的时间配额在时钟中断中也会被减少。 在等待完成时允许减少部分时间配额。 当优先级小于14的线程执行一个等待函数(如WaitForSingleObject或WaitForMultipleObjects)时,它的时间配额被减少1个时间配额单位。 当优先级大于等于14的线程在执行完等待函数后,它的时间配额被重置。 等待的对象可能有事件、互斥信号量、资源信号量、I/O操作、进程、线程、窗口消息等。 原因:一个线程可能永远不减少它的时间配额。例如,一个线程运行一段时间后进入等待状态,再运行一段时间后又进入等待状态,但在时钟中断出现时它都不是当前线程,则它的时间配额永远也不会因为运行而减少。 时间配额的控制 提高前台线程优先级的潜在问题 假设用户首先启动了一个运行时间很长的电子表格计算程序,然后切换到一个计算密集型的应用(如一个需要复杂图形显示的游戏)。 如果前台的游戏进程提高它的优先级,后台的电子表格将会几乎得不到CPU时间。 但增加游戏进程的时间配额,则不会停止电子表格计算的执行,只是给游戏进程的CPU时间多一些。 如果用户希望运行一个交互式应用程序时的优先级比其他交互进程的优先级高,可利用任务管理器来修改进程的优先级类型为中上或高级,也可利用命令行在启动应用时使用命令“s

文档评论(0)

qiwqpu54 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档