进程的状态(三态模型)
- 运行态:进程占有CPU运行
- 就绪态:进程具备运行条件,在等待CPU
- 等待(阻塞、睡眠)态:进程由于等待资源、输入输出等而不具备运行条件,暂时不能运行
- 运行——>就绪:该进程用完了时间片,被高优先级进程抢占。
- 就绪——>运行:上一个进程的时间片用完,通过调度程序得到CPU使用权
- 运行——>阻塞:正在执行着的进程在等待某个事件发生,比如I/O请求
- 阻塞——>就绪:进程所等待的事件已经发生,重新进入就绪队列
- 对单个进程: – 任何时刻,进程只能处理三种基本状态之一;
- 对单个处理机: – 每个时刻允许同时有多个进程处于就绪/阻塞状态;但只能有一个进程处于执行状态
进程的其他状态
进程的三种其他状态:
-
创建态(New)
- 已完成创建一进程所必要的工作,例如创建PID、PCB。但因资源有限,尚未同意执行该进程
-
终止态(Terminate)
-
挂起态(Suspend)
-
挂起的**含义:**将进程从内存搬至外存,通过激活解除挂起(激活是将进程从外存搬至内存)。激活后进入就绪状态,获得处理机之后,才可以继续执行。
-
引起挂起的原因:
– 终端用户的请求;
– 父进程请求;
– 负荷调节的需要;
– 操作系统的需要
阻塞态与挂起态的区别:
阻塞:资源保留,在内存中等待
挂起:释放资源,被调换到外存
-
进程控制块 ( PCB) 描述进程的基本信息和运行状态,所谓的创建进程和撤销进程,都是指对 PCB 的操作。
- PCB必须长驻内存
- 作为独立运行单位的标志
- PCB是感知进程存在的唯一标志
进程进入等待状态有哪几种方式?
- CPU调度给优先级更高的线程
- 阻塞的线程获得资源或信号
- 在时间片轮转的情况下,时间片到了
- 获得spinlock未果