跳转至

进程的控制

进程的生命周期

产生、运行、暂停、终止

进程控制

操作系统通过进程控制原语来管理进程的状态转换。常见的进程控制操作包括:

  1. 进程创建

    • 创建一个新进程,并为其分配必要的资源,初始化 PCB。
    • 创建后,进程进入就绪状态,等待调度器分配 CPU 时间。
  2. 进程撤消

    • 撤消(终止)进程,回收进程占用的资源,并从系统中移除其 PCB。
    • 终止原因可能包括程序正常结束、用户主动结束、异常错误等。
  3. 进程阻塞

    • 进程在运行过程中,如果需要等待某个事件(如 I/O 完成、信号到达),则进入阻塞状态
    • 进程阻塞后会释放 CPU,允许其他进程执行。
  4. 进程唤醒

    • 当阻塞的进程等待的事件发生时,进程被唤醒,进入就绪状态
    • 唤醒操作通常由操作系统或其他进程触发。
  5. 改变进程优先数

    • 调整进程的优先级,以改变进程在调度时的优先次序。
    • 优先级高的进程会比优先级低的进程更早被调度执行。
  6. 进程调度

    • 从就绪队列中选择一个进程,将其切换为运行状态,开始执行。
    • 调度器根据调度算法(如先来先服务、优先级调度、时间片轮转等)选择合适的进程。

四种进程控制原语

在操作系统中,常用的四种进程控制原语包括:

1. 进程阻塞(Block)

  • 功能:将运行状态的进程转换为阻塞状态。
  • 触发条件:当进程执行 I/O 操作、等待某事件(如信号量)时,需要进入阻塞状态。

2. 进程唤醒(Wakeup)

  • 功能:将阻塞状态的进程转换为就绪状态。
  • 触发条件:当等待的事件发生(如 I/O 完成、资源可用),进程被唤醒,重新进入就绪状态。

3. 进程创建(Create)

  • 功能:创建一个新进程,将其置为就绪状态。
  • 触发条件:当系统或用户需要创建新任务时,会调用进程创建原语。

4. 进程调度(Dispatch/Schedule)

  • 功能:将就绪状态的进程切换为运行状态。
  • 触发条件:CPU 空闲或时间片结束时,调度器从就绪队列中选择一个进程执行。