进程
进程定义
程序是静态的代码文件;
进程是指程序运行时的形态;
进程是程序的一个副本;
进程是有生命周期的(准备期、运行期、终止期)
进程与线程
进程是资源调用的最小单位;
线程是进程的最小
程序执行流是从上到下贯穿运行
当进程的是多任务,cpu是多核心,多任务应该同时被每个核心处理,每个核心处理的任务叫线程。
线程的资源是共享的,并发的。
进程状态
R (TASK_RUNNING ) ## 可执行态(running , ready)
S (TASK_INTRRUPTABLE) ## 可唤醒休眠
D (TASK_UNINTRRRUPTABLE) ## 不可唤醒休眠
T (TASK_STOP) ## 暂停状态
Z (EXIT_ZOMBIE) ## 僵死态
进程查看命令
gnome-system-monitor ### 图形进程查看工具
ps ### 进程查看
ps命令的三种执行风格:unix bsd GUN
### 在bsd风格中 ps a ### 与终端相关的进程(当用户登录系统后产生的进程都是带终端的) x ### 与终端无关的进程 u ### 用户信息归类的查看方式 f ### 进程的层级关系 o ### 显示指定参数
### 在unix风格中 ps -e ### 显示所有进程 -f ### 显示信息的完整格式 -H ### 显示进程的层级结构 -o ### 显示指定参数 --sort ### 排序
练习:抓取系统中cpu使用量排在前5的进程的pid
pgrep 进程过滤
pgrep ## 进程过滤 -u ## uid显示指定用户进程 -U ## user 显示指定用户进程 -t ## tty指定终端显示 -l ## 显示进程名称 -a ## 显示进程完整名称 -P ## 显示进程的子进程 pidof vim ## 查看vim的pid
TOP 动态进程查看
#### TOP 内容的显示信息 #### top - 09:48:51 up 18:54 2 users load average:0.75, 0.53, 0.41 系统时间 运行时长 系统中有两个用户登录 系统负载 Task:331 total 3 running 329 sleeping 0 stopped 0 zombie 任务总量 正在运行任务量 休眠任务数量 被暂停数量 僵死任务数量 %cpu(s): 1.5 us 2.8 sy 0.0 ni 58.9 id 0.0 wa 2.1 hi 0.2 si 0.0 st 用户空间 内核空间 nice值调 空闲时间 等待IO时间 处理硬件 处理软件 被偷走的时间 整时间 中断时间 中断时间 (vm使用的时间) MIB Mem: 7664.6 total f5383.9 free 1312.2 used 968.8 buff/cache 内存总量 空闲内存 占用内存 缓存 MIB Swap: 7664.6 total f5383.9 free 1312.2 used 6831.1 avail Mem 内存总量 空闲内存 占用内存 可用大小
top ## top命令的参数 -d ## 指定刷新频率 -b ## 以批次方式显示 -n ## 指定显示批次数量(结合-b使用) top ## top内部指令 P ## CPU排序 M ## 内存排序 T ## 累计占用CPU的时间排序 l ## 关闭|开启uptime信息 s ## 指定刷新频率 t ## 关闭|开启CPU task信息 k ## 操作进程 u ## 查看指定用户进程
1、按u; 2、输入想要查看的用户名,回车; 结果如右图所示。
1、按k; 2、输入要操作的pid,回车; 3、输入要操作的进程信号,回车即可。
进程优先级
系统是多任务多用户的操作模式
任务的重要性是有区分的。
如何确定任务的重要性:
优先级, 范围:0 - 139, 优先级越小,优先级越高
内核自控优先级范围:0-99
用户可控优先级范围:100-139
nice值:-20 - 19对应(100 - 139)
renice -n -5 43331 ## 更改优先级 ### 43331 (pid) nice -n -5 vim & ### 指定优先级打开进程 ### -5 (优先级) ### vim (进程名)
备注: 只有root用户可以调高优先级,普通用户只能调低优先级,且调低后无法改变。
进程前后台调用
ctrl + z ## 把占用shell的进程打入后台挂起 bg ## 把后台挂起的进程运行起来 fg ## 把后台进程调回前台 & ## 运行进程在后台 jobs ## 查看当前shell中在后台的所有工作
进程信息号
进程信号
1 重读系统配置文件() 2 清空内存中的进程数据 3 清空内存中的鼠标(ctrl + / 执行) 9 强行结束进程(不能被阻塞) 15 正常关闭进程(会被阻塞) 18 运行被暂停的进程 19 暂停进程(不会被阻塞) 20 暂停进程(会被阻塞)
进程信号控制工具
kill -进程信号 pid killall -进程信号 进程名字 ### 可批量处理进程 pkill -进程信号 进程条件killed