03 - 初识Linux进程
创始人
2025-05-31 14:54:31

---- 整理自狄泰软件唐佐林老师课程

查看所有文章链接:(更新中)Linux系统编程训练营 - 目录

文章目录

  • 1. 进程理论状态切换
    • 1.1 问题
    • 1.2 进程生命周期
    • 1.3 Linux进程基本概念
    • 1.4 Linux进程生命周期
    • 1.5 Linux进程状态剖析
    • 1.6 Linux进程必知必会
    • 1.7 问题
  • 2. Linux进程树
  • 3. Linux进程创建
    • 3.1 fork()的工作方式
    • 3.2 思考
    • 3.3 execve()的工作方式
    • 3.4 问题

1. 进程理论状态切换

1.1 问题

  • strace输出中得到execve(…)究竟是什么?

1.2 进程生命周期

进程是“活”的实体
在这里插入图片描述

1.3 Linux进程基本概念

  • 进程 是Linux任务的 执行单元,也是Linux系统资源的 分配单元
  • 每个Linux应用程序运行后由一个或多个进程构成
  • 每个Linux进程可以执行一个或多个程序
  • Linux进程有多个 不同状态( 即:Linux进程有 不同“活法”

1.4 Linux进程生命周期

在这里插入图片描述

  • 就绪/运行状态(R):TASK_RUNNING
  • 阻塞状态
    • 可中断(S):TASK_INTERRUPTIBLE
    • 不可中断(D):TASK_UNINTERRUPTIABLE
    • 区别:可中断的阻塞状态可以被唤醒
  • 停止状态(T):TASK_STOPPED
  • 退出状态
    • 僵尸(X):EXIT_ZOMBIE
    • 死亡(Z):EXIT_DEAD

1.5 Linux进程状态剖析

在这里插入图片描述

// loop.c
int main()
{while (1);return 0;
}

在这里插入图片描述

1.6 Linux进程必知必会

每个进程都有一个唯一的标识(进程标识符,PID
每个进程都是由另一进程创建而来(即:父进程
在这里插入图片描述

如1.5示例所示:命令行进程创建了loop进程(./loop.out &)。

1.7 问题

  • 第1个进程是什么?
  • 如何创建进程?

2. Linux进程树

  • 整个Linux系统的所有进程构成一个树状结构
  • 树根由内核自动创建,即:IDLE(PID=0)
  • 系统中的 第1个进程初始化进程 (PID=1,一些Linux版本叫 init,一些叫 systemd
    • 0号进程创建1号进程,1号进程负责完成内核部分初始化工作
    • 1号进程加载执行初始化程序,演变为用户态1号进程

在这里插入图片描述
在这里插入图片描述

3. Linux进程创建

  • pid_t fork(void); ==> 系统调用
    通过当前进程创建新进程,当前进程为父进程,新进程为子进程
  • int execve(const char *pathname, char *const argv[], char *const encp[]); ==> 系统调用
    在当前进程中执行pathname指定的程序代码
  • 先创建进程,才能执行程序代码

3.1 fork()的工作方式

  • 为子进程申请内存空间,并将父进程数据完全复制到子进程空间中

  • 两个进程中的程序执行位置完全一致(fork()函数调用位置)

  • 不同之处:

    • 父进程:fork() 返回 子进程PID
    • 子进程:fork() 返回 0
      • 通过fork()返回值判断父子进程,执行不同代码
        在这里插入图片描述
  • 示例

    • 下面的程序输出什么?为什么?

在这里插入图片描述
在这里插入图片描述

3.2 思考

  • 如何理解“每个Linux进程可以执行一个或多个程序”?
    在这里插入图片描述

3.3 execve()的工作方式

int execve(const char *pathname, char *const argv[], char *const encp[]);

  • 根据参数路径 pathname 加载可执行程序 ==> 加载到当前进程中
  • 通过可执行程序信息构建进程数据,并写入当前进程空间
  • 将程序执行位置重置到入口地址处( 即:main() )
  • execve()将 重置当前进程空间(代码&数据)而不会创建新进程

3.4 问题

  • 下面的程序输出什么?为什么?

在这里插入图片描述

在这里插入图片描述

  • fork()与execve()结合使用创建新进程:

在这里插入图片描述
在这里插入图片描述

相关内容

热门资讯

湾财周报|大事记 比亚迪驳斥“... 一周大事记(5月26日-6月1日) 头条 比亚迪驳斥! 长城“车圈恒大论”是行业警示还是危言耸听?...
通源石油跌1.96%,成交额1... 5月30日,通源石油跌1.96%,成交额1.03亿元,换手率4.40%,总市值23.54亿元。 异动...
中国邮储银行浙江分行2025校... 点这里 ↑ 老满说高考 作者 l 老满 生涯规划师l 升学顾问l 拆书家 这是 老满说高考公众号 的...
公募基金规模首次突破33万亿元... 每经记者:肖芮冬 每经编辑:叶峰 天赐良基日报第654期 一、今日基金新闻速览 1、华润元大基金贾...
湾财周报 大事记 比亚迪驳斥“... 一周大事记(5月26日-6月1日)头条比亚迪驳斥!长城“车圈恒大论”是行业警示还是危言耸听?近日,关...
EL表达式JSTL标签库 EL表达式     EL:Expression Language 表达式语言     ...
关于测试,我发现了哪些新大陆 关于测试 平常也只是听说过一些关于测试的术语,但并没有使用过测试工具。偶然看到编程老师...
工信部、中汽协紧急发声!汽车“... 文/刘育英新一轮汽车价格战再起。近日,工信部、中汽协纷纷发声表示反对。工业和信息化部表示,将加大对汽...
3 ROS1通讯编程提高(1) 3 ROS1通讯编程提高3.1 使用VS Code编译ROS13.1.1 VS Code的安装和配置...
募资39亿,全亏光了,账上不到... 关于天然气,用户的感觉是价格一直在上涨,但很奇怪,不管怎么涨,天然气企业仍然亏,还亏得一塌糊涂。这是...
资阳房产评估公司 这是(tel-15828298733)整理的信息,希望能帮助到大家 在当今社会,随着经济的发展和城...
华桥汇利(中国)投资基金管理有... 今年第一季度,美国企业利润出现大幅下降,且面临着来自关税上升的持续压力,这一局面可能会在今年进一步加...
ESG 报告合规与鉴证:全球政... 在当下全球经济格局里,ESG(环境、社会和公司治理)已然成为衡量企业可持续发展能力的关键指标。随着全...
【Unity 手写PBR】Bu... 写在前面 前期积累: GAMES101作业7提高-实现微表面模型你需要了解的知识 【技...
与锤巨子生物的大嘴博士持股同一... 医美龙头巨子生物“成分争议”风波持续发酵。日前,美妆博主大嘴博士(香港大学化学博士郝宇)发文,质疑巨...
Linux之进程间通信 目录 进程间通信介绍 一、为什么要进行进程间通信? 二、进程间通信目的 三、进程间通信...
从“造城”到“留客”,文旅局长... 你有没有刷到最近各地文旅局局长全体“尬舞”的视频?领导们放下架子开始跳魔性舞蹈,这场舞的背后啊,可不...
Hazel引擎学习(十一) 我自己维护引擎的github地址在这里,里面加了不少注释,有需要的可以看...
孩子的教育金,分享3个「有效」... 点击 “简七读财” ,发送消息“ 理财小工具 ”免费领取“40个赚钱工具资源包”晚上好,我是简七编...
iZotope RX 10(专... iZotope RX 10是一款专业的音频修复和增强软件,具有音频修复工具、音频增强工...
我的docker随笔40:cl... 本文介绍 clickhouse 数据库的容器化部署。 起因 某项目需生产环境数据库,因...
透视一周牛熊股:最牛股路桥信息... 过去一周(5月26日—5月30日)A股三大指数集体下跌。截至5月30日收盘,上证指数报3347.49...
基于matlab创建地面固定雷... 一、前言此示例演示如何创建和显示包含地面固定雷达、转弯飞机、等速飞机和移动地面车辆的多平台方案。二、...
暗夜发光,独自闪耀,盘点网页暗... 众所周知,网页的暗黑模式可以减少屏幕反射和蓝光辐射,减少眼睛的疲劳感&#...
C语言-程序环境和预处理(2) 文章目录预处理详解1.预定义符号2.#define2.1#define定义的标识符2.2#defin...
MySQL数据库知识整理 MySQL数据库知识整理 MySQL事务详解 事务四大特性ACID 原子性(Atomi...
Docker基础篇——最全讲解 文章目录一、CentOS安装docker二、启动帮助类命令三、镜像命令1.名词概念2.常用命令2.1...
五问“恒大论”,比亚迪回应车圈... “车圈恒大”引发的舆论风暴还在进一步发酵。近日,比亚迪集团品牌及公关处总经理李云飞在微博发文,引用多...
javafx实现聚光灯效果,圆... 系列文章专栏:javafx图形绘制、桌面录屏录音源码合集 目录 一、实现的效果 二、实现思路
300左右哪款蓝牙耳机适合学生... 近年来,随着蓝牙耳机的发展,不管是音质、外观、佩戴还是降噪都有了很大的提...