面试_操作系统_进程的状态

285 阅读2分钟

进程的状态(三态模型)

  1. 运行态:进程占有CPU运行
  2. 就绪态:进程具备运行条件,在等待CPU
  3. 等待(阻塞、睡眠)态:进程由于等待资源、输入输出等而不具备运行条件,暂时不能运行
    1. 运行——>就绪:该进程用完了时间片,被高优先级进程抢占。
    2. 就绪——>运行:上一个进程的时间片用完,通过调度程序得到CPU使用权
    3. 运行——>阻塞:正在执行着的进程在等待某个事件发生,比如I/O请求
    4. 阻塞——>就绪:进程所等待的事件已经发生,重新进入就绪队列
  • 对单个进程: – 任何时刻,进程只能处理三种基本状态之一;
  • 对单个处理机: – 每个时刻允许同时有多个进程处于就绪/阻塞状态;但只能有一个进程处于执行状态



进程的其他状态

进程的三种其他状态:

  • 创建态(New)

    • 已完成创建一进程所必要的工作,例如创建PID、PCB。但因资源有限,尚未同意执行该进程
  • 终止态(Terminate)

  • 挂起态(Suspend)

    • 挂起的**含义:**将进程从内存搬至外存,通过激活解除挂起(激活是将进程从外存搬至内存)。激活后进入就绪状态,获得处理机之后,才可以继续执行。

    • 引起挂起的原因:

      – 终端用户的请求;

      – 父进程请求;

      – 负荷调节的需要;

      – 操作系统的需要


    阻塞态与挂起态的区别:

    阻塞:资源保留,在内存中等待

    挂起:释放资源,被调换到外存



进程控制块 ( PCB) 描述进程的基本信息和运行状态,所谓的创建进程和撤销进程,都是指对 PCB 的操作。

  • PCB必须长驻内存
  • 作为独立运行单位的标志
  • PCB是感知进程存在的唯一标志



进程进入等待状态有哪几种方式?

  • CPU调度给优先级更高的线程
  • 阻塞的线程获得资源或信号
  • 在时间片轮转的情况下,时间片到了
  • 获得spinlock未果