Linux应用软件编程-多任务处理(进程)

多任务:让系统具备同时处理多个事件的能力。让系统具备并发性能。方法:进程和线程。这里先讲进程。

进程(process):正在执行的程序,执行过程中需要消耗内存和CPU。

进程的创建:操作系统在进程创建时,会为每个进程分配4G的虚拟内存空间。

进程的调度:宏观并行,微观串行

进程的状态:第一张是简化版的进程状态助于理解,第二张是Linux的进程状态

进程的消亡:进程的退出 -》进程空间的回收

查看进程的命令:

ps -aux:查看进程的相关信息

ps -aux | grep ./a.out:

| : 管道:将前面结果的输出作为后面的输入

grep : 查找

ps -ef:查看进程的信息(父进程)

pstree:查看进程间的关系

pstree -p:查看进程间的关系(包含进程id号)

pstree -sp 进程ID:查看指定进程的族谱关系

top:查看进程信息,CPU占有率,MEM占有率

kill:给进程发送信号;kill -信号num 进程ID: 给指定进程发送一个信号

创建进程:

pid_t pid fork();子进程拷贝父进程0-3G的虚拟内存空间,PCB块,进程ID号不会拷贝

功能:创建一个新的进程

返回值:>0 : 父进程,返回值是子进程id号;==0:子进程;-1 : 出错

这里放一张图帮助理解:

getpid():用来获取当前进程的id号

相关推荐
十年磨一剑~4 小时前
Linux程序接收到sigpipe信号崩溃处理
linux
geshifei5 小时前
Sched ext回调3——select_cpu(linux 6.15.7)
linux·ebpf
yunfuuwqi5 小时前
OpenClaw✅真·喂饭级教程:2026年OpenClaw(原Moltbot)一键部署+接入飞书最佳实践
运维·服务器·网络·人工智能·飞书·京东云
迎仔5 小时前
C-算力中心网络隔离实施方法:怎么搞?
运维·网络
代码游侠5 小时前
C语言核心概念复习——网络协议与TCP/IP
linux·运维·服务器·网络·算法
你真是饿了5 小时前
6.库制作与原理
linux·服务器
Zach_yuan6 小时前
深入浅出 JSONCpp
linux·服务器·网络·c++
AtoposのCX3306 小时前
Docker运行hello-world镜像失败或超时
运维·docker
马猴烧酒.7 小时前
【面试八股|JAVA多线程】JAVA多线程常考面试题详解
java·服务器·数据库
北京迅为7 小时前
《【北京迅为】itop-3568开发板NPU使用手册》- 第 7章 使用RKNN-Toolkit-lite2
linux·人工智能·嵌入式·npu