第三章:系统进程
进程介绍
什么是进程
进程是已启动的可执行程序的运行实例,进程有以下组成部分:
• 已分配内存的地址空间;
• 安全属性,包括所有权凭据和特权;
• 程序代码的一个或多个执行线程;
• 进程状态。
程序: 二进制文件,静态 /usr/bin/passwd ,/usr/sbin/useradd
进程: 是程序运行的过程, 动态,有生命周期及运行状态。
进程的资源占用
程序在未启用状态下,占用哪些资源:
diske:28k,disk io:不分配
memory:不分配
cpu:不分配
network:不分配
程序在运行时,由kernel分配占用的资源:
进程标识:pid,ppid
状态:正在进行runing,等待runnable,选择
sleeping
disk io:需要分配
mem:需要分配
cpu:需要分配
net:需要分配
进程的什么周期
父进程复制自己的地址空间(fork)创建一个新的(子)进程结构。
每个新进程分配一个,唯一的进程 ID (PID),满足跟踪安全性之需。
任何进程都可以创建子进程。
所有进程都是第一个系统进程的后代:
Centos5/6系统进程: init
Centos7系统进程: systemd
Centos9系统进程:/usr/lib/systemd/systemd
进程状态
进程产生的原因:
在多任务处理操作系统中,每个CPU(或核心)
在一个时间点上只能处理一个进程。
在进程运行时,它对CPU 时间和资源分配的要求会不断变化,
从而为进程分配一个状态,它随着环境要求而改变。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-QY0Nla9B-1682478832304)(/Users/zhenghuaijian/Library/Application Support/typora-user-images/image-20230425165751905.png)]
runing:程序在正常执行,如去买烟,买酒,已经挂挡前行
stop:被人为含住,暂停,让再带瓶可乐
sleep:到商店买了巧克力,先忙自己事情了,处于sleep,分为
可中断sleep和不可中断sleep
zombie:意外中断,如买了茅台掉地上碎了,这个时候cpu被霸 占,有可能夯住计算机
exit:正常退出
PS:计算机是千分之一秒,切换一次,就是1ms运行一次程序
进程管理process
PS静态查看进程
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dq8lgv6e-1682478832305)(/Users/zhenghuaijian/Library/Application Support/typora-user-images/image-20230425175729708.png)]
ps使用技巧
ps aux --sort -%cpu | head -5
sort默认是降序排列,加-号,就可以升序
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qSzP15rm-1682478832305)(/Users/zhenghuaijian/Library/Application Support/typora-user-images/image-20230425181215483.png)]
ps axo user,pid,command | head -5
只查看想看的进程信息
top使用技巧
top - 11:45:08 up 18:54, 4 users, load average: 0.05, 0.05, 0.05
Tasks: 176 total, 1 running, 175 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.3 sy, 0.0 ni, 99.7 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem : 3865520 total, 1100000 free, 580268 used, 2185252 buff/cache
KiB Swap: 4063228 total, 4063228 free, 0 used. 2917828 avail Mem
h|?帮助
M 按内存的使用排序
P 按CPU使用排序
N 以PID的大小排序
< 向前
向后
z 彩色,Z设置彩色,使用数字调整
使用技巧:
top -d 1 -p 43182,每隔1s刷新一次,专门看进程43182的情况
动态查看进程 top,像windows的任务管理器
[root@localhost ~]# top //回车,立刻刷新。按z彩色显示,按F,通过光标设置列的顺序。
[root@localhost ~]# top -d 1 //每1秒刷新。
[root@localhost ~]# top -d 1 -p 10126 查看指定进程的动态信息
[root@localhost ~]# top -d 1 -p 10126,1 查看10126和1号进程
终止进程
kill -l(数字)+pid
1. sighup重新加载配置-1
2. sigint键盘中断-2
3. sigquit键盘退出-3
4. sigkill 强制终止,无条件-9,程序再启动时候,有可能会故障
5. sigterm终止,正常终止,缺省略号-15
6. sigcont继续-18
7. Sigstop-19暂停
8. sigtstp键盘暂停-20