一、进程的定义
进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体。
进程和线程都是一个时间段的描述,是CPU工作时间段的描述,不过是颗粒大小不同。
比如:电脑上打开qq软件 是一个进程,支持qq软件运行需要多个线程。
二、ps命令
(一)ps
ps 参数
a #关于当前环境的所有进程
x | -A #所有进程
f #显示进程从属关系
e #显示进程调用环境工具的详细信息
l #长列表显示进程的详细信息
u #显示进程的用户信息
-a #显示shell前台运行命令的进程,但不保函shell本身
注意:
ps x 显示除了当前环境的所有进程
ps a 显示当前环境的相关的进程
因此ps ax 和 ps A 具有相同的功能
ps -o %cpu ,%men,user,group,comm,nice,pid,stat #显示当前环境的进程的某些信息
ps ax -o %cpu ,%men,user,group,comm,nice,pid,stat #显示当所有进程的某些信息
%cpu #显示进程cpu负载
%mem #显示进程内存负载
user #显示进程用户
group #显示进程组
comm #进程名称
nice #进程优先级
pid #进程id
start #进程状态
(二)、stat中显示的信息
S #进程状态
l #内存中有锁定的空间
N #优先级低
< #优先级高
+ #前台运行
s #顶级进程
ps ax -o %cpu,com --sort <+|-%cpu> <+|-%mem > #按照进程的信息排序
+ 正序
- 倒序
%cpu #cpu负载排序
%mem #内存负载
例如:将所有的进程按照cpu占用资源大小,从小到大排序
三、进程的优先级
(一)、进程的优先级范围
进程优先级范围为-20~19 ,优先级最高的是-20 最低的是19。
(二)、进程的优先级的查看
ps ax -o pid,nice,comm
如上:分贝显示出了进程的id,进程的优先级,和进程名称
(三)、指定某个优先级开启进程 nice 命令
nice命令已更改过的优先级来执行程序命令,如果未指定程序的优先级,默认情况下为原优先级+10。优先级范围为-20(最高权限)到19(最低权限)。使用权限:所有使用者。
实例:设置程序运行时的优先级
(1)vim &
(2)nice vim &
(3) nice -n 19 vim &
(4) nice -n -20 vim &
(5) ps -l
通过上面五个步骤,我们发现nice 可以指定程序运行时的优先级,如果没有指定的话会在原有优先级上+10.
(四)、改变进程优先级 renice命令
renice命令用于重新指定一个或多个行程(Process)的优先序(一个或多个将根据参数而定)。使用权限 : 所有使用者
renice -n -5 1806 #改变1806进程的优先级为-5
实例:我们运行 vim & 在后台开启一个进程,会后查其进程号为5665 ,我们将其优先级改为-5 步骤如下:
我们除了适用 ps -l去查看进程外,还可以使用下面命令
(五)、环境中的进程的前后台调用
jobs #查看被打入环境后台的进程ctrl+z #把占用终端的进程打入后台
fg jobsnum #把后台进程调回前台
bg jobsnum #把后台暂停的进程运行
comm & #让命令直接在后台运行
实例:我们使用vim & 命令创建两个在后台运行的程序.
我们可以使用上命令让程序是否在后台运行,图中 的 1 ,2 代表进程号。