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 进程的命令名
目录
相关文章
|
1月前
|
算法 Linux 调度
深入理解Linux操作系统的进程管理
本文旨在探讨Linux操作系统中的进程管理机制,包括进程的创建、执行、调度和终止等环节。通过对Linux内核中相关模块的分析,揭示其高效的进程管理策略,为开发者提供优化程序性能和资源利用率的参考。
69 1
|
20天前
|
存储 监控 Linux
嵌入式Linux系统编程 — 5.3 times、clock函数获取进程时间
在嵌入式Linux系统编程中,`times`和 `clock`函数是获取进程时间的两个重要工具。`times`函数提供了更详细的进程和子进程时间信息,而 `clock`函数则提供了更简单的处理器时间获取方法。根据具体需求选择合适的函数,可以更有效地进行性能分析和资源管理。通过本文的介绍,希望能帮助您更好地理解和使用这两个函数,提高嵌入式系统编程的效率和效果。
88 13
|
27天前
|
SQL 运维 监控
南大通用GBase 8a MPP Cluster Linux端SQL进程监控工具
南大通用GBase 8a MPP Cluster Linux端SQL进程监控工具
|
1月前
|
运维 监控 Linux
Linux操作系统的守护进程与服务管理深度剖析####
本文作为一篇技术性文章,旨在深入探讨Linux操作系统中守护进程与服务管理的机制、工具及实践策略。不同于传统的摘要概述,本文将以“守护进程的生命周期”为核心线索,串联起Linux服务管理的各个方面,从守护进程的定义与特性出发,逐步深入到Systemd的工作原理、服务单元文件编写、服务状态管理以及故障排查技巧,为读者呈现一幅Linux服务管理的全景图。 ####
|
2月前
|
缓存 监控 Linux
linux进程管理万字详解!!!
本文档介绍了Linux系统中进程管理、系统负载监控、内存监控和磁盘监控的基本概念和常用命令。主要内容包括: 1. **进程管理**: - **进程介绍**:程序与进程的关系、进程的生命周期、查看进程号和父进程号的方法。 - **进程监控命令**:`ps`、`pstree`、`pidof`、`top`、`htop`、`lsof`等命令的使用方法和案例。 - **进程管理命令**:控制信号、`kill`、`pkill`、`killall`、前台和后台运行、`screen`、`nohup`等命令的使用方法和案例。
154 4
linux进程管理万字详解!!!
|
2月前
|
缓存 算法 Linux
Linux内核的心脏:深入理解进程调度器
本文探讨了Linux操作系统中至关重要的组成部分——进程调度器。通过分析其工作原理、调度算法以及在不同场景下的表现,揭示它是如何高效管理CPU资源,确保系统响应性和公平性的。本文旨在为读者提供一个清晰的视图,了解在多任务环境下,Linux是如何智能地分配处理器时间给各个进程的。
|
2月前
|
存储 运维 监控
深入Linux基础:文件系统与进程管理详解
深入Linux基础:文件系统与进程管理详解
90 8
|
2月前
|
网络协议 Linux 虚拟化
如何在 Linux 系统中查看进程的详细信息?
如何在 Linux 系统中查看进程的详细信息?
187 1
|
2月前
|
Linux
如何在 Linux 系统中查看进程占用的内存?
如何在 Linux 系统中查看进程占用的内存?
|
2月前
|
算法 Linux 定位技术
Linux内核中的进程调度算法解析####
【10月更文挑战第29天】 本文深入剖析了Linux操作系统的心脏——内核中至关重要的组成部分之一,即进程调度机制。不同于传统的摘要概述,我们将通过一段引人入胜的故事线来揭开进程调度算法的神秘面纱,展现其背后的精妙设计与复杂逻辑,让读者仿佛跟随一位虚拟的“进程侦探”,一步步探索Linux如何高效、公平地管理众多进程,确保系统资源的最优分配与利用。 ####
76 4