[工学]ch2-210-211Linux-windows调度算法.ppt_第1页
[工学]ch2-210-211Linux-windows调度算法.ppt_第2页
[工学]ch2-210-211Linux-windows调度算法.ppt_第3页
[工学]ch2-210-211Linux-windows调度算法.ppt_第4页
[工学]ch2-210-211Linux-windows调度算法.ppt_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

0(1)调度程序 -特点是能够保证无 论系统负载 (进程数目或处理器数目) 如何增加,选择合适进程并且给它分 配处理器的时间是恒定的, 具有的新特性有:支持SMP,每个处 理器拥有自己的可运行队列;强化 SMP的亲和力,尽量将相关任务分配 到一个处理器上连续运行;确保响应 时间,及时调度交互式进程;保证公 平性,没有进程会处于饥饿状态。 2) rt_priority-实时进程的优先级。其值 为1000+rt_priority,而 MAX_RT_PRIO 定义为 100,故 rt_priority范围为 0至99 ,且不参与优先级计算; 3) static_prio-非实时进程静态优先级。 由nice值转换而来,公式为: static_prio=MAX_RT_PRIO+nice-20。 8) load_weight;-平衡负载用的权重。解 决可运行队列出现的负载不均现象; 9)CONFIG_PREEMPT-内核可剥夺编译 选项,当该开关开启时,v2.6内核将 会在更多内核安全点上检测; TIF_NEED_RESCHED位,从而让刚 被唤醒的高优先级任务减少延迟而尽 快获得处理器运行。 每个进程都包含 need_resched标志,这 是因为通过 current宏访问进程描述符内 的数值要比访问全局变量快,在v2.2以 前内核版本中,该标志曾经是一个全局 变量; v2.2到v2.4版内核中它放在进程的task_ struct中; v2.6版中,它被移到 thread_info结构体里 ,用特别的标志变量中的一位 TIF_NEED_RESCHED来表示。 调度程序中最主要的数据结构是可运 行队列 (runqueue),它是给定处理器 上的就绪进程链表,每个处理器一个 ,每个就绪进程都归属于一个可运行 队列。 它还包含每个处理器的调度信息,所 以也是处理器的重要数据结构。 一个是活跃的、一个是过期的。 struct prio_array int nr_active; /数组中的进程数 unsigned long bitmapBITMAP_SIZE; /优先级位图 struct list_head queueMAX_PRIO; /优先级队列 ; 实时进程具有静态优先级,范围为0到99 。 非实时任务都有静态优先级nice,该数值 变化范围为 -20到19,默认值为 0,直接 对应于 100到139的优先级范围,默认值 则为 120。 进程的动态优先级,它以nice值为基数, 再加上 -5到+5之间的进程交互性奖励或 罚分。 如果进程的交互性非常强,当它时间片 用完后,会被再次放置到活跃数组而不 是过期数组中。 新调度程序减少对循环的依赖,活跃 数组内的可执行队列上的进程都还有 时间片剩余;过期数组内的可执行队 列上的进程都耗尽时间片。 当某进程的时间片用完时,重新计算 它的时间片,并被移至过期数组。 数组是通过指针进行访问的,活跃和 过期数组之间来回切换所用的时间就 是交换指针需要的时间。 load_balance()函数 找最繁忙的可运行队列,该队列中就绪 进程数目最多,如果没有哪个可运行队 列中就绪进程数目比当前可运行队列中 的就绪进程数目多25或以上,就结束 平衡负载处理。 找最繁忙的可运行队列,从中选择一个 优先级数组以便抽取就绪进程,最好是 过期数组,因为那里面的就绪进程已经 有相对较长时间没有运行,很可能不在 处理器的高速缓存中。如果过期数组为 空,那就只能选活跃数组。 找到含有进程且优先级最高的链表,把 优先级高的就绪进程平均分散开来。 分析找到的所有优先级相同的就绪进程 ,选择一个不是正在执行,也不会因为 处理器相关性而不可移动,且不在高速 缓存中的进程。如果有进程满足这些条 件,便将其从最繁忙的队列中抽取到当 前队列。 只要可运行队列之间仍然不均衡,重复 上面步骤,继续从繁忙队列中抽取进程 到当前队列,最终会消除不平衡局面。 线程被调度运行时,可运行一个被称为 时间配额( quantum)的时间。 时间配额是允许线程连续运行的最大时 间长度,随后系统会中断线

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论