linux之进程

Linux进程——进程退出 线程。 阅读详情

今天分享一个关于自己总结的进程的知识点

1.进程的概念

在谈进程之前先说下操作系统这个名词,操作系统是什么?
简单的说操作系统就是一个为了让计算机更加好用,对计算机上的软硬件进行管理的软件。
现在回归正题,进程是什么?
从用户角度来说,进程就是运行中的程序。
从操作系统角度来说,进程就是操作系统对运行中程序的描述信息,即进程描述符–统称PCB。
描述信息包括:程序计数器,上下文数据,内存指针,记账信息,进程状态,优先级,标识符PID(进程id),文件的I/O状态信息。

查看进程
ps -aux 是以BSD方式显示
a 显示所有用户的进程, u 显示用户,x 显示无控制终端的进程。
输出格式如下:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
USER:用户名
PID:进程id
%CPU:CPU占用率
%MEM:内存使用量
VSZ: 如果一个程序完全驻留在内存的话需要占用多少内存空间
RSS:当前实际占用了多少内存
TTY:终端的次要装置号码
STAT:进程当前的状态
START:启动命令的时间点
TIME:进程执行起到现在总的CPU占用时间
COMMAND:启动这个进程的命令

ps -ef 是以System V方式显示,该种方式比BSD方式显示的多
e 显示所有用户的进程,此参数的效果和指定"a"参数相同 f 用ASCII字符显示树状结构,表达程序间的相互关系。
输出格式如下:
UID PID PPID C STIME TTY TIME CMD
UID:用户id
PID: 进程的id
PPID: 父进程的id
C: cpu占比
STIME: 系统启动时间
TTY: 登陆的终端机位置
CMD: 所下达的指令为何

2.进程创建

fork:创建进程
通过复制调用父进程,创建一个新的进程(子进程)
复制:复制的是父进程的pcb,复制父进程的大部分数据,因此代码共享,数据独有。
通过返回值判断是否创建成功,分流父子进程。
对于父进程,返回的是子进程的pid>0
对于子进程,返回的是0
!!父子进程谁先运行,取决于CPU的调度。

3.进程状态

linux下的进程状态:
运行态(R)
可中断睡眠态(S):
不可中断睡眠态(D):
停止态(T)
追踪态(t)
死亡态(X)
僵死态(z)
这里死亡态不常见,不做讨论,重要的是僵死态,会导致僵尸进程的产生。
僵尸进程的产生原因:子进程先于父进程退出,退出原因(返回值)保存在pcb中,操作系统检测到子进程退出后,通知父进程,但是父进程可能此时并没有关注子进程的退出(此时可能在完成其他任务),这时候操作系统不能随意释放子进程资源(因为父进程可能会关心子进程的退出原因),因此子进程就处于推出但是资源没有完全释放的状态(僵死状态)。
危害:资源泄漏,僵尸进程过多会导致新的进程无法创建。
kill -9 进程名:强杀某个进程(除了僵尸进程)
如果一个进程杀不死,他可能就是僵尸进程。
解决僵尸进程的方法:干掉父进程(退出原因的保存已经毫无意义)
这里举一个僵尸进程的例子:
创建了一个zombie.c的文件,然后gcc编译后,运行zombie程序
zombie.c文件内容如下图,子进程先于父进程退出,父进程死循环,这样将会产生僵尸进程
在这里插入图片描述
同时另开一个窗口查看zombie进程
使用ps -aux|grep zombie 命令查看
在这里插入图片描述
发现产生了一个僵尸进程,状态为僵死态(Z),此时如果想杀死这个僵尸进程直接用kill命令是无法实现的,所以我选择删除他的父进程,使用如下命令:
kill -9 14793 杀死父进程,在使用ps命令查看,发现僵尸进程就没了!
在这里插入图片描述
如果要避免僵尸进程的产生,需要父进程一直等到子进程释放,如下所示:
在这里插入图片描述
创建一个子进程,然后睡眠5秒后退出,然后父进程此时一直在等待子进程的返回值,在子进程还没释放时,父进程可以干其他的事,然后子进程退出释放后,父进程利用wait函数得到子进程的返回值,然后就再执行其他的任务,这样以后子进程就不会变为僵尸进程。
阻塞:为了完成功能发起调用,如果当前不具备完成条件,则一直等待,直到完成后返回。
非阻塞:为了完成功能发起调用,如果当前不具备完成条件,则立即报返回。
阻塞与非阻塞:调用功能当前不具备完成条件是否立即返回。

4.进程优先级

优先级:一个层次划分-决定进程cpu资源的优先分配权
为什么要有优先级:让操作系统运行的更加合理
查看进程优先级:ps -l
I/O密集型程序:大量时间都在执行I/O操作
cpu密集型程序:大量时间在进行运算操作
PRI表示优先级,值越大优先级越低(默认为80)
nice值范围:-20~19
设置方法:renice -n ni_val -p pid nice -n ni_val ./main
竞争性:进程之间具有竞争性,竞争资源
独立性:进程之间应该具备独立性,保证进程稳定运行
并发:进程在cpu上切换调度运行
并行:cpu资源足够,进程就可以同时运行
在这里插入图片描述

如何修复“python:找不到命令”错误 Python编程语言以其用户友好的语法、简单的语义以及大量的框架和库而闻名。Python 广泛用于网络开发、分析、机器学习和数据科学项目。当系统找不到Python可执行文件,导致用户无法执行Python命令或运行脚本时,就会出现python : command not found错误。 阅读详情

相关推荐

解决Linux下pip找不到Python的问题

然而,在Linux系统中,有时候我们会遇到一个问题,就是当我们执行pip命令时,会提示找不到Python。通过这个方法,我们可以让Linux系统识别/usr/bin/python3这个路径,从而找到Python。如果Python已经正确安装,并且环境变量也已经配置好,但是还是无法找到Python,那么有可能是因为pip没有正确安装。如果返回的是Python的路径,说明Python已经安装并配置好了环境变量;如果pip已经安装好了,但是还是找不到Python,那么我们需要手动创建一个软连接。

. 2595

python脚本学习

os.system(command) 这个函数可以调用shell运行命令行command并且返回它的返回值。试一下在 python的解释器里输入os.system(”ls -l”),就可以看到”ls”列出了当前目录下的文件。可以说,通过这个函数,python就拥有了shell的所有能力。呵呵。。不过,通常这条命令不需要用到。因为shell常用的那些命令在python中通常有对应而且同样简洁的写法

西北风的专栏 2262

UE4初学笔记_02_编辑器界面

不同版本可能不一样,这里是4.25 UE4编辑器主界面(也称为关卡编辑器)主要用于构建世界场景和关卡以及放置资源。 1.菜单栏 2.关卡编辑器(Level Editor)工具栏 3.“模式”(Modes)面板 4.“内容浏览器”(Content Browser)面板 5.“视口”(Viewport)面板 6.“世界大纲视图”(World Outliner)面板 7.“细节”(Details)面板 1.菜单栏 菜单栏包含“文件”(File) 、“编辑”(Edit) 、“窗口”(Win.

来自火星的猫 3092

linux下运行python没有反应_怎么在linux下运行python程序

Linux终端中的操作均是使用命令行来进行的。因此,对于小白来说,熟记几个基本的命令行和使用方法能够较快的在Linux命令行环境中将python用起来。打开命令行窗口打开命令行窗口的快捷键如下:Ctrl + Alt + t关闭名命令行窗口关闭命令行窗口的快捷键如下:Ctrl + d进入python环境在命令行中直接输入python即进入了python的编辑环境。进入环境后最明显的提示是:光标由~$...

weixin_39757626的博客 3450

Cesium+Three.js融合实战:从零构建GIS与BIM一体化场景

本文详细介绍了如何将Cesium与Three.js进行技术融合,从零构建GIS与BIM一体化场景。通过环境配置、核心场景搭建、坐标转换、性能优化及交互处理等实战步骤,阐述了Cesium负责宏观地理空间渲染、Three.js处理微观精细BIM模型的协同方案,为智慧城市、数字孪生等应用提供关键技术实现路径。

weixin_29230865的博客 460

第八章 MobileNetv3网络详解

本文介绍了基于互补的搜索技术和新颖的架构设计的MobileNets的下一代。MobileNetV3通过硬件感知网络架构搜索(NAS)和NetAdapt算法相结合,针对移动电话CPU进行优化,随后通过新颖的架构改进技术进行了进一步提高。本文开始探索自动化搜索算法和网络设计如何相互协作,以利用互补的方法改进整体技术水平。通过此过程,我们创建了两个新的MobileNet模型:MobileNetV3-Large和MobileNetV3-Small,分别针对高资源和低资源使用情况。

ADICDFHL的博客 1万+

linux怎么用python运维命令_运维笔记--linux环境提示python: command not found

场景描述:新部署的容器环境,终端执行python命令,提示没有该命令。从报错异常可以看出,可能是python环境未安装。分析思路:检查python路径:方式一:type -a python方式二:ls -l /usr/bin/pythonls-l /usr/bin/python*方式三:which python如果输出空或者no such file or directory, 则说明未安装。处理过...

weixin_39950867的博客 626

LIN总线从入门到精通:低成本汽车通信协议原理与实战

在汽车电子和嵌入式系统中,串行通信协议是实现分布式控制的关键技术。其中,LIN(Local Interconnect Network)总线作为一种专为低成本应用设计的单主多从网络协议,其核心原理在于通过简化的“领导-汇报”通信模式,在满足车身控制、传感器数据采集等场景需求的同时,将硬件与布线成本降至最低。LIN总线采用标准化的帧结构,包含间隔场、同步场和受保护标识符场,并依赖调度表来管理通信时序,确保了网络的确定性与可靠性。其技术价值在于为车窗、座椅、灯光等非安全关键系统提供了高性价比的解决方案,是构建分层

weixin_29185167的博客 260

【Linux】进程

本文将详细的介绍Linux环境的进程,与进程状态和进程优先级。

Yui_的博客 2049

CUDA详细安装及环境配置——环境配置指南 – CUDA+cuDNN+PyTorch 安装

本文详细介绍了如何确定显卡支持的CUDA版本、选择对应的cuDNN版本,并逐步安装CUDA、cuDNN和PyTorch。首先,通过命令行输入nvidia-smi.exe查看显卡支持的CUDA版本。接着,根据CUDA版本选择对应的cuDNN版本并下载。然后,从NVIDIA官方网站下载CUDA安装包,按照提示进行安装,并检查是否安装成功。同样地,下载cuDNN安装包,解压后将文件拷贝到CUDA安装目录中,并通过命令行验证安装是否成功。最后,根据PyTorch官网的指引,选择合适的安装命令进行PyTorch的安装

2501_90350274的博客 5098

ue 打包linux程序 在windows系统 2026

ue 打包linux程序 在windows系统 2026

jacke121的专栏 371

linux中什么是进程名,Linux进程是什么

进程是 Linux 操作系统中最重要的基本概念之一,这一节我们将了解学习 Linux 进程的一些基础知识。进程是运行在 Linux 中的程序的一个实例。这是一个你之前就可能已经听说过的基本定义。当你在 Linux 系统中执行一个程序时,系统会为这个程序创建特定的环境。这个环境包含系统运行这个程序所需的任何东西。每当你在 Linux 中执行一个命令,它都会创建,或启动一个新的进程。比如,当你尝试运行...

weixin_39551554的博客 2053

SAP Gateway Foundation OData V4 服务管理深度解析,从 Service Repository 到 Service Group 的完整运行逻辑

本文解析了SAP S/4HANA中OData V4 API的技术架构,重点阐述Service Repository、Service与Service Group的三层管理体系。以SalesOrder和PurchaseOrder API为例,说明不同服务可能属于特定repository(如srvd_a2x)而非默认DEFAULT库。Service Group作为业务模型组合单元,支持跨服务引用和统一配置,其发布状态直接影响服务可用性。文中对比了后台管理事务/IWBEP/V4_ADMIN与网关端/IWFND/V4

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 88

<Linux> 进程

进程有关概念、如何创建进程、进程状态、环境变量详解、进程优先级、程序地址空间、如何控制进程以及如何替换进程

weixin_61522065的博客 4302

Microsemi Libero系列教程(四)——PLL的使用

文章目录PLL是什么Libero中PLL的使用官方文档 系列教程:Microsemi Libero系列教程 PLL是什么 PLL(Phase Locked Loop): 为锁相回路或锁相环,用来统一整合时钟信号,使高频器件正常工作,如内存的存取资料等。PLL用于振荡器中的反馈技术。 许多电子设备要正常工作,通常需要外部的输入信号与内部的振荡信号同步。一般的晶振由于工艺与成本原因,做不到很高的频率...

whik1194的博客 7212

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Linux进程控制——Linux进程终止

进程终止相对于其他的进程控制来说,是很好理解的。我们主要介绍了进程终止,在明白错误码和退出码之后,相信能理解父进程是怎么得到子进程信息的。让我们期待下一节——进程等待与替换!

EterNity_TiMe_的计算机学习之路 2343

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

linux进程

这个文件用来检查内核数据结构的当前状态,通常由GDB调试使用 /proc/kmsg:此文件用来保存由内核输出的信息 /proc/meminfo:系统中关于当前内存的利用状况等的信息,常由free命令使用 /proc/version:当前系统运行的版本号 /proc/sys:与/proc下其他文件的只读属性不同,管理员可对/proc/sys子目录中的徐彤文件内容进行修改以更改内核的运行特性,事先可以使用ls -l查看某文件是否可写入。进程是程序的一次执行过程,动态的,包括创建、调度、执行和消亡。

m0_45148083的博客 1621

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

Linux——进程概念

进程概念精析

2302_81486993的博客 3290

linux查找被杀死的进程,linux查找进程和杀死进程

查看进程:ps -ef | grep 检索内容杀死进程:kill pid (进程号)kill -9 pid 强制杀死进程ps命令将某个进程显示出来grep命令是查找中间的|是管道命令 是指ps命令与grep同时执行PS是LINUX下最常用的也是非常强大的进程查看命令grep命令是查找,是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。grep全称是G...

weixin_34944897的博客 2447

Linux之进程

进程是程序的一次执行。进程是可以并行执行的计算。进程是一个程序与其使用的数据在处理机上顺序执行时发生的活动。进程是程序在一个数据集合上的运行过程。它是系统进行资源分配和调度的一个独立单位作业控制--- 一个命令行功能,允许一个shell实例来运行和管理多个命令,Shell的一个特性,使用户能在多个独立进程间进行切换命令及作用命令作用cmd&该命令在后台运行Ctrl+d终止一个正在前台运行的进程(含有正常含义)Ctrl+c终止一个正在前台运行的进程(含有强行含义)

qq_57289939的博客 3221

linux 系统master进程,Linux进程监视

由于复刻了 mon 项目到 etbemon 中,我花了一些时间做监视脚本。事实上监视一些事情通常很容易,但是决定监视什么才是困难的部分。进程监视脚本 ps.monitor 是我重新设计过的一个。对于进程监视我有一些思路。如果你对进程监视如何做的更好有任何建议,请通过评论区告诉我。给不使用 mon 的人介绍一下,如果一切 OK 该监视脚本就返回 0,而如果有问题它会返回 1,并使用标准输出显示错误信...

weixin_35598104的博客 2776

Linux进程——Linux进程与进程优先级

本篇文章前部分紧贴上篇Linux进程,分析完了Linux下常见的进程状态,然后初步了解了Linux进程优先级,而进程优先级与前面内容相差较大,希望大家能够多花点时间理解!

EterNity_TiMe_的计算机学习之路 885

Linux进程控制——Linux进程等待

进程等待确实非常有用,它既可以回收僵尸进程,避免造成内存泄漏,也能让父进程能够获取到子进程的退出信息,进程等待我们就先了解这么多,让我们进来看看细节!

EterNity_TiMe_的计算机学习之路 1092

Linux进程总结

当一个子进程终止时,如果它的父进程还在运行,内核会为这个终止的子进程保留一定量的信息。在这期间,父进程没有回收子进程并释放子进程占用的资源,这个子进程会成为僵尸进程,它仍然占用一定资源。并发性是在宏观上的同时向前推进,CPU使用时间轮转机制对进程进行调度,可能一个进程占用CPU短短10ms就切换去执行另一个进程了,而我们的肉眼是不可能看到这种细微的变化,所以我们在宏观概念上认为它是同时推进的,这就是并发性。孤儿字面意思就是没有父母的孩子,那孤儿进程的意思就是没有父进程的进程。这种情况是怎么发生的呢?

2401_86358707的博客 947

Linux进程

title: 进程 date: 2019-08-02 09:04:14 tags: [进程,Linux] categories: Linux 进程相关命令 解释 ps –aux 列出所有进程 ps -ef 列出所有进程 kill 发送一个特定的信号 (signal) 给 pid 的进程根据该信号而做特定的动作,若没有指定,预设是送出终止 (TERM) 的信号 kill -9 pid 杀死pid号的进程 env 查看环境变量 1、进程的概述   &nb.

菜鸟的博客 2744

【Linux】进程创建、进程终止、进程等待

进程创建、进程终止、进程等待

2203_76003626的博客 862
上一篇: Linux下需要了解的一些东西
下一篇: 数据结构之顺序表
Python_programer
博客等级 码龄9年 25粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值