操作系统支持多任务并不是计算机同时做很多事情,而是快速的轮换着执行这些任务。linux安排不同的程序等待使用CPU。进程..
操作系统支持多任务并不是计算机同时做很多事情,而是快速的轮换着执行这些任务。linux安排不同的程序等待使用CPU。
进程的工作方式:
当系统启动的时候,内核先把自己的程序初始化为进程,然后运行一个init的程序,再由init运行一系列称为init的shell脚本,它们可以启动所有系统服务(/etc/init/)。其中许多进程以守护程序(daemon)的形式出现,仅在后台运行,没有任何用户接口。这样,即使没有登录系统,至少系统也在执行一些事务。
查看linux 系统进程命令有:top , ps , lsof , netstat
top:查看系统的资源状况(动态查看进程,默认情况下是每3分钟更新一次)
$ top |head
top - 16:07:41 up 7:14, 2 users, load average:
Tasks:195 total, 1 running, 194 sleeping, 0 stopped, 0 zombie
%Cpu(s): 3.8 us, 1.0 sy, 0.0 ni, 94.3 id, 0.9 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 3996960 total, 2624532 used, 1372428 free, 126300 buffers
KiB Swap: 4000764 total, 0 used, 4000764 free. 1466592 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2160 vobile 20 0 54504 13768 3608 S 6.2 0.3 1:10.25 ibus-daemon
2450 vobile 20 0 322668 72600 30316 S 6.2 1.8 6:27.18 compiz
3034 vobile 20 0 158688 25084 14120 S 6.2 0.6 0:55.09 gnome-terminal
分为两部分,上面市系统概要,下面是进程列表,进程列表以CPU使用率排序。
行号
字段
意义
1
top程序名
1
16:07:41当前时间
1
up 7:14系统正常运行(从启动到现在)的时间
1
2 users有2个用户登录系统
1
load average加载平均值,即等待运行的进程数,这些进程共享CPU。展示了三个数值,每个数值对应不同的时间周期。第一个是最后60秒的平均值,
下一个是前5分钟的平均值,最后一个是前15分钟的平均值。若平均值低于1.0,则指示计算机
工作不忙碌。
2
Tasks: 195 total进程数目
2
running正在运行或准备运行的进程
2
sleeping正在睡眠,正在等待一个事件,比如一个按键或一个软件包
2
stopped已停止,已经指示进程停止运行(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)
2
zombie一个死进程或一个僵尸进程,即一个已经终止的子进程,它的父进程还没有清空它(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
3
%Cpu(s)CPU正在执行的进程的特性
3
3.8 us3.8% of the CPU is being used for user
processes. 这意味着进程在内核之外
3
1.0 sy1.0%的 CPU 时间被用于系统(内核)进程
3
0.0 ni0.0%的 CPU 时间被用于"nice"(低优先级)进程
3
94.3 id94.3%的 CPU 时间是空闲的
3
0.9 wa0.9%的 CPU 时间来等待 I/O
3
0.0 hi
3
0.0 si
3
0.0 st
4
KiB Mem展示物理内存的使用情况
5
KiB Swap展示交换分区(虚拟内存)的使用情况
字段
意义
PID进程号
USER用户ID进程所有者
PR每个进程的优先级别
NI每个优先级的值
VIRT虚拟内存大小
RES驻留内存大小(KB)CODE+DATA
SHR进程使用共享内存的数量
S进程的状态 D=不可中断的睡眠状态(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生) R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPUCPU使用率(进程自最近一次刷新以来所占用的CPU时间和总时间的百分比)
%MEM内存使用率(进程占用的物理内存占总内存的百分比)
TIME+进程自启动以来所占用的总CPU时间
COMMAND进程的命令名称
(CODE可执行代码占用的物理内存大小,DATA可执行代码以外的部分即数据段+栈占用的物理内存大小