进程的控制
进程的生命周期
产生、运行、暂停、终止
进程控制
操作系统通过进程控制原语来管理进程的状态转换。常见的进程控制操作包括:
-
进程创建:
- 创建一个新进程,并为其分配必要的资源,初始化 PCB。
- 创建后,进程进入就绪状态,等待调度器分配 CPU 时间。
-
进程撤消:
- 撤消(终止)进程,回收进程占用的资源,并从系统中移除其 PCB。
- 终止原因可能包括程序正常结束、用户主动结束、异常错误等。
-
进程阻塞:
- 进程在运行过程中,如果需要等待某个事件(如 I/O 完成、信号到达),则进入阻塞状态。
- 进程阻塞后会释放 CPU,允许其他进程执行。
-
进程唤醒:
- 当阻塞的进程等待的事件发生时,进程被唤醒,进入就绪状态。
- 唤醒操作通常由操作系统或其他进程触发。
-
改变进程优先数:
- 调整进程的优先级,以改变进程在调度时的优先次序。
- 优先级高的进程会比优先级低的进程更早被调度执行。
-
进程调度:
- 从就绪队列中选择一个进程,将其切换为运行状态,开始执行。
- 调度器根据调度算法(如先来先服务、优先级调度、时间片轮转等)选择合适的进程。
四种进程控制原语
在操作系统中,常用的四种进程控制原语包括:
1. 进程阻塞(Block)
- 功能:将运行状态的进程转换为阻塞状态。
- 触发条件:当进程执行 I/O 操作、等待某事件(如信号量)时,需要进入阻塞状态。
2. 进程唤醒(Wakeup)
- 功能:将阻塞状态的进程转换为就绪状态。
- 触发条件:当等待的事件发生(如 I/O 完成、资源可用),进程被唤醒,重新进入就绪状态。
3. 进程创建(Create)
- 功能:创建一个新进程,将其置为就绪状态。
- 触发条件:当系统或用户需要创建新任务时,会调用进程创建原语。
4. 进程调度(Dispatch/Schedule)
- 功能:将就绪状态的进程切换为运行状态。
- 触发条件:CPU 空闲或时间片结束时,调度器从就绪队列中选择一个进程执行。