Linux:进程概念(三.详解进程:进程状态、优先级、进程切换与调度)

上次讲了进程这些内容:Linux:进程概念(二.查看进程、父进程与子进程、进程状态详解)



1.Linux中的进程状态

static const char* const task_state_array[] = 
{
   
	"R (running)", /* 0 */
	"S (sleeping)", /* 1 */
	"D (disk sleep)", /* 2 */
	"T (stopped)", /* 4 */
	"t (tracing stop)", /* 8 */
	"X (dead)", /* 16 */
	"Z (zombie)", /* 32 */
};
  • R运行状态(running): 并不意味着进程一定在运行中,它表明进程要么是在运行中要么在运行队列里。

  • S睡眠状态(sleeping): 意味着进程在等待事件完成(这里的睡眠有时候也叫做可中断睡眠(interruptible sleep))

  • D磁盘休眠状态(Disk sleep)有时候也叫不可中断睡眠状态(uninterruptible sleep),在这个状态的进程通常会等待IO的结束。

  • T停止状态(stopped): 可以通过发送 SIGSTOP 信号给进程来停止(T)进程。这个被暂停的进程可以通过发送 SIGCONT 信号让进程继续运行。

  • X死亡状态(dead):这个状态只是一个返回状态,你不会在任务列表里看到这个状态

  • Z僵尸状态(zombie):下面详讲它

1.1前台进程和后台进程

在Linux中,可以将进程分为前台进程和后台进程,它们的区别在于与终端的交互方式和执行状态。

  1. 前台进程:会有+

    • 前台进程是当前正在与用户交互的进程,它会占用终端的输入和输出。
    • 当用户在终端启动一个程序时,该程序通常成为前台进程,用户可以看到程序的输出,并且可以与程序进行交互。
    • 前台进程会阻塞终端,直到该进程执行完毕或者暂停。
    • 用户可以通过按下Ctrl + C来中断前台进程的执行。
  2. 后台进程:没有+

    • 后台进程是在后台执行的进程,不会占用终端的输入和输出。
    • 用户可以在命令行中在命令后面加上"&"符号,将进程放入后台执行
    • 后台进程不会阻塞终端,用户可以继续输入其他命令
    • 用户可以使用命令bg将一个前台进程转为后台进程,或者使用命令jobs查看当前所有的作业(包括前台和后台)。
    • 使用kill 进程ID命令关闭对应的后台进程,比如kill 1234

运行状态

运行状态(Running)是进程可以被调度执行的状态。当一个进程处于运行状态时,它的代码正在被 CPU 执行,即正在运行指令并处理各种任务。在 Linux 中,通常用 R 表示进程处于运行状态。

int main()
{
   
	while (1)
	{
   
		;
	}
	return 0;
}

在这里插入图片描述

睡眠状态

就是我们上次学习的阻塞状态,在Linux中,进程的睡眠状态(Sleeping)是指进程因等待某些事件而暂时停止执行。这个状态有时也被称为可中断睡眠(Interruptible Sleep)&#

评论 37
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是Nero哦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值