进程以及进程间关系

Windows环境下DataEase一站式安装指南(含WSL2+Docker配置) 本文详细介绍了在Windows环境下通过WSL2和Docker快速部署DataEase的完整教程。从WSL2配置、Docker环境搭建到DataEase离线安装,逐步指导用户完成一站式部署,特别适合需要快速搭建数据分析平台的开发者。教程包含常见问题解决方案和性能优化技巧,帮助用户高效使用这款国产开源数据可视化工具。 阅读详情


进程是现代操作系统最为深刻的概念之一,它提供了运行中程序的抽象。一个进程指的是正在内存中运行的一个程序,任何程序都运行在进程的上下文中,进程的上下文包括虚拟的地址空间、独占的cpu以及寄存器等系统状态和系统资源。有了进程这一概念,程序员得以从硬件繁琐的细节中解脱出来,从而能够集中精力在应用程序的功能设计与实现上。


操作系统中最开始只有init一个进程,其后所有的进程都由它创建,称作子进程,创建子进程的称作父进程。一个子进程只能由一个父进程,而一个父进程可以有多个子进程,可以有多少依赖于系统的具体实现。


创建进程的原语-->fork函数:一次调用,两次返回,在子进程中返回0,父进程中返回子进程pid号

执行其它程序的原语-->exec函数:一个进程调用此函数,系统将参数中指出的程序装载入进程的地址空间,覆盖原来的程序,开始执行新的程序

进程自动终止的原语-->exit函数:进程自动终止,并附上终止状态,即退出码

注:终止其它进程需要用到信号控制原语,待学习完信号之后再行介绍


以unix系统中的c程序为例,程序启动时,进程被创建,操作系统首先载入启动例程,取得命令行参数以及环境变量,然后将命令行参数传递给main函数,main的函数体开始执行。函数结束时,启动例程调用exit函数,执行程序结束后操作。此时进程已经终止,但是并未完全退出系统,操作系统为已经终止的进程维护了一组信息,如运行时间、终止方式以及原因等,直到已终止进程的父进程调用wait函数获取子进程终止状态,然后系统清理为已终止进程维护信息所占用的资源。如果一个进程已经终止,但是其父进程一直没有获取其终止状态,那么此子进程便成为僵死进程,一直占用系统资源,若系统中僵死进程过多,系统会因为内存空间用完而崩溃。

注:如果父进程在子进程之前终止,那么子进程的父进程变为init进程,并且子进程终止时,init进程会收到信号并且获取子进程终止状态,以免产生僵死进程


一个正在运行的程序(即进程)有着许多属性,经常用于进程控制的有:实际用户id,有效用户id,设置用户id、组id、进程id、进程组id、会话id。再判断一个进程是否有权限执行某个操作时,通常会检查进程的有效用户id。通常情况下这不会有什么问题,但是在执行一个设置了用户id位的程序时,则会出现安全问题。假设程序proc的所有者是root,并且设置了用户id位,所有人可执行,现在yulin(用户id为503)这个用户执行proc程序,进程的实际用户id为503,但是由于程序设置了用户id,所以进程的有效用户id为0(即root),那么yulin这个用户在执行程序proc时便拥有了超级权限,这是一个安全、稳定的系统中不应该出现的,所以在执行此类程序时,应该在fork子进程之后,调用exec之前更改进程的有效用户id。


进程id是操作系统中唯一的进程标识,一个进程只会有一个进程id以及一个进程组id。会话是一个或者多个进程组的组合,一个会话通常会与一个终端联系起来,会话还会有一个前台进程组和一个或者多个后台进程组。前台进程组可以直接对终端进行读写,而后台进程组不能够直接对终端进行操作,如果一个属于后台进程组的进程组希望读写终端,那么进程将会收到一个SIGTTIN或者SIGTTOU信号,然后进程将会停止,用户可以使用fg命令将进程调到前台执行,此时进程可以读写终端。

注:有关后台进程是否可以直接读写终端可以通过命令设置允许或者进程


YOLO26涨点改进 | Conv篇/小目标改进 | AAAI 2025 FBRT-YOLO 两个轻量级FCM和MKP模块, 助力无人机航拍任务VisDrone、UAVDT和AI-TOD高效涨点 本文提出FBRT-YOLO26模型,通过引入两个轻量级模块FCM和MKP优化航拍图像检测性能。FCM模块通过特征互补映射解决小目标信息丢失问题,MKP模块利用多尺度卷积核增强目标感知能力。在VisDrone等数据集上的实验表明,该方法在精度和速度上均优于现有实时检测器。文章详细介绍了模块结构、核心代码实现及YAML配置文件修改方法,为航拍图像中的小目标检测提供了高效解决方案。该模型实现了检测精度与效率的良好平衡,具有实际应用价值。 阅读详情

相关推荐

基于555定时器的D类功放设计:从PWM原理到无反馈电路实践

D类功放(数字功放)是一种高效率的音频放大技术,其核心原理是脉冲宽度调制(PWM)。它将输入的模拟音频信号转换为一系列高速开关的脉冲,通过控制功率开关管(如MOSFET)的通断,再经低通滤波器还原放大后的音频。相比传统AB类功放,其转换效率通常超过90%,显著降低了热能损耗。这项技术在追求高能效和小型化的现代音频设备中价值凸显,广泛应用于有源音箱、汽车音响和便携式设备。本文聚焦于一种独特的实现方案:以经典的555定时器芯片为核心,构建一个无整体负反馈的D类功放。通过剖析其PWM调制器、FET电压-电流转换级

weixin_30162121的博客 220

进程间关系

进程间的关系

风华绝代 2635

玩转 Milvus(二):在 Ubuntu 22.04(WSL2)上安装 Milvus

本文详细介绍了在Ubuntu 22.04(WSL2)环境下安装Milvus向量数据库的两种单机模式:Milvus Lite和Milvus Standalone。Milvus Lite作为轻量级Python库,适合快速学习和小规模实验,只需通过pip安装即可使用。Milvus Standalone则支持Docker和Docker Compose两种部署方式,适合开发测试或小规模生产环境。文章对比了不同安装方式的优缺点,并提供了验证案例和常见问题解答,帮助开发者快速上手,实现简单的语义搜索功能。

企业级后端与 AI 应用开发双线探索 2506

进程间的关系

    进程间有什么关系呢?我们都知道使用fork函数创建进程是一次调用两次返回。父进程返回子进程的进程ID(非0),子进程返回0值。很显然,使用fork创建出来的两个进程是父子关系。那如果两个进程都是同一个父进程创建出来的,它们是什么关系呢?“兄弟”关系。那么,两个或者多个进程之间,都有什么关系呢?在介绍进程间关系之前先介绍两个重要的概念:前台进程与后台进程       我们输入的命令由bash...

半暖的博客 3888

机械臂速成小指南(七):从旋转矩阵到齐次变换——机械臂位姿的数学表达

本文详细介绍了机械臂位姿描述的数学基础,包括旋转矩阵、欧拉角和齐次变换等核心概念。通过解析旋转矩阵的几何意义和合成方法,以及欧拉角的直观描述,帮助读者理解机械臂位姿的数学表达。文章还探讨了齐次变换在工程实践中的应用,并提供了数值稳定性、坐标系约定和计算效率等实用建议。

cuda7parallel的博客 834

赴美参加学术会议办理流程

有幸能在研究生阶段获得学校资助出国参加学术会议,首先要感谢学校的支持,以及学院和实验室的各位老师~ 接下来说下参会整个准备过程: 本人在接到论文录用通知后,就开始办理相关手续。因为会议地点是美国夏威夷,而且录用通知时间与会议召开时间只隔两个月左右,所以接下来两个月时间要办好学校出国申请手续,赴美签证,因为专业原因,据说签证不好办,所以时间比较紧。学校出国申请和签证相关材料是并行进行的,赴美花费...

xingxin_xu的博客 3194

操作系统-进程和程序之间的关系(一对一,一对多,多对一,多对多)

        进程和程序之间可以形成一对一,一对多,多对一,多对多的关系,分别举例说明在什么情况下会形成这样的关系? 进程的定义 从不同的角度进程可以有不同的定义,比较典型的定义有: (1)进程是程序的一次执行过程。 (2)进程是一个程序及其数据在处理机上顺序执行时所发生的活动。 (3)进程是具有独立功能的程序在一个...

dawuga的博客 1万+

IEEE Access投稿全流程:从LaTeX模板到Overleaf实战(附避坑指南)

本文详细解析了向IEEE Access期刊投稿的完整流程,重点介绍了如何使用LaTeX模板在Overleaf平台上高效撰写和格式化论文。内容涵盖模板选择、作者信息填写、公式图表排版、参考文献管理(BibTeX)以及投稿前的最终检查清单,旨在帮助研究者,尤其是LaTeX新手,规避常见技术问题,顺利完成符合期刊严格要求的稿件提交。

open4的博客 574

计算机操作系统学习-进程与线程

由于每个进程的用户空间都是独立的,不能相互访问,这时就需要借助内核空间来实现进程间通信,原因很简单,每个进程都是共享一个内核空间。Linux 内核提供了不少进程间通信的方式,其中最简单的方式就是管道,管道分为「匿名管道」和「命名管道」还有消息队列,共享内存,信号量和信号等等。

abc123mma的博客 388

SO逆向入门实战教程一:OASIS

文章目录一、前言二、准备三、Unidbg模拟执行四、ExAndroidNativeEmu 模拟执行五、算法分析六、尾声 一、前言 这是SO逆向入门实战教程的第一篇,总共会有十三篇,十三个实战。有以下几个注意点: 主打入门级的实战,适合有一定基础但缺少实战的朋友(了解JNI,也上过一些Native层逆向的课,但感觉实战匮乏,想要壮壮胆,入入门)。 侧重新工具、新思路、新方法的使用,算法分析的常见路子是Frida Hook + IDA ,在本系列中,会淡化Frida 的作用,采用Unidbg Hook + .

lilac的博客 2万+

HFSS实战项目——GPS北斗双模微带天线

本文设计了一款方形圆极化微带天线应用于北斗B1和GPSL1频段,满足高增益、低VSWR、适当方向图等要求。设计中心频率为1568MHz,介质板采用厚度h=1.6mm的Arlon AD450(tm)板,相对介电常数为4.5,采用探针馈电。

2401_87464239的博客 1764

操作系统中的进程间相互作用

在一个计算机系统中存在着多个进程,这些进程之间可能有逻辑上的关系,也可能没有逻辑上的关系。进程之间无论是否存在逻辑上的关系,由于它们都要共享或竞争一个计算机系统中的资源,所以不可避免地会互相发生作用。本节专门研究进程间的相互作用。 一、相关进程和无关进程 在一个多道程序系统中同时运行的并发进程通常有多个。在逻辑上具有某种联系的进程称为相关进程,在逻辑上没有任何联系的进程称为无关进程。并发进程相...

一个不爱说话的程序员 2696

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

【Linux】进程间关系与守护进程

通过上述步骤和示例代码,你可以在Linux系统中创建和管理守护进程,实现后台服务和系统管理的任务。在Linux系统中,进程间关系和守护进程(Daemon) 是操作系统管理的核心概念,它们对。r ),通常通过调用close(0)、1 close(1) 和close(2) 实现。在Linux中,进程间关系通常指的是-个进程如何与其他进程交互或依赖。1. 父子关系:当一个进程创建了另-个进程时,新创建的进程称为子进程,而创建它的进。sleep(10);例如,如果A是B的父进程,而B是C的父进程,则A是C的祖先。

Rverdoser的博客 656

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

【Linux网络#6】:进程间关系 与 守护进程

这篇文章主要是对之前学的前后台进程作了知识性的归纳,并且还讲述了 守护进程这个东西,方便我们后面对网络编程的学习

island1314的博客 1700

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Linux操作系统:进程间关系

摘要:本文介绍了Linux系统中的进程管理相关概念,包括前台/后台进程、进程组、会话、终端和作业控制。重点讲解了进程组是由多个相关联进程组成的集合,会话是进程组的更高层次组织单元,通常与终端绑定。文章还详细说明了终端如何与会话交互,以及如何通过作业控制命令管理后台任务。通过这些机制,系统可以更好地组织和管理进程,为后续实现守护进程提供理论基础。

htw250056的博客 1321

四、进程间的制约关系

进程间的制约关系 一、进程同步 多个相互合作的进程在一些关键点上可能需要互相等待或互相交换消息。一个进程运行到某一点时,除非合作进程已经完成了某种操作或发来了消息,否则就必须暂时等待那些操作的完成或信息的到来,进程间的这种关系称为同步。 暂停等待已取得同步的那一点,称为同步点;需要等待的由其他进程完成的操作或发送的信息,称为同步条件。 同步关系是一种直接制约关系。 同步关系有如下特...

fighting 1万+

网络实践——进程间关系与守护进程

本文介绍了进程间关系与守护进程的相关概念。首先,文章指出服务器在终端运行的危险性,引出守护进程的必要性。然后详细讲解了进程组、任务/作业、会话等进程间关系,包括进程组ID(PGID)、会话ID(SID)等概念。接着阐述了前台作业和后台作业的区别、作业控制方法(如jobs、fg、bg命令)以及控制终端的概念。最后,提出通过创建新会话将服务器转换为守护进程的方法,使其能够脱离控制终端独立运行,从而保证服务的稳定性。

2301_79705195的博客 961

Linux:进程间关系与守护进程

进程间关系 除了我们所知道的父子关系,兄弟关系等,进程之间还有两个很重要的关系,即进程组关系和会话关系。 进程组作业和会话 例如: [Daisy@localhost Linux3]$ sleep 1000 | sleep 20000 | sleep 3000 & [1] 3042 我们进行了3个进程,&表示放在后台运行,运行的结果是[1] 3042其中1表示作业号,3042是...

碧瑶的博客呀 186

Linux进程间关系和守护进程

Linux进程间关系和守护进程

Xpccccc的博客 1043

Linux进程间的关系

Linux进程间的关系 Linux下每个进程都隶属于一个进程组,每个进程都包含PID、PGID、SID。 文章目录Linux进程间的关系前言一、进程组二、会话三、ps命令查看进程间的关系四、系统资源限制五、改变工作目录和根目录六、服务器程序后台化 前言 提示:这里可以添加本文要记录的大概内容: 例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。 提示:以下是本篇文章正文内容,下面案例可供参考 一、进程组 #include <

qq_43807092的博客 609

进程间关系与守护进程

进程间关系与守护进程,感兴趣的宝子们千万不要错过~~

wer24_25的博客 1220
上一篇: 构造函数探索
下一篇: c++类的特性探究(一)
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值