【小白日记9】----关于进程管理的基本知识

一、进程的概念

进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。在早期面向进程设计的计算机结构中,进程是程序的基本执行实体;在当代面向线程设计的计算机结构中,进程是线程的容器。程序是指令、数据及其组织形式的描述,进程是程序的实体

二、进程的状态

1.父进程

任何进程(除init进程)都是由另一个进程启动,该进程称为被启动进程的父进程

2.子进程

通过父进程被启动的进程称为子进程

3.进程具体状态

R运行状态(runing): 表明进程要么在运行中要么在运行队列里,并不意味着进程一定在运行中。
S睡眠状态(sleeping):意味着进程在等待事件的完成(这里的睡眠有时候也叫做可中断睡眠)
D磁盘睡眠状态(Disk sleep): 有时候也叫做不可中断睡眠,在这个状态的进程通常会等待IO的结束
T停止状态(stopped):可以通过发送SIGSTOP信号给进程来停止(T)进程。这个被暂停的进程可以通                       
                    过发送SIGCNT信号让进程继续运行。
X死亡状态(dead):这个状态只是一个返回状态,你不会在任务列表里看到这个状态。
Z(zombie)-僵尸进程:僵尸进程是当子进程比父进程先结束,而父进程又没有回收子进程,释放子进程占用
                  的资源,此时子进程将成为一个僵尸进程。如果父进程先退出 ,子进程被init接管,
                  子进 程退出后init会回收其占用的相关资源。

在这里插入图片描述

三、进程的管理

1.静态查看进程

输入命令
[root@localhost ~]# ps

在这里插入图片描述
ps a 显示现行终端机下的所有程序
ps u 以用户为主的格式来显示程序状况。
ps x 不以终端机来区分。

以上这些命令属性可以用一个命令来表示

(1)静态查看进程信息(显示出的为静态进程)
输入命令 
[root@localhost ~]# ps aux

在这里插入图片描述

输入命令
[root@localhost ~]# ps aux | grep vim
(2)此命令还可在后面添加筛选信息

在这里插入图片描述

(3)进程的父子关系

在这里插入图片描述

(4)进程的排序
 输入命令
 [root@localhost ~]# ps aux --sort %cpu

将进程按某种要求排序(这里是按照CPU利用率进行升序排列)
在这里插入图片描述

 输入命令
	 [root@localhost ~]# ps aux --sort  -%cpu
	 (- 代表降序) 

这里是按照CPU利用率降序排列
在这里插入图片描述
自定义查找进程

 输入命令
 [root@localhost ~]# ps axo user,pid,command 

(此命令也可添加筛选选项)
在这里插入图片描述

2.动态查看进程

输入命令
[root@localhost ~]# top 
(1)top

为显示动态进程,指进程时一直在变化的,一般为每隔3秒刷新一次。
在这里插入图片描述
① 代表 当前时间,设备运行时间(9小时38分),用户数量(3),CPU在1分钟,5分钟,15分钟之内的平均负载(0,02% 0.02% 0.05%)
② 任务总数量(204),1个正在运行中,199在休眠中,3个被停止,1个僵尸进程
③ CPU占用比:用户占用,系统占用(0.3%),优先级,CPU空闲状态(99.7%),等待,硬件,软件,虚拟机
④ 总内存大小,空闲大小,用户使用大小,cache缓存大小
⑤ 交换分区总大小,空闲大小,用户使用大小,下次可用空间
⑥ 进程id
⑦ 用户
⑧ PR值:系统中的一种优先值,用户无法修改
⑨ NI值:用户可修改的优先值
⑩ 当前进程的状态
⑾ 占用CPU比
⑿ 占用内存比
⒀ 占用CPU时间(h:mm:ss)
⒁ 文件或进程名

(2)top小技巧
	输入命令
	[root@localhost ~]# top -d 1

使得动态命令每隔1秒刷新一次

在这里插入图片描述

输入命令
[root@localhost ~]# top -p 21

查看指定进程id 为 21号的进程动态信息
在这里插入图片描述

3.信号控制进程

(1)信号种类

给进程发送信号(kill -l列出所有支持的信号)
[root@localhost ~]# kill -l

编号 信号名
1) SIGHUP 重新加载配置
2) SIGINT 键盘中断Ctrl+C  
3) SIGQUIT 键盘退出Ctrl+\,类似SIGINT
9) SIGKILL 强制终止,无条件
15) SIGTERM 终止(正常结束),缺省信号
18) SIGCONT 继续
19) SIGSTOP 暂停
20)SIGTSTP 键盘暂停Ctrl+Z
(2)测试终止信号 9,15

现在由xshell2个终端各自创建了一个文件 file1和file2
file1状态
在这里插入图片描述

file2状态
在这里插入图片描述

输入命令
[root@localhost ~]# ps aux |grep vim

查看当前进程中的 vim进程 并找到他们的PID
在这里插入图片描述

输入命令
[root@localhost ~]# kill -9 74754

强制终止 进程号为74754的进程 试着在vim进程中同时输入 不进行保存
在这里插入图片描述
发现 进程被强制杀死 刚刚输入的内容并未被保存
在这里插入图片描述

	输入命令
	[root@localhost ~]# kill -15 74789

正常终止 进程号为74789的进程
在这里插入图片描述
发现进程是按流程正常被终止
在这里插入图片描述

4.进程的优先级

(1)概念

在多任务操作系统中,由于CPU的工作机制,进程占用CPU必须需要人为能够控制。原因是因为:有的进程非常重要,有些进程当下来看没有那么重要。所以就需要有优先级来区分他们。进程是需要切换的,意味着在同一个调度周期中,优先级高的占用CPU的时间就长,优先级低的占用就短些
在这里插入图片描述

(2)NI

nice 值越大: 表示优先级越低,例如+19
nice 值越小: 表示优先级越高,例如-20

查看nice级别
输入命令[root@localhost ~]# ps axo pid,command,nice --sort=-nice

在这里插入图片描述

(3)PR

为将nice级别显示为映射到更大优先级队列,-20映射到0,+19映射到39

打开top 动态查看进程指令 发现 所有的PR值都比NI值大20
在这里插入图片描述

(4)手动启动不同优先级的进程

在启动进程时,通常会继承父进程的nice优先级,默认的优先级都为0

创建两个休眠程序 将他们的优先级改为 - 5 和 5

输入命令
[root@localhost ~]# nice -n -5 sleep 200 &
[root@localhost ~]# nice -n  5 sleep 200 &

在这里插入图片描述
在这里插入图片描述

(5)更改现有的nice级别

创建睡眠程序
在这里插入图片描述
查看他的优先级
在这里插入图片描述

输入命令
[root@localhost ~]# renice -20 75264

在这里插入图片描述
查看现在优先级
在这里插入图片描述
修改成功!

四、作业控制(jobs)

1.概念

作业控制是一个命令行功能,也叫后台运行。
fg:前台进程:是在终端中运行的命令,占领终端。
bg:后台进程:没有控制终端,它不需要终端的交互。看不见,但是在运行。

2.后台进程管理

创建一个后台进程 输入一个睡眠命令,发现在前台执行,下面不能输入任何指令
在这里插入图片描述
查看进程
在这里插入图片描述
以及后台程序
在这里插入图片描述
将进程提至前台运行
在这里插入图片描述
杀死后台进程

输入命令
[root@localhost ~]# kill %3

在这里插入图片描述

五、虚拟文件系统

1.概念

采集服务器自身 内核、进程运行的状态信息

2.CPU

输入命令
[root@localhost ~]# cat /proc/cpuinfo 

在这里插入图片描述

3.内存

输入命令
[root@localhost ~]# less /proc/meminfo 

在这里插入图片描述

4.内核

输入命令
[root@localhost ~]# cat /proc/cmdline 

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值