学习Linux的第八天(进程管理)

一 进程简介

1.什么是进程?

进程是并发执行程序在执行过程中资源分配和管理的基本单位(资源分配的最小单位)。进程可以理解为一个应用程序的执行过程,应用程序一旦执行,就是一个进程。每个进程都有自己独立的地址空间,每启动一个进程,系统就会为它分配地址空间,建立数据表来维护代码段、堆栈段和数据段。

2.进程的生命周期及状态

进程是一个动态的实体,从创建到消亡,是一个进程的整个生命周期。
运行:该进程此刻正在执行
等待:进程能够运行,但没有得到许可,因为CPU分配给另一个进程。调度器可以在下一次任务切换时选择该进程。
睡眠:该进程正在睡眠无法运行,因为它在等待一个外部事件。调度器无法在下一次任务切换时选择该进程。

二 进程管理

1.进程的内容介绍

进程的详细内容:
每个进程的字段都有它的含义下面我们来看看,我们先随便查看一个静态的进程。
语法:ps aux | head -2
在这里插入图片描述
user----运行进程的用户
pid----进程的id号,类似于用户的id,每个进程都有自己的单独的id
%cpu----进程对CPU的占用率
%mem----进程对内存的占用率
tty----当前进程的进程所在的终端设备类型
stat----当前进程的状态
start----进程的开始时间
time----进程的运行时间
command----进程的文件/进程名
vsz----占用虚拟内存
rss----占用实际内存

以红框内的这个进程为例,它叫“systemd”是系统的第一个运行程序,
用户是root用户
pid为1
占用cpu为0%
占用内存大小为%0.4
占用虚拟内存为128164kb
占用实际内存为4064kb
?表示当前进程没有终端
进程状态为睡眠
进程开始时间为10:48
进程运行时间为2秒
运行的命令为 “systemd”

注:运行时间的规格为 “小时:分钟:秒”

2.进程的查看

(1)静态进程查看

1.上面我们讲解了查看一个静态的进程。所谓静态就是查看的进程的字段信息都停留在了查看进程的那一刻,不会改变
语法:ps aux
在这里插入图片描述可以看到通过命令查看了进程和它们的相关信息。
补:可以只查看几行进程信息,
语法:ps aux | head -x (x代表行数)
示例:
在这里插入图片描述
注:显示行数为命令行数减一

2.通过查看命令关键字也可以查看进程
语法:ps aux | grep 关键词
示例:
(1)新建一个终端并且在里面使用vim命令编辑一个文件
在这里插入图片描述
(2)打开进程信息
在这里插入图片描述
可以看到刚才在另一个终端里编辑的进程出现了。
3.自定义显示进程信息
可以通过这条信息查看自己想看的指定进程里的信息,不用所有字段全部查看
语法:pa axo 想要显示的进程字段信息(字段信息中间用逗号隔开)
示例:
在这里插入图片描述
当然也可以在命令后加上查看指定行数内容。

(2)动态查看进程

和静态查看进程不一样,动态查看进程可以看到一直处于变化的系统进程信息。
语法:top
在这里插入图片描述
我们发现进程的信息在随时变化。
红框内的信息显示的是当前系统的详细信息
第一行:
运行时间,当前系统时间,系统运行时间,即从开机到现在的时间,登录用户数,CPU负载,一分钟内CPU负载率,五分钟内CPU负载率,十五分钟内CPU负载率
第二行:
总进程数,处于运行状态的进程,处于睡眠状态的进程,处于停止状态的进程,僵死的进程
第三行:
cpu占用率,用户,系统,优先级,空闲,等待,硬件,软件,虚拟机
第四行:
物理内存,总大小,空闲大小,用户使用大小,缓存硬盘大小
第五行:
交换分区,总共大小,空闲大小,使用大小,下次可以大小

补:查看指定进程的信息
语法:top -p 进程pid(id可以添加多个,同时查看多个进程信息)
示例:
(1)在另一个终端下编辑一个文件,先通过ps命令查看静态进程的pid

在这里插入图片描述
在这里插入图片描述
(2)通过top命令和进程pid查看进程的动态信息
在这里插入图片描述
通过这个方法可以查看进程的动态信息,当然也可以直接查看所有进程信息查找指定的进程,但比较麻烦。

(3)排序查看进程

语法:ps aux --sort -指定进程字段 (sort后加减号为降序,不加为升序)
示例:
在这里插入图片描述
可以看到进程占用内存大小按由大到小的降序排列。

3.进程父子关系

每一个进程都有它的父进程,除了极个别没有,可以通过命令查看每个进程的父进程
语法:ps -ef
示例:
在这里插入图片描述

4.进程的控制

可以通过命令控制进程的暂停和继续,以及终止和杀死一个进程。

(1)暂停和继续

语法:
kill -19 (暂停进程)
kill - 18 (继续进程)

示例:
1.在一个新的终端里编辑一个文件
在这里插入图片描述
2.查看pid并停止进程
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
进程被停止了。
3.继续进程
在这里插入图片描述
进程继续进行

(2)停止和终止

语法:
kill -9 pid (非法杀死进程) kill -15 (正常终止进程)
示例:
(1)
1.在另一个终端里编辑一个文件
在这里插入图片描述
2.非法杀死进程
在这里插入图片描述
在这里插入图片描述
(2)
在这里插入图片描述
在这里插入图片描述

5.进程优先级

1.Linux 进程调度及多任务,每个CPU在一个时间点上只能处理一个进程,通过时间片技术,来同时运行多个程序。每个进程都有自己的优先级,可以通过查看进程获取
在这里插入图片描述
可以看到,在top中优先级有两个,分别是pr与ni,其中ni优先级的范围为从-20到19,pr优先级的范围是-99到39
在这里插入图片描述
pr和ni之间相差20,pr比ni优先级大20。
其中优先级越小,表示优先等级越高,优先级越大,表示优先等级越低。
2.查看进程的优先级
语法:ps axo pid,command,nice --sort=-nice (查看所有进程优先级)
ps axo pid,command,nice --sort=-nice | grep 进程 (查看指定进程优先级)
在这里插入图片描述
3.更改程序优先级
语法:renice 优先级 进程pid
示例:
(1).创建一个睡眠示例程序
在这里插入图片描述
(2).修改优先级
在这里插入图片描述
补:创建程序时赋予优先级
语法:nice -n 赋予的优先级 程序 &
示例:创建两个睡眠程序
在这里插入图片描述
优先级都被修改为了-10

三 作业控制

作业控制是一个命令行功能,也叫后台运行。
示例:
在这里插入图片描述
sleep是一个睡眠程序,在这里先终止掉它,下面我们把它放到后台执行再观察它
在这里插入图片描述放到后他运行后我们发现它的pid为3357,并且状态处于运行中,查看后台运行程序命令为 jobs
那么怎么把后台进程调到前台呢 语法:fg 进程号
在这里插入图片描述
把停止的进程恢复 ,语法:bg 进程号
在这里插入图片描述
怎么停掉一个后台进程呢,使用语法:kill 进程号%
在这里插入图片描述

四 虚拟文件系统

虚拟文件系统:采集服务器自身 内核、进程运行的状态信息。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值