Linux 进程1

server/2024/9/23 12:20:12/

进程

linux系统中,触发任何一个事件时系统会将其定义为一个进程(一个程序开始执行),系统会给这个进程分配一个进程ID统称为PID。

程序:通常是二进制文件,放置于存储媒介如硬盘中。

进程:当存储在硬盘中的程序被触发,即由用户调用开始执行时会将其加载到内存中开始与cpu交互即开始执行这个程序,执行中的程序就称为进程。

进程pcb

如图当我们打开计算机时,操作系统会自动加载,然后我们查看进程就能看到如此多的进程已经是在运行中了。而我们计算机运行的本质就是一个个进程执行的结果。操作系统也就是一个功能更多,更复杂的一个进程。

但是如此多的进程计算机当然需要对其进行管理,不同功能的进程会有优先级的不同,状态的不同,CPU一次就只能处理少量的进程,就算是八核,十六核CPU也不可能并行处理如此多的进程,而且进程需要空间存放相应的数据,所以操作系统就会对所有的进程进行整合与管理使用PCB的数据结构模式对每一个进程进行描述和组织。

而进程不是一个个相同的数据不能如同整形和字符型数据一样简单的定义所以linux操作系统使用一个结构体去定义描述一个进程:struct task_struct{........};里面包含进程ID(PID),进程状态,优先级信息等非常多的对进程的描述这里只是列举了很少的几点。这个结构体也叫进程控制块(PCB:process control bolck),没创建一个进程的时候,操作系统就会为这个进程创建一个PCB,讲所有的PCB通过链表的形式链接起来,通过对PCB的管理从而实现对进程的管理。

进程管理

查看进程

ps指令:ps指令是静态指令可以查看某个时间点下的进程。

ps  aux指令可以查看系统中所有的进程。

ps -lA指令也是查看系统的所有进程但是显示的属性是不同的,这些属性都是来自PCB中截取。

选项参数:

-A:所有的进程均显示,与-e有同样的效果

-a:不显示与终端有关的所有进程。

-u:有效使用者(effective user)相关的进程。

x:通常与a一起使用可列出比较完整的信息。

输出格式

l:较长较详细的将该PIF的信息列出。

j:任务的格式(job format)。

-f:做一个比较完整的输出。

一般最常使用的指令是:ps -l 可以只查看自己bash的进程。ps aux 可以查看系统所有运行中的进程。

进程状态

当我们使用ps -l查看进程时看到显示出了多种进程的属性

F:代表进程标识(process flags),说明这个进程的权限,4代表root管理员权限。1代表此子进程仅执行复制(fork)没有实际执行(exec)。

S:代表这个进程的状态(STAT),主要的状态有:

1、R:running,运行中,可能正在执行也可能是在执行队列中都用R标识

2、S:sleep,睡眠状态,该进程没有在执行但是进程PCB还在资源也没有释放,是可以被唤醒的。

3、D:disk sleep,不可被唤醒的深度睡眠。通常这个进程可能在等待I/O的情况。这种进程只能被资源唤醒,即使我们使用kill -9也杀不掉。

4、T:停止状态我们可以使用kill -19让一个进程进入停止状态,进程处于停止状态通常是由于接收了一个信号,例如SIGSTOP(Ctrl-Z产生的SIGTSTP信号)或者SIGTSTP(通常由shell的暂停命令引发)。这种状态下的进程被挂起,暂时停止执行,但可以通过发送SIGCONT信号来恢复执行。

tracing Stop(跟踪停止)状态:
进程处于跟踪停止状态通常是由于调试器(如GDB)或者ptrace系统调用的作用。在这种状态下,进程被调试器所追踪,通常是因为调试器在进行单步执行、观察或者修改进程的内存等操作。这种状态下的进程暂时停止执行,直到调试器允许其继续执行。这两种都是属于T停止状态。

5、Z:zombie 僵尸状态,进程已经终止但是无法被删除至内存外,一般由于子进程结束并发送状态码给父进程,但是父进程一直没有接收。这样会导致进程的内存泄漏,一般尽量避免。

ID:UID:拥有者  PID:进程号唯一用以区分不同进程 PPID:父进程的PID。

C:cpu使用率

PRI/NI:priority代表优先级此值小优先级越高,nice值与PRI一起标识一个进程的优先级,nice值加上PRI值就是完整的优先级,因为进程在执行过程中无法对优先级进行调整所以引入nice值就是优先级数值的调整值。

ADDR/SZ/WCHAN:内存有关的属性,addr是kernel function ,指出该进程在内存的哪个部分,如果是R一般显示【-】。sz代表占用了多少的内存。wchan代表目前进程是否运行,与addr一样运行中就显示【-】。

TTY:登录者的终端位置,若是远程登陆则使用动态终端接口名称(pts/n)。

TIME:使用的cpu时间,进程实际花费cpu运行的时间而不是系统时间。

CMD:command,表示造成该进程触发的进程的命令是什么。


http://www.ppmy.cn/server/117106.html

相关文章

RuoYi 开源框架,集成了后端管理,后端java版 App 移动解决方案

文章目录 前言一、后端:二、后台管理三、App 移动总结 前言 后端: 后台管理: 使用的前端技术Vue、Element后端SpringBoot & Security完全分离的权限管理系统。 App 移动解决方案:采用uniapp框架 提示:以下是本篇文…

camouflaged object detection中的decoder最核心的作用

在 camouflaged object detection(COD)任务中,decoder 的确有一个核心作用是进行 上采样 以恢复图像的分辨率,但这并不是它唯一或最核心的作用。我们可以从更广泛的视角来看 decoder 的作用。 1. 上采样(Upsampling&a…

【H2O2|全栈】关于CSS(4)CSS基础(四)

目录 CSS基础知识 前言 准备工作 精灵图 概念 属性 案例 浮动 基础属性 清除浮动 案例 预告和回顾 后话 CSS基础知识 前言 本系列博客将分享层叠样式表(CSS)有关的知识点。 接下来的几期内容相对比较少,主要是对前面的内容进…

大腾智能出席龙华云创中心启动与鸿蒙园揭牌仪式

在数字化转型的浪潮中,深圳市龙华区再次引领行业创新,携手华为云成功举办“龙华工业软件云工程应用创新中心启动仪式暨鸿蒙产业园揭牌仪式”,本次盛会已于8月26日圆满落幕。活动现场,来自全国各地的行业精英、企业领袖及专家学者汇…

Baumer工业相机堡盟工业相机如何通过BGAPISDK使用短曝光功能(曝光可设置1微秒)(C语言)

Baumer工业相机堡盟工业相机如何通过BGAPISDK使用短曝光功能(曝光可设置1微秒)(C语言) Baumer工业相机Baumer工业相机BGAPISDK和短曝光功能的技术背景Baumer工业相机通过BGAPISDK使用短曝光功能1.引用合适的头文件2.通过BGAPISDK使…

前端层面----监控与埋点

前言: 站在产品的视角,经常会问如下几个问题: 产品有没有用户使用 用户用得怎么样 系统会不会经常出现异常 如何更好地满足用户需求服务用户 当站在技术视角时,经常会问如下几个问题: 系统出现异常的频率如何 异常…

计算机毕业设计 智慧物业服务系统的设计与实现 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点…

独立产品灵感周刊 DecoHack #067 - 摸鱼神器与AI视频创作工具

本周刊记录有趣好玩的独立产品/设计/开发相关内容,每周一发布,往期内容同样精彩,感兴趣的伙伴可以到官网查看更多内容。可以邮件订阅或RSS订阅本周刊。欢迎通过 Twitter 私信推荐或投稿。 本期内容涵盖从摸鱼神器、AI视频生成,到乐…