进程管理包括进程的创建,销毁,进程状态转换。
引起进程创建的事件:
进程创建
- 申请空白PCB。为进程申请一个唯一的数字标识符,并从PCB集合中申请一个空白的PCB
- 为新进程分配资源。为新进程的程序和数据以及用户栈分配必要的内存空间
- 初始化进程控制块。PCB的初始化包括:1)初始化标识信息,将系统分配的标识符和父进程标识符填入新PCB 中; 2) 初始化处理机状态信息,使程序计数器指向程序的入口地址,使栈指针指向栈顶; 3) 初始化处理机控制信息,将进程的状态设置为就绪状态或静止就绪状态,对于优先级,通常是将它设置为最低优先级,除非用户以显式方式提出高优先级要求。
- 将新进程插入到就绪队列
引起进程终止的事件:
- 正常结束
- 异常结束
- 外界干预
进程终止过程:
- 根据被终止进程的PID,从PCB集合中知道到被终止进程的PCB
- 若进程处于运行状态,应立即终止进程,将进程的调度状态改为True, 表示应重新调度
- 杀死改进程所有的子孙进程
- 将进程所拥有的资源还给父进程或者系统
- 将进程的PCB从PCB集合中的移除,等待其他程序来收集信息
进程的阻塞和唤醒
引起进程阻塞或者唤醒的事件:
- 请求系统服务。 如请求打印机
- 启动某种操作。 如I/O操作
- 新数据尚未到达
- 无新工作可做
进程阻塞过程:
进程调用阻塞原语block将自己阻塞,改变PCB中的执行状态为阻塞状态,并将PCB插入到阻塞对列
进程唤醒过程:
当进程期待的某事件发生之后,由相关进程调用唤醒原语weakup,将等待该事件的进程唤醒。唤醒原语执行过程:将进程的PCB从阻塞队列中移除,然后把PCB中的进程状态由阻塞改为就绪