进程的三态模型
- 运行态:进程占有处理器正在运行的状态。在单处理机系统中,只有一个进程处于执行状态; 在多处理机系统中,则有多个进程处于执行状态。
- 就绪态:进程具备运行条件,等待系统分配处理器以便运行的状态。在一个系统中处于就绪状态的进程可能有多个,通常将它们排成一个队列,称为就绪队列。
- 阻塞态:指进程不具备运行条件,正在等待某个时间完成的状态,这时即使把处理机分配给进程也无法运行,故称该进程处于阻塞状态。
进程的五态模型
- 新建态:一个应用程序从系统上启动,首先就是进入创建状态,其对应于进程被创建时的状态,尚未进入就绪队列。
- 运行态:进程占有处理器正在运行的状态。在单处理机系统中,只有一个进程处于执行状态;在多处理机系统中,则有多个进程处于执行状态。
- 就绪态:进程具备运行条件,等待系统分配处理器以便运行的状态。在一个系统中处于就绪状态的进程可能有多个,通常将它们排成一个队列,称为就绪队列。
- 阻塞态:又称等待态或睡眠态,指进程不具备运行条件,正在等待某个时间完成的状态,这时即使把处理机分配给进程也无法运行,故称该进程处于阻塞状态。
- 终止态:指进程完成任务到达正常结束点,或出现无法克服的错误而异常终止,或被操作系统及有终止权的进程所终止时所处的状态。
进程的七态模型
- 新建态:一个应用程序从系统上启动,首先就是进入创建状态,其对应于进程被创建时的状态,尚未进入就绪队列。
- 运行态:进程占有处理器正在运行的状态。在单处理机系统中,只有一个进程处于执行状态; 在多处理机系统中,则有多个进程处于执行状态。
- 就绪态:进程具备运行条件,等待系统分配处理器以便运行的状态。在一个系统中处于就绪状态的进程可能有多个,通常将它们排成一个队列,称为就绪队列。
- 阻塞态:又称等待态或睡眠态,指进程不具备运行条件,正在等待某个时间完成的状态,这时即使把处理机分配给进程也无法运行,故称该进程处于阻塞状态。
- 终止态:指进程完成任务到达正常结束点,或出现无法克服的错误而异常终止,或被操作系统及有终止权的进程所终止时所处的状态。
- 就绪/挂起态:进程具备运行条件,但目前在外存中,只有它被对换到内存才能被调度执行。
- 阻塞/挂起态:表明进程正在等待某一个事件发生且在外存中。
进程间状态切换(以进程的三态模型为基础)
- 运行态→阻塞态:往往是由于等待外设,等待主存等资源分配或等待人工干预而引起的。
- 阻塞态→就绪态:则是等待的条件已满足,只需分配到处理器后就能运行。
- 运行态→就绪态:不是由于自身原因,而是由外界原因使运行状态的进程让出处理器,这时候就变成就绪态,例如时间片用完,或有更高优先级的进程来抢占处理器等。
- 就绪态→运行态:系统按某种策略选中就绪队列中的一个进程占用处理器,此时就变成了运行态。
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),退出状态,进程即将被销毁。