进程状态模型
进程状态转换图
进程状态细节
- 新建态
操作系统负责进程的创建,新建态的进程已经被创建出来,关于进程的信息已经被保存在内存中的进程表中,但进程还没有进入内存,通常新建态进程保留在磁盘中 - 就绪态
就绪态进程在内存中,有机会就进入处理器执行 - 运行态
拥有处理器资源,进程在运行 - 阻塞态
进程在某些事件发生前不能执行,比如需要等待I/O操作完成
进程在内存中 - 退出态
其实从其他状态都可以直接转到退出态,退出态进程不会再重新变为其他状态
在退出态,操作系统会临时保留进程的某些信息,给辅助程序或支持程序提供了提取信息的时间,例如为了分析性能和利用率,可能需要提取进程的历史信息,提取信息后,操作系统会从系统中删除进程 - 阻塞/挂起态
进程在外存中,并等待一个事件完成 - 就绪/挂起态
进程在外存中,等待载入内存
部分进程状态转换
- 运行->就绪
常见的原因是运行中的进程超出了运行时间限制,切回就绪态让其他进程拥有处理器资源
如果一个优先级更高的进程处于就绪态,那么低优先级的运行态进程就被中断,把处理器交给优先级高的进程,这是进程的抢占 - 运行->阻塞
进程运行时发生系统服务调用,请求一些必须等待的事件时,进程进入阻塞态 - 阻塞->阻塞/挂起
为了给就绪态的进程更多内存,或者增加就绪态进程数目,则可以挂起一个阻塞态的进程