Linux进程管理
进程管理:
进程:应用程序或者数据在系统中按照一定的顺序执行的活动过程,是操作系统架构的基本,磁盘中的应用程序或者数据在内存当中的映射
OS:kernel+process:进程只能运行在CPU和内存中
进程特性:动态性 并发性
CPU:分环运行,
0环:特权环,运行内核(内核空间)
1-2环:库文件
3环:进程环(用户空间)
CPU:在一个时间点只能运行一个应用程序,CPU按照时间片为应用程序分配运行时间
mkdir:mkdir/data:system call;系统 I/O
CPU:暂时的退出
内存:也分为用户空间和内核空间
task struct:进程的数据结构(存放在内核中)
task struct结构:状态,进程信息和内核栈,运行列表(指令等),MM内存管理(memrory managment) PID:进程的ID号 group info:群组信息 用户信息 ,文件系统,文件描述符等
线性地址:
物理地址:
MMU:内存管理单元 memory managment unit
context switch:进程切换就是上线文切换
进程内存结构:
forbiden:内核空间
program text:指定
data+bss:全局变量
heap:堆空间,系统进程所调用的数据
shared:共享库
thread:线程。轻量级线程
stack:栈空间。局部变量
运行进程的模式:多进程模式(每一个请求生成一个线程:进程切换)
单进程多线程:每一个线程去响应一个请求,线程所使用的资源是进程的资源
kernel:内存管理 网络管理 安全管理 进程管理
lock:死锁,自旋锁等
task_uninterruptible:不可中断睡眠
task_interruptible:可中断睡眠
stopped:停止状态(不能调入cpu运行)
zombie:僵尸状态(借宿和父进程猜能够退出当前进程的僵尸状态)
进程分类:和终端相关的进程:用户进程
还有一个和终端无关的进程:内核进程
PS:process status:进程状态查看,运行PS那个时刻的进程状态
-a:显示和终端有关的进程 u:显示进程用户的信息 x:显示和终端无关的进程
-e:显示所有进程的信息 l:显示进程长格式 f:显示进程的完整信息
ps -aux:结果解析
PPID:父进程号
user:该进程是由哪个用户发起的
PID:进程号/proc/目录存放着pid进程相关的信息 在centok7中PID为1的进程是systemd,在os6中,PID为1的进程是init进程
%CPU:占用CPU的百分比
%MEM:该进程占用内存的百分比
VSZ :虚拟内存集(计算进程所占物理内存时,物理内存包括共享库的空间)
RSS :重驻内存机(不能被交换出去的数据)
TTY :运行在哪个终端
STAT:进程状态
D:不可中断睡眠状态
S:可中断睡眠状态
R:运行状态
T:停止状态
Z:僵尸状态
S:session leader:会话的领导者
<:优先级较高的进程,用户不可控
N:优先级较低的进程,用户可控进程
l:多线程进程
L:在内存中锁定分页
+:前台进程组中的进程
START:进程启动的时间
TIME :该进程在CPU中实际运行的时长
COMMAND:该进程的名称
ps -elfL结果分析
PRI:系统分配的优先级(用户不可更改)
NI:nice值
调整进程的nice值:
调整正在运行进程的nice值
renice【nice_num】PID
指定进程运行的nice值(让某个命令也指定nice值)
nice -n【nice_num】
TOP命令:动态查看进程的命令
第一行:当前系统的时间,系统运行时长,登陆系统的个数,过去一分钟,五分钟,15分支平均荷载
第二行:进程总数,正在运行的进程数,睡眠的进程数,停止状态进程数,僵尸状态进程数
第三行:(按1键可以查看每个CPU的信息)CPU相关信息: us:用户进程所占CPU百分比,sy系统进程所占百分比, ni:nice所占进程的百分比, id:空闲进程所占百分比, hi:硬件中断所占百分比 hi:软件中断所占百分比,st:被hypervisor偷走的CPU的百分比
第四行:物理内存相关信息
第五行:交换分区相关信息
TOP:交互式命令
M:按所占内存百分比进行排序
P:按所占CPU备份比进行排序
T:按进程运行时长进行排序
C:是否显示command列完整路径
l:是否显示top第一行
t:是否显示top第二行和第三行
m:是否显示内存的相关信息
k:杀死某个进程
q:退出top进程
pgrep:查看某个进程PID号
pidof:查看某个进程PID号
kill:杀死某个进程(向进程传递某个信号)
kill -l:查看进程信号
killall

浙公网安备 33010602011771号