进程

1.程序与进程
(1)程序:是一组指令及参数的集合,按照既定的逻辑控制计算机运行用来完成特定任务。
进程:时运行着的程序,是操作系统的基本单位,是程序运行的过程,是动态的,有生命周期及运行状态。
.从用户的角度看进程是程序的一次动态执行过程;
.从操作系统来看,进程是操作系统分配的内存,CPU时间片等资源的基本单位;
.进程是资源分配的最小单位;
.每一个进程都有自己独立的地址空间与执行状态;
.像Linux这样的多任务操作系统能够让许多程序同时运行,每一个运行着的程序就构成了一个人进程;
(2)程序和进程的区别:
.程序时静态的,只是一组指令的集合,不具有任何的运行意义;进程是程序运行的动态过程。
.进程和程序并不是一一对应的关系,,相同的程序运行在不同的数据集上就是不同的进程。
.进程具有并发性和交互性。程序是封闭的。
(3)进程和线程的区别:
.一个进程可以拥有多个线程,而一个线程同时只能被一个进程所拥有;
.线程不能单独执行,但是每一个线程都有程序的入口、执行序列以及程序出口 ,它必须组成进程才能被执行。

2.进程的生命周期
(1)父进程复制自己的地址空间来创建一个新的子进程,每个新进程分配一个唯一的进程PID;PID和父进程PPID是子进程环境的元素,任何进程都可以创建子进程,所有进程都是第一个系统进程的后代。
父进程与子进程的关系:
.子进程的数据和堆栈段以及进程环境都来自父进程;
.父进程终止,子进程也随之终止;
.子进程继承父进程的安全性身份,过去和当前的文件描述符、端口和资源特权、环境变量、以及程序代码;(子进程也拥有自己的程序代码);
.通常,父进程在子进程运行期间处于休眠状态;
.当子进程完成时发出退出信号请求时,在退出时,子进程已经 关闭了或丢弃了其资源环境,剩余的部分称为僵尸进程;
.父进程在子进程退出时收到信号被唤醒,清理剩余的结构,然后继续执行自己的程序代码;

3.进程管理工具(petree ps pgrep pkill uptime top htop vmstat lsof)
(1)pstree:用于查看进程树之间的关系,即查看谁是子进程,谁是父进程yum install -y psmisc…
-A:各进程之间的链接以ASCII码字符来连接;
-U:各进程树之间的连接以utf8字符来连接,某些终端可能会错误;
-p:同时列出多个进程的PID;
-u:同时列出每个进程的所属账号名称;
ps -A:显示所有进程
-a:显示终端下的所有进程,包括其他用户
-u:显示以用户为主的进程状态
x:与a一起使用,列出较完整的信息
l:列出较长、较详细的PID信息
j:工作的格式
-f:做一个更为完整的输出
ps -l 列出的参数含义:
F S UID PID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 36135 36135 0 80 0 - 28860 do_wai pts/1 00:00:00 bash
F:代表程序旗标(4:代表使用者为superuser) S:代表程序的状态
UID:代表执行者的身份 PID:进程的ID号
PPID:父进程的ID C:CPU使用的百分比
PRI:指进程的执行优先权,值越小越先被执行 NI:这个进程的nice值,表示进程可被执行的 优先级的修正数值
ADDR:内核函数,指出该程序在内存的哪个部分(如果是正在执行的程序一般是 - )
SZ:使用掉的内存大小 WCHAN:看目前这个程序是否运作(如果运作,- )
TTY:登入者的终端机位置 TIME:使用掉的CPU时间
CMD:所下达的指令名称
(2)pgrep :查看正在被调度的进程的相关信息,通过匹配程序名,找到匹配的进程(默认只显示PID)
pgrep -l:同时显示进程名和PID(pgrep -l ssh)
-o:当匹配多个进程时,显示进程号最小的那个
-n:当匹配多个进程时,显示进程号最大的那个
(进程号越大,并不意味着进程的启动时间越晚)
(3)killall (用于指定名字的进程)killall nginx
-Z:只杀死拥有scontext的进程
-e:要求匹配进程名称
-I:忽略小写
-g:杀死进程组而不是进程
-i:交互模式,杀死进程前先询问用户
-l :列出所有已知信号名称
-q:不输出警告信息
-s:发送指定的信号
-v:报告信号是否发送成功
-w:等待进程死亡
killall nginx ; killall -9 bash (杀死所有同名进程)
killall -TERM nginx; killall -KILL nginx(向进程发送指定信号)
kill(终止指定进程)kill 选项 参数
-l:后加编号参数
-a:处理当前进程时,不限制命令名 和进程号的对应关系
-p:指定kill命令只打印相关进程的进程号,而不发送任何信号
-s:指定发送信号
-u:指定用户
(kill 0 不发送任何信号,常用来检测进程是否存在,在脚本中echo$?,存在返回0,不存在返回1)
(kill -l 中1、2、3、15、9、18、19可以无条件终止进程,其他信号进程都有权力忽略)
1.终端断线 2.中断(ctrl+c) 3.退出(ctrl+\) 15.终止 9.强制终止 18.继续(与stop 相反fg/bg命令) 19.暂停(ctrl+z)
(4)htop(监控软件)yum install https://dl.fedraproject.org/pub/epel-release-latest-7.noarch.rpm 在这里插入图片描述 左上:CPU、物理内存、交换分区 右上:任务数量、平均负载、连接运行时间 进程区域:显示当前系统中所有进程

PID:进程的标识号 USER:运行此进程的用户 PRI:进程的优先级 NI:进程的优先级值,默认为0,可以调整
VIRT:进程占用的虚拟内存值 RES:进程占用的物理内存值 SHR:进程占用的共享内存值
S:进程的运行状况(R:表示正在运行、S:表示休眠,等待唤醒 、Z:表示僵死状态) %CPU:进程占用的CPU使用率
%MEM:该进程占用的物理内存和总内存的百分比 TIME:该进程启动后占用的CPU时间 COMMAND:进程启动的启动命令名称

(5)vmstat(展现给定时间间隔的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况)
vmstat -V :显示vnstat版本信息
-n:只在开始时显示一次各字段名称
-a:显示活跃和非活跃内存
-d:显示各个磁盘相关的统计信息
-D:显示磁盘总体信息
-p:显示指定磁盘分区信息
-s:显示内存相关统计信息及多种系统活动数量
-m:显示slabinfo
-t:在输出信息的时候也将时间一并输出出来
-S:使用指定单位显示
delay:刷新时间间隔(如果不指定,只显示一条结果)
count:刷新次数(如果不指定刷新次数,但指定了刷新时间间隔,这时刷新时间无穷)
在这里插入图片描述
r:等待执行的任务数 b:等待io的进程数量 swap:正在使用虚拟的内存大小,单位k free:空闲内存的大小 buff:以用的buff大小,对块设备的读写进行缓冲 cache:已用的cache大小,文件系统的cache nact:非活跃内存大小
si:每秒从交换分区写入内存的大小 so:每秒从交换分区写到内存的大小 bi:每秒读取的块数 bo:每秒写入的块数
in:;每秒终端数,包括时钟终端数 cs:每秒上下文切换数 Us:用户进程执行消耗CPU时间 sy:系统进程消耗CPU时间
id:空闲时间 wa:等待io时间
(如果评估CPU,需要重点关注procs项的 r 列值和CPU项的 us sy wa 列的值)
(6)lsof:列出当前系统打开文件的工具(在终端下输入lsof即可显示系统打开的文件,因为lsof需要访问各种核心内存和各种文件,所以必须以root用户的身份运行它)
在这里插入图片描述
COMMAND:进程的名称 PID:进程标识符 USER:进程所有者 FD:文件描述符 TYPE:文件类型 DEVICE:指定磁盘的名称 SIZE:文件的大小 NODE:索引节点(文件磁盘上的标识) NAME:打开文件的确切名称
lsof abc.txt:显示开启文件abc.txt的进程
-c abc:显示以字母abc开头的进程现在打开的文件
-p 1234:列出进程号为1234的进程所打开的文件
-g gname/gid :显示归属gname/gid的进程情况
-u uname/uid :显示归属uname/uid 的进程情况
+d /usr/local/ :显示该目录下被打开的文件
+D /usr/local/ :显示该目录下的所有目录打开的文件
-d 4 :显示使用fd为4的进程
-i :显示符合条件的进程情况
4. 进程前后台与状态(后台进程必须是非交互式的)
(1)进程的状态:
就绪状态:进程已经分配到资源,但因为其它进程正在占用CPU,所以暂时不能运行而等待分配CPU的状态;
等待状态:因等待某种时间而暂时不能运行的状态;
运行状态:进程分配到CPU,正在处理器上运行;
(2)进程优先级
进程调度及多任务:每个CPU在一个时间点上只能处理一个进程,通过时间片技术,Linux实际能够运行的进程或线程数可以超出实际可用的CPU及核心数量。Linux内核进程调度程序将多个进程在cpu核心上快速切换。
相对优先级nice:进程调度程序为不同的进程使用不同的调度策略。
nice值越高,表示优先级越低(例如:+19,该进程容易将CPU使用量让给其他进程)
nice值越低,表示优先级高(例如-20,该进程更不倾向于让出CPU)
(3)查看进程的nice值 ———> top
NI :实际的 nice 级别
PR:将 nice 级别显示为映射到更大的优先级队列,-20映射到0,+19映射到39
使用 ps 查看nice 级别 :ps axo pid ,command,nice --sort=-nice
ps axo pid ,command,nice ,cls --sort=-nice
(4)启动具有不同nice级别的进程 :nice -5 command

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值