Linux进程相关概念
一 什么是程序?什么是进程?有什么区别
1.程序是静态文件,例如在Linux环境下 gcc xxx.c -o a.out
,磁盘中生成的a.out
文件,叫做程序
2.进程是程序的一次运行活动,程序跑起来了,系统中就多了一个进程
二 如何查看系统中有哪些进程
2.1 ps指令
实际工作中 可以使用ps指令配合grep来查找程序中是否存在一个进程
2.1.1 ps -aux
a 显示所有用户的进程(show processes for all users) u 显示用户(display the process’s user/owner) x 显示无控制终端的进程(also show processes not attached to aterminal)
1、USER 哪个用户启动了这个命令
2、PID 进程ID
3、CPU CPU占用率
4、MEM 内存使用量
5、VSZ
如果一个程序完全驻留在内存的话需要占用多少内存空间
6、RSS 当前实际占用了多少内存
7、TTY: 终端的次要装置号码 (minordevice number of tty)
8、STAT 进程当前的状态(“S”:中断sleeping,进程处在睡眠状态,表明这些进程在等待某些事件发生–可能是用户输入或者系统资源的可用性;“D”:不可中断
uninterruptible sleep;“R”:运行 runnable;“T”:停止 traced or stopped;“Z”:僵死
a defunct zombie process)
9、START 启动命令的时间点
10、TIME 进程执行起到现在总的CPU暂用时间
11、COMMAND 启动这个进程的命令
2.1.2 ps -ef
ps -ef 是以System V方式显示,该种方式比BSD方式显示的多
e 显示所有用户的进程(all processes)此参数的效果和指定"a"参数相同 f
用ASCII字符显示树状结构,表达程序间的相互关系(ASCII art forest)>
1、UID 用户号
2、PID 进程ID
3、PPID 父进程号
4、C CPU占用率
5、TTY 终端的次要装置号码 (minordevice number of tty)
6、TIME 进程执行起到现在总的CPU暂用时间
7、COMMAND 启动这个进程的命令
2.1.3 配合grep使用
grep对里面内容进行过滤 挑选我们想要的进程
配合grep来查找程序中是否存在一个进程
例:ps -aux|grep init(查找系统初始化4进程)
2.2 top指令
类似于windows系统的任务管理器 查看进程的相关情况
三 什么是进程标识符
每个进程都有一个非负整数表示的唯一ID,叫做PID,是进程身份证
pid = 0 为交换进程
作用 为进程调度
pid = 1 init进程
作用 系统初始化
3.1 getpid()函数
这就可以获取函数的pid
可以看出进程已经跑起来了
四 什么叫父进程,什么叫子进程
进程A创建了进程B
A是父进程,B是子进程
后续会详细讲解