一、程序、进程、线程
1.程序是一个普通文件,是一系列指令和数据的集合,是一个静态的实体,是程序员写好之后存储于外设之上的代码。它是"死"的,而进程和程序都是"活"的。
2.进程是程序的执行实例,即运行中的程序,同时也是程序的一个副本;程序是放置于磁盘的,而程序是位于内存中的。每一个进程都分配一个ID号。
每一个进程,都会对应一个父进程,而这个父进程可以复制多个子进程。例如WWW服务器。
3.线程是比进程更小的执行单元,一个进程至少包括一个线程。一个进程要想同时在多颗CPU上运行,必须得分成互不影响的多个执行流,这些执行流就是线程。
进程有独立的内存地址空间,线程没有
线程不能独立存在,它是由进程创建的。(在linux下是fork,在java下是Thread)
二、进程的分类
按照进程的功能和运行的程序分类,进程可划分为两大类:
? 系统进程:可以执行内存资源分配和进程切换等管理工作;而且,该进程的运行不受用户的干预,即使是root用户也不能干预系统进程的运行。
? 用户进程:通过执行用户程序、应用程序或内核之外的系统程序而产生的进程,此类进程可以在用户的控制下运行或关闭。
针对用户进程,又可以分为交互进程、批处理进程和守护进程三类。
? 交互进程:由一个shell终端启动的进程,在执行过程中,需要与用户进行交互操作,可以运行于前台,也可以运行在后台。
? 批处理进程:该进程是一个进程集合,负责按顺序启动其他的进程。
? 守护进程:守护进程是一直运行的一种进程,经常在linux系统启动时启动,在系统关闭时终止。它们独立于控制终端并且周期性的执行某种任务或等待处理某些发生的事件。
例如httpd进程,一直处于运行状态,等待用户的访问。还有经常用的crond进程,这个进程类似与windows的计划任务,可以周期性的执行用户设定的某些任务。
二、ps命令—静态显示系统执行的进程
ps命令是用来查看目前系统中,有哪些正在执行,以及它们执行的状况。可以不加任何参数
显示详细的进程信息
1、 ps -a :意思是说显示当前终端的所有进程信息。
2、以用户的格式显示进程信息。
ps -u :以用户的格式显示进程信息。
3、显示后台进程运行参数:
ps -x :显示后台进程运行的参数。
4、可以使用ps -aux 显示全面的进程信息。
Linux下显示系统进程的命令ps,最常用的有ps -ef 和ps aux。
ps -ef 是用标准的格式显示进程的、其格式如下
其中各列的内容意思如下
UID //用户ID、但输出的是用户名
PID //进程的ID
PPID //父进程ID
C //进程占用CPU的百分比
STIME //进程启动到现在的时间
TTY //该进程在那个终端上运行,若与终端无关,则显示? 若为pts/0等,则表示由网络连接主机进程。
CMD //命令的名称和参数
ps aux 是用BSD的格式来显示、其格式如下
同ps -ef 不同的有列有
USER //用户名
%CPU //进程占用的CPU百分比
%MEM //占用内存的百分比
VSZ //该进程使用的虚拟內存量(KB)
RSS //该进程占用的固定內存量(KB)(驻留中页的数量)
STAT //进程的状态
START //该进程被触发启动时间
TIME //该进程实际使用CPU运行的时间
其中STAT状态位常见的状态字符有
D //无法中断的休眠状态(通常 IO 的进程);
R //正在运行可中在队列中可过行的;
S //处于休眠状态;
T //停止或被追踪;
W //进入内存交换 (从内核2.6开始无效);
X //死掉的进程 (基本很少见);
Z //僵尸进程;
< //优先级高的进程
N //优先级较低的进程
L //有些页被锁进内存;
s //进程的领导者(在它之下有子进程);
l //多线程,克隆线程(使用 CLONE_THREAD, 类似 NPTL pthreads);
+ //位于后台的进程组;
四、终止进程kill/killall
终止某个进程:kill 进程号
kill 16251 :表示终止进程号为16251的进程。
kill -9 16251 :因为有些进程会捕捉某些信号。如果直接不能结束进程可以用“-9”传送信息。强制终止
killall 进程名 可以清除进程及进程相关的子进程
killall -u username 可以杀死某一用户的所有进程
五、前后台作业管理
前台-->后台:
①Ctrl+z: 把正在前台的作业送往后台,并且作业处于Stopped状态
②COMMAND &:让命令在后台执行
后台-->前台
fg 标号
bg让后台停止的作业继续运行
fg让后台的作业调往前台
jobs查看后台所有作业
六、动态监控进程top 退出top按q键或ctrl+c键即可退出
top与ps命令很相似。它们都用来显示正在执行的进程。top与ps最大的不同之处,在于top在执行一段时间可以更新正在运行的进程。
退出:ctrl+c
1、监视特定用户
top :输入此命令,按回车键,查看执行的进程。
u :然后输入&