跳转至

进程调度

进程调度

进程调度是低级调度,负责在多个就绪进程中选择一个进程,分配CPU,使其得以运行。其目标是高效利用CPU并满足系统的性能需求。

进程调度的主要功能

选择进程

  • 从就绪队列中挑选一个最适合当前运行的进程,将CPU分配给它。

管理CPU的分配

  • 动态调整CPU分配策略,使CPU资源能够在进程间合理共享。

保存和恢复进程上下文

  • 在切换CPU控制权时,保存当前进程的运行状态(上下文);
  • 恢复被调度进程的运行状态,使其能继续运行。

公平性与优先级控制

  • 确保所有进程能公平竞争CPU;
  • 根据优先级、紧急程度等调度策略合理分配CPU。

支持多种调度算法

  • 支持先来先服务(FCFS)、时间片轮转、高响应比优先(HRRF)等多种算法,以适应不同的系统需求。

进程调度的时机

进程调度通常在以下几种情况下触发:

进程运行结束

  • 当前进程执行完毕,CPU空闲,需要调度一个新的进程运行。

进程进入阻塞状态

  • 当前进程因I/O请求、等待资源等原因无法继续运行,从运行状态切换到阻塞状态,调度其他进程运行。

时间片用完(分时系统中)

  • 当前进程的时间片耗尽,触发进程切换,将CPU分配给下一个进程。

优先级抢占

  • 在抢占式调度中,当更高优先级的进程进入就绪队列时,当前运行进程会被中断,CPU被分配给高优先级进程。

进程从阻塞状态变为就绪状态

  • 阻塞进程等待的事件完成后,会重新进入就绪状态,可能触发新的进程调度。

系统调用完成后返回

  • 系统调用或其他系统任务完成后,可能需要重新调度用户进程。