程序、进程、线程
程序(program)是一个普通文件,是为了完成特定任务而准备好的指令序列与数 据的集合,这些指令和数据以“可执行映像”的格式保存在磁盘中。例如:hello.c源程 序文件经过编译后产生a.out程序,其中a.out文件为可执行镜像格式,Linux 的/bin、/sbin、/usr/bin、/usr/sbin目录下保存着诸多的程序文件。
进程(process)是一个已经开始执行但还没终止的程序实例。Linux系统下使用ps 命令可以查看到当前正在执行的进程。每个进程包含有进程运行环境、内存地址空 间、进程ID、和至少一个被称为线程的执行控制流等资源。同一个程序可以实例化为 多个进程实体。操作系统中所有进程实体共享着计算机系统的CPU、外设等资源。
线程:操作系统进行运行调度的基本单位。
查看进程
ps
查看某个时间点的进程信息
# 查看自己的进程
ps -l
# 查看系统所有进程
ps aux
# 查看某个的进程
ps aux | grep threadx
top
实时显示进程信息
# 两秒钟刷新一次
top -d 2
pstree
查看进程树
pstree -A
netstat
查看占用端口的进程
# 查看特定端口的进程
netstat -anp | grep port
进程状态
R
正在运行或可运行(在运行队列中)
D
不间断睡眠(通常是I/O)
S
可中断睡眠(等待事件完成)
Z
僵尸进程(进程已经结束,父进程还没有回收它的资源)
T
停止(由作业控制信号或因为它正在被跟踪)