【lesson13】进程控制初识

文章目录

  • 进程创建

进程创建

请你描述一下,fork创建子进程操作系统都做了什么?
fork创建子进程,系统里多了一个进程,进程 = 内核数据结构 + 进程代码数据,内核数据结构由OS维护,进程代码数据一般由磁盘维护。

进程调用fork,当控制转移到内核中的fork代码后,内核做:
1.分配新的内存块和内核数据结构给子进程
2.将父进程部分数据结构内容拷贝至子进程
3.添加子进程到系统进程列表当中
4.fork返回,开始调度器调度

创建子进程给子进程分配对应的内核结构,必须子进程自己独有,因为进程具有独立性!

理论上子进程也要有自己的代码和数据。
可是一般而言,子进程没有加载的过程,也就是子进程没有自己的代码和数据!!
所以子进程只能使用父进程的代码和数据。

代码都是不可读写只能读取,所以父子共享并没有问题。

数据可能被修改所以必须分离!

对于数据而言:
1.创建进程的时候就直接拷贝分离?并不是的,可能子进程根本不会用到该数据空间,即便用到,也有可能只是读取。

创建子进程不需要将不会被访问或者只会读取的数据拷贝一份。
但是什么样的数据值得拷贝呢?
将来会被父进程或者子进程写入的数据!!

一般而言即便是OS也无法提前知道哪些空间可能会被写入!
提前拷贝了,也不一定会立马使用。

所以OS选择了写实拷贝技术,对父子进程的数据进行分离!
OS为何要选择写实拷贝技术,对父子进程数据进行分离?
1.用的时候,在给你分配是高校使用内存的一种表现。
2.OS无法在代码执行前预知哪些空间会被访问。

fork之前进程代码是共享的fork之后还是共享的吗?是的。

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/112855.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

位运算相关笔记

位运算 Part 1:基础 左移:左移一位,相当于某数乘以 2 2 2。左移 x x x位,相当于该数乘以 2 x 2^x 2x。 右移:右移一位,相当于某数除以 2 2 2。右移 x x x位,相当于该数除以 2 x 2^x 2x。 与运算&…

【Edabit 算法 ★☆☆☆☆☆】【分钟转秒数】Convert Minutes into Seconds

【Edabit 算法 ★☆☆☆☆☆】【分钟转秒数】Convert Minutes into Seconds math numbers Instructions Write a function that takes an integer minutes and converts it to seconds. Examples convert(5) // 300 convert(3) // 180 convert(2) // 120Notes Don’t forge…

markdown语法(更新中)

a ⃗ \vec{a} a 向量 a ‾ \overline{a} a 平均值 a ‾ \underline{a} a​下横线 a ^ \widehat{a} a (线性回归,直线方程) y尖 a ~ \widetilde{a} a 颚化符号 等价无穷小 a ˙ \dot{a} a˙ 一阶导数 a \ddot{a} a 二阶导数 $\vec{a}$ 向量 $\overline{a}$ …

【三维重建】DreamGaussian:高斯splatting的单视图3D内容生成(原理+代码)

文章目录 摘要一、前言二、相关工作2.1 3D表示2.2 Text-to-3D2.3 Image-to-3D 三、本文方法3.1生成式 高斯 splitting3.2 高效的 mesh 提取3.3 UV空间的纹理优化 四. 实验4.1实施细节4.2 定性比较4.3 定量比较4.4 消融实验 总结(特点、局限性) 五、安装与…

【框架源码篇 01】Spring源码-手写IOC

Spring源码手写篇-手写IoC 一、IoC分析 1.Spring的核心 在Spring中非常核心的内容是 IOC和 AOP. 2.IoC的几个疑问? 2.1 IoC是什么? IoC:Inversion of Control 控制反转,简单理解就是:依赖对象的获得被反转了。 2.2 IoC有什么好处? IoC带…

[ROS2系列] ORBBEC(奥比中光)AstraPro相机在ROS2进行rtabmap 3D建图

目录 背景: 一、驱动AstraPro摄像头 二、安装rtabmap error1:缺包 三、尝试 四、参数讲解 五、运行 error2: Did not receive data since 5 seconds! 六、效果​编辑 error4: 背景: 1、设备:pc;jeston agx …

语音芯片KT142C两种音频输出方式PWM和DAC的区别

目录 语音芯片KT142C两种音频输出方式PWM和DAC的区别 一般的语音芯片,输出方式,无外乎两种,即dac输出,或者PWM输出 其中dac的输出,一般应用场景都是外挂功放芯片,实现声音的放大,比如常用的音箱…

WMS透明仓库:实现仓储的全方位可视化与优化

一、WMS透明仓库的定义与特点 1. WMS透明仓库的定义:WMS透明仓库是一种基于信息技术的仓库管理系统,通过实时数据采集、分析和可视化,将仓库内外的物流流程、库存状态、人员活动等信息以透明的方式展示给相关利益方。 2. 实时数据采集&…

力扣每日一题50:Pow(x,n)

题目描述: 实现 pow(x, n) ,即计算 x 的整数 n 次幂函数(即,xn )。 示例 1: 输入:x 2.00000, n 10 输出:1024.00000示例 2: 输入:x 2.10000, n 3 输出…

性能评测 | GreatDB VIP PLUGIN方案 VS MySQL InnoDB Cluster高可用方案

前言 最近,我们与许多数据库用户进行了沟通和调研,了解到,目前仍有相当一部分投产的MySQL高可用或故障转移方案,用到了读写分离功能或业务接入VIP(Virtual IP Address)的方式,来屏蔽后端数据库架…

2022年合肥市庐阳区信息学区赛(初中组)

2022年合肥市庐阳区信息学区赛(初中组)第1题 信封 题目描述 有两张贺卡,需要装入一个信封邮寄,当然贺卡都是正的放进信封中,也就是两张贺卡的边同信封的边一都是平行的,不允许斜着放入信封。请问信封的最小尺寸。 输入格式 共两行。每行两个整数,分别表示两张贺卡的两个…

华为OD 最小数字(100分)【java】A卷+B卷

华为OD统一考试A卷+B卷 新题库说明 你收到的链接上面会标注A卷还是B卷。目前大部分收到的都是B卷。 B卷对应20022部分考题以及新出的题目,A卷对应的是新出的题目。 我将持续更新最新题目 获取更多免费题目可前往夸克网盘下载,请点击以下链接进入: 我用夸克网盘分享了「华为O…

MySQL 性能分析

MySQL 性能分析 对 mysql 进行性能分析,主要就是提升查询的效率,其中索引占主导地位。对 mysql 进行性能分析主要有如下几种方式: 方式一:查看 sql 执行频次 show global status like ‘Com_______’; // global 表示全局 show s…

HCIA --- 网络基础

OSPF七层参考模型: 应用层 抽象语言输入和输出 抽象语言-->编码 表示层 编码-->二进制 会话层 应用程序内部到地址,区分程序内各个会话 上三层均为应用程序处理加工数据,上三被统称为应用流层 下四层负责数…

ROS2使用colcon build编译的工程运行出错,cmake编译的没有问题。

ROS2下的工程编译后, 用标准的ros2的运行节点命令无法正常运行,程序没有问题。 ros2 run package_name exc_file build下生成的可执行文件可以用 ./ exc_file 执行, install下的可执行文件用 ./ exc_file无法运行 解决方法: co…

[每周一更]-(第68期):Excel常用函数及常用操作

日常工作,偶尔也会存在excel表格入库的情况,针对复杂的入库情况,一般都是代码编号,读文件-写db形式;但是有些简单就直接操作,但是 这些简单的入库不仅仅是直接入库,而是内容中有部分需要进行映射…

uniapp图片加水印

1、uniapp加水印 1.1、创建画布容器 <canvas class"watermark-canvas" id"watermark-canvas" canvas-id"watermark-canvas":style"{ width: canvasWidth, height: canvasHeight }" /> 1.2、获取水印内容 async getLocation(…

防水款无源NFC卡片

产品参数&#xff1a; PN29_T 产品参数 产品型号 PN29_T 尺寸(mm) 85.8*41*2.9mm 显示技术 电子墨水屏 显示区域(mm) 29(H) * 66.9(V) 分辨率(像素) 296*128 像素尺寸(mm) 0.227*0.226 显示颜色 黑/白 视觉角度 180 工作温度 0-50℃ 电池 无需电池 工作…

flutter与原生 相互通信实战

一、原生和flutter 通信 ios 通信类 CommonUtil.swift import Foundation import Flutterpublic class CommonUtil {public static func emitEvent(channel: FlutterMethodChannel, method: String, type: String, errCode: Int32?, errMsg: String?, data: Any?){safeMa…

Stable Diffusion原理

一、Diffusion扩散理论 1.1、 Diffusion Model&#xff08;扩散模型&#xff09; Diffusion扩散模型分为两个阶段&#xff1a;前向过程 反向过程 前向过程&#xff1a;不断往输入图片中添加高斯噪声来破坏图像反向过程&#xff1a;使用一系列马尔可夫链逐步将噪声还原为原始…