当前位置: 首页 > news >正文

Linux进程的认识

在这里插入图片描述

查看进程指令proc/ps

注意哦, 我们经常使用的指令, 像ls, touch…这些指令在启动之后本质上也是进程

proc 是内存文件系统, 存放着当前系统的实时进程信息. 每一个进程在系统中, 都会存在一个唯一的标识符(pid -> process id), 就如同学生在学校里有一个专门的学号一样.

在这里插入图片描述

大多数进程信息同样可以使用topps这些用户级工具来获取

ps命令 用于报告当前系统的进程状态。可以搭配kill指令随时中断、删除不必要的程序。
ps的选项
在这里插入图片描述
在这里插入图片描述
**head -1 **只输出第一行
在这里插入图片描述

grep -v命令

在这里插入图片描述

kill进程终止

kill -9是杀死进程的终极武器。一般情况下慎用,以防产生什么系统故障或者影响软件的再运行环境。
在这里插入图片描述

获取子ID(getpid)

在这里插入图片描述

从运行结果可以看出,我们的子类进程的ip只要一结束重写运行ip就会变,但是父类ip不会变,父类不变说明命令行所有指令都是bash的子进程
在这里插入图片描述

在这里插入图片描述

创建子进程(系统调用创建进程 fork)

fork()如果成功了返回值为子进程的id并且0返回给子进程,如果失败了返回-1给父类,没有子进程创建
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

问题1:为什么fork要给子进程返回0,给父进程返回子类的id呢?

他们赋值不同是为了区分不同的执行流,执行不同的代码,一般而言fork之后的代码都是父子共享。
这是因为后期父类会对子类进行修改,所以我们需要提前保存子类的id,而子类可以通过getpid函数来得到父类的id,所以只需要赋值0标记创建成功即可

问题2:一个函数是如何做到返回两次的?

在我们fork后,同一个程序会执行两次,这是因为新建的子类和父类的代码时共用的且不可被修改。除非我们做一下判断返回值的选项来分别输出
在这里插入图片描述
在这里插入图片描述
那么我们为什么要创建子进程呢?
这是因为我们不想让父和子做同样的事情,需要想办法分开输入,所以我们就从frok()的返回值下手

那么是如何做到返回两次的呢?这是因为fork是一个函数,它内部对马上要进行的子进程进行了一些包裹,最后我们return的时候会返回两次,这是因为return语句是父和子共享的,所以就会出现两个结果,输出两次
在这里插入图片描述

问题3:一个变量怎么会有不同的内容?

当fork了一个子进程后,如果子进程没有新的成员或者函数方法,并且也没有对父类进行修改,则这是它和父类是共用的同一空间和代码区。
当他重写了父类的方法或者自己新建了函数、变量,则这是系统会为他新建一块空间,这是我们叫
写时拷贝
当fork执行成功后,如果父子进程被创建好,谁先运行是由调度器来决定的。

相关文章:

Linux进程的认识

查看进程指令proc/ps 注意哦, 我们经常使用的指令, 像ls, touch…这些指令在启动之后本质上也是进程 proc 是内存文件系统, 存放着当前系统的实时进程信息. 每一个进程在系统中, 都会存在一个唯一的标识符(pid -> process id), 就如同学生在学校里有一个专门的学号一样. 大…...

向量vector与sort()

运行代码&#xff1a; //向量与sort() #include"std_lib_facilities.h" //声明Item类 struct Item {string name;int iid;double value;friend istream& operator>>(istream& is, Item& ii);friend ostream& operator<<(ostream& o…...

Netty学习(三)

文章目录 三. Netty 进阶1. 粘包与半包1.1 粘包现象服务端代码客户端代码 1.2 半包现象服务端代码客户端代码 1.3 现象分析粘包半包缘由滑动窗口MSS 限制Nagle 算法 1.4 解决方案方法1&#xff0c;短链接方法2&#xff0c;固定长度方法3&#xff0c;固定分隔符方法4&#xff0c…...

c++学习(布隆过滤器)[23]

布隆 布隆过滤器&#xff08;Bloom Filter&#xff09;是一种概率型数据结构&#xff0c;用于判断一个元素是否可能存在于一个集合中。它使用多个哈希函数和位图来表示集合中的元素。 布隆过滤器的基本原理如下&#xff1a; 初始化&#xff1a;创建一个长度为m的位图&#xf…...

React的UmiJS搭建的项目集成海康威视h5player播放插件H5视频播放器开发包 V2.1.2

最近前端的一个项目&#xff0c;大屏需要摄像头播放&#xff0c;摄像头厂家是海康威视的&#xff0c;网上找了一圈都没有React集成的&#xff0c;特别是没有使用UmiJS搭脚手架搭建的&#xff0c;所以记录一下。 海康威视的开放平台的API地址&#xff0c;相关插件和文档都可以下…...

细讲TCP三次握手四次挥手(二)

TCP/IP 协议族 应用层 应用层( application-layer &#xff09;的任务是通过应用进程间的交互来完成特定网络应用。应用层协议定义的是应用进程&#xff08;进程&#xff1a;主机中正在运行的程序&#xff09;间的通信和交互的规则。 对于不同的网络应用需要不同的应用层协议…...

LeetCode Top100 Liked 题单(序号19~)

19. Remove Nth Node From End of List 题意&#xff1a;给一个链表&#xff0c;删除从尾数起的第n个结点&#xff0c;返回头节点。 我的思路 指针到最后&#xff0c;数出来有多少个&#xff0c;之从前向后数&#xff0c;再删掉节点 代码 10ms Beats 16.06% class Solution…...

qssh使用

到官网下载qssh的源码QSsh-botan-1&#xff0c;使用qtcreator打开后&#xff0c;直接编译&#xff0c;即可得到qssh的库 头文件将QSsh-botan-1\src\libs\ssh目录下的.h文件拷到include文件夹下&#xff0c;即为库头文件。 qssh有个问题&#xff0c;如果你将qssh的类放在子线程…...

持续部署CICD

目录 &#xff08;1&#xff09;CICD的开展场景 &#xff08;2&#xff09;项目实际应用 CICD 是持续集成&#xff08;Continuous Integration&#xff09;和持续部署&#xff08;Continuous Deployment&#xff09;简称。指在研发过程中自动执行一系列脚本来降低开发引入 bug…...

ARM 循环阻塞延迟函数

串行驱动的关键是双方能够按照既定的时序进行检测、设置相关引脚上的电平&#xff0c;比如单总线、I2c这样基本的可以用GPIO模拟的时序协议&#xff0c;需要主从双方&#xff0c;必须在链路接口内严格按照微妙级的延迟单位进行时序同步。 所以&#xff0c;在这种对时间要求很敏…...

Spark的DataFrame和Schema详解和实战案例Demo

1、概念介绍 Spark是一个分布式计算框架&#xff0c;用于处理大规模数据处理任务。在Spark中&#xff0c;DataFrame是一种分布式的数据集合&#xff0c;类似于关系型数据库中的表格。DataFrame提供了一种更高级别的抽象&#xff0c;允许用户以声明式的方式处理数据&#xff0c…...

WPF线程使用详解:提升应用性能和响应能力

在WPF应用程序开发中&#xff0c;线程的合理使用是保证应用性能和响应能力的关键。WPF提供了多种线程处理方式&#xff0c;包括UI线程、后台线程、Task/Async Await和BackgroundWorker。这些方式与传统的Thread类相比&#xff0c;更加适用于WPF框架&#xff0c;并能够简化线程操…...

ava版知识付费平台免费搭建 Spring Cloud+Spring Boot+Mybatis+uniapp+前后端分离实现知识付费平台

提供私有化部署&#xff0c;免费售后&#xff0c;专业技术指导&#xff0c;支持PC、APP、H5、小程序多终端同步&#xff0c;支持二次开发定制&#xff0c;源码交付。 Java版知识付费-轻松拥有知识付费平台 多种直播形式&#xff0c;全面满足直播场景需求 公开课、小班课、独…...

libuv库学习笔记-basics_of_libuv

Basics of libuv libuv强制使用异步和事件驱动的编程风格。它的核心工作是提供一个event-loop&#xff0c;还有基于I/O和其它事件通知的回调函数。libuv还提供了一些核心工具&#xff0c;例如定时器&#xff0c;非阻塞的网络支持&#xff0c;异步文件系统访问&#xff0c;子进…...

【Vuvuzela 声音去噪算法】基于流行的频谱减法技术的声音去噪算法研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…...

Vue + Element-ui组件上传图片报错问题解决方案

在前端开发中&#xff0c;我们经常需要模拟网络请求以进行单元测试或开发调试。而在模拟网络请求时&#xff0c;我们常常会使用到MockXMLHttpRequest对象。MockXMLHttpRequest对象是一个用于模拟XMLHttpRequest对象的工具&#xff0c;它提供了一种简单的方式来模拟网络请求&…...

java商城系统和php商城系统对比

java商城系统和php商城系统是两种常见的电子商务平台&#xff0c;它们都具有一定的优势和劣势。那么&#xff0c;java商城系统和php商城系统又有哪些差异呢&#xff1f; 一、开发难度 Java商城系统和PHP商城系统在开发难度方面存在一定的差异。Java商城系统需要使用Java语言进…...

某制造企业基于 KubeSphere 的云原生实践

背景介绍 随着业务升级改造与软件产品专案的增多&#xff0c;常规的物理机和虚拟机方式逐渐暴露出一些问题&#xff1a; 大量服务部署在虚拟机上&#xff0c;资源预估和硬件浪费较大&#xff1b;大量服务部署在虚拟机上&#xff0c;部署时间和难度较大&#xff0c;自动化程度…...

Electron 学习_BrowserWindow

BrowserWindow创建并控制浏览器窗口(主进程) 条件&#xff1a;在 app 模块 emitted ready 事件之前&#xff0c;您不能使用此模块。 1.在加载页面时&#xff0c;渲染进程第一次完成绘制时&#xff0c;如果窗口还没有被显示&#xff0c;渲染进程会发出 ready-to-show 事件 。 在…...

Docker学习笔记,包含docker安装、常用命令、dockerfile、docker-compose等等

&#x1f600;&#x1f600;&#x1f600;创作不易&#xff0c;各位看官点赞收藏. 文章目录 Docker 学习笔记1、容器2、Docker 安装3、Docker 常用命令4、Docker 镜像5、自定义镜像5.1、镜像推送到阿里云5.2、镜像私有库 6、数据卷7、Docker 软件安装8、Docker File8.1、常见保…...

5分钟部署清华TurboDiffusion,视频生成加速100倍,小白也能玩转AI视频

5分钟部署清华TurboDiffusion&#xff0c;视频生成加速100倍&#xff0c;小白也能玩转AI视频 1. TurboDiffusion技术背景与核心价值 1.1 技术发展历程 TurboDiffusion是由清华大学等机构联合推出的视频生成加速框架。该框架解决了传统扩散模型在视频生成过程中存在的计算效率…...

ROS机器人开发实战:利用tf2库高效处理四元数、欧拉角与旋转矩阵的转换

1. 为什么机器人开发需要处理多种姿态表示 在机器人开发中&#xff0c;我们经常需要处理各种姿态数据。无论是移动机器人的定位信息、机械臂末端执行器的位姿&#xff0c;还是传感器数据的融合&#xff0c;都离不开对物体在三维空间中位置和朝向的描述。但有趣的是&#xff0c;…...

DLSS Swapper终极指南:如何快速管理游戏DLSS版本提升性能?

DLSS Swapper终极指南&#xff1a;如何快速管理游戏DLSS版本提升性能&#xff1f; 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper DLSS Swapper是一款专为NVIDIA显卡用户设计的智能管理工具&#xff0c;能够无缝管理游…...

CLIP-GmP-ViT-L-14开源模型部署指南:HuggingFace Transformers无缝集成方案

CLIP-GmP-ViT-L-14开源模型部署指南&#xff1a;HuggingFace Transformers无缝集成方案 想快速验证一张图片和几段文字描述哪个最匹配吗&#xff1f;手动写代码调用模型、处理数据、计算相似度&#xff0c;是不是想想就觉得麻烦&#xff1f;今天给大家介绍一个开箱即用的工具&…...

Qwen3-TTS-1.7B惊艳案例:带背景音乐的语音合成抗干扰能力实测

Qwen3-TTS-1.7B惊艳案例&#xff1a;带背景音乐的语音合成抗干扰能力实测 1. 引言&#xff1a;当AI语音合成遇上背景音乐 想象一下这个场景&#xff1a;你正在制作一个短视频&#xff0c;需要给画面配上解说。你找到了一段完美的背景音乐&#xff0c;但当你尝试录制旁白时&am…...

5个高效能的LabelImg图像标注效率提升实践

5个高效能的LabelImg图像标注效率提升实践 【免费下载链接】labelImg LabelImg is now part of the Label Studio community. The popular image annotation tool created by Tzutalin is no longer actively being developed, but you can check out Label Studio, the open s…...

实时手机检测-通用:5分钟快速部署,小白也能轻松上手

实时手机检测-通用&#xff1a;5分钟快速部署&#xff0c;小白也能轻松上手 1. 模型简介 实时手机检测-通用是一款基于DAMOYOLO-S框架的高性能目标检测模型&#xff0c;专门用于在各种场景中快速准确地检测手机设备。这个模型在精度和速度上都超越了传统的YOLO系列方法&#…...

3个关键场景:如何用Awesome Claude Code打造你的AI开发工作流

3个关键场景&#xff1a;如何用Awesome Claude Code打造你的AI开发工作流 【免费下载链接】awesome-claude-code A curated list of awesome commands, files, and workflows for Claude Code 项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-claude-code 你…...

Qwen-Image-Edit-2509场景应用:品牌VI统一与多语言海报智能修改

Qwen-Image-Edit-2509场景应用&#xff1a;品牌VI统一与多语言海报智能修改 1. 品牌视觉管理的痛点与机遇 全球500强企业的设计总监们每年要面对一个共同难题&#xff1a;如何确保分布在50个国家的分公司&#xff0c;在制作本地化营销素材时&#xff0c;都能严格遵守总部制定…...

【同态加密实战】从Paillier到BFV:算法原理与编码艺术深度解析

1. 同态加密&#xff1a;数据隐私保护的魔法钥匙 想象一下&#xff0c;你有一把能锁住数据的魔法钥匙——即使数据被锁在箱子里&#xff0c;别人依然可以对箱子里的数据进行计算&#xff0c;而无需打开箱子看到原始内容。这就是同态加密的神奇之处。作为密码学领域的"圣杯…...