进程一般具有哪三个主要状态?举例说明状态转换的原因

进程在其生存期内可能处于如下三种基本状态之一:

(1) 运行态(Run): 进程占有处理机资源,正在运行。 显然,在单处理机系统中任一时刻只能有一个进程处于此种状态;

(2) 就绪态(Ready): 进程本身具备运行条件,但由于处理机的个数少于可运行进程的个数,暂未投入运行。 即相当于等待处理机资源;

(3) 等待态(Wait): 也称挂起态(Suspended)、封锁态(Blocked)、睡眠态(Sleep)。 进程本身不具备运行条件,即使分给它处理机也不能运行。 进程正等待某一个事件的发生,如等待某一资源被释放,等待与该进程相关的I/O传输的完成信号等。

进程的三个基本状态之间是可以相互转换的。具体地说:

1.当一个就绪进程获得处理机时,其状态由就绪变为运行;
2.当一个运行进程被剥夺处理机时,如用完系统分给它的时间片、出现更高优先级别的其它进程,其状态由运行变为就绪;
3.当一个运行进程因某事件受阻时,如所申请资源被占用、启动I/O传输未完成,其状态由运行变为等待;
4.当所等待事件发生时,如得到申请资源、I/O传输完成,其状态由等待变为就绪。

你可能感兴趣的:(操作系统)