首页 > 试题广场 >

Linux进程调度的时候,以下哪个进程状态转化是不会发生的

[单选题]
Linux进程调度的时候,以下哪个进程状态转化是不会发生的
  • S -> R
  • R -> S
  • D -> T
  • D -> R
R(runing):进程处于运行或就绪状态。也就是上面提到的运行态和就绪态进程的综合。一个进程处于RUNNING状态,并不代表他一定在被执行。由于在多任务系统中,各个就绪进程需要并发执行,所以在某个特定时刻,这些处于RUNNING状态的进程之中,只有一个能得到处理器,而其他进程必须在一个就绪队列中等待。即使是在多处理器的系统中,Linux也只能同时让一个处理器执行任务。
D(disk sleep)UNINTERRUPTABLE:不可中断阻塞状态。被阻断而等待一个事件,不会被信号激活,除了I/O信号,处于这种状态的进程正在等待队列中,当资源有效时,可由操作系统进行唤醒,否则,将一直处于等待状态。
S(sleeping)INTERRUPTABLE:可中断阻塞状态。被阻断而等待一个事件,可能会被一个信号激活,与不可中断阻塞状态一样,处于这种状态的进程在等待队列中,当资源有效时,可以有操作系统进行唤醒。与不可中断阻塞状态有所区别的是,处于此状态中的进程亦可被其他进程的信号唤醒。
T(stopped):挂起状态。进程被暂停,需要通过其它进程的信号才能被唤醒。导致这种状态的原因有两种。其一是受到相关信号(SIGSTOP,SIGSTP,SIGTTIN或SIGTTOU)的反应。其二是受到父进程ptrace调用的控制,而暂时将处理器交给控制进程。
t(tracing stop):追踪停止
X(dead) : 进程已经完全死掉, 这个永远看不见
Z(zombie):僵尸状态。表示进程结束但尚未消亡的一种状态。此时进程已经结束运行并释放掉大部分资源,但尚未释放进程控制块。
发表于 2021-02-20 18:20:48 回复(0)