当前位置:

首页 > 硬件相关 > Linux进程入门:理解进程管理

Linux进程入门:理解进程管理

前言:本文将逐步深入探讨进程相关内容。在进入进程讨论之前,我们需要再次回顾操作系统的基本概念。接下来,我们会介绍进程的定义、如何查看进程,以及在Linux中与进程相关的文件等问题。进程是一个庞大的主题,会持续更新多节,因此其知识点较为复杂,同学们需要特别注意。首先,我们需要理解为什么需要操作系统。操作系统的主要工作是管理软硬件资源。管理硬件是通过驱动程序实现的,这些程序将硬件数据组织成链表,操作系统可以直接修改链表信息,从而通过驱动程序管理硬件。这种方法是先描述再组织,最终实现对硬件的管理。然而,操作系统

前言:

本文将逐步深入探讨进程相关内容。在进入进程讨论之前,我们需要再次回顾操作系统的基本概念。接下来,我们会介绍进程的定义、如何查看进程,以及在Linux中与进程相关的文件等问题。进程是一个庞大的主题,会持续更新多节,因此其知识点较为复杂,同学们需要特别注意。

首先,我们需要理解为什么需要操作系统。

操作系统的主要工作是管理软硬件资源。管理硬件是通过驱动程序实现的,这些程序将硬件数据组织成链表,操作系统可以直接修改链表信息,从而通过驱动程序管理硬件。这种方法是先描述再组织,最终实现对硬件的管理。然而,操作系统的根本目的是为用户提供良好、稳定、高效和安全的服务,因此需要采用相应的方法来管理各种资源。

从操作系统的结构图中我们可以看到,操作系统包括进程管理等多种管理功能。操作系统在管理进程时,允许多个进程同时存在。例如:

初识Linux · 进程(2)

这些都是进程。要查看电脑中的进程,只需按esc + shift + ctrl打开任务管理器即可。这证明了进程是可以多重存在的。

那么,什么是进程呢?

如果将某个工程的数据和代码加载到内存中,代码是否会自动运行呢?答案是否定的,因为CPU并没有读取这些数据。当代码开始运行时,就产生了一个进程。进程不仅仅是正在运行的程序,它是由PCB(进程控制块)加上自己的代码和数据构成的。

那么,什么是PCB呢?PCB是一个包含多种数据类型的结构体,用于存储进程的相关信息。类比于操作系统管理硬件时需要硬件信息来构建链表,操作系统通过修改链表实现对硬件的管理。PCB的全称是process control block,即进程控制块。之所以称为控制块,是因为操作系统可以通过对PCB的操作来控制进程。

因此,我们得出结论:进程 = PCB + 自己的代码和数据。

为什么需要PCB的概念呢?

因为操作系统遵循“先描述再组织”的原则。通过PCB,操作系统可以在内存中以链表的形式连接多个进程,每个PCB包含指向下一个PCB的指针。这样,操作系统可以通过管理链表来管理进程。

具体的PCB结构体名称是task_struct。外国人将其称为task,因为他们认为这是任务的一种表现形式。

进程是动态运行的,我们如何理解动态运行呢?

在内存中,操作系统占据一定空间,用于管理各种软硬件。当不同的进程进入内存时,需要排队处理。因此存在task_queue,即进程队列。动态运行实际上是多个PCB排队的过程。

初识Linux · 进程(2)

具体内容将在后续文章中详细介绍。

现在让我们来看看task_struct的内部属性:

无论是运行指令还是编写代码,本质上都是创建一个进程。指令执行得非常快,我们通常看不到其过程。那么,如何区分不同的进程呢?每个进程都有一个唯一的标识,即pid(进程ID),类似于学生的学号。

我们如何查看pid呢?

在回顾上篇文章中介绍的系统调用接口:

初识Linux · 进程(2)

系统调用是操作系统提供的函数,我们从未调用过它,现在是时候调用我们人生中的第一个系统调用接口了。我们使用man手册查询可知:

初识Linux · 进程(2)初识Linux · 进程(2)

从手册说明中我们了解到,2号接口是系统库函数调用,即我们即将学习的getpid:

#include 
#include 
#include 

int main()
{
  printf("I am a process\nMy pid is %d\n",getpid());
  return 0;
}

有趣的是,getpid()函数需要两个头文件才能使用。

初识Linux · 进程(2)

打印结果正常,每次运行的进程ID都不同,我们的初步目标已经达成。但进程肯定不止这些内容,我们应该输入ps -xaj来查看,这里先记住,xaj的顺序无关紧要:

#include 
#include 
#include 

int main()
{
  while(1)
  {
    printf("I am a process\nMy pid is %d\n",getpid());
    sleep(1);
  }
  return 0;
}

我们修改代码为死循环,以便观察:

初识Linux · 进程(2)

我们使用管道筛选出包含test的进程,前两个我们可以理解,但为什么grep也有呢?因为ps -xaj打开了进程,通过管道筛选,筛选也是一个进程。如果我们不想看到grep进程,可以使用:

初识Linux · 进程(2)

使用grep -v grep反向筛选出不含grep的进程:

初识Linux · 进程(2)

当然,直接使用ps -xaj就相当于Windows中的任务管理器,可以查看所有进程。

我们可以看到,打印出来的pid是14191,在打印出来的head -1中也有pid,也是14191,所以pid打印是没有问题的。

现在我们再来看ppid是什么?ppid的全称是parent process id,即父进程的ID。有人可能会问,父进程?这东西还有继承关系吗?我们可以在一个进程中创建多个进程,使用到的函数是fork():

初识Linux · 进程(2)

这里有一个非常有趣的点,会颠覆你的编程观念,即返回值pid_t,本质上是unsigned int,这里先留个悬念。

我们来看一段有趣的代码:

#include 
#include 
#include 

int main()
{
  printf("I am a father process!\n");
  fork();
  printf("I am a child process\n");
  return 0;
}

试问这段代码的运行结果是什么?

直接看结果:

初识Linux · 进程(2)

可以发现打印了两次第二次的printf,我们可以这样理解:我是一个公司老板,在没有招员工之前一直做相同的事,招了员工之后,员工和我做相同的事,但我之前做的工作员工还需要做吗?不需要,所以第一行的printf不会执行,父进程原本的代码是要执行printf的,所以会打印两次child process。

  while(1)
  {
    printf("This is parent process:%d\nThis is child process:%d\n",getppid(),getpid());
    sleep(1);
  }

初识Linux · 进程(2)

打印结果显示,父进程的ID是22252,子进程ID是22239,在ppid和pid下面也得到了验证。

更多内容请看后续文章!!!

感谢阅读!

本文内容来源于互联网,如有侵权请联系删除。
作者最新文章
硬件相关 Linux
相关文章 更多
荣耀MagicOS 11发布计划与Agent Harness架构解析
荣耀MagicOS 11发布计划与Agent Harness架构解析

荣耀MagicOS 11定于9月15日发布,作为行业首个商用系统级Agent Harness架构的操作系统,Magic 9系列将首发搭载。新版YOYO支持最长上百步长程任务及40余项条件触发,10月开启Beta预览版招募。

华强北手机全线涨价:涨幅400-1500元,存储成本推高售价
华强北手机全线涨价:涨幅400-1500元,存储成本推高售价

华强北销售商反馈,年初以来主流手机品牌基本全线涨价,涨幅最低400元,最高达1000-1500元。涨价主因是全球存储芯片及电容等元器件成本上升,运行内存与机身存储价格涨幅超100%。尽管整体市场承压,国产折叠屏手机1-8月销量约450万台(新形态超135万台,同比增29%),AI手机成为厂商发力重点。

索尼WH-1000XM4C发布:复刻经典折叠设计并升级现代接口
索尼WH-1000XM4C发布:复刻经典折叠设计并升级现代接口

索尼发布WH-1000XM4C头戴式降噪耳机,复刻了XM4的经典四向折叠便携设计。该机型在保留QN1处理器和30小时续航的基础上,全面升级了USB-C高速充电、无损音频直连、蓝牙多点连接及AI降噪通话功能,旨在满足对便携性有极高要求的用户群体。

OpenAI GPT-6 Astra 自主通关《传送门》:技术原理与实验成本解析
OpenAI GPT-6 Astra 自主通关《传送门》:技术原理与实验成本解析

OpenAI GPT-6 Astra 模型通过 MCP 协议与 SourcePauseTool 控制《传送门》游戏,完成 3336 次工具调用并自主通关。实验耗时约 24 小时,API 成本约 571 美元,展示了多模态 AI 在 3D 解谜领域的突破性进展。

AI重构企业业务架构:超聚变“智企”范式核心解析
AI重构企业业务架构:超聚变“智企”范式核心解析

本文解析超聚变在2026数博会发布的“智企”范式,重点阐述如何通过Token生产平台(Token Factory)与企业业务本体建模,实现从简单AI工具调用到企业应用架构系统性重构的演进。文章详细拆解了智能体编排、数字孪生及生态协同等关键技术路径,为AI时代企业数字化转型提供可落地的参考方案。

南邮光擎智算团队:GaN基Micro-LED光计算芯片从理论到流片的突破
南邮光擎智算团队:GaN基Micro-LED光计算芯片从理论到流片的突破

南京邮电大学“光擎智算”团队联合南京大学,攻克GaN基Micro-LED器件技术,成功搭建实验室级光计算验证系统。团队自主研发的5×5 Micro-LED光电计算阵列芯片已进入流片封装阶段,实现了图像识别等算力任务验证,推动光计算技术从理论走向工程落地。

微软推出Project Zenith:面向Windows 11开发者的AI硬件加速方案
微软推出Project Zenith:面向Windows 11开发者的AI硬件加速方案

微软于9月5日推出Project Zenith,旨在为Windows 11开发者提供更高效的AI开发体验。该项目目前仅支持配备超过64GB统一内存及250GB/s内存带宽的特定硬件,首发适配AMD Ryzen AI Halo设备。通过此项目,开发者可在本地运行参数超过300亿的AI模型,后续将分阶段扩展至更多合作伙伴设备。

贵州省住建厅与贝壳集团签署旅居战略合作:五大维度落地方案解析
贵州省住建厅与贝壳集团签署旅居战略合作:五大维度落地方案解析

9月3日,贵州省住建厅与贝壳集团在贵阳签署《旅居产业发展战略合作框架协议》,旨在打造全国旅居样板。合作涵盖平台建设、标准共建、人才培育、存量资产盘活及品牌推广五大维度,依托贝壳近600家门店及4000余名经纪人资源,强化贵州旅居服务供给,促进房地产市场平稳健康发展。

上海链家安住APP:业主主动卖房功能与成交数据解析
上海链家安住APP:业主主动卖房功能与成交数据解析

本文解析上海链家推出的“安住APP”功能,该工具允许业主在贝壳/链家挂牌后主动管理房源。通过实时查看销售进展、发送看房邀约及获取AI策略,业主可缩短成交周期。数据显示试点期间平均成交7天,最短1天。适用于希望提高信息透明度、主动参与卖房过程的业主。

打破流量垄断,让平台经济释放普惠红利
打破流量垄断,让平台经济释放普惠红利

2026年6月工信部等七部门印发《促进平台经济大中小企业协同发展行动方案》,明确平台经济是数字技术赋能的实体经济。针对流量垄断与“数字租金”问题,专家主张治理重心应从静态整改转向推动平台能力向中小企业外溢,通过算法透明、接口开放及数据可迁移,打破封闭生态,实现创新与规范并重的高质量发展。

查看更多
精品专题 更多
装机必备
装机必备

正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

Windows
Windows

正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

macOS软件
macOS软件

正软商城macOS软件专区,精选适用于Mac电脑的办公、设计、影音、效率、开发和系统工具,提供软件功能介绍、macOS兼容版本、正版授权及购买下载服务。

Mac软件 更多
灵活计算器
灵活计算器
macOS/iOS/Android

灵活计算器是一款笔记式算数应用,支持实时计算、动态关联和云端同步功能。记录、整理和输出之间的过渡会更自然,适合长期写作、做笔记或持续沉淀个人内容。

赤友清理大师
赤友清理大师
macOS

赤友清理大师是一款为 Mac 设计的智能清理优化工具,可精准扫描垃圾、大文件、重复文件等,释放磁盘空间。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

极度公式
极度公式
Windows/macOS/Linux

极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

WINDOWS 更多
Windows 10
Windows 10
Windows

Windows 10 是一款微软推出的经典操作系统,拥有硬件兼容性与多任务处理能力。它更偏向把系统状态查看和常用调节动作放在一起,适合需要持续观察和微调设备状态的场景。

极度公式
极度公式
Windows/macOS/Linux

极度公式是一款跨平台专业LaTeX公式识别编辑软件,支持OCR公式识别和多平台编辑。和使用说明,避免使用,享受完整功能与稳定支持。做扫描整理、文字提取和表格转换时,它能把识别后的处理步骤接得更顺,资料录入这类场景会省下不少时间。

密码键盘
密码键盘
Windows/macOS/iOS/Android

密码键盘是一款兼具安全性与便捷性的高效密码管理器。日常使用里的持续防护和信息管理会更突出,适合把安全控制放进长期使用流程中的场景。