Linux操作系统分析-进程分类.pptVIP

  • 3
  • 0
  • 约3.45千字
  • 约 52页
  • 2018-06-10 发布于上海
  • 举报
INIT_TASK的初始优先级设置情况 子进程继承父进程的优先级 进程可以通过优先级设置相关的系统调用来调整自身或者其他进程的优先级 include/linux/init_task.h * Linux操作系统分析 */14 sched_fork中对优先级的调整 wake_up_new_task对优先级的调整 * Linux操作系统分析 */14 * Linux操作系统分析 */14 阅读sys_nice的代码,理解nice的作用 …… 注意:阅读的时候,将实时任务和非实时任务分开考虑 …… * Linux操作系统分析 */14 阅读sys_setpriority的代码 kernel/sys.c * Linux操作系统分析 */14 Linux-2.4.18中的调度算法 * Linux操作系统分析 主要内容 进程描述符 进程切换 进程的创建和删除 进程调度 * Linux操作系统分析 */52 进程的分类 不同类型的进程有不同的调度需求 第一种分类: I/O-bound 频繁的进行I/O 通常会花费很多时间等待I/O操作的完成 CPU-bound 计算密集型 需要大量的CPU时间进行运算 * Linux操作系统分析 */52 第二种分类 交互式进程(interactive process) 需要经常与用户交互,因此要花很多时间等待用户输入操作 响应时间要快,平均延迟要低于50~150ms 典型的交互式程序:shell、文本编辑程序、图形应用程序等 * Linux操作系统分析 */52 批处理进程(batch process) 不必与用户交互,通常在后台运行 不必很快响应 典型的批处理程序:编译程序、科学计算 实时进程(real-time process) 有实时需求,不应被低优先级的进程阻塞 响应时间要短、要稳定 典型的实时进程:视频/音频、机械控制等 * Linux操作系统分析 */52 Linux中的进程调度 Linux既支持普通的分时进程,也支持实时进程 Linux中的调度是多种调度策略和调度算法的混合。 什么是调度策略? 是一组规则,它们决定什么时候以怎样的方式选择一个新进程运行 Linux的调度基于分时和优先级 随着版本的变化,分时技术在不断变化 * Linux操作系统分析 */52 Linux的进程根据优先级排队 根据特定的算法计算出进程的优先级,用一个值表示 这个值表示把进程如何适当的分配给CPU Linux中进程的优先级是动态的 调度程序会根据进程的行为周期性的调整进程的优先级 较长时间未分配到CPU的进程,通常↑ 已经在CPU上运行了较长时间的进程,通常↓ * Linux操作系统分析 */52 与调度相关的系统调用 nice getpriority/setpriority sched_getscheduler/sched_setscheduler sched_getparam/sched_setparam sched_yield sched_get_priority_min/sched_get_priority_max sched_rr_get_interval * Linux操作系统分析 */52 例如 仅作用于调用者进程 * Linux操作系统分析 */52 又如 * Linux操作系统分析 */52 * Linux操作系统分析 */52 * Linux操作系统分析 */52 调度算法 Linux 2.4的调度算法 需要遍历可运行队列,算法O(n) Epoch,基本时间片,动态优先级 Linux 2.6.17的调度算法(2.6.23之前) 采用双队列(Active;expire ),按照优先级组队,O(1) Linux 2.6.26的调度算法 非实时:CFS,vruntime,红黑树 实时:优先级队列 Linux进程可以指定该进程所采用的调度策略 调度算法根据进程的调度策略,采用不同的调度算法 * Linux操作系统分析 */52 Linux 2.6.26中的 调度策略:Policy,调度类型 include/linux/sched.h 在task_struct中,使用数据项policy来表达该进程采用的调度策略 * Linux操作系统分析 */52 查看linux-2.6.26中各个policy的使用情况 * Linux操作系统分析 */52 kernel/sched.c * Linux操作系统分析 */52 调度类型 阅读const struct sched_class,调度类 rt_sched_class fair_sched_class idle_sched_class rt_sched_class fair_sched_class idle_sched_class k

文档评论(0)

1亿VIP精品文档

相关文档