操作系统调度机制深度:从核心调度器到进程切换.pdfVIP

  • 1
  • 0
  • 约2.16千字
  • 约 9页
  • 2026-05-18 发布于北京
  • 举报

操作系统调度机制深度:从核心调度器到进程切换.pdf

一、调度器

1、调度器

调度器的实现基于两个函数:周期性调度器函数和主调度器函数。这些函数根据现有进程的优先级分配CPU时

间。这也是为什么整个方法称之为优先调度的。

b.周期性调度器函数

周期性调度器在scheduler_tick中实现,如果系统正在活动中,内核会按照频率HZ自动调用该函数。该函数主

要有两个任务如下:

(1)更新相关统计量:管理内核中与整个系统和各个进程的调度相关的统计量。其间执行的主要操作是对各

种计数器加1。

(2)激活负责当前进程的调度类的周期性调度方法。

更新统计量函数:update_rq_clock()/calc_global_load_tick()

update_rq_clock函数

calc_global_load_tick函数

a.主调度器函数

在内核中的许多地方,如果要将CPU分配给与当前活动进程不同的另一个进程,都会直接调用主调度器函数

(schedule)。

主调度器负责将CPU的使用权从一个进程切换到另一个进程。周期性调度器只是定时更新调度相关的统计信息。

cfs队列实际上是用树组织的,rt队列是用链表组织的。

2、调度类及运行队列

a.调度类

为方便添加新的调度策略,Linux内核抽象一个调度类sched_class,目前为止实现5种调度类:

b.运行队列

每个处理

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档