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

linux学习(进程创建)[8]

创建进程

myproc.c

#include <stdio.h>
#include <unistd.h>int main()
{printf("我是父进程\n");pid_t id = fork();if(id < 0){printf("创建子进程失败\n");return 1;}else if(id == 0){while(1){printf("我是子进程: pid: %d ,ppid: %d\n",getpid(),getppid());sleep(1);}}else{while(1){printf("我是父进程: pid: %d ,ppid: %d\n",getpid(),getppid());sleep(1);}}
}

子进程0,父进程1,失败-1
在这里插入图片描述
查看进程

ps axj | grep myproc

描述,fork创建子进程时,操作系统都做了什么

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
fork之后子进程和父进程共享全部代码,而不仅仅只有after后的

写时拷贝

创建子进程,不需要将不会被访问的,或者只会读取的数据拷贝一份将来会被父进程或者子进程写入的数据才会拷贝但是一般而言os无法提前知道哪些空间可能会被写入,即使拷贝也不知拷贝时间
所以os使用写时拷贝技术将父子进程的数据进行分离
在这里插入图片描述

cpu怎么知道要执行什么指令||子进程为什么从after后执行

在这里插入图片描述

http://www.lryc.cn/news/119063.html

相关文章:

  • Linux基础与应用开发系列九:各类系统函数
  • 国产数据库排行
  • 数学符号说明——三角等号(≜)
  • 健启星|医学营养的市场先行者
  • 从 GPT4All 体验 LLM
  • QGraphicsView实现简易地图4『局部加载-地图漫游』
  • ubuntu 安装 nvidia 驱动
  • 探索APP界面布局的艺术与技巧:从入门到精通
  • 回归预测 | MATLAB实现POA-CNN-GRU鹈鹕算法优化卷积门控循环单元多输入单输出回归预测
  • 15.3.2 【Linux】系统的配置文件:/etc/crontab,/etc/cron.d/*
  • 新版PMP考试中,敏捷是怎么考的?
  • uniapp-----封装接口
  • [oeasy]python0081_[趣味拓展]ESC键进化历史_键盘演化过程_ANSI_控制序列_转义序列_CSI
  • 第十六次CCF计算机软件能力认证
  • 关于Postman如何配置随请求携带token
  • 逆向破解学习-登山赛车
  • linux下实现生产者和消费者 pv操作
  • 十六、遥感影像识别
  • 源码角度分析@configuration和@component不同
  • 实现分布式事务:Java与MySQL的XA事务协调
  • 如何通过CRM系统进行成功的客户生命周期管理?
  • Leetcode 977. 有序数组的平方
  • vue3中使用toValue
  • 阿里云国际版CDN使用教程!
  • 【docker】Dockerfile构建镜像常用指令:
  • Java课题笔记~ 会话跟踪
  • HbuildX生成安卓签名证书
  • 在Ruoyi中采用Ajax动态生成Echarts图表实践
  • 资讯速递 | ArkUI-X 预览版已正式开源!
  • HTML <select> 标签