“进程”定义:一个其中运行着一个或多个线程的地址空间和这些线程所需要的系统资源。
“PID”定义:进程标识符
Linux和UNIX一样,有一个虚拟内存系统,能够把程序代码和数据以内存页面的形式放到硬盘的一个区域中,所以Linux可以管理的进程比物理内存所能容纳的要多得多。
进程表:
Linux进程表就像一个数据结构,它把当前加载在内存中的所有进程的有关信息保存在一个表中,其中包括进程的PID、进程的状态、命令字符串和其他一些ps命令输出的各类信息。操作系统通过进程的PID对它们进行管理,这些PID是进程表的索引。进程表的长度是有限制的,所以系统能够支持的同时运行的进程数也是有限制的。
ps:
ps命令是用来查看系统进程的,可以对进程进行监测和控制
语法格式:ps [选项]
options:-e 显示所有进程
-f 全格式
-h 不显示标题
-l 长格式
-w 宽输出
a 显示终端上的所有进程,包括其他用户的进程
r 只显示正在运行的进程
u 以用户为主的格式来显示程序状况
x 显示所有程序,不以终端机来区分
一般使用ps aux,或者ps -ef、
UID 用户ID
PID 进程ID
PPID 父进程ID
C CPU占用率
STIME 开始时间
TTY 开始此进程的TTY
TIME 此进程运行的总时间
CMD 命令名
系统进程:
STAT代码 说明
S 睡眠。通常是在等待某个事件的发生,如一个信号或有输入可用
R 运行。严格来说,应是“可运行”,即在运行队列中,处于正在执行或即将运行状态
D 不可中断的睡眠(等待)。通常是在等待输入或输出完成
T 停止。通常是被shell作业控制所停止,或者进程正处于调试器的控制器下
Z 死(Defunct)进程或僵尸(zombie)进程
N 低优先级任务,nice
W 分页。
s 进程是会话期首进程
+ 进程属于前台进程组
1 进程是多线程的
< 高优先级任务
一般而言,每个进程都是由另一个我们称之为父进程的进程启动的,被父进程启动的进程叫做子进程。Linux系统启动时,它将运行一个名为init的进程,该进程是系统运行的第一个进程,它的进程号为1。
Linux调度器根据进程的优先级来决定运行哪个进程。
启动新进程并等待它们结束的能力是整个系统的基础 。
在一台单处理器计算机上,同一时间只能有一个进程可以运行,其他进程处于等待运行状态。每个进程轮到的运行时间(我们称之为时间片)是相当短暂的,这就给人一种多个程序在同时运行的假象。
Linux内核用进程调度器来决定下一个时间片应该分配给哪个进程。