进程管理
进程是一个正在运行的程序,即正在执行的程序。它包含程序代码、程序计数器、进程栈、寄存器等。
进程状态
进程在其执行期间所处的不同状态使用下图说明:
- 新建- 进程在刚创建时处于新建状态。
- 就绪- 进程正在等待由短期调度程序分配处理器。
- 运行- 进程指令正在由处理器执行。
- 等待- 进程正在等待某些事件发生,例如 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 的控制权交给短期调度程序选择的进程。