Linux 进程
文章目录
- 进程定义
- 进程的描述
- 查看进程方法
- 进程状态
- 进程优先级
- 进程相关概念补充
进程定义
大多数的说法:进程是计算机中正在运行的程序的实例。它是操作系统对程序的一种抽象,用于管理和调度程序的执行。
个人理解: 从OS(操作系统)开始说起,OS是一个管理所有硬件资源,为程序提供运行环境(管理所有硬件资源)的软件 。操作系统如何管理计算机硬件呢?宏观来看是先描述再组织,描述指的是用结构体记录某个硬件的信息/状态等,组织是指用数据结构聚合这些结构体。 程序是软件,软件的执行需要硬件资源,进程就是担当分配系统硬件资源(CPU时间,内存)的实体, 当一个程序被执行时,操作系统会为其创建一个进程,分配必要的资源(如内存、CPU时间、文件描述符等)。
进程的描述
- 进程信息被放在一个叫做进程控制块的数据结构中,可以理解为进程属性的集合
进程控制块,进程控制块是一种数据结构
进程控制块(Process Control Block,简称PCB)是操作系统中用于管理和控制进程的数据结构。每个进程都有一个对应的PCB,用于存储进程的相关信息。下面是PCB中常见的一些信息:进程标识符(Process ID,PID):用于唯一标识一个进程。状态(State):表示进程的当前状态,如运行、就绪、阻塞等。程序计数器(Program Counter,PC):存储下一条将要执行的指令的地址。寄存器(Registers):保存进程的上下文信息,包括通用寄存器、程序状态字等。内存指针(Memory Pointer):指向进程的代码段、数据段和堆栈等内存区域。资源占用(Resource Allocation):记录进程所占用的系统资源,如打开的文件、分配的内存等。优先级(Priority):用于确定进程的调度顺序。父进程标识符(Parent Process ID,PPID):记录创建该进程的父进程的PID.子进程列表(Children Processes):记录由该进程创建的子进程的PID。
task_struct是一个结构体,是Linux 中进程控制块这种数据结构的具体实现的一部分(可以理解为进程控制块是链表的概念,task_struct是某个具体链表中的一个节点)
下面是一些常见的字段:
标示符: 描述本进程的唯一标示符,用来区别其他进程。
状态: 任务状态,退出代码,退出信号等。
优先级: 相对于其他进程的优先级。
程序计数器: 程序中即将被执行的下一条指令的地址。
内存指针: 包括程序代码和进程相关数据的指针,还有和其他进程共享的内存块的指针
上下文数据: 进程执行时处理器的寄存器中的数据[休学例子,要加图CPU,寄存器]。
I/O状态信息: 包括显示的I/O请求,分配给进程的I/O设备和被进程使用的文件列表。
记账信息: 可能包括处理器时间总和,使用的时钟数总和,时间限制,记账号等。
其他信息
查看进程方法
1. ps命令:ps命令用于列出当前正在运行的进程。可以使用不同的选项来获取不同的信息,例如进程ID(PID)、进程状态、CPU使用率等。常用的选项包括:
ps aux:显示所有进程的详细信息。
ps -ef:显示所有进程的详细信息,包括父进程ID(PPID)。
ps -e --forest:以树状结构显示进程信息。
2. top命令:top命令用于实时监视系统的进程和系统性能。它会动态地显示进程列表,按照CPU使用率或内存使用率排序。可以按下键盘上的相应键来切换不同的排序方式或查看不同的信息。(这个还会显示没列的含义)
3. /proc文件系统:Linux的/proc文件系统提供了有关当前运行进程的详细信息。可以在/proc目录下找到以进程ID为名称的子目录,其中包含有关该进程的信息。可以使用cat命令或其他文本查看器查看这些文件。
进程状态
R运行状态(running): 并不意味着进程一定在运行中,它表明进程要么是在运行中要么在运行队列里。
S睡眠状态(sleeping): 意味着进程在等待事件完成(这里的睡眠有时候也叫做可中断睡眠(interruptible sleep))。
D磁盘休眠状态(Disk sleep)有时候也叫不可中断睡眠状态(uninterruptible sleep),在这个状态的进程通常会等待IO的结束。
T停止状态(stopped): 可以通过发送 SIGSTOP 信号给进程来停止(T)进程。这个被暂停的进程可以通过发送 SIGCONT 信号让进程继续运行。
X死亡状态(dead):这个状态只是一个返回状态,你不会在任务列表里看到这个状态
僵死状态(Zombies):一个进程已经终止但其父进程尚未对其进行善后处理(如调用wait()函数来获取终止状态),导致进程表中仍然保留该进程的相关信息,但进程本身已经不再执行任何操作。
补充说明:
- Z(zombie)-僵尸进程
定义:一个进程已经终止但其父进程尚未对其进行善后处理(如调用wait()函数来获取终止状态),导致进程表中仍然保留该进程的相关信息,但进程本身已经不再执行任何操作。
产生影响: 维护退出状态本身就是要用数据维护,也属于进程基本信息,所以保存在PCB中。进程控制块作为一种数据结构是加载在内存中使用的,如果一直不回收就会造成内存泄漏 。
解决方法:1.父进程wait回收 2.父进程结束,pid为1的进程回收(类似于孤儿进程) 。
-
孤儿进程是指其父进程已经终止或者不再关心该子进程的状态,导致子进程成为孤儿进程。在操作系统中,孤儿进程会被init进程(进程ID为1)接管,init进程会成为孤儿进程的新的父进程,并负责对其进行善后处理。
-
pid=1 的进程
Linux中的pid=1的进程是init进程,也称为系统初始化进程。它是Linux系统中第一个启动的进程,负责初始化系统并启动其他进程。init进程是所有其他进程的祖先进程,它会监控其他进程的运行状态,并在需要时重新启动它们。
进程优先级
概念:进程优先级是进程的属性之一,用于确定进程对CPU资源的占用情况,优先级高的进程有优先执行的权力,多进程情况下,合理配置进程优先级,可以提高系统整体性能。
关于CPU资源分配拓展:Linux提供了将进程绑定到指定CPU的功能,这被称为CPU绑定(CPU affinity)。通过将进程绑定到特定的CPU上,可以有效地控制进程在系统中的调度和运行。这对于提高系统整体性能和优化资源利用非常有帮助。
通过CPU绑定,可以将不重要的进程限制在某个特定的CPU上运行,从而确保系统的关键任务能够在其他CPU上得到更好的执行效果。这样可以避免不重要的进程占用关键资源,提高系统的响应性能和稳定性。
优先级属性介绍
UID : 代表执行者的身份
PID : 代表这个进程的代号
PPID :代表这个进程是由哪个进程发展衍生而来的,亦即父进程的代号
PRI :代表这个进程可被执行的优先级,其值越小越早被执行
NI :代表这个进程的nice值
说明:PRI代表这个进程可被执行的优先级,其值越小越早被执行。 进程每次执行过后,PRI值就会发生变化,变化的方式为:(旧的)PRI = PRI(旧的) + NI, NI的取值范围为-20至19,一共40个级别。
进程相关概念补充
- 竞争性: 系统进程数目众多,而CPU资源只有少量,甚至1个,所以进程之间是具有竞争属性的。为了高效完成任务,更合理竞争相关资源,便具有了优先级。
- 独立性: 多进程运行,需要独享各种资源,多进程运行期间互不干扰
- 并行: 多个进程在多个CPU下分别,同时进行运行,这称之为并行
- 并发: 多个进程在一个CPU下采用进程切换的方式,在一段时间之内,让多个进程都得以推进,称之为
相关文章:

Linux 进程
文章目录 进程定义进程的描述查看进程方法进程状态进程优先级进程相关概念补充 进程定义 大多数的说法:进程是计算机中正在运行的程序的实例。它是操作系统对程序的一种抽象,用于管理和调度程序的执行。 个人理解: 从OS(操作系统)开始说起,…...

Docker部署开源分布式任务调度平台DolphinScheduler并实现远程访问办公
文章目录 前言1. 安装部署DolphinScheduler1.1 启动服务 2. 登录DolphinScheduler界面3. 安装内网穿透工具4. 配置Dolphin Scheduler公网地址5. 固定DolphinScheduler公网地址 前言 本篇教程和大家分享一下DolphinScheduler的安装部署及如何实现公网远程访问,结合内…...

SQL语言重温
数据库语言重温 笔记背景SQL教程一些最重要的 SQL 命令SQL WHERE 子句SQL AND & OR 运算符SQL ORDER BY 关键字 笔记背景 由于工作需要,现重温简单SQL语言,笔记记录如下。 SQL教程 SQL(Structured Query Language:结构化查询语言&…...
Java学习手册——第五篇数据类型
数据类型:是数据化的基石,如果没有数据类型怎么表示呢?比如年龄可以用整数:18岁。如果有更好的表示方式大家可以留言哟~ 在举个例子就是姓名,我们需要用字符串的形式来表示。这就是数据类型的魅力,而又有同…...

机器学习算法性能评估常用指标总结
考虑一个二分问题,即将实例分成正类(positive)或负类(negative)。对一个二分问题来说,会出现四种情况。如果一个实例是正类并且也被 预测成正类,即为真正类(True positive࿰…...
java面试题-ArrayList 和 LinkedList 的区别是什么
远离八股文,面试大白话,通俗且易懂 看完后试着用自己的话复述出来。有问题请指出,有需要帮助理解的或者遇到的真实面试题不知道怎么总结的也请评论中写出来,大家一起解决。 java面试题汇总-目录-持续更新中 ArrayLi…...
k8s中部署基于nfs的StorageClass
部署nfs服务 1.1 创建基础镜像(选做) 如果以docker的形式部署nfs server, 参考此步骤, 若否, 该步骤可忽略。 mkdir /data/nfs -p chmod 755 /data/nfs# NFS默认端口: 111、2049、20048 docker run -d \ --privileged \ --name nfs_server \ -p 111:111/tcp \ -p 111:111/ud…...

c语言一维数组总结详解
目录 介绍: 一维整型数组: 声明: 初始化: 打印输出: 输出结果: 浮点型数组: 代码: 运行结果: 补充: 一维字符数组: 字符数组声明及初始…...

Redis 持久化 —— 超详细操作演示!
四、Redis 持久化 四、Redis 持久化4.1 持久化基本原理4.2 RDB持久化4.3 AOF持久化4.4 RDB与AOF对比4.5 持久化技术转型 五、Redis 主从集群六、Redis 分布式系统七、Redis 缓存八、Lua脚本详解九、分布式锁 数据库系列文章: 关系型数据库: MySQL —— 基础语法大全…...
使用Java实现桶排序算法
文章目录 桶排序算法 今天来看看桶排序算法: 桶排序算法 (1)基本思想:把数组 arr 划分为 n 个大小相同子区间(桶),每个子区间各自排序,最后合并 。计数排序是桶排序的一种特殊情况…...

5.题目:编号1624 小蓝吃糖果
题目: ### 这道题主要考察poriority_queue优先队列 #include<bits/stdc.h> using lllong long; using namespace std; int main(){ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);int n;cin>>n;priority_queue<int> pq;ll sum0,x;for(int i1;i<n;i){c…...

基于SpringBoot+thymeleaf协同过滤算法山河旅游推荐系统(Java毕业设计)
大家好,我是DeBug,很高兴你能来阅读!作为一名热爱编程的程序员,我希望通过这些教学笔记与大家分享我的编程经验和知识。在这里,我将会结合实际项目经验,分享编程技巧、最佳实践以及解决问题的方法。无论你是…...

TypeScript 之 console的使用
语言: TypeScript 在线工具: PlayGround console console 对象是一个非常强大的控制台日志显示工具, 可以帮助我们在浏览器中调试代码。 注: console不属于TypeScript的语法,而是由JavaScript封装的内置对象。 简单的…...

西南科技大学C++程序设计实验十(函数模板与类模板)
一、实验目的 1. 掌握函数模板与类模板; 2. 掌握数组类、链表类等线性群体数据类型定义与使用; 二、实验任务 1. 分析完善以下程序,理解模板类的使用: (1)补充类模板声明语句。 (2)创建不同类型的类对象,使用时明确其数据类型? _template<typename T>__…...

Python 解析JSON实现主机管理
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,它以易于阅读和编写的文本形式表示数据。JSON 是一种独立于编程语言的数据格式,因此在不同的编程语言中都有对应的解析器和生成器。JSON 格式的设计目标是易于理解、…...

一体化污水处理设备材质怎么选
在环保意识日益增强的今天,污水处理设备成为城市建设过程中的重要环节。而选择合适的一体化污水处理设备材质,则成为了一项重要的决策。本文将从专业的角度出发,为您解析一体化污水处理设备材质的选取。 首先,一体化污水处理设备材…...

德国进口高速主轴电机在机器人上的应用及选型方案
随着机器人技术的日新月异,高速主轴电机在机器人领域的应用也日趋广泛。德国进口的SycoTec高速主轴电机,以其高转速、高精度、高刚度的特点,在机器人的切割、铣削、钻孔、去毛刺等加工应用中发挥着关键作用。 一、高速主轴电机的特点 SycoT…...

【软考中级——软件设计师】备战经验 笔记总结分享
考试成绩 我第一次备考是在2022 然后那时候取消了这次是第二次 靠前我一个月复习的看了以前的笔记 然后刷了七八道历年题目学习资料推荐 :zst——2021 b站链接自荐一下我的笔记 : 软考笔记专栏 视频确实很长 , 我的建议就是先看笔记 然后不会…...
146. LRU 缓存 --力扣 --JAVA
题目 请你设计并实现一个满足 LRU (最近最少使用) 缓存 约束的数据结构。 实现 LRUCache 类: LRUCache(int capacity) 以 正整数 作为容量 capacity 初始化 LRU 缓存int get(int key) 如果关键字 key 存在于缓存中,则返回关键字的值,否则返回…...
【C++】POCO学习总结(十):Poco::Util::Application(应用程序框架)
【C】郭老二博文之:C目录 1、Poco::Util::Application 应用框架 1.1 应用程序基本功能 Poco::Util::Application是POCO实现的的应用程序框架,支持功能如下: 命令行参数处理配置文件初始化和关机日志 1.2 命令行程序和守护进程 POCO支持…...

Lombok 的 @Data 注解失效,未生成 getter/setter 方法引发的HTTP 406 错误
HTTP 状态码 406 (Not Acceptable) 和 500 (Internal Server Error) 是两类完全不同的错误,它们的含义、原因和解决方法都有显著区别。以下是详细对比: 1. HTTP 406 (Not Acceptable) 含义: 客户端请求的内容类型与服务器支持的内容类型不匹…...

最新SpringBoot+SpringCloud+Nacos微服务框架分享
文章目录 前言一、服务规划二、架构核心1.cloud的pom2.gateway的异常handler3.gateway的filter4、admin的pom5、admin的登录核心 三、code-helper分享总结 前言 最近有个活蛮赶的,根据Excel列的需求预估的工时直接打骨折,不要问我为什么,主要…...

页面渲染流程与性能优化
页面渲染流程与性能优化详解(完整版) 一、现代浏览器渲染流程(详细说明) 1. 构建DOM树 浏览器接收到HTML文档后,会逐步解析并构建DOM(Document Object Model)树。具体过程如下: (…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解
本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说,直接开始吧! 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...
什么?连接服务器也能可视化显示界面?:基于X11 Forwarding + CentOS + MobaXterm实战指南
文章目录 什么是X11?环境准备实战步骤1️⃣ 服务器端配置(CentOS)2️⃣ 客户端配置(MobaXterm)3️⃣ 验证X11 Forwarding4️⃣ 运行自定义GUI程序(Python示例)5️⃣ 成功效果
Git 3天2K星标:Datawhale 的 Happy-LLM 项目介绍(附教程)
引言 在人工智能飞速发展的今天,大语言模型(Large Language Models, LLMs)已成为技术领域的焦点。从智能写作到代码生成,LLM 的应用场景不断扩展,深刻改变了我们的工作和生活方式。然而,理解这些模型的内部…...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践
作者:吴岐诗,杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言:融合数据湖与数仓的创新之路 在数字金融时代,数据已成为金融机构的核心竞争力。杭银消费金…...
文件上传漏洞防御全攻略
要全面防范文件上传漏洞,需构建多层防御体系,结合技术验证、存储隔离与权限控制: 🔒 一、基础防护层 前端校验(仅辅助) 通过JavaScript限制文件后缀名(白名单)和大小,提…...
boost::filesystem::path文件路径使用详解和示例
boost::filesystem::path 是 Boost 库中用于跨平台操作文件路径的类,封装了路径的拼接、分割、提取、判断等常用功能。下面是对它的使用详解,包括常用接口与完整示例。 1. 引入头文件与命名空间 #include <boost/filesystem.hpp> namespace fs b…...
ffmpeg(三):处理原始数据命令
FFmpeg 可以直接处理原始音频和视频数据(Raw PCM、YUV 等),常见场景包括: 将原始 YUV 图像编码为 H.264 视频将 PCM 音频编码为 AAC 或 MP3对原始音视频数据进行封装(如封装为 MP4、TS) 处理原始 YUV 视频…...