zoukankan      html  css  js  c++  java
  • 进程管理(七)-进程状态与转换

    进程管理(七)-进程状态与转换

    进程的状态

    一个进程的生命期可以划分为一组状态,这些状态刻划了整个进程。系统根据PCB 结构中的状态值控制进程。

    在进程的生命期内,一个进程至少具有三种基本状态:执行状态、等待状态和就绪状态。

    执行状态

    单CPU系统中,任一时刻处于执行状态的进程只能有一个。

    就绪状态

    就绪状态的进程已经得到除 CPU之外的其他资源,只要经由调度得到处理机,便可立即投入执行。

    有些系统为了有效利用内存,就绪状态进一步分为内存就绪状态和外存就绪状态。但是这也增加了系统开销和系统复杂性。

    内存就绪状态

    只有处于内存就绪状态的进程在得到处理机后才能立即投入执行

    外存就绪状态

    处于外存就绪状态的进程只有先成为内存就绪状态后,才可能被调度执行

    阻塞状态

    进程因等待某个事件发生而放弃处理机进入等待(阻塞)状态。

    阻塞状态按照条件划分

    等待状态可根据等待事件的种类进一步划分为不同的子状态,例如内存等待、设备等待、文件等待和数据等待等。

    好处:
    这样做的好处是系统控制简单,发现和唤醒相应的进程较为容易。

    坏处:
    但系统中设置过多的状态会造成系统参数和状态转换过程的增加。

    进程的状态转换

    转换条件

    1.进程状态反映进程执行过程的变化。
    2.这些状态随着进程的执行和外界条件发生变化和转换。
    3.进程的状态转换除了要使用不同的控制过程,有时还要借助于硬件触发器才能完成。

    挂起操作

    什么是挂起操作

    进程暂时被淘汰出内存

    引入原因

    1.终端用户的需要
    2.父进程请求
    3.负荷调节需要
    4.操作系统需要,引入进程“挂起”操作(进程暂时被淘汰出内存)

    挂起过程可能发生状态转换

    1.活动就绪→静止就绪
    2.活动阻塞→静止阻塞
    3.静止就绪→活动就绪
    4.静止阻塞→活动阻塞。

  • 相关阅读:
    【Linux 读书笔记】Linux文件的硬连接和符号连接
    Shell参数
    Shellcase语句的例子
    Shellselect
    Shell小程序一个
    SHELL起步
    接昨天的 while
    Shell循环控制
    Shellwhile循环的例子
    Shellfor语句
  • 原文地址:https://www.cnblogs.com/mengxiaoleng/p/11618224.html
Copyright © 2011-2022 走看看