进程的状态
进程有五种基本状态:创建状态、就绪状态、执行状态、阻塞状态和终止状态。
五种基本状态间的转换:
创建原语,创建进程,分配内存空间→创建状态→得到除处理机以外的其他资源→就绪状态→进程调度,得到处理机→执行状态→时间片用尽→就绪状态;
执行状态→阻塞原语,等待某个事件(睡眠)→阻塞状态→唤醒原语,等待的事件发生(唤醒)→就绪状态;
执行状态→撤销原语,进程结束→终止状态。
就绪状态还可以进一步分为为外存就绪态和内存就绪态。
处于外存就绪态的进程需要先获得资源,成为内存就绪态的进程;处于内存就绪态的进程已经获得除处理机以外的全部资源,经进程调度得到处理机后可立即投入执行。
挂起操作
为了满足系统和用户观察、分析和及时修改进程的需要,还引入了一个对进程的重要操作——挂起操作。
增加挂起操作后,进程的就绪状态被分为活动就绪态(激活)和静止就绪态(挂起),阻塞状态被分为活动阻塞态(激活)和静止阻塞态(挂起)。
1. 挂起就绪状态的进程后,进程变为静止就绪态,直至被激活原语作用才能变为活动就绪态;同理,挂起阻塞状态的进程后,进程变为静止阻塞态,直至被激活原语作用才能变为活动阻塞态。
2. 执行状态的进程被挂起后变为静止就绪态。
3. 活动阻塞态的进程被唤醒后,只能变为活动就绪态;静止阻塞态的进程被唤醒后,只能变为静止就绪态。