周国运《操作系统》讲义[第2讲2.7].ppt

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

操作系统讲稿 周国运 2005年10月 低级调度实例研究 2.7.5实例研究: UNIX SVR4调度算 2.7.6实例研究: Windows2000/XP调度算法 2.7.7实例研究: Linux调度算法 2.7.5 实例研究:UNIX SVR4调度算法 UNIX SVR4对调度算法的主要修改 ? 提供了基于静态优先数的抢占式调度 ? 引入了抢占点(在内核程序中,各个处理步骤之间) ? 每一个进程必须被分配一个优先数,从而属于一类优先级层次。 SVR4优先级层次和优先数划分 实时优先级层次(优先数159-100):这一层次的进程先于其他层次进程运行,能利用抢占点抢占内核进程和用户进程。 内核优先级层次(优先数99-60):这一层次的进程先于分时优先级层次进程,但迟于实时优先级层次进程运行。 分时优先级层次(优先数59-0):最低优先级层次,用于非实时的用户应用。优先数和时间片都可变:阻塞后优先数提高;优先数大的时间片短。 SVR4多级进程反馈队列调度 进程调度采用多级反馈队列,每个优先数都对应于一个就绪进程队列,每个队列中的进程按照时间片方式调度。 位向量dqactmap用来标志每一个优先数就绪进程队列是否为空。 执行到定义的抢占点,内核程序将检查kprunrun标志位,发现有高优先级实时进程处于就绪状态,就执行抢占。 UNIX SVR4的就绪进程队列 2.7.6实例研究:Windows2000/XP调度算法 主要内容: Windows 2000/XP的线程调度及其特征 与线程调度相关的应用程序编程接口 线程优先级 线程时间配额 线程调度数据结构 线程调度策略 线程优先级提升 对称多处理器上的线程调度 空闲线程 2.7.6实例研究:Windows2000/XP调度算法 作为商业OS,Windows 2000/XP性能要求很高,它的线程调度并非单一算法,而是多种算法的结合体,并且进行了改进和优化。 调度算法的设计目标: 一向单个用户提供交互式的计算环境 二支持各种服务器(server)应用 一、Windows 2000/XP的线程 调度及其特征 处理器调度的对象是线程,也称线程调度。 线程调度是多种算法的结合体 实现了基于优先级抢先式的多处理器调度系统,系统总是运行优先级最高的就绪线程。 线程可在任何可用处理器上运行,但可限制某线程只能在某处理器上运行 线程被调度运行时,可运行一个被称为时间配额(quantum)的时间。配额大小与Windows的版本有关。 线程调度函数称为内核调度器,分散在内核中。 一、Windows 2000/XP的线程调度及其特征(2) 线程调度的中断优先级:在DPC/线程调度上,是2级。 触发线程调度的事件(4种): 线程进入就绪状态,如一个刚创建的新线程或一个刚结束等待状态的线程。 线程时间配额用完,从运行状态转入退出状态或等待状态。 线程调用系统服务,改变优先级或被系统本身改变其优先级。 正在运行的线程改变了它的亲合处理器集合 一、Windows 2000/XP的线程调度及其特征(4) 处理器调度并不考虑被调度线程属于哪个进程。 例如,进程A有10个可运行的线程,进程B有2个可运行的线程,这12个线程的优先级都相同,则每个线程将得到1/12的处理器时间 。 二、Windows 2000/XP中 线程调度API Suspend/ResumeThread 挂起正在运行的线程/激活一个暂停运行的线程 Get/SetPriorityClass 读取/设置进程的基本优先级类型 Get/SetThreadPriority 读取/设置线程的相对优先级 Get/SetProcessAffinityMask 读取/设置进程的亲合处理器集合 SetThreadAffinityMask 设置线程的亲合处理器集合,只允许该线程在指定处理器集合上运行 Get/SetThreadPriorityBoost 读取/设置暂时提升线程优先级状态 二、Windows 2000/XP中 线程调度API(2) SetThreadIdealProcessor 设置特定线程的首选处理器 Get/SetProcessPriorityBoost 读取/设置当前进程缺省优先级提升控制 SwitchToThread 当前线程放弃一个或多个时间配额的运行 Sleep 使当前线程等待指定的一段时间(单位为毫秒)。0表示放弃该线程的剩余时间配额 SleepEx 使当前线程进入等待状态,直到I/O处理完成 三、Windows 线程优先级 1、

文档评论(0)

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

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

版权声明书
用户编号:8133070117000003

1亿VIP精品文档

相关文档