进程就是运行起来的程序
简介:
1. 查看进程的命令
查看进程的命令:
ps -ef Unix/Linux都支持
ps -aux Linux直接支持,Unix不直接支持,但使用 /usr/ucb/ps 支持,whereis可以找到。
- ps -aux 命令执行后,屏幕显示的信息
– USER 进程的属主;
– PID 进程的ID;
– PPID 父进程;
– %CPU 进程占用的CPU百分比;
– %MEM 占用内存的百分比;
– NI 进程的NICE值,数值大,表示较少占用CPU时间;
– VSZ 进程虚拟大小;
– RSS 驻留中页的数量;
– WCHAN
– TTY 终端ID
2. 进程常见状态:
S 休眠状态,大多数进程都是处于休眠状态
R 运行状态 正在运行的进程
O 可运行状态
Z 僵尸进程(已结束但资源没有回收的进程)
– STAT 进程状态
– D Uninterruptible sleep (usually IO)
– R 正在运行可中在队列中可过行的;
– S 处于休眠状态;
– T 停止或被追踪;
– W 进入内存交换(从内核2.6开始无效);
– X 死掉的进程(从来没见过);
– Z 僵尸进程;
– < 优先级高的进程
– N 优先级较低的进程
– L 有些页被锁进内存;
– s 进程的领导者(在它之下有子进程);
3. 进程的父子关系
如果a进程启动了b进程,a进程叫b进程的父进程,b进程就是a进程的子进程。
进程0是Unix/Linux的根进程,其它进程都是由0进程的子进程1(init进程)或子进程2 启动。
1.1 父进程创建子进程之后,父子进程同时运行,如果子进程先结束,子进程会给父进程发信号,父进程负责回收子进程的资源。
1.2 父进程创建子进程之后,父子进程同时运行,如果父进程先结束,子进程变成孤儿进程,孤儿进程认init进程(进程1)做新的父进程,init进程也称为 孤儿院。
1.3 父进程创建子进程之后,父子进程同时运行,如果子进程先结束,而父进程没有收到子进程的信号,子进程变成 僵尸进程。
4. 进程的说明与获取
进程在Unxi/Linux中,进程ID(PID)是唯一标识,getpid()可以获取当前进程的PID,getppid()可以获得父进程PID。
进程ID同一时刻不能重复,但可以延迟重用。
关于获取id的函数:
geteuid() - 取当前的有效用户
getpid 获得进程ID
getppid 获得父进程ID
getuid 获得实际用户ID
geteuid 获得有效用户ID
getgid 获得实际组ID
getegid 获得有效组ID
5. 进程与程序的差别
1) 进程就是运行中的程序。一个运行着的程序,可能有多个进程。进程在操作系统中执行特定的任务。
2) 程序是存储在磁盘上包含可执行机器指令和数据的静态实体。进程或者任务是处于活动状态的计算机程序。
6. 进程的分类
1) 进程一般分为交互进程、批处理进程和守护进程三类。
2) 守护进程总是活跃的,一般是后台运行,守护进程一般是由系统在开机时通过脚本自动激活启动或超级管理用户root来启动。