【进程控制】-1-进程创建
** 博主名称**迷途之人不知返 个人专栏: 《C语言》、《数据结构》、《C》、《Linux》️ Gitee仓库: 《C语言》、《数据结构》、《C》、《Linux》/ 算法专栏: 《算法精选集》进程创建1、概述2、回顾fork创建子进程2、再谈写时拷贝2.1、触发机制2.2、“拷贝”原因3、fork常见用法4、fork调用失败的原因5、一个实际应用场景——fork的妙用1、概述进程的创建本质上是操作系统中多了一个进程。进程包含两大部分内核数据结构侧重管理。如task_struct mm_struct vm_area_struct...代码与数据侧重执行。同时进程具有独立性。意味着进程之间代码数据和内核结构是相互独立的。2、回顾fork创建子进程fork作为系统调用功能是创建子进程。fork之后的代码和数据连同全局变量为父进程与子进程共用。我们回顾fork的三点细节fork给子进程返回0而给父进程返回创建成功的子进程的pid父进程需要得到子进程pid以管理子进程而子进程只需要知道创建成功即可。一个函数返回两次fork父与子共用代码父进程有一个return语句子进程也有一个return语句。(同一个变量)地址相同内容不同写时拷贝。2、再谈写时拷贝这里我们关注写时拷贝的两点写时拷贝触发的机制为什么要“拷贝”。2.1、触发机制我们知道子进程刚创建出来父子进程是共用数据的当子进程需要对数据进行修改那么写时拷贝就会发生。具体是什么样子的呢还记得吗虚拟地址空间里头的页表不仅存有虚拟地址、物理地址还有一项权限位。当只有父进程的时候页表上数据(地址)会标上rw可读写权限而创建子进程后父与子共用数据时父进程和子进程页表上的数据就会标记成r只读权限。当子进程(或者父进程)想要修改数据时由于数据在页表的权限是只读转化失败触发报错操作系统就会检查进而发现原来子(父)进程想要修改数据于是进行写时拷贝然后修改各自页表的权限位。所以进程fork之后通过修改页表权限位的方式来触发报错进而引发操作系统的介入最终完成写时拷贝。2.2、“拷贝”原因对于写时拷贝有人可能还有疑问为什么还要拷贝呢我直接新开辟一个空间不就好了实际上写入的方式除了覆盖写入还有在原来基础上进行修改的写入。为了同时满足这两个条件Linux就实现成拷贝而不是仅仅开辟一个新空间。// 覆盖写入intcount10;count20;// 修改写入intcount10;count;3、fork常见用法fork有两个常见用法父进程希望复制自己使父子进程执行不同的代码段。比如父进程执行等待客户请求的函数子进程执行处理请求的函数。父进程希望创建一个子进程执行一个之前从未出现的程序。这就要用到以后的进程程序替换的知识。4、fork调用失败的原因原因有二内存资源不够进程数量超过限定值。5、一个实际应用场景——fork的妙用我们来实现一个程序父进程修改修改数据子进程备份数据。由于我们还没有学习文件而且向屏幕写入本质也是向一个文件写入所以子进程就把数据打印出来就可以了。#includestdio.h#includestdlib.h#includetime.h#includeunistd.h#includesys/types.h#defineNUM10intarr[NUM];voidChange(){inti0;for(;iNUM;i)arr[i]irand();printf(Origin: \n);for(i0;iNUM;i)printf(%d ,arr[i]);printf(\n);}voidBackup(){pid_tidfork();if(id0){perror(fork failed!\n);exit(2);}elseif(id0){// 子进程printf(backup: \n);inti0;for(;iNUM;i)printf(%d ,arr[i]);printf(\n);sleep(10);// 不要让子进程那么快退出exit(1);}}intmain(){srand((unsignedint)time(NULL));while(1){Change();Backup();sleep(5);}return0;}我们就完成了一边修改数据一边数据备份的工作至此我们就演示了如何利用fork 写时拷贝进行安全备份。这就匹配上了我们将数据保存到磁盘的需求。

相关新闻

剪映操作|我想做商品图,有什么工具推荐

剪映操作|我想做商品图,有什么工具推荐

适用对象:图片与素材处理任务的创作者。本文只处理“我想做商品图,有什么工具推荐?”这一件事。先确定这一条要解决什么先给结论:处理“我想做商品图,有什么工具推荐?”,先保留原图/原片&#x…

2026/9/27 4:06:20 阅读更多 →
ESP32S3音频系统设计:双I2S、PDM转I2S与实时处理实战

ESP32S3音频系统设计:双I2S、PDM转I2S与实时处理实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/27 4:05:20 阅读更多 →
深圳网站建设及推广避坑指南:不懂SEO怎么选?3个维度教你选出能赚钱的站

深圳网站建设及推广避坑指南:不懂SEO怎么选?3个维度教你选出能赚钱的站

深圳网站建设及推广避坑指南:不懂SEO怎么选?3个维度教你选出能赚钱的站 网站做好了没人访问,这是深圳无数老板和运营最头疼的噩梦。花了大几万请人做官网,上线一个月后台流量个位数,客户问起来一脸茫然,这种憋屈感我见得太多了。很多人把问题归结为…

2026/9/27 4:05:20 阅读更多 →

最新新闻

如何从工程交付判断GEO公司:Schema、基线与复测脚本

如何从工程交付判断GEO公司:Schema、基线与复测脚本

一、为什么从“工程产物”判断最可靠GEO 背后是 RAG 流水线,效果取决于内容能否被正确抓取、结构化与持续维护。一家公司若只能提供“发了多少篇文章”的清单,却拿不出结构化数据、基线记录与复测脚本,其交付很难稳定。反过来,能把…

2026/9/27 4:50:29 阅读更多 →
直播课网站怎样做的注意事项

直播课网站怎样做的注意事项

5步搞定直播课网站SEO:用免费工具解决没人访问难题 网站上线三个月,后台数据惨淡得让人心碎,这就是 网站做好了没人访问 的真实写照。别急着砸钱投广告,90%的独立站死因不是技术,而是SEO没做对。今天不聊虚的,直接上干货,教你用…

2026/9/27 4:50:29 阅读更多 →
技术解析|无人机倾斜摄影3D模型全天候动态光照融合方案

技术解析|无人机倾斜摄影3D模型全天候动态光照融合方案

摘要:针对传统无人机倾斜摄影三维模型光照固化、预处理流程繁琐、动态仿真能力缺失的行业痛点,本文介绍一套轻量化、高写实的动态光照融合系统。该系统实现三维建模数据与全局视觉光照渲染系统的无缝融合,支持3DTILES原始模型直接导入渲染&am…

2026/9/27 4:50:29 阅读更多 →
从听懂到会说:Echo Loop盲听+段落复述训练法全解析,把英语真正变成自己的表达

从听懂到会说:Echo Loop盲听+段落复述训练法全解析,把英语真正变成自己的表达

从听懂到会说:Echo Loop盲听段落复述训练法全解析,把英语真正变成自己的表达 【免费下载链接】Echo-Loop Echo Loop 是一款科学、高效的 AI 英语听说训练 App,通过精听、跟读、盲听、复述和间隔复习,自动驱动学习者把每一段音频真…

2026/9/27 4:50:29 阅读更多 →
VMware Workstation Pro免注册直链下载原理与实操

VMware Workstation Pro免注册直链下载原理与实操

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/9/27 4:50:29 阅读更多 →
适合女生考的证书有哪些?2026年避坑指南

适合女生考的证书有哪些?2026年避坑指南

很多女生在后台问我:想利用业余时间考个证,提升一下自己,但又怕踩坑、怕考出来没用。说实话,考证这件事,选对了是“锦上添花”,选错了就是“花钱买心安”。作为过来人,我整理了这份2026年适合女…

2026/9/27 4:49:29 阅读更多 →

日新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/27 0:00:34 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/27 0:00:34 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/27 0:00:34 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/27 0:00:34 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/27 0:00:34 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/27 0:00:34 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/25 20:29:43 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/25 20:29:31 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/26 22:52:30 阅读更多 →