进程管理1

进程基本概述
进程其实就是正在被运行的程序。

程序和进程的区别
程序:是数据和指令的集合。是一个静态的概念,可以永久存储在系统中。
进程:是一个动态的概念,表示程序运行的过程,当我们结束该进程,进程就随之被销毁。

进程的生命周期
进程的生命周期表示进程在系统中的存活时间。
一个进程的上一级进程叫做父进程,用ppid表示。
一个进程的下一级进程叫做子进程,用pid表示。

僵尸进程
表示子进程在处理代码过程中异常退出,但是父进程却没有回收子进程,这样的进程便是僵尸进程。僵尸进程的存在会导致子进程虽然实体已经消失,但仍然在进程表中占据一条记录,长期这样会导致系统资源的浪费。僵尸进程无法被常规手段清理,只能通过重启来清理。

孤儿进程
表示子进程在处理代码的过程中,父进程退出了,那么这些子进程就没有父进程来管理了,由系统的system进程管理,这样的进程叫做孤儿进程。

监控进程状态
查看进程的状态分为静态和动态两种方式。
静态表示查看某一时刻的进程状态,动态表示实时监控进程状态。

静态监控进程。
我们可以使用ps -aux来查看进程的状态,执行完成后会包含这些信息:
[root@juw5207 ~]# ps aux
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.9 0.3 128420 7044 ? Ss 07:23 0:03 /usr/lib/systemd/sys
root 2 0.0 0.0 0 0 ? S 07:23 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? S 07:23 0:00 [kworker/0:0]
root 4 0.0 0.0 0 0 ? S< 07:23 0:00 [kworker/0:0H]

上面信息中各列代表的意思是:
USER: 运行该进程的用户(每一个进程都需要一个特定的用户身份来运行)
PID: 进程id
%CPU: 占用CPU百分比
%MEM: 占用内存百分比
VSZ: 虚拟内存,单位KB
RSS: 实际使用内存
TTY: 运行进程的终端 ?:表示该进程是系统运行的。
STAT: 进程的状态。(运行 暂停 停止 ……)
基本进程状态:
R:进程运行。
S:可中断进程。
T:进程被暂停。
D:不可中断进程。
Z:僵尸进程。
s:进程是控制进程。
<:进程运行在高优先级上。
N:进程运行在低优先级上。
+:进程在前台运行。
l:多线程进程。
常见的进程组合状态:
R+:在前台运行的进程。
Ss:父进程。
S+:进程正在前台运行并且是一个可中断进程。
Ssl:父进程是一个多线程进程。
START: 启动时间。
TIME: 进程占用CPU的总时间。
COMMAND: 进程运行的具体命令。这一列下面的内容中,带有[]的进程表示系统内核的进程。
————————————————
top
动态监控进程。
执行完成后会包含这些信息:
top - 21:46:30 up 14:22, 2 users, load average: 0.00, 0.01, 0.05
Tasks: 104 total, 1 running, 103 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 : 2027924 total, 1664156 free, 173476 used, 190292 buff/cache
KiB Swap: 839676 total, 839676 free, 0 used. 1658468 avail Mem

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 128420 7048 4172 S 0.0 0.3 0:04.27 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.01 kthreadd
4 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 kworker/0:0H
上面的内容的意思分别是:
top - 21:46:30 up 14:22, 2 users, load average: 0.00, 0.01, 0.05
22分钟,当前有2个用户登陆系统,1分钟的负载情况是0.00,5分钟的负载情况是0.01,15分钟的负载情况是0.05

Tasks: 106 total, 1 running, 105 sleeping, 0 stopped, 0 zombie

一共有个106个进程被运行,1个正在被运行,105个中断的进程,0个被停止的进程,0个僵尸进程

%Cpu(s): 0.3 us, 0.3 sy, 0.0 ni, 99.3 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0st

us:用户进程占用cpu百分比 sy:内核进程占用cpu百分比

ni: 优先级高的进程占用cpu百分比

id:空闲的百分比

wa:等待。这一项数值较大的话说明用户请求磁盘资源,磁盘很慢,请求的资源很多。

hi:硬中断 si:软中断

st:虚拟机占用当前物理服务器的CPU资源的百分比。

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND

PID:进程id USER:运行进程的用户

PR:进程优先级 NI:负值表示高优先级,正值表示低优先级

VIRT:共享内存 RES:进程使用的、未被换出的物理内存大小

SHR:共享内存大小 S:进程状态

%CPU:占用CPU百分比

%MEM:占用内存百分比

TIME+:进程使用CPU的时间

COMMAND:进程运行的具体命令

————————————————
top常用指令
h:查看帮助
1:显示所有CPU的核心的负载
z:以高亮显示数据
b:高亮显示处于R状态的进程
M:按内存使用的百分比排序输出
P:按CPU使用百分比排序输出
q:退出top
——————————————
中断
中断是用来响应硬件设备请求的一种机制,他会打断进程的正常调度和执行,然后调用内核中的中断处理程序来响应设备的请求。
由于中断程序会打断其他程序的运行,为了减少对正常进程运行调度的影响,中断处理程序就需要尽可能快地运行。如果中断要处理的事情很多,会导致中断处理程序中断时,还会临时关闭中断。这就导致上一次中断没完成之前,后面出现的中断再次出现可能会导致后面出现的中断丢失。
我们的系统为了防止上述情况发生,把中断分成了两个部分,上半部和下半部。
上半部表示直接处理硬件请求,也就是我们常说的硬中断,特点是快速执行。
下半部由内核出发,也就是我们常说的软中断,特点是延迟执行。
举个例子:
1.用户发起上传操作
2.会触发一次硬中断将网卡接收的数据载入到内存
3.硬中断处理完毕后,会通知内存,唤醒软中断
4.软中断可以按照网站协议zhai,进行数据解析和处理
5.最终数据会被送往对应的应用程序,或送往存储设备。
————————————————

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值