文章目录
一、程序和进程的关系程序
程序(静态的)
(1)保存在硬盘、光盘等介质中的可执行代码和数据
(2)静态保存的代码(只有运行时是动态的)
进程(动态的)
(1)在CPU及内存中运行的程序代码
(2)动态执行的代码
(3)父、子进程
(4)每个程序可以创建一个或多个进程
总结:
程序是二进制的文件、是静态的。
进程是程序运行的过程,动态,有生命周期机运行状态。
程序、进程、线程关系:线程包含在进程之中,是进程中实际运行的单位,也是操作系统中能够独立运行的基本单位,也称作轻量进程,一个进程中可以并发多个线程,每条线程可以并行执行不同的任务,而我们在任务管理器中看到的一个个进程则由我们下载的应用程序所产生的,当然一个应用程序也可以包含多个进程。
二、查看进程信息ps
2.1、ps命令
查看静态的进程统计信息
[root@localhost ~]# ps aux
多数情况下是下图这样使用的
常用的参数
-a:显示当前终端下的所有进程信息,包括其他用户的进程。与"x"选项结合时将显示系统中所有的进程信息。
-u:使用以用户为主的格式输出进程信息。
-x:显示当前用户在所有终端下的进程信息。
常用的选项组合:ps -aux #将以简单列表的形式显示出进程信息
上述输出信息中,第一行为列表标题,其中各字段的含义描述如下。
USER:启动该进程的用户账号的名称。
PID:该进程在系统中的数字 ID 号,在当前系统中是唯一的。
%CPU:CPU 占用的百分比。
%MEM:内存占用的百分比。
VSZ:该进程使用的虚拟内存量(KB)。
RSS:该进程占用的物理内存量(KB)。
TTY:表明该进程在哪个终端上运行。不是从终端启动的进程则显示为?。
简说:pts 是远程登录终端 ctrl+ALT +F1-F6 1 图像界面 2和6 字符界面 ?:系统本身执行的进程
STAT:该进程的状态(D:不可中断的休眠状态;R:正在运行状态;S:处于休眠状态,可被唤醒;T:停止状态,可能是在后台暂停或进程处于跟踪调试状态;Z:僵尸进程,进程已经中止,但是部分程序还在内存当中)。
D:系统守护进程
T:调式、程序执行一般停止
R :该程序目前正在运作,或者是可被运作;
S :该程序目前正在睡眠当中 (可说是 idle 状态啦!),但可被某些讯号(signal) 唤醒。T :该程序目前正在侦测或者是停止了;
Z :该程序应该已经终止,但是其父程序却无法正常的终止他,造成 zombie (疆尸) 程序的状态D 不可中断状态。
它们含意如下:
<: 表示进程运行在高优先级上
N: 表示进程运行在低优先级上
L: 表示进程有页面锁定在内存中
s: 表示进程是控制进程
l: 表示进程是多线程的
+: 表示当前进程运行在前台
D:系统守护进程
T :调式、程序执行一般停止
START:启动该进程的时间。
TIME:该进程占用的 CPU 时间。
COMMAND:启动该进程的命令的名称
例1:
ctrl+z后显示暂停了服务
查看进程状态[root@benet ~]# vim a.txt 在另一个终端执行
[root@benet ~]# ps -aux | grep a.txt #查看状态 S 表示睡眠状态, + 表示前台
root 4435 0.0 0.2 151752 5292 pts/1 S+ 20:52 0:00 vim a.txt
root 4661 0.0 0.0 112676 996 pts/0 S+ 21:05 0:00 grep --color=auto a.txt
在 vim a.txt 这个终端上 按下: ctrl+z [1]+ 已停止:vim a.txt 在另一个终端执行:
[root@benet ~]# ps -aux | grep a.txt #查看状态 T 表示停止状态
root 4435 0.0 0.2 151752 5292 pts/1 T 20:52 0:00 vim a.txt
root 4675 0.0 0.0 112676 996 pts/0 S+ 21:05 0:00 grep --color=auto a.txt
注:
ctrl+c 是发送 SIGINT 信号,终止一个进程
ctrl+z 是发送 SIGSTOP 信号,挂起一个进程。将作业放置到后台(暂停)
ctrl+d 不是发送信号,而是表示一个特殊的二进制值,表示 EOF。代表输入完成或者注销
2.2、ps命令
查看静态的进程统计信息
[root@localhost ~]# ps -elf(用法与ps -aux是一样的)
-e:显示系统内的所有进程信息。
-1:使用长格式显示进程信息。
-f:使用完整的格式显示进程信息。
各列的解释:
F:内核分配给进程的系统标记。
S:进程的状态。
UID:启动这些进程的用户。
PID: 进程的进程ID.
PPID:父进程的进程号