进程的基本状态
创建、就绪、执行、阻塞、终止。如果加上挂起与激活,则有活动就绪、活动阻塞、静止就绪、静止阻塞
加入挂起与激活以后:
进程的控制
- 创建与终止
- 创建
- 申请空白进程PCB
- 分配进程资源
- 初始化PCB
- 初始化标识信息
- 初始化处理机状态信息(程序计数器指向入口地址,栈顶指针)
- 初始化处理机控制信息(进程优先级、进程状态)
- 将进程拉入就绪队列
- 终止
- 从PCB集合中检索出该进程的PCB,读进程状态
- 若在执行状态,则立即终止执行。
- 若该进程有子孙进程,终止子孙进程
- 归还所有资源,要么给其父进程,要么给系统
- 将被终止的进程(的PCB)从队列中移出
- 创建
- 阻塞与唤醒
- 阻塞
- 调用原语block来阻塞
- 将PCB的状态由执行改为阻塞。保留阻塞进程的处理机状态,将PCB插入到相同事件的阻塞队列
- 将处理机分配给另一个就绪进程
- 唤醒
- 程原语(wakeup)
- 从等待队列中取下该进程控制块。将其状态设为就绪态、将被唤醒的进程插入就绪队列
- 阻塞
- 挂起与激活
- 挂起
- 检查改进程的状态。活动就绪态转为静止就绪。活动阻塞改为静止阻塞。
- 若其在执行,则转向调度程序,重新调度。
- 激活
- 将进程从外存调入内存
- 检查其状态,若为静止就绪,则转为活动就绪。若为静止阻塞,则转为活动阻塞。
- 挂起
进程控制块PCB
-
内含信息
- 进程标识符(内部标识符(唯一,系统使用)、外部标识符(创造者提供,描述家族关系、设置父进程子进程标识))
- 处理及状态(保存进程在处理机中的运行环境,以便中断后能从断点继续执行)
- 进程调度信息(进程状态、进程优先级、进程阻塞的原因等)
- 进程控制信息(程序和数据的地址、进程同步和通信的机制、资源清单(所需资源、已分配资源)、链接指针(链接下一个PCB首地址))
-
作用
- 作为独立运行基本单位的标志
- 能实现间断性运行方式
- 提供进程管理所需要的信息
- 提供进程调度所需要的信息
- 实现与其他进程的同步与通信
-
PCB的组织方式
- 线性方式——将PCB存储到线性表中,适用于进程数目不多的情况
- 链接方式
- 索引方式——索引表中记录PCB的地址