linux 进程管理

LINUX系统进程管理 进程是计算机系统中最重要的概念之一,在计算机系统中并行运行着大量的程序,这些程序不可能独占系统的全部资源,而是需要这些程序共享系统资源,所以这些程序在运行时会产生一定的竞争关系。那在这种情况下,系统资源怎么分配?运行程序该如何管理呢?操作系统为了解决这一系列的问题引入了进程的概念,用来作为操作系统分配和管理系统资源的基本单位。所以进程的出现是为了让系统资源的利用更加合理,从而提高系统的运行效率。定义进程,就避免不了提到另一个概念“程序”。 阅读详情

进程管理

进程:

​ 程序: 死的, 只会占用空间

​ 进程: 活的. 一个运行起来的程序. 会占用空间, cpu等系统资源

pcb进程控制块:

​ 进程id

​ 文件描述符表

​ 进程状态 就绪态, 运行态, 挂起态, 终止态, 初始态

​ 进程工作目录位置

​ 信号相关信息资源

​ 用户id和组id

fork

pid_t fork(void);
返回值:
		成功:
		失败: -1, 设置errno, 不会创建子进程

getpid

pid_t getpid(void);
返回值:
		当前的进程标识符

getppid

pid_t getppid(void);
返回值:
		父进程的进程标识符

getuid

uid_t getuid(void);
返回值:
		当前的用户的id(当前进程的所有者)

geteuid

uid_t geteuid(void);
返回值:
		当前进程有效用户id(文件的所有者)

getgid

gid_t getgid(void);
返回值:
		当前进程使用用户的用户组id

getegid

gid_t getegid(void);
返回值:
		当前进程的有效用户组id

父子进程的内存共享

读时共享, 写时复制

execl

int execl(const char *pathname, const char *arg, ...
                       /* (char  *) NULL */);
参数:
		pathname: 启动的程序所在的位置
		*arg: argv[0], argv[1] ... , NULL (NULL 为哨兵, 用于终止读入)
返回值:
		成功: 无返回, 且其下面的程序段不执行
		失败: -1, 设置errno

execlp

int execlp(const char *file, const char *arg, ...
               /* (char  *) NULL */);
参数:
		file: 启动的程序的名字
		*arg: argv[0], argv[1] ... , NULL (NULL 为哨兵, 用于终止读入)
返回值:
		成功: 无返回, 且其下面的程序段不执行
		失败: -1, 设置errno               

与execl的区别: execlp 的 p 为PATH 即从环境变量中寻找要启动的程序

wait

pid_t wait(int *wstatus);
参数:
		wstatus: 传出参数, 用来保存子进程退出时的状态, 若仅仅是阻塞, 不关心状态, 则填NULL
返回值:
		成功: 被收集的子进程的ID
		失败: -1, 设置errno (无子进程)
		
函数功能是:
		父进程一旦调用了wait就立即阻塞自己,由wait自动分析是否当前进程的某个子进程已经退出,如果让它找到了这样一个已经变成僵尸的子进程,wait就会收集这个子进程的信息,并把它彻底销毁后返回;如果没有找到这样一个子进程,wait就会一直阻塞在这里,直到有一个出现为止。
		1. 阻塞, 等待子进程的退出
		2. 清理子进程残留在内核的pcb资源
		3. 通过传出参数, 得到子进程的结束状态
获取子进程正常终止的值:
WIFEXITED(status)->调用WEXITSTATUS(status)
获取导致子进程异常终止的值:
WIFSIGNALED(status)->调用WTERMSIG(status)

waitpid

pid_t waitpid(pid_t pid, int *status, int optains)
参数:
		pid: 指定回收的子进程pid
		
				>0: 回收指定的 ID 子进程
				-1: 回收任意子进程
				0: 回收和当前调用waitpid一个组的所有子进程
				<-1: 回收指定进程组内的任意子进程
				
		status: 传出参数, 表示进程的状态
		options: WNOHANG 指定回收的方式为 非阻塞
返回值:
		>0: 表示成功回收了子进程 pid
		0: 函数调用时, 参3 指点了WNOHANG, 并且没有子进程结束
		-1: 失败, 设置 errno
		
可以指定对某一个进程进行回收

总结:

共同: 把残留的子进程清除掉, 还能看是如何被清除的

wait/waitpid一次只能回收一个子进程(无差别回收), 若想要回收多个, 则需要加while

wait: 阻塞, 回收任意一个子进程
waitpid: 可以指定一个进程来回收, 可以设置非阻塞
waitpid(-1, &status, 0) == wait(&status)

【Linux系统】进程管理 进程是一个正在运行的程序实例,是操作系统分配资源(如 CPU 时间、内存、文件描述符等)的基本单位。每个进程都有一个唯一的标识符(PID,进程 ID),通过它可以管理和区分不同的进程。CPU ----> CPU是一个中介,这些进程是挂壁等待执行的程序,比如深圳的三和大神,打两天零点工 + 在网吧躺三天,然后再打三天零工,虽然三和大神摆烂了,但为了生存所需他们仍旧需要工作,于是,等到他们需要又会去黑中介那里接单打几天零工 —— 三和大神的工作模式就类似于电脑中的各种进程; 阅读详情

相关推荐

人形机器人五大核心零部件技术解析与国产化实况

人形机器人并非简单机械集成,而是物理、能量、感知、决策与执行五层系统毫秒级协同的复杂体。其性能瓶颈往往不在于整机算法,而深植于谐波减速器的刚度稳定性、无框力矩电机的功率密度与温升控制、六维力传感器的动态响应与温漂抑制、运动控制器的实时OS生态及灵巧手的多指协同精度等底层硬件能力。这些部件共同构成整机68.3%的成本,且国产化率差异显著——谐波减速器达72%,而高精度力矩传感器仍受制于日德厂商。本文聚焦‘谐波减速器’和‘六维力传感器’两大热词,从材料工艺、参数定义、失效模式到产线验证,揭示真正卡脖子的技术关卡

weixin_29065959的博客 408

Linux进程管理

用于查看进程树之间的关系,谁是父进程,谁是子进程,可以清楚的看出来是谁创建了谁语法:pstree [选项]

LPH3119的博客 973

Mplus—交叉滞后面板模型(Cross-Lagged Panel Model, CLPM)

本文介绍交叉滞后模型相关知识,以及显变量模型与潜变量模型在Mplus中的语法。

m0_54401011的博客 1万+

Linux进程管理指令

<br /><br />作者:北南南北<br />来自:LinuxSir.Org<br />摘要:本文讲述的时进程管理的基本概念和进程管理工具介绍;文中的重点对进程管理工具的分类介绍及应用举例,包括 ps、pgrep、top 、kill、pkill、killall、nice和renice 等工具。<br /><br /><br />1、程序和进程;<br /><br />程序是为了完成某种任务而设计的软件,比如OpenOffice是程序。什么是进程呢?进程就是运行中的程序。<br />一个运行着的程序,可能

lengyuhong的专栏 3782

利用python爬取东方财富网股吧评论并进行情感分析(一)

利用python爬取东方财富网股吧评论(一) python-东方财富网贴吧文本数据爬取 分享一下写论文时爬数据用到的代码,有什么问题或者改善的建议的话小伙伴们一起评论区讨论。 新的改变 我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客: 全新的界面设计 ,将会带来全新的写作体验; 在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示; 增加了 图片拖拽 功能,你可以将本地的图片直

YMG521000的博客 1万+

MCP详解:手把手教你理解和如何使用各种开源MCP服务

MCP 作为一种开放协议,为 AI 模型与外部世界的连接提供了标准化的解决方案。它不仅降低了开发门槛,还极大地扩展了 AI 应用的边界。无论是开发者还是普通用户,都可以通过 MCP 更高效地利用 AI 技术,实现更多智能化的功能。

王哥儿聊AI的博客 6057

linux-进程管理

进程是正在执行的一个程序或命令,每个进程都是一个运行的实体,都有自己的地址空间,并占用一定的系统资源。程序是人使用计算机语言编写的可以实现特定目标或解决特定问题的代码集合。这么讲很难理解,那我们换一种说法。程序是人使用计算机语言编写的,可以实现一定功能,并且可以执行的代码集合。而进程是正在执行中的程序。当程序被执行时,执行人的权限和属性,以及程序的代码都会被加载入内存,操作系统给这个进程分配一个 ID,称为 PID(进程 ID)。也就是说,在操作系统中,所有可以执行的程序与命令都会产生进程。

qq_64485253的博客 1309

【实战】LLaMA-Factory 如何做 LLM 的多轮对话微调

LLaMA-Factory 作为一个广受欢迎、易于使用的 LLM 微调框架,为开发者提供了便捷的途径来针对特定任务(包括多轮对话)优化模型。本文将深入探讨 LLaMA-Factory 如何支持多轮对话微调,涵盖其基本概念、数据准备、核心机制、评估方法等。简单来说,多轮对话是指包含两个或更多轮次(Turn)的交互过程,其中每一轮通常包含用户的一个输入和模型的一个输出。后续轮次的回应通常依赖于前面轮次的对话内容。模型需要理解并记忆对话历史。

kakaZhui的博客 1311

Linux——内核——进程管理

本文系统介绍了Linux进程管理的核心内容,包括进程的基本概念(定义、状态)和关键管理命令(ps、top、kill等)。详细阐述了进程创建、调度、监控及终止等操作流程,以及进程间通信机制和常用管理工具(systemctl、screen等)。内容涵盖进程全生命周期管理,为Linux系统管理员提供全面的操作指南。

m0_65153260的博客 569

【Hermes Agent】2026 Hermes Agent 最新入门级实战指南:从原理、部署、模型配置到落地 Demo

当下 Vibe Coding、AI 自动化时代,单纯对话大模型已经没有竞争力,

十年老程序猿,AI 疯狂研究专家,前沿硬核知识分享 245

uniapp - 超详细的 H5 公众号网页微信登录示例代码,提供从 0-1 公众号配置及详细注释代码(站在新手小白的角度)第三方微信授权登录的实现!!

uniapp微信浏览器H5授权微信登录,UniApp开发H5接入微信登录的全过程,uniapp的H5页面使用微信登录,uniapp H5微信授权登录,H5之微信授权登陆 (uniapp网页版微信授权登录),uni-app开发H5第三方微信授权登录的实现,uniapp如何实现微信授权登录,公众号H5页面接入微信登录流程,uni-app - 最详细 H5 网页接入微信登录功能,提供公众号配置与详细注释示例代码(移动端网页实现点击登录按钮后 调用微信公众号授权登录功能 详细讲解接入流程与详细示例代码)官方最新超级

✅ 精选推荐文章 1万+

linux进程管理,Linux进程管理优秀教程

Linux进程管理优秀教程Linux是一个多用户多任务的操作系统。多用户是指多个用户可以在同一时间使用计算机系统;多任务是指Linux可以同时执行几个任务,它可以在还未执行完一个任务时又执行另一项任务。以下是小编为大家搜索整理的Linux进程管理优秀教程,希望能给大家带来帮助!更多精彩内容请及时关注我们应届毕业生考试网!在Linux系统上所有运行的'东西都可以称之为一个进程。每个用户任务、每个系统...

weixin_39711914的博客 185

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

linux进程管理

Linux进程管理 Linux实现进程管理 在linux中每个执行的程序都称为一个进程。每个进程都分配一个ID号 每一个进程都会对应一个父进程,这个父进程可以复制多个子进程 每个进程都可以以两种方式存在: 前台和后台 一般系统的服务都是以后台进程的方式存在 Ps命令 相关字段: PID 进程识别号 TTY 终端机号 TIME 此进程所消耗的CPU时间 CMD 正在执行的命令或进程名 ps -a 显示当前终端的所有进程信息 Ps -u 以用户的格式显示进程信息 Ps -x 显示后台运行的参数 相关例子 Ps

qq_51088445的博客 6673

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Linux 进程管理

作者:北南南北来自:LinuxSir.Org摘要:本文讲述的时进程管理的基本概念和进程管理工具介绍;文中的重点对进程管理工具的分类介绍及应用举例,包括 ps、pgrep、top 、kill、pkill、killall、nice和renice 等工具。 目录 1、程序和进程; 1.1 进程分类;1.2 进程的属性;1.3 父进程和子进程; 2、进程管理; 2.1 ps 监视进程工具...

weixin_33843409的博客 239

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

深入解析 Linux 进程管理

深入学习进程相关知识,包括概念、状态、创建、特殊进程情况、调度、优先级、特性以及环境变量与相关指令、函数等。

Edison's 小宇宙 7万+

linux进程管理和调度

进程:是正在运行的程序的实例,是操作系统进行资源分配和调度的基本单位。进程ID(PID):每个进程都有一个唯一的标识符,称为进程ID。

weixin_42300449的博客 865

Linux中的进程管理

进程的调度启动可以通过 at、crontab 命令进行设置,其中 at 命令用于设置一次性(如12:15 时重启网络服务)计划任务,crontab 命令用于设置周期性运行(如每周五 17:30 备份数据库)的计划任务。启动后台进程需要使用“&”操作符,将“&”操作符放在要执行命令的最后面,进程启动后会直接放入后台运行,而不占用前台的命令操作界面,方便用户进行其他操作。在 Linux 中,进程是系统中所有任务的核心,进程管理命令主要用于查看、控制和调度系统中的进程。这个命令可以帮助你快速找到之前运行的命令。

xiaozhenghahaha的博客 785
上一篇: linux 系统编程—文件/文件系统
下一篇: linux 管道
ghost_him
博客等级 码龄6年 598粉丝 90原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值