Java教程

进程的状态

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

这里写目录标题

  • 进程的三态模型
  • 进程的五态模型
  • 进程的七态模型
  • 进程间状态切换(以进程的三态模型为基础)
  • Linux进程状态

进程的三态模型

  • 运行态:进程占有处理器正在运行的状态。在单处理机系统中,只有一个进程处于执行状态; 在多处理机系统中,则有多个进程处于执行状态。
  • 就绪态:进程具备运行条件,等待系统分配处理器以便运行的状态。在一个系统中处于就绪状态的进程可能有多个,通常将它们排成一个队列,称为就绪队列。
  • 阻塞态:指进程不具备运行条件,正在等待某个时间完成的状态,这时即使把处理机分配给进程也无法运行,故称该进程处于阻塞状态。
    在这里插入图片描述

进程的五态模型

  • 新建态:一个应用程序从系统上启动,首先就是进入创建状态,其对应于进程被创建时的状态,尚未进入就绪队列。
  • 运行态:进程占有处理器正在运行的状态。在单处理机系统中,只有一个进程处于执行状态;在多处理机系统中,则有多个进程处于执行状态。
  • 就绪态:进程具备运行条件,等待系统分配处理器以便运行的状态。在一个系统中处于就绪状态的进程可能有多个,通常将它们排成一个队列,称为就绪队列。
  • 阻塞态:又称等待态或睡眠态,指进程不具备运行条件,正在等待某个时间完成的状态,这时即使把处理机分配给进程也无法运行,故称该进程处于阻塞状态。
  • 终止态:指进程完成任务到达正常结束点,或出现无法克服的错误而异常终止,或被操作系统及有终止权的进程所终止时所处的状态。
    在这里插入图片描述

进程的七态模型

  • 新建态:一个应用程序从系统上启动,首先就是进入创建状态,其对应于进程被创建时的状态,尚未进入就绪队列。
  • 运行态:进程占有处理器正在运行的状态。在单处理机系统中,只有一个进程处于执行状态; 在多处理机系统中,则有多个进程处于执行状态。
  • 就绪态:进程具备运行条件,等待系统分配处理器以便运行的状态。在一个系统中处于就绪状态的进程可能有多个,通常将它们排成一个队列,称为就绪队列。
  • 阻塞态:又称等待态或睡眠态,指进程不具备运行条件,正在等待某个时间完成的状态,这时即使把处理机分配给进程也无法运行,故称该进程处于阻塞状态。
  • 终止态:指进程完成任务到达正常结束点,或出现无法克服的错误而异常终止,或被操作系统及有终止权的进程所终止时所处的状态。
  • 就绪/挂起态:进程具备运行条件,但目前在外存中,只有它被对换到内存才能被调度执行。
  • 阻塞/挂起态:表明进程正在等待某一个事件发生且在外存中。
    在这里插入图片描述

进程间状态切换(以进程的三态模型为基础)

  • 运行态→阻塞态:往往是由于等待外设,等待主存等资源分配或等待人工干预而引起的。
  • 阻塞态→就绪态:则是等待的条件已满足,只需分配到处理器后就能运行。
  • 运行态→就绪态:不是由于自身原因,而是由外界原因使运行状态的进程让出处理器,这时候就变成就绪态,例如时间片用完,或有更高优先级的进程来抢占处理器等。
  • 就绪态→运行态:系统按某种策略选中就绪队列中的一个进程占用处理器,此时就变成了运行态。

Linux进程状态

  • R (TASK_RUNNING),可执行状态。
  • S (TASK_INTERRUPTIBLE),可中断的睡眠状态。
  • D (TASK_UNINTERRUPTIBLE),不可中断的睡眠状态。
  • T (TASK_STOPPED or TASK_TRACED),暂停状态或跟踪状态。
  • Z (TASK_DEAD - EXIT_ZOMBIE),退出状态,进程成为僵尸进程。
  • X (TASK_DEAD - EXIT_DEAD),退出状态,进程即将被销毁。
这篇关于进程的状态的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!