01、写在前面
在计算机科学中,进程(Process)是指正在运行的程序的实例。它是计算机系统中一个具有独立执行流的单元,它包含了程序代码、数据以及程序运行所需的系统资源。简单来说,进程就是一个正在执行的程序。当你启动一个程序时,操作系统会为该程序创建一个对应的进程,并为其分配资源(如内存空间、CPU 时间等),然后在这个进程中运行程序的代码。
每个进程都有自己的地址空间,它包含了程序的代码、数据和堆栈等。不同进程之间通常是相互独立的,它们之间不能直接访问对方的地址空间,这种隔离性有助于确保系统的稳定性和安全性。操作系统负责管理和调度进程,它可以同时运行多个进程,并根据优先级和调度策略来分配 CPU 时间和其他资源。操作系统还提供了一些机制来实现进程之间的通信和同步,以便进程可以相互协作完成任务。
总的来说,进程是计算机系统中的一个基本概念,它代表了正在运行的程序的实例,是计算机系统中的基本执行单元。
02、进程相关操作
htop命令就相当于Linux中的任务管理器,能够返回正在运行进程的实时详细信息。
以下是 htop 返回的各列结果的含义:
PID:进程 ID,用于唯一标识每个进程。
USER:运行该进程的用户名。
PR:进程的优先级。
NI:进程的 nice 值,nice 值是一个影响进程调度优先级的参数。
VIRT:进程使用的虚拟内存大小。
RES:进程实际使用的物理内存大小(常驻集大小)。
SHR:进程使用的共享内存大小。
S:进程的状态,包括 R(运行)、S(睡眠)、D(不可中断的睡眠)、Z(僵尸/挂起)、T(停止)等。
%CPU:进程使用的 CPU 时间占总 CPU 时间的百分比。
%MEM:进程使用的物理内存占系统总内存的百分比。
TIME+:进程运行的累计 CPU 时间。
COMMAND:进程所对应的命令或程序的名称。
除了htop,ps也是一个常用的进程查看命令,用于显示当前系统中运行的进程信息。它可以显示各种不同的进程信息,如进程ID、所属用户、CPU占用率、内存占用情况等。以下是ps命令的一些常见用法及示例:
显示当前用户的所有进程:
- ps
显示指定用户的进程:
ps -u username# 例如:ps -u biomamba
显示所有进程及详细信息:
ps aux
以树状结构显示进程:
ps axjf
显示指定进程的信息:
ps -p PID
按 CPU 占用率排序显示进程:
ps aux --sort=-%cpu
显示进程的内存占用情况:
ps aux --sort=-%mem
显示当前用户的前 10 个 CPU 占用率最高的进程:
ps aux --sort=-%cpu | head -n 11
显示所有用户的内存占用情况并按内存占用率排序:
ps aux --sort=-%mem