首页 > 试题广场 >

Linux 下的进程有哪三种状态()

[单选题]
Linux 下的进程有哪三种状态()
  • 精确态,模糊态和随机态
  • 运行态,就绪态和等待态
  • 准备态,执行态和退出态
  • 手动态,自动态和自由态
B
Linux是一个多用户,多任务的系统,可以同时运行多个用户的多个程序,就必然会产生很多的进程,而每个进程会有不同的状态。

1.R (TASK_RUNNING)状态,可执行状态。

只有在该状态的进程才可能在CPU上运行。而同一时刻可能有多个进程处于可执行状态,这些进程的task_struct结构(进程控制块)被放入对应CPU的可执行队列中(一个进程最多只能出现在一个CPU的可执行队列中)。进程调度器的任务就是从各个CPU的可执行队列中分别选择一个进程在该 CPU上运行。

很多操作系统教科书将正在CPU上执行的进程定义为RUNNING状态、而将可执行但是尚未被调度执行的进程定义为READY状态,这两种状态在linux下统一为 TASK_RUNNING状态。

2.S (TASK_INTERRUPTIBLE)状态,可中断的睡眠状态。

处于这个状态的进程因为等待某某事件的发生(比如等待socket连接、等待信号量),而被挂起。这些进程的task_struct结构被放入对应事件的等待队列中。当这些事件发生时(由外部中断触发、或由其他进程触发),对应的等待队列中的一个或多个进程将被唤醒。

通过ps命令我们会看到,一般情况下,进程列表中的绝大多数进程都处于TASK_INTERRUPTIBLE状态(除非机器的负载很高)。毕竟CPU就这么一两个,进程动辄几十上百个,如果不是绝大多数进程都在睡眠,CPU又怎么响应得过来。

3.D (TASK_UNINTERRUPTIBLE)状态,不可中断的睡眠状态。

与TASK_INTERRUPTIBLE状态类似,进程处于睡眠状态,但是此刻进程是不可中断的。不可中断,指的并不是CPU不响应外部硬件的中断,而是指进程不响应异步信号。
绝大多数情况下,进程处在睡眠状态时,总是应该能够响应异步信号的。否则你将惊奇的发现,kill -9竟然杀不死一个正在睡眠的进程了!于是我们也很好理解,为什么ps命令看到的进程几乎不会出现TASK_UNINTERRUPTIBLE状态,而总是 TASK_INTERRUPTIBLE状态。


发表于 2015-01-18 15:35:00 回复(0)

Linux进程三大状态

  • 运行态:进程占有CPU且正在运行;
  • 就绪态:进程具备运行状态,等待系统分配CPU以便运行;
  • 等待态:又叫阻塞态或睡眠态,指进程不具备运行条件,正在等待某个事件的完成;
发表于 2019-12-06 11:14:01 回复(0)
不单单是linux系统,对于通用的操作系统而言,一般分为这三个状态
运行态,就绪态,等待态(阻塞态)
很明显答案 B
发表于 2016-06-20 19:49:40 回复(0)
Linux三种进程状态:执行,就绪,阻塞
答案应该选B
发表于 2015-01-11 17:35:49 回复(0)

答案:B

Linux的进程三种状态分别是:

运行状态:这个不用解释了吧,就是正在运行

就绪状态:这个状态等待CPU 时间片的状态,一切准备就绪,随时可以执行,等 CPU 切换到该进程,该进程就会由就绪状态变为运行状态

等待状态:其实就是未就绪状态,还有做一些准备工作或者等待资源

编辑于 2021-12-18 13:24:46 回复(0)
  • 运行态 (Running) :              占有CPU,并在CPU上运行
  • 就绪态 (Ready):                  已经具备运行条件,但由于没有空闲CPU,而暂时不能运行
  • 等待态 (Waiting/Blocked):   因等待某一事件而暂时不能运行:如等待读盘结果
发表于 2017-06-08 20:23:06 回复(0)
进程的三种基本状态
  • 运行态 (Running) :              占有CPU,并在CPU上运行
  • 就绪态 (Ready):                  已经具备运行条件,但由于没有空闲CPU,而暂时不能运行
  • 等待态 (Waiting/Blocked):   因等待某一事件而暂时不能运行:如等待读盘结果
编辑于 2017-03-28 22:41:46 回复(0)
我还以为是不一样的
发表于 2022-03-29 10:06:57 回复(0)
666
编辑于 2021-08-27 19:47:03 回复(0)
选B

Linux的进程三种状态分别是:

运行状态:这个不用解释了吧,就是正在运行

就绪状态:这个状态等待CPU 时间片的状态,一切准备就绪,随时可以执行,等 CPU 切换到该进程,该进程就会由就绪状态变为运行状态

等待状态:其实就是未就绪状态,还有做一些准备工作或者等待资源

发表于 2020-07-25 07:00:29 回复(0)
Linux的进程三种状态分别是: 运行状态:这个不用解释了吧,就是正在运行 就绪状态:这个状态等待CPU 时间片的状态,一切准备就绪,随时可以执行,等 CPU 切换到该进程,该进程就会由就绪状态变为运行状态 等待状态:其实就是未就绪状态,还有做一些准备工作或者等待资源
发表于 2018-08-12 16:10:14 回复(0)
答案:B Linux的进程三种状态分别是: 运行状态:正在运行 就绪状态:这个状态等待CPU 时间片的状态,一切准备就绪,随时可以执行,等 CPU 切换到该进程,该进程就会由就绪状态变为运行状态 等待状态:其实就是未就绪状态,还有做一些准备工作或者等待资源
发表于 2018-04-19 02:04:28 回复(0)
运行就绪等待
发表于 2017-08-28 09:01:54 回复(0)
B
发表于 2015-03-04 21:04:48 回复(0)