课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
我们在上文中给大家简单介绍了软件开发进程与线程的一些基础知识,而本文我们就再来了解一下,进程运行状态类型与切换方法。
进程在运行的过程中不断地改变其运行状态
通常一个运行的进程必须具有三种状态:就绪态,运行态,阻塞态。
就绪态(Ready)
当进程已分配到除CPU以外的所有必要的资源后,只要再获得CPU,便可执行程序,进程这时的状态就称为就绪态,
在一个系统中处于就绪态的进程可能有多个,通常将他们排成一个队列,这就叫就绪队列
运行态(Running)
当进程已经获得CPU操作权限,其程序正在运行,着就叫做运行态
在单核操作系统中,只有一个进程处于运行态,多核操作系统有多个进程处于运行态
阻塞态(Blocked)(sleep)
正在执行的进程,由于等待某个事件而无法执行时,便被操作系统剥夺了cpu的操作时间,这是就是阻塞态
引起阻塞的原因多种,例如:等待I/O操作,更高优先级的任务抢走了CPU权限等.
进程三种状态间的转换
一个进程在运行期间,会不断地在一种状态切换到另一只种状态
他可以是多次处于就绪态和运行态,也可以多次处于阻塞态,下面是三种状态的转换图
就绪态➠➠运行态
处于就绪态的进程,当进程调度程序为之分配了CPU的时间片后,该进程就会由就绪态转变成运行态
运行态➠➠就绪态
处于运行态的进程在运行过程中,因为分配的时间片用完了,于是失去了CPU的使用权限,运行态就会重新转为就绪态
运行态➠➠阻塞态
正在运行的进程由于遇到I/O操作或被更高优先级的任务抢走CPU使用权限而无法继续执行,便从运行态转为阻塞态
阻塞态➠➠就绪态
处于阻塞态的进程,若其等待的事情已经处理完毕,于是进程从阻塞态转为就绪态
【免责声明】:本内容转载于网络,转载目的在于传递信息。文章内容为作者个人意见,本平台对文中陈述、观点保持中立,不对所包含内容的准确性、可靠性与完整性提供形式地保证。请读者仅作参考。更多内容请加danei0707学习了解。欢迎关注“达内在线”参与分销,赚更多好礼。