Java教程

2.1.2进程的状态与转换

本文主要是介绍2.1.2进程的状态与转换,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

进程的状态与转换

image-20210916181914789

一、进程的状态--三种基本状态

​ 进程是程序的一次执行。在这个执行过程中,有时进程正在被CPU处理,有时又需要等待CPU服务,可见,进程的状态是会有各种变化。为了方便对各个进程的管理,操作系统需要将进程合理地划分为几种状态。

image-20210916182114238

​ 注意:单核处理机环境下,每一时刻最多只有一个进程处于运行态。(双核环境下可以同时有两个进程处于运行态)

​ 就绪态:进程己经拥有了除处理机之外所有需要的资源,一旦获得处理机,即可立即进入运行态开始运行。即:万事俱备,只欠CPU

​ 阻塞态:如:等待操作系统分配打印机、等待读磁盘操作的结果。CPU是计算机中最昂贵的部件,为了提高CPU的利用率,需要先将其他进程需要的资源。分配到位,才能得到CPU的服务


另外两种状态

​ 操作系统需要完成创建进程。操作系统为该进程分配所需的内存空间等系统资源,并为其创建、初始化PCB(如:为进程分配PID)

​ 进程运行结束(或者由于bug导致进程无法继续执行下去,比如数组越界错误),需要撤销进程。

​ 操作系统需要完成撤销进程相关的工作。完成将分配给进程的资源回收,撤销进程PCB等工作。

image-20210916182638228



进程状态的转换

image-20210916182918660

注意:不能由阻塞态直接转换为运行态,也不能由就绪态直接转换为阻塞态(因为进入阻塞态是进程主动请求的,必然需要进程在运行时才能发出这种请求)

​ 运行态→终止态:进程运行结束,运行过程中遇到不可修复的错误



image-20210916183223610

这篇关于2.1.2进程的状态与转换的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!