进程管理


进程是一个正在运行的程序,即正在执行的程序。它包含程序代码、程序计数器、进程堆栈、寄存器等。

进程状态

进程在其执行期间所处的不同状态,如下所示:

  • 新建 - 进程在创建后处于新建状态。
  • 就绪 - 进程正在等待由短期调度程序分配处理器。
  • 运行 - 进程指令正在由处理器执行。
  • 等待 - 进程正在等待某些事件发生,例如 I/O。
  • 终止 - 进程已完成执行。

进程控制块

每个进程都与一个进程控制块相关联。它包含有关该特定进程的重要详细信息,如下所示:

  • 进程状态 - 指定进程状态,即新建、就绪、运行、等待或终止。
  • 进程号 - 显示特定进程的编号。
  • 程序计数器 - 包含需要在进程中执行的下一条指令的地址。
  • 寄存器 - 指定进程使用的寄存器。它们可能包括累加器、索引寄存器、堆栈指针、通用寄存器等。
  • 文件列表 - 这些是与进程相关的不同文件。

Explore our latest online courses and learn new skills at your own pace. Enroll and become a certified expert to boost your career.

进程调度

许多调度队列用于处理进程。当进程进入系统时,它们被放入作业队列。准备在主内存中执行的进程保存在就绪队列中。等待 I/O 设备的进程保存在设备队列中。

用于进程调度的不同调度程序是

长期调度程序

作业调度程序或长期调度程序从存储池中选择进程并将其加载到内存中以进行执行。作业调度程序必须选择 I/O 绑定和 CPU 绑定进程的仔细混合,以产生最佳的系统吞吐量。如果它选择过多的 CPU 绑定进程,则 I/O 设备空闲;如果它选择过多的 I/O 绑定进程,则处理器无事可做。

短期调度程序

短期调度程序从就绪队列中选择一个进程并安排其执行。短期调度程序比长期调度程序执行得频繁得多,因为进程可能只执行几毫秒。

中期调度程序

中期调度程序将进程从主内存中交换出去。它以后可以从停止执行的点再次调入进程。这有助于减少多道程序设计的程度。交换也有助于改进内存中 I/O 绑定和 CPU 绑定进程的组合。

上下文切换

从 CPU 中移除一个进程并调度另一个进程需要保存旧进程的状态并加载新进程的状态。这称为上下文切换。进程的上下文存储在进程控制块 (PCB) 中,并包含进程寄存器信息、进程状态和内存信息。

调度程序负责上下文切换。它保存旧进程的上下文,并将 CPU 的控制权交给短期调度程序选择的进程。

更新于:2020年6月20日

浏览量 3K+

启动您的职业生涯

通过完成课程获得认证

开始学习
广告