[OS] CPU Scheduling (CPU 调度)

Chapter 5: CPU Scheduling (CPU 调度)


CPU 调度的基础 (Basic Concepts)

1. CPU 利用率 (CPU Utilization)

中文解释:
CPU 利用率是 CPU 繁忙工作的时间与总时间的比率,是衡量系统资源使用效率的重要指标。

英文解释:
CPU utilization is the ratio of the time the CPU is busy working to the total time. It is a critical metric for measuring system resource efficiency.

通俗比喻:
CPU 利用率就像工厂的机器工作时间比例,机器运转的时间越高,利用率越高。


2. CPU–I/O 突发周期 (CPU–I/O Burst Cycle)

中文解释:
CPU 和 I/O 操作交替发生的周期。大部分程序包括 CPU 密集型和 I/O 密集型操作。

英文解释:
The CPU–I/O burst cycle alternates between CPU and I/O operations. Most programs include CPU-bound and I/O-bound operations.

通俗比喻:
就像一个工厂的机器需要加工材料(CPU)和搬运材料(I/O)。


3. CPU 突发时间分布 (CPU Burst Distribution)

中文解释:
CPU 突发时间分布指不同任务所需的 CPU 时间通常较短,但存在少数需要长时间的突发。

英文解释:
CPU burst distribution refers to the varying lengths of CPU time needed by tasks. Most are short bursts, but some require long bursts.

通俗比喻:
这就像商店顾客排队,大部分人只是买少量商品,但少数人需要结账许多商品。


CPU 调度器 (CPU Scheduler)

4. 就绪队列 (Ready Queue)

中文解释:
就绪队列存储所有等待 CPU 分配的任务,是 CPU 调度器调度的核心资源。

英文解释:
The ready queue contains all tasks waiting for CPU allocation and is central to CPU scheduler operations.

通俗比喻:
就绪队列就像餐厅的候餐区,顾客在这里排队等待服务员。


5. 抢占式与非抢占式调度 (Preemptive vs. Nonpreemptive Scheduling)

抢占式调度 (Preemptive Scheduling)

中文解释:
允许系统中断正在运行的任务,将 CPU 分配给更高优先级的任务。

英文解释:
Allows the system to interrupt a running task and allocate the CPU to a higher-priority task.

通俗比喻:
就像急诊室,严重的患者可以优先插队。

非抢占式调度 (Nonpreemptive Scheduling)

中文解释:
一旦任务获得 CPU,任务只能在完成或等待资源时释放 CPU。

英文解释:
Once a task gets the CPU, it retains it until it completes or waits for a resource.

通俗比喻:
非抢占式调度就像电影放映,播放中途不会中断。


6. 调度标准 (Scheduling Criteria)

CPU 利用率、吞吐量、周转时间、等待时间、响应时间

中文解释:

  • CPU 利用率: 最大化 CPU 的繁忙时间比例。
  • 吞吐量: 单位时间内完成的任务数量。
  • 周转时间: 从任务提交到完成的总时间。
  • 等待时间: 任务在就绪队列中等待的时间总和。
  • 响应时间: 从任务提交到首次响应的时间。

英文解释:

  • CPU Utilization: Maximize the proportion of busy CPU time.
  • Throughput: Number of tasks completed per unit time.
  • Turnaround Time: Total time from task submission to completion.
  • Waiting Time: Total time spent in the ready queue.
  • Response Time: Time from submission to first response.

通俗比喻:
评价餐厅效率的标准:

  • CPU 利用率: 厨师繁忙的时间比例。
  • 吞吐量: 每小时完成的菜品数。
  • 周转时间: 顾客从点餐到吃到菜的时间。
  • 等待时间: 顾客等待点菜的时间。
  • 响应时间: 从顾客点菜到服务员首次响应的时间。

7. 调度算法 (Scheduling Algorithms)

先来先服务 (First-Come, First-Served, FCFS)

中文解释:
按照任务到达的顺序分配 CPU。容易出现“护航效应”(长任务阻塞短任务)。

英文解释:
Tasks are scheduled in arrival order. It may lead to a "convoy effect" where long tasks block shorter ones.

通俗比喻:
顾客按照排队顺序点餐,但一个点复杂菜的顾客可能让后面的人等待很久。


最短作业优先 (Shortest Job First, SJF)

中文解释:
优先处理 CPU 突发时间最短的任务,是最优的调度算法之一,但需要预测任务的执行时间。

英文解释:
Schedules the task with the shortest CPU burst time first. It's optimal but requires burst time prediction.

通俗比喻:
餐厅优先制作最简单的菜,让更多顾客快速用餐。


轮转调度 (Round Robin, RR)

中文解释:
为每个任务分配固定时间片,未完成任务返回队列尾部。

英文解释:
Allocates a fixed time slice to each task. Unfinished tasks are returned to the end of the queue.

通俗比喻:
每个顾客按时间轮流点菜,超时的人需重新排队。


优先级调度 (Priority Scheduling)

中文解释:
根据任务优先级分配 CPU,但可能引发低优先级任务“饥饿问题”。

英文解释:
Allocates CPU based on priority, which may lead to starvation for low-priority tasks.

通俗比喻:
VIP 顾客优先服务,普通顾客可能等待很久。


多级队列调度 (Multilevel Queue Scheduling)

中文解释:
将任务划分到不同的队列,不同队列采用不同的调度算法。

英文解释:
Divides tasks into different queues, each with its own scheduling algorithm.

通俗比喻:
快餐店分别处理外卖、堂食和 VIP,采用不同服务模式。


多级反馈队列调度 (Multilevel Feedback Queue Scheduling)

中文解释:
允许任务在队列间移动,长时间未完成的任务优先级会降低。

英文解释:
Allows tasks to move between queues. Long-running tasks may be demoted to lower priority.

通俗比喻:
长期占座的顾客被请到普通区,以便高优先级顾客就餐。


多处理器调度 (Multiple-Processor Scheduling)

处理器亲和性 (Processor Affinity)

中文解释:
任务倾向绑定到特定处理器,分为软亲和性(可以迁移)和硬亲和性(固定绑定)。

英文解释:
Tasks prefer binding to specific processors, categorized into soft (can migrate) and hard affinity (fixed binding).

通俗比喻:
厨师喜欢使用熟悉的工作台。


NUMA 系统调度 (NUMA Scheduling)

中文解释:
NUMA 系统考虑任务的内存和 CPU 物理位置,优化数据访问。

英文解释:
NUMA scheduling considers the physical proximity of memory and CPU to optimize data access.

通俗比喻:
食材存放在离厨师最近的架子上。


统一情景模型

将所有概念映射为 餐厅运营模型

  1. CPU: 餐厅的厨师。
  2. 任务: 顾客的订单。
  3. 调度算法: 厨师处理订单的策略,如先到先服务或按菜品复杂度处理。
  4. 调度标准: 餐厅效率的评价标准,如响应时间和吞吐量。
  5. 抢占式调度: 厨师随时中断当前菜,优先处理紧急订单。
  6. 多处理器调度: 多个厨师协同工作,分配订单到不同厨师。
  7. 恢复机制: 通过记录订单历史确保在断电后恢复状态。

29. Pthread Scheduling

Key Concepts: PTHREAD_SCOPE_PROCESS, PTHREAD_SCOPE_SYSTEM.

中文解释:

Pthread 调度是 POSIX 标准线程库提供的线程调度方式:

  • PTHREAD_SCOPE_PROCESS: 线程在单个进程内竞争 CPU 资源。
  • PTHREAD_SCOPE_SYSTEM: 线程与系统中的所有线程竞争 CPU 资源。
英文解释:

Pthread scheduling is provided by the POSIX standard thread library:

  • PTHREAD_SCOPE_PROCESS: Threads compete for CPU resources within a single process.
  • PTHREAD_SCOPE_SYSTEM: Threads compete for CPU resources across all threads in the system.
通俗比喻:
  • PTHREAD_SCOPE_PROCESS: 就像一个公司内部员工竞争内部资源。
  • PTHREAD_SCOPE_SYSTEM: 就像全行业的公司员工竞争公共资源。
角色说明:
  • 线程调度配置器: 决定线程资源的竞争范围。

30. Pthread Scheduling API

Key Concepts: pthread_attr_init, pthread_attr_getscope, pthread_attr_setschedpolicy.

中文解释:
  • pthread_attr_init: 初始化线程属性。
  • pthread_attr_getscope: 获取线程调度范围(进程范围或系统范围)。
  • pthread_attr_setschedpolicy: 设置线程调度策略(如 FIFO、RR)。
英文解释:
  • pthread_attr_init: Initializes thread attributes.
  • pthread_attr_getscope: Gets the scheduling scope of a thread (process or system).
  • pthread_attr_setschedpolicy: Sets the scheduling policy (e.g., FIFO, RR).
通俗比喻:

API 就像工具箱,可以配置线程运行的规则,例如定义员工的竞争范围和规则。

角色说明:
  • 调度工具: 提供线程调度属性的接口。

31. Multiple-Processor Scheduling

Key Concepts: SMP, Multicore CPUs, NUMA Systems, Load Balancing.

中文解释:

多处理器调度在多处理器系统中分配任务:

  • SMP (对称多处理): 处理器平等共享任务。
  • Multicore CPUs: 每个物理 CPU 包含多个核心。
  • NUMA 系统: 任务优先绑定到内存就近的处理器。
  • Load Balancing (负载均衡): 在处理器之间均匀分配任务。
英文解释:

Multiple-processor scheduling allocates tasks in multiprocessor systems:

  • SMP (Symmetric Multiprocessing): Processors share tasks equally.
  • Multicore CPUs: Each physical CPU contains multiple cores.
  • NUMA Systems: Tasks prefer processors close to their memory.
  • Load Balancing: Distributes tasks evenly among processors.
通俗比喻:
  • SMP 就像餐厅的所有厨师平等接单。
  • NUMA 系统就像厨师优先选择离自己工作台最近的材料。
  • 负载均衡则像餐厅经理确保每位厨师工作量均衡。
角色说明:
  • 任务分配者: 负责任务在多核或多处理器间的调度和均衡。

32. Multicore Processors

Key Concepts: Chip Multithreading, Hyperthreading.

中文解释:
  • Chip Multithreading: 每个核心同时支持多个线程执行。
  • Hyperthreading: 每个物理核心模拟多个逻辑核心,提高资源利用率。
英文解释:
  • Chip Multithreading: Each core supports simultaneous multithreading.
  • Hyperthreading: Each physical core simulates multiple logical cores for better resource utilization.
通俗比喻:

Chip Multithreading 就像厨师同时处理多道菜;Hyperthreading 则像一个厨师假装成多个厨师,让看起来像有更多人工作。

角色说明:
  • 并发执行者: 增强系统的并发处理能力。

33. Multithreaded Multicore System

Key Concepts: Hardware Threads, Logical CPUs.

中文解释:

多线程多核系统在硬件支持下分配多个逻辑 CPU,通过硬件线程提高并发性能。

英文解释:

Multithreaded multicore systems allocate multiple logical CPUs through hardware threads to enhance concurrency.

通俗比喻:

就像餐厅有多个厨师和多个厨房,可以同时处理更多订单。

角色说明:
  • 并发优化器: 提升多核系统的效率。

34. Multiple-Processor Scheduling – Load Balancing

Key Concepts: Push Migration, Pull Migration.

中文解释:
  • Push Migration: 任务主动从繁忙的处理器迁移到空闲处理器。
  • Pull Migration: 空闲的处理器主动从繁忙处理器拉取任务。
英文解释:
  • Push Migration: Tasks are proactively moved from busy to idle processors.
  • Pull Migration: Idle processors pull tasks from busy processors.
通俗比喻:
  • Push Migration 像厨师主动将订单分配给其他厨师。
  • Pull Migration 像闲着的厨师主动去找任务处理。
角色说明:
  • 负载优化器: 在多处理器系统中均衡工作负载。

35. Multiple-Processor Scheduling – Processor Affinity

Key Concepts: Soft Affinity, Hard Affinity.

中文解释:
  • Soft Affinity: 任务倾向绑定特定处理器,但可以迁移。
  • Hard Affinity: 任务固定绑定到特定处理器,无法迁移。
英文解释:
  • Soft Affinity: Tasks prefer a specific processor but can migrate.
  • Hard Affinity: Tasks are fixed to a specific processor and cannot migrate.
通俗比喻:

Soft Affinity 就像顾客习惯性选择某位服务员,但可以接受其他人服务;Hard Affinity 则像 VIP 专属服务员。

角色说明:
  • 任务绑定器: 控制任务与处理器的分配关系。

36. NUMA and CPU Scheduling

Key Concepts: NUMA-aware OS, Memory Placement.

中文解释:

NUMA 调度优化任务和内存分配的物理邻近性,减少远程访问延迟。

英文解释:

NUMA scheduling optimizes task and memory allocation proximity to reduce remote access latency.

通俗比喻:

NUMA 系统就像厨师优先使用最近的冰箱和食材,避免跑到远处拿东西。

角色说明:
  • 访问延迟优化器: 减少跨节点访问的时间。

37. Real-Time CPU Scheduling

Key Concepts: Soft Real-Time, Hard Real-Time, Event Latency.

中文解释:

实时 CPU 调度分为:

  • 软实时: 允许偶尔错过截止时间。
  • 硬实时: 所有任务必须严格按截止时间完成。
英文解释:

Real-time CPU scheduling includes:

  • Soft Real-Time: Allows occasional missed deadlines.
  • Hard Real-Time: Tasks must meet deadlines without fail.
通俗比喻:

软实时就像送快递偶尔晚到可以被接受,硬实时则像高考必须准点交卷。

角色说明:
  • 时间敏感任务执行者: 确保实时任务的按时完成。

整合到统一情景模型

  1. 多核处理器: 餐厅有多个厨师(多核),每个厨师可以同时处理多个任务(多线程)。
  2. NUMA: 厨师优先使用离自己最近的食材和工具。
  3. 负载均衡: 厨师之间互相分配订单,避免工作不均。
  4. 实时调度: 确保紧急订单(硬实时)和普通订单(软实时)按时完成。
  5. Pthread 调度: 配置员工竞争的范围(单部门或全餐厅)。

通过比喻和逐步整合,所有关键概念被系统化解释,覆盖了 CPU 调度的复杂性与应用场景。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值