Linux操作系统的进程和线程
1.进程是计算机系统中正在运行的程序的实例。它是操作系统进行资源分配和调度的基本单位,包含程序代码、数据和执行状态。每个进程拥有独立的地址空间、系统资源。2.进程的组成:存储可执行指令。:包含全局变量和静态变量。:用于函数调用、局部变量和返回地址。:操作系统维护的数据结构,记录进程ID、状态、优先级、资源使用情况等。
一 .何为进程
1.进程是计算机系统中正在运行的程序的实例。它是操作系统进行资源分配和调度的基本单位,包含程序代码、数据和执行状态。每个进程拥有独立的地址空间、系统资源。
2.进程的组成
-
代码段:存储可执行指令。
-
数据段:包含全局变量和静态变量。
-
堆栈段:用于函数调用、局部变量和返回地址。
-
进程控制块(PCB):操作系统维护的数据结构,记录进程ID、状态、优先级、资源使用情况等。
二 .何为线程
1.线程是操作系统能够进行运算调度的最小单位,被包含在进程之中,是进程中的实际运作单元。一个进程可以包含多个线程,所有线程共享进程的资源(如内存、文件描述符等),但每个线程拥有独立的程序计数器、栈和寄存器等执行上下文。
OK前情提要至此,下面开始正式介绍Linux下对于进程和线程的管理。
一.进程的查看
1.1在图形中查看
window中有启动任务管理器,Linux也有自己的启动任务管理器,在shell中输入以下命令。
# gnome-system-monitor //用于打开图形的进程管理工具

1.2常用查看进程的指令--ps
#ps指令用于显示当前指令的进程状态信息,提供进程的详细属性
ps命令在Unix/Linux系统中的参数风格有以下三种
Unix风格:#ps -ef //显示所有进程完整信息
#ps -aux //显示所有用户进程
Bsd风格: #ps xjf //显示进程树状结构
Gnu风格:#ps --forest //树状显示进程层级
ps 命令默认执行(只显示当前终端运行的程序)

#ps a //显示系统中所有有字符设备使用的进程
#ps x //显示系统中所有无字符设备使用的进程
#ps ax
使用该命令之后终端会显示以下信息
#PID 进程id #TTY 进程使用终端 #STAT 进程情况 #TIME进程占用cpu时长 #COMMAND进程名称

#ps aux
使用该命令之后终端会显示以下信息
#USER进程所有人#PID进程id#%CPU进程使用cpu的用量#%MEM进程所使用内存大小
#VSZ进程所使用虚拟内存大小#RSS进程常驻内存大小#TTY进程所使用终端
#STAT进程状态#START进程运行时长#TIME进程使用cpu时长#COMMAND进程名称

1.3常用查看进程的指令--pgrep
pgrep
#进程过滤
#-u uid //指定用户进程
#-t tty //指定终端进程
#-l //显示进程名称

如图我们打开2个shell后,我们就可以通过pgrep命令过滤出用户(liaosuo)的进程
1.4常用查看进程的指令--top
top指令用于动态的查看进程的信息
#-d //指定刷新频率
#-b //以批次方式显示
#-n //指定显示数量

-
系统概览
顶部区域显示:- 系统运行时间(
uptime) - 当前登录用户数
- 负载平均值(1/5/15分钟):如
load average: 0.02, 0.01, 0.00
表示系统任务队列的平均长度,数值超过 CPU 核心数可能表示过载。
- 系统运行时间(
-
CPU 状态
%us:用户空间占用%sy:内核空间占用%id:空闲率- 例如:
%Cpu(s): 12.3 us, 1.5 sy, 86.2 id
-
内存统计
Mem:物理内存使用(total/free/used/buffers)Swap:交换空间使用情况
-
进程列表
默认按 CPU 占用率排序,显示:PID:进程 IDUSER:所有者%CPU:CPU 占用百分比%MEM:内存占用百分比COMMAND:进程名
二.进程的前后台调用
#<ctrl>+<z> //将shell程序在后台挂起

#bg //将后台程序运行

#fg //将后台程序调回前台

#jobs //查看当前终端的所有后台程序

三.进程的优先级
3.1.何为进程优先级
进程优先级通过一个数值系统来管理,核心是“nice值”和调度策略。nice值用于调整进程的相对优先级,而调度策略则定义了进程如何在CPU上执行。优先级越高(nice值越低),进程越容易获得CPU资源;反之,优先级越低(nice值越高),进程获得的CPU时间越少。
3.2.nice值
nice值是Linux中表示进程优先级的核心参数:
- 范围从$ -20 $(最高优先级)到$ 19 $(最低优先级)。
- 默认nice值是$ 0 $,表示普通优先级。
- 例如,nice值为$ -10 $的进程比nice值为$ 5 $的进程有更高的优先级,因此会优先执行。
nice值由内核维护,用户可以通过命令调整它。需要注意的是,设置负nice值(提高优先级)通常需要管理员权限(root),以防止普通用户独占资源。
3.3.进程优先级的调整
需要注意0-99是内核自控范围,100-139是用户可控范围
#nice -n -5 gedit //指定优先级并打开一个gedit

#renice -n -5 id //将指定的进程优先级修改
openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构
更多推荐

所有评论(0)