Linux进程和计划任务(把心留给在乎你的人吧)(一)

简介: Linux进程和计划任务(把心留给在乎你的人吧)(一)

一、查看进程



1.程序


保存在硬盘、光盘等介质中的可执行代码和数据

静态保存的代码


2.进程


程序动态执行的一次过程

动态执行的代码

父、子进程:每个程序可以创建一个或多个进程


3.进程特征:


动态性:进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消亡的

并发性:任何进程都可以资源分配和调度的一个独立单位

独立性:进程是系统进行资源分配和调度的一个独立单位

结构性:进程由程序、数据和进程控制块三部分组成


线程


是进程的一个实体,更加轻量级

操作系统能够进行运算调度的最小单位

一个进程可以有很多线程,每条线程并行执行不同的任务


进程和线程的区别


线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位

一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线

进程之间相互独立,但同一进程的各个进程之间共享程序的内存空间

调度和切换:线程上下文切换比进程上下文切换要快得多


image.png

                                     图:Windows的进程和线程,可以在资源管理器中查看

                                      图:Windows的进程和线程,可以在资源管理器中查看

image.png

                                                图:Linux查看进程和线程

image.png

                                             图:/proc目录

image.png

                                             图:查看某个进程的线程个数


二、进程管理的相关命令



2.1查看进程


2.1.1 ps命令 – 显示进程状态


ps命令是“process status”的缩写,ps命令用于显示当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序


支持三种选项:


UNIX选项 如: -A -e

GNU选项 如: --help

BSD选项 如: a

“ps aux” 可以查看系统中所有的进程;

“ps -le” 可以查看系统中所有的进程,而且还能看到进程的父进程的 PID 和进程优先级;

“ps -l” 只能看到当前 Shell 产生的进程;

常用选项:


a 显示当前终端下的所有进程信息,包括其他用户的进程
u 使用以用户为主的格式输出进程信息
x 显示当前用户在所有终端下的进程信息
-e 显示系统内的所有进程信息
-l 使用长格式显示进程信息
-f 使用完整的格式显示进程信息
–sort 属性 对属性排序,属性前加-表示倒序


示例1:

image.png


表头 含义
USER 该进程是由哪个用户产生的
PID 进程的ID
%CPU 该进程占用CPU资源的百分比,占用的百分比越高,进程越消耗资源
%MEM 该进程占用物理 内存的百分比,占用的百分比越高,进程越消耗资源
VSZ 该进程占用虚拟内存的大小,单位为KB
RSS 该进程占用实际物理内存的大小,单位为KB
TYY 该进程是在哪个终端运行的。其中,tty1 ~ tty7 代表本地控制台终端(可以通过 Alt+F1 ~ F7 快捷键切换不同的终端),tty1~tty6 是本地的字符界面终端,tty7 是图形终端。

pts/0 ~ 255 代表虚拟终端,一般是远程连接的终端,第一个远程连接占用 pts/0,第二个远程连接占用 pts/1,依次増长。

STAT

进程状态
-D:不可被唤醒的睡眠状态
-R:该进程正在运行
-S:该进程处于睡眠状态,可被唤醒
-T:停止状态,可能是在后台暂停或进程处于出错状态
-W:内存交互状态(从内核2.6开始无效)

-X:死掉的进程(不会出现)

-Z:僵尸进程,进程已经中止,但还在占用硬件资源

-<:高优先级

-N:低优先级

-L:被锁入内存

-s:包含子进程

-l:多线程

-+:位于后台

START 该进程的启动时间
TIME 该进程占用CPU的运算的时间
COMMAND 产生此进程的命令名


示例2:


image.png


示例3:


image.png

表头 含义
F 进程标志,说明进程的权限,常见的标志有两个: 1:进程可以被复制,但是不能被执行;4:进程使用超级用户权限;
S 进程状态。具体的状态和"psaux"命令中的 STAT 状态一致;
UID 运行此进程的用户的 ID;
PID 进程的 ID;
PPID 父进程的 ID;
C 该进程的 CPU 使用率,单位是百分比;
PRI 进程的优先级,数值越小,该进程的优先级越高,越早被 CPU 执行;系统定义不可以人为修改
NI 进程的优先级,数值越小,该进程越早被执行;可以人为修改
ADDR 该进程在内存的哪个位置;
SZ 该进程占用多大内存;
WCHAN 该进程是否运行。"-"代表正在运行;
TTY 该进程由哪个终端产生;
TIME 该进程占用 CPU 的运算时间,注意不是系统时间;
CMD 产生此进程的命令名;

注:


PRI(priority):系统定义,不能设置


NI(nice):可以人为设置


修改 NI 值时有几个注意事项:


NI 范围是 -20~19。

普通用户调整 NI 值的范围是 0~19,而且只能调整自己的进程。

普通用户只能调高 NI 值,而不能降低。如原本 NI 值为 0,则只能调整为大于 0。

只有 root 用户才能设定进程 NI 值为负值,而且可以调整任何用户的进程。

越小优先级越高


示例4:


image.png


2.1.2 top命令

ps命令可以一次性给出当前系统中进程状态,但是得到的信息缺乏失效性,为此我们使用top命令可以动态地持续监听进程的运行状态, 常用于服务端性能分析。


**语法格式:**top [参数]


常用参数:


-d 改变显示的更新速度,默认3秒
-q 没有任何延迟的显示速度,如果使用者是有 superuser 的权限,则 top 将会以最高的优先序执行
-c 切换显示模式
-s 安全模式,将交谈式指令取消, 避免潜在的危机
-i 不显示任何闲置 (idle) 或无用 (zombie) 的行程
-n 更新的次数,完成后将会退出 top
-b 批次档模式,搭配 “n” 参数一起使用,可以用来将 top 的结果输出到档案内


交互操作:


?或h 显示交互模式的帮助
c 按照cpu的使用率排序,默认就是此选项
M 按照内存的使用率排序
N 按照PID排序
T 按照 CPU 的累积运算时间排序,也就是按照 TIME+ 项排序
k 按照 PID 给予某个进程一个信号。一般用于中止某个进程,信号 9 是强制中止的信号
r 按照 PID 给某个进程重设优先级(Nice)值
q 退出top命令


示例1:


image.png


第一部分


第一行为任务队列信息


内 容 说 明
23:16:21 系统当前时间
up 13:06 系统的运行时间.本机己经运行13 小时 6 分钟
2 users 当前登录了两个用户(本地登录和终端远程各有一个)
load average: 0.00,0.01,0.05 系统在之前 1 分钟、5 分钟、15 分钟的平均负载。如果 CPU 是单核的,则这个数值超过 1 就是高负载:如果 CPU 是四核的,则这个数值超过 4

就是高负载 (这个平均负载完全是依据个人经验来进行判断的,一般认为不应该超过服务器 CPU 的核数)


第二行为进程信息


内 容 说 明
Tasks: 140 total 系统中的进程总数
1 running 正在运行的进程数
139 sleeping 睡眠的进程数
0 stopped 正在停止的进程数
0 zombie 僵尸进程数。如果不是 0,则需要手工检查僵尸进程


第三行为 CPU 信息


内 容 说 明
Cpu(s): 0.0%us 用户模式占用的 CPU 百分比
0.4%sy 系统模式占用的 CPU 百分比
0.0%ni 改变过优先级的用户进程占用的 CPU 百分比
99.9%id 空闲 CPU 占用的 CPU 百分比
0.0%wa 等待输入/输出的进程占用的 CPU 百分比
0.0%hi 硬中断请求服务占用的 CPU 百分比
0.0%si 软中断请求服务占用的 CPU 百分比
0.0%st st(steal time)意为虚拟时间百分比,就是当有虚拟机时,虚拟 CPU 等待实际 CPU 的时间百分比


第四行为物理内存信息


内 容 说 明
Mem: 1867024total 物理内存的总量,单位为KB
317032used 己经使用的物理内存数量
844308 free 空闲的物理内存数量
705684 buff/cache 作为缓冲的内存数量


第五行为交换分区(swap)信息


内 容 说 明
Swap: 4194300 total 交换分区(虚拟内存)的总大小
O used 已经使用的交换分区的大小
4194300 free 空闲交换分区的大小
1341324 avail Mem 可用内存的大小


缓冲(buffer)和缓存(cache)的区别:


缓存(cache)是在读取硬盘中的数据时,把最常用的数据保存在内存的缓存区中,再次读取该数据时,就不去硬盘中读取了,而在缓存中读取。

缓冲(buffer)是在向硬盘写入数据时,先把数据放入缓冲区,然后再一起向硬盘写入,把分散的写操作集中进行,减少磁盘碎片和硬盘的反复寻道,从而提高系统性能。


第二部分


第二部分主要是系统进程信息


字段 含义
PID 进程的ID
USER 该进程所属的用户
PR 优先级,数值越小,优先级越高
NI 优先级,数值越小、优先级越高
VIRT 该进程使用的虚拟内存的大小,单位为 KB
RES 该进程使用的物理内存的大小,单位为 KB
SHR 共享内存大小,单位为 KB
S 进程状态
%CPU 该进程占用 CPU 的百分比
%MEM 该进程占用内存的百分比
TIME+ 该进程共占用的 CPU 时间
COMMAND 进程的命令名
目录
相关文章
|
7天前
|
算法 Linux 调度
深度解析:Linux内核的进程调度机制
【4月更文挑战第12天】 在多任务操作系统如Linux中,进程调度机制是系统的核心组成部分之一,它决定了处理器资源如何分配给多个竞争的进程。本文深入探讨了Linux内核中的进程调度策略和相关算法,包括其设计哲学、实现原理及对系统性能的影响。通过分析进程调度器的工作原理,我们能够理解操作系统如何平衡效率、公平性和响应性,进而优化系统表现和用户体验。
17 3
|
12天前
|
监控 Linux Shell
初识Linux下进程2
初识Linux下进程2
|
12天前
|
Linux 编译器 Windows
【Linux】10. 进程地址空间
【Linux】10. 进程地址空间
19 4
|
16天前
|
Web App开发 人工智能 Ubuntu
【Linux】Linux启动/查看/结束进程命令(详细讲解)
【Linux】Linux启动/查看/结束进程命令(详细讲解)
|
22天前
|
Linux Shell 调度
【Linux】进程排队的理解&&进程状态的表述&&僵尸进程和孤儿进程的理解
【Linux】进程排队的理解&&进程状态的表述&&僵尸进程和孤儿进程的理解
|
23天前
|
监控 Linux Shell
Linux 进程问题调查探秘:分析和排查频繁创建进程问题
Linux 进程问题调查探秘:分析和排查频繁创建进程问题
39 0
|
23天前
|
存储 Linux 程序员
【Linux C/C++ 堆内存分布】深入理解Linux进程的堆空间管理
【Linux C/C++ 堆内存分布】深入理解Linux进程的堆空间管理
69 0
|
28天前
|
Unix Shell Linux
Linux 终端和进程的关系,以及在终端前后台切换进程
Linux 终端和进程的关系,以及在终端前后台切换进程
27 1
|
27天前
|
存储 Shell Linux
【Shell 命令集合 系统设置 】⭐⭐⭐Linux 限制进程资源 ulimit命令 使用指南
【Shell 命令集合 系统设置 】⭐⭐⭐Linux 限制进程资源 ulimit命令 使用指南
37 0
|
27天前
|
监控 Shell Linux
【Shell 命令集合 系统管理 】⭐⭐⭐Linux 向进程发送信号 kill命令 使用指南
【Shell 命令集合 系统管理 】⭐⭐⭐Linux 向进程发送信号 kill命令 使用指南
31 0