ch2-2.7.5-2.7.7实例研究.pptVIP

  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文档。上传文档
查看更多
ch2-2.7.5-2.7.7实例研究

实例研究 2.7.5实例研究:UNIX SVR4调度算法 2.7.6实例研究:Windows2000/XP调度算法 2.7.7实例研究:Linux调度算法 2.7.5 实例研究:UNIX SVR4 调度算法 UNIX SVR4对调度算法的主要修改: ?提供了基于静态优先数的抢占式调度。 ?引入了抢占点。 ?每一个进程必须被分配一个优先数,从而属于一类优先级层次。 UNIX SVR4优先级和优先数 ?实时优先级层次(优先数159-100):这一层次的进程先于其他层次进程运行,能利用抢占点抢占内核进程和用户进程。 ?内核优先级层次(优先数99-60):这一层次的进程先于分时优先级层次进程但迟于实时优先级层次进程运行。 ?分时优先级层次(优先数59-0):最低优先级层次,用于非实时的用户应用。 UNIX SVR4多级进程反馈队列调度 进程调度采用多级反馈队列,每个优先数都对应于一个就绪进程队列,每个队列中的进程按照时间片方式调度。 位向量dqactmap用来标志每一个优先数就绪进程队列是否为空。 执行到定义的抢占点,内核程序将检查kprunrun标志位,发现有高优先级实时进程处于就绪状态,就执行抢占。 UNIX SVR4的就绪进程队列 2.7.6实例研究:Windows2000/XP调度算法 处理器调度的对象是线程,也称线程调度。 实现了基于优先级抢先式的多处理器调度系统,系统总是运行优先级最高的就绪线程。 线程可在任何可用处理器上运行,但可限制某线程只能在某处理器上运行,亲合处理器集合允许用户线程通过Win32调度函数选择它偏好的处理器。 时间配额 线程被调度运行时,可运行一个被称为时间配额(quantum)的时间。 时间配额是允许线程连续运行的最大时间长度,随后系统会中断线程运行,判断是否需要降低该线程的优先级,查找是否有其他高优先级或相同优先级的线程等待运行。 由于抢先式调度特征,一个线程的一次调度执行可能并没有用完它的时间配额就被抢先。 线程调度时机 线程调度出现在DPC/线程调度中断优先级,线程调度触发事件有四种: 1)一个线程进入就绪状态,如一个刚创建的新线程或一个刚结束等待状态的线程。 2)一个线程由于时间配额用完而从运行状态转入退出状态或等待状态。 3)一个线程由于调用系统服务而改变优先级或被系统本身改变其优先级。 4)一个正在运行的线程改变了它的亲合处理器集合。 线程优先级 使用32个线程优先级,范围从0到31,分成三部分: ?实时优先级(优先数为31-16):用于通信任务和实时任务。实时优先数线程的优先数不可变,一旦就绪线程的实时优先数比运行线程高,它将抢占处理器运行。 ?可变优先级(优先数为15-1):用于交互式任务。这一层次优先数的线程,可根据执行过程中的具体情况动态地调整优先数,但是15这个优先数是不能被突破的。 ?一个系统线程优先级(0),仅用于对系统中空闲物理页面进行清零的零页线程。 线程优先级示意 Windows2000/XP线程调度 数据结构 Windows2000/XP线程调度策略 1)主动切换 2)抢先 3)时间配额用完 4)结束 Windows2000/XP线程线程 优先级提升 提升线程当前优先级的情况: 1)I/O操作完成。 2)信号量或事件等待结束。 3)前台进程中的线程完成一个等待操作。 4)由于窗口活动而唤醒图形用户接口线程。 5)线程处于就绪状态超过一定时间,但没能进入运行状态(处理器饥饿)。 对称多处理器系统上的线程调度 1)亲合关系 2)线程的首选处理器和第二处理器 3)就绪线程的运行处理器选择 4)为特定的处理器调度线程 5)最高优先级就绪线程可能不处于运行状态 2.7.7实例研究:Linux 调度算法 调度策略(policy)---按什么原则选择下一个运行进程; 调度时机---什么时间和情况下进行调度; 调度方式---剥夺式还是非剥夺式。 进程task_struct结构中与调度 有关的重要参数(1) (1)policy进程调度策略有三种: #define SCHED_OTHER 0 为普通类任务,只要有实时进程就绪,这类进程便不能运行。 #define SCHED_FIFO 1 为先进先出实时类任务,符合POSIX.1b的FIFO规定。它会一直运行,除非它自己出现等待事件或另一个具有更高rt_priority的实时进程出现时,才出让CPU。 #define SCHED_RR 2 为轮转法实时类任务,符合POSIX.1b的RR规定。除了时间片是一个定量外,和SCHED_FIFO类似。当时间片耗尽后,就使用相同的rt_priority排到原队列的队尾。 进程t

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档