Linux进程管理
一、计算机中的进程
1.1程序的顺序执行与并发执行
程序的顺序执行:
程序的各操作步骤之间依序执行,程序与程序之间串行执行,称为顺序执行。顺序执行时单道程序系统中的程序的运行方式。
特点:
(1)顺序性:一个操作结束,下一个操作才能开始执行。多个程序要运行时,仅当一个程序全部执行结束,另一个程序才能开始。
(2)封闭性:程序在封闭环境中运行,即程序运行时独占所有资源,程序的执行过程不受外界影响,结果只取决于程序自身。
(3)可再现性:程序执行的结果与运行的时间和速度无关,结果都是可再现的,重复执行该程序结果相同。
总的来说,顺序执行的方式简单,便于调试,但系统资源利用率很低。
程序的并发执行:
若干个程序或程序段同时运行。它们在执行时间上是重叠的,即同一程序或不同程序的程序段可以交叉执行。
特点:
(1)间断性:并发程序之间因竞争资源而相互制约,导致程序运行过程的间断。例如,在只有一个CPU的系统中,多个程序需要轮流占用CPU运行,未获得CPU使用权限的程序必须等待。
(2)失去封闭性:当多个程序共享系统资源时,一个程序的运行收到其他程序的影响,其运行过程和结果不完全由自身决定。例如,一个程序计划在某一时间段执行一个操作,但很可能在那个时刻到来时它没有获得CPU的使用权限,因而也五大完成该操作。
(3)不可再现性:由于没有了封闭性,并发程序执行结果与执行的时机及执行的速度有关,结果往往不可再现。
并发执行程序虽然可以提高系统资源的利用率和吞吐量,但程序的行为变得复杂和不确定,使程序难以调试,若处理不当还会带来许多潜在问题。
1.2进程的概念:
进程(process)是一个可并发执行的程序在某数据集上的一次运行。
程序是进程的一个组成部分,是进程的执行文本,而进程是程序的执行过程。
1.3进程的特性:
(1)动态性:进程由“创建”而产生,由“撤销”而消亡,因“调度”而运行,因“等待”而停顿。进程由创建到消失的过程称为进程的生命周期。
(2)并发性:在同一时间段内有多个进程在系统内活动。在宏观上是并发运行,而在微观上是在交替运行。
(3)独立性:进程是可独立运行的基本单位,是操作系统分配资源和调度资源管理的基本对象。因此,每个进程都是独立地拥有各种必要的资源,独立地占有CPU并独立的运行。
(4)异步性:每个进程都独立地执行,各自按照不可预知的速度向前推进。进程之间的协调运行由操作系统负责。
1.4进程的基本状态
在多道系统中,进程的个数总是多于CPU的个数,因此它们需要轮流占用CPU。宏观上看,所有进程同时都在向前推进,而在微观上,这些进程是在走走停停之间完成整个运行的过程。
进程有3个基本的状态:
(1)就绪态:进程已经分配到了除CPU之外的所有资源,这时的进程状态称为就绪态。处于就绪态的进程一旦获得了CPU便可立即执行,系统中常会有多个进程处于就绪态,他们拍成一个就绪队列。
(2)运行态:进程已经获得CPU,正在运行,这时的进程状态称为运行态。在CPU系统中,任何时刻只能有一个进程处于运行态。
(3)等待态:进程因某种资源不能满足,或希望的某事件尚未发生而暂停执行时,称为等待态。系统中常常会有多个进程处于等待态,它们按等待事件分类,排成多个等待队列。
1.5进程状态的转换
进程诞生之初是处于就绪状态,在其后的生存期间内不断地从一个状态转换到另一个状态,最后在运行状态结束。
运行态→等待态:正在执行的进程因为等待某事件而无法执行下去,比如,进程申请某种资源,而该资源恰好被其他进程占用,则该进程将交出CPU,进入等待状态。
等待态→就绪态:处于等待状态的进程,当所申请的资源得到满足,则系统将资源分配给它,并将其状态变为就绪态。
运行态→就绪态:正在执行的进程的时间片用完了,或者有更高优先级的进程到来,系统会暂停该进程的运行,使其进入就绪态,然后调度其他进程运行。
就绪态→运行态:处于就绪状态的进程,当被进程调度程序选中后,即进入CPU运行。此时该进程的状态变为运行态。
二、linux进程概念
程序文件:一组代码的集合,静态文件
进程文件:执行中的程序文件,动态文件
服务:常驻于内存中的进程
进程编号: PID 进程ID
PPID 父进程ID
父进程与子进程区别:
原始命令或程序的环境,称之为父进程
利用父进程衍生出来的进程,称之为子进程,默认情况下,子进程会沿用父进程的相关权限
三、linux进程作用:
多用户环境、多终端环境、多任务操作、更灵活的管理、多任务管理、系统资源分配
四、linux任务管理
1、操作环境
前台 可以与用户执行交互操作的环境
后台 不可以与用户执行交互操作的环境
2、注意事项
只能管理当前终端下的进程
后台任务不能通过终端进行的输入
后台任务只能通过命令管理
前台任务可以通过ctrl+c打断执行
五、进程管理
查看进程
静态查看
命令: ps
选项: -a 显示所有用户的进程,包括完整路径
-u 显示使用者的名称和起始时间
-x 显示没有控制终端的进程
(这三个选项可以一起用)
动态查看
命令:top
选项:-d 指定刷新时间,单位为秒
-n 指定刷新次数
-p 指定PID进行精确查找
大P 以CPU使用率进行排序
大M 以内存使用率进行排序
T 以CPU使用时间进行排序
N 以PID值进行排序
K 杀死指定进程
r 设定优先级
q 退出
可以看到的信息
系统概况:
第一行:top
第二行:tasks
第三行:%Cpu(s)
第四行:Mem
第五行:Swap
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理