美文网首页
进程的三种基本状态

进程的三种基本状态

作者: 萍水间人 | 来源:发表于2019-01-24 20:22 被阅读19次

    进程至今为止还没有一个准确的定义,某一个教材这么说

    进程是资源分配的基本单位,也是独立运行的基本单位。

    前趋图是一个有向无循环图,用于描述程序,程序段,或语句执行的先后次序。
    可以理解成数据结构中的拓扑排序。

    进程最基本的三种状态,
    就绪状态
    执行状态
    阻塞状态

    就绪->执行
    处于就绪状态的进程,当进程调度程序为止分配了处理机后,该进程就由就绪状态转变为执行状态。

    执行->就绪
    处于执行状态的进程在其执行过程中,因分配给它的一个时间片已用完而不得不让出处理机,于是进程从执行状态转变成就绪状态。

    执行->阻塞
    正在执行的进程因等待某种事件发生而无法继续执行时,便从执行状态变成阻塞状态。

    阻塞->就绪
    处于阻塞状态的进程,若其等待的事件已经发生,于是进程由阻塞状态转变为就绪状态。

    例题如下


    如题

    (1)分别说明引起状态转换1、2、3、4的原因,并各举一个事件。
    (2)为什么在转换图中没有就绪到阻塞和阻塞到运行的转换方向?
    (3)一个进程的状态变换能够引起另一个进程的状态变换,说明下列因果变迁是否可能发生,原因是什么?
    (a)3→1(b)2→1(c)3→2(d)3→4(e)4→1

    解答:
    (1)
    1:就绪->执行, 当前运行进程阻塞,调度程序选一个优先权最高的进程占有处理机;
    2:执行->就绪, 当前运行进程时间片用完;
    3:执行->阻塞,当前运行进程等待键盘输入,进入了睡眠状态。
    4:阻塞->就绪,I/O操作完成,被中断处理程序唤醒。
    (2)就绪进程没有占有处理机,也即没有经过运行,其状态就不会改变。
    阻塞状态进程唤醒后先要进入就绪队列,才会被调度程序选中,进入了执行状态。
    (3)
    (a) 3→1: 可能,当前运行进程阻塞,调度程序选一个优先级最高的进程占有处理机。
    (b)2→1:可能,当前运行进程优先级下降,调度程序选一个优先级最高的进程占有处理机。
    (c)3→2: 不可能,占有CPU的一个进程不能同时进入两个状态;在单CPU的系统中,状态3发生后,cpu没有执行进程,故不会发生状态转换2。
    (d)3→4:一般不可能,不相干的两个事件。状态转换3是由于运行进程等待资源而发生的,这并不会使得阻塞队列中的进程得到资源而进入就绪队列。但在Unix中,当系统的0#进程因runin标志而睡眠时,有(在内存)进程睡眠,就会唤醒0#进程,使其进入就绪状态,以便将该进程和在盘交换区就绪进程交换位置。
    (e)4→1:一般无关,但当就绪队列为空时,一个进程被唤醒转入就绪队列后,调度程序使该进程占有处理机(但是同一个进程)。

    附上一张状态转移图


    状态转移图

    相关文章

      网友评论

          本文标题:进程的三种基本状态

          本文链接:https://www.haomeiwen.com/subject/jliujqtx.html