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号

相关推荐
时空无限13 分钟前
linux mellanox 网卡队列 irq rps 相关
linux·运维
AlbertS33 分钟前
Let‘s Encrypt 证书自动续期并自动应用到Nginx
运维·nginx·ssl·cerbot·renew·续期
kdxiaojie37 分钟前
Linux 驱动研究 —— V4L2 (14)
linux·运维·笔记·学习
IMPYLH38 分钟前
HTML 的 <dl> 元素
linux·windows·html
如若12339 分钟前
Ubuntu 无 sudo 安装花生壳并实现 SSH 内网穿透:Conda 环境部署、冲突排查与自动启动
linux·运维·ubuntu·ssh·内网穿透
承渊政道1 小时前
Linux系统学习【掌握Ext系列⽂件系统的相关内容】
linux·运维·学习·文件系统·存储结构·inode
未知违规用户1 小时前
大模型项目: 学习FastAPI 服务器开发
服务器·人工智能·python·学习·fastapi
池以遇1 小时前
云原生——LVS
运维·云原生·lvs
ljj2535575051__1 小时前
LVS(Linux virual server)
服务器·网络·lvs
Ivan CloudBay2 小时前
服务器关机后,网站会发生什么?
运维·服务器