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

Linux--进程创建

进程创建

 

写时拷贝(时间换空间)

  1. 更新页表项权限为只读----子进程写入----触发系统错误
  2. 系统缺页中断,系统开始检测,系统判断写入区域是数据区还是代码区,如果是代码区就终结进程,如果是数据区就进行写时拷贝。
  3. 写时拷贝:申请内存,发生拷贝,修改页表,恢复执行,恢复权限

为什么要拷贝而不是更改?写入操作 != 对目标区域进行覆写操作,比如 count++

 

 

进程终止

mian函数的返回值,是给父进程和系统的

echo $?查看进程错误码

退出码通常表明错误原因

0:成功

非零:错误

退出码表

 

进程终止的方法

1main 函数 return

2 exit 在代码的任何地方,表示进程结束

3 _exit 

exit和_exit的区别

1 刷新缓冲区的问题

exit 属于3号手册 库函数

_exit属于2号手册 系统调用

2 上下层关系

缓冲区,语言级缓冲区 ----C/C++提供的

_exit 直接终止,所以不会刷新

 

进程等待

 

一般而言,父进程创建子进程,父进程就要等待子进程,知道子进程结束,等待的时候,子进程不退出,父进程就要阻塞在wait函数内部

1.回收子进程的僵尸状态

waitpid 

等待子进程的pid   进程退出码(32个比特位)

 

 

 

 

 

相关文章:

  • CTF类题目复现总结-[WUSTCTF2020]girlfriend 1
  • wpa_supplicant驱动初始化源码分析
  • Gin框架学习
  • 【sgFloatDialog】自定义组件:浮动弹窗,支持修改尺寸、拖拽位置、最大化、还原、最小化、复位
  • Vue3 在组件中判断事件是否注册
  • js原型链与自动装箱机制
  • 从OSI七层网络模型角度了解CAN通信协议
  • 关于金融开发领域的一些专业知识总结
  • jmeter接口测试[-面试篇-]
  • 【YOLOv8改进 - C2f融合】C2f融合SCConv :即插即用的空间和通道重建卷积
  • 我的uniapp自定义模板
  • 基于SpringBoot + Vue 的药店药品信息管理系统
  • Yolo v4 (Darknet) Mac M2 安装与运行
  • kmp算法的实现
  • 测试专项3:算法测试基础理论速查手册
  • Spring Boot 整合 Apache Flink 教程
  • 二. JAVA数据类型与变量
  • 软考中级-软件设计师 准备
  • OpenWrt开发第4篇:设置开发板的IP-基于Raspberry Pi 4B开发板
  • 2025-03-20 学习记录--C/C++-C 库函数 - toupper()、tolower()、 isspace()
  • 四大皆空!赛季还没结束,曼城已经吃上“散伙饭”了
  • “先增聘再离任”又添一例,景顺长城基金经理鲍无可官宣辞职
  • 上海公办小学验证今起开始,下周一和周二分区进行民办摇号
  • 中国情怀:时代记录与家国镜相|澎湃·镜相第三届非虚构写作大赛征稿启事
  • 侵害孩子者,必严惩不贷!3名性侵害未成年人罪犯今日执行死刑
  • 老字号“逆生长”,上海制造的出海“蜜”钥