程序与进程
1.linux程序?*系统 用户 固件
程序 —》系统调用—》缓存(内存)—》cpu处理
固件:特点 静态的封闭的
程序 - - - 运行 - - - 进程1.2.3……
进程特点1)动态 2)有生命周期 3)运行状态 4)操作系统上运行的基本单位 5)并发性 交互性
每一个进程都有一个虚拟内存 通过映射到linux内存
程序一般是放置在自盘里,然后通过用户的执行来触发,触发后会加载到内存中成为一个个体,那就是进程
2.进程与线程
进程-----线程1线程2线程3-----(linux:进程.线程-----》独立的资源)入口序列。出口。—》线程把整个任务完成之后,才能运行
区别:一个进程可以拥有多个线程,而一个线程只能被一个进程所拥有
线程不能单独执行,它必须组成进程才能执行
3.父进程和子进程
父进程 — 》子进程 —》子进程
子进程:拥有父进程的资源.权限,可能运行自己的程序(exec())
-exit()子进程已经关闭或者丢弃了自己的资源环境,剩余的部分称之为僵死(Zombie)。父进程在子进程退出时收到信号而被唤醒,然后继续执行。
4.进程管理工具
1)pstree 进程树 查看进程之间的关系
-p 显示PID进程号 -u 显示用户
2)ps 显示进程
-a 显示所有进程 -u 显示以用户为主的进程 -x 与-au一起使用 显示完整信息 -l 用来观察自己的bash相关的进程
3)pgrep 获得正在被调度的进程的相关信息
pgrep 程序名
-l 显示进程名和PID
-o 当匹配多个进程时 显示进程号最小的那个
-n 当匹配多个进程时 显示进程号最大的那个
4)kill 5) killall 6)pkill
pkill是ps命令和kill命令的结合,按照进程名来杀死进程
kll PID killall 程序名
kill -9 3268
killall -9 bash
-9 杀死进程
-w 等待进程死亡
-l 列出所有的机制信号名称
7)htop 监控软件
实时监控界面 直接输入htop
PID 进程号
user 运行此进程的用户
PRI 进程的优先级
NI nice进程的优先级别值
8)vmstat
字段
process r 等待执行的任务数 b 等待io的进程数量
Memory swpd正在使用虚拟的内存大小,单位k free 空闲内存大小 buff 已用的buff大小,对块设备的读写进行缓冲 cache 已用的cache大小,文件系统的cache
swap si 每秒从交换区写入内存的大小(单位kb/s)so每秒从内存写到交换区的大小
io bi 每秒读取的块数(读磁盘) bo 每秒写入的块数(写磁盘)
System in 每秒中断数,包括时钟中断
CPU Us 用户进程执行消耗cou时间(user time)Sy 系统进程消耗时间(system time)id 空闲时间(包括io等待时间) wa 等待io时间
9)lsof文件句柄
COMMAND 进程的名字 PID 进程号 user 进程所有者 FD 文件描述符 TYPE 文件类型 DEVICE 指定磁盘的名称 SIZE 文件的大小 NODE 索引节点 NAME 打开文件的确切名称
-u 显示归属uname或uid的进程情况
lsof -u username
-i 用以显示符合条件的进程情况
lsof -i tcp/udp
-p 列出进程号为1234的进程所打开的文件
lsof -p 1234
-d 显示fd文件标识符为4的进程
lsof -d 4
+d 显示目录下被进程开启的文件+D 显示目录下被进程开启的文件以目录下目录下的文件 搜索目录下的目录
lsof +d /usr/lcoal/src/apache/bin/
lsof +D /usr/local/src/apache/
-c abc 显示以字符开头的程序的文件
lsof -c httpd
5.进程优先级
进程优先级划分[0-139] ,[0-99]是有效实时优先级
[100-139]是非有效实时优先级可调整
优先级nice[-20-19]
进程优先级[0-139] 值越小,优先级越大
nice值[-20-19] 值越小,优先级越大
nice值的调整
top模式下 按“r” --输入pid号–enter;输入nice值–enter
用ps -el 查看PID NI PR
用renice 修改 renice [-20-19] PID
htop f7减 f8增 nice值
TOP PR:静态优先级-100 将nice级别显示到更大优先级队列,-20映射到0,+19映射到+39
NI :nice值[-20 - 19]
6.进程状态
sleeping - - -休眠状态
stopping - - -停止,等待状态 因等待某种事件而暂时不能运行的状态
running - - - 运行状态 进程分配到CPU,正在处理运行
zombie - - - 僵死状态
实时变化的
7.进程在前后台的运行 作业控制
进程与作业
区别:进程是一个程序在一个数据集上的一次执行,而作业是用户提交给系统的一个任务
关系:一个作业通常包括几个进程,几个进程共同完成一份任务,即作业
在前台一次只能运行一个作业,在后台一次可以运行多个作业
& 把当前的作业放后台执行
jobs 查看后来作业;与终端有关系,不同终端上的作业要在对应终端上查看
例:ping 192.168.150.139 > /dev/null 2>&1 &
fg %jobs编号 把后台作业提到前台
bg %jobs编号 把后台作业运行起来
ctrl +z 把前台作业挂起,放后台
kill %jobs编号 先停止后杀死
ping 192.168.150.139 & 已经在后台运行,但前台输出结果;不影响前台作业进行 先jobs 查看编号 在kill 杀死