操作系统:linux
处理器:arm
内核版本:4.x

  • fork、vfork、clone
  • cow
  • _do_fork
    • copy_process
  • 内核线程

自然界中的每一个生命都需要经历出生、成长、死亡,生如夏花之绚烂,死如秋叶之静美,进程也不例外。

除进程0以外的进程都是在执行系统调用创建后开始存活,一般把执行系统系统调用的进程成为父进程,被新建的进程叫做子进程,

fork、vfork、clone

关于几个创建进程的系统调用,首先谈一谈fork和clone。fork的语义是,子进程要和父进程独立。而clone的语义是,子进程要和父进程共享某些资源。

在以前的linux版本,还未支持COW技术(后面讲)之时,很多情况下辛辛苦苦使用父进程作为副本创建出子进程,但子进程马上执行新的程序。vfork基于这样的背景出现,出于性能上的考虑,vfork不拷贝父进程的页表项,直接共享父进程的地址空间(子进程会先运行,所以父进程会被阻塞,直到子进程退出或者执行exec)。

但是由于现在fork采用了写时拷贝技术,vfork的好处仅仅在于不拷贝父进程的页表项(带来的影响就是父子进程共享地址空间)。由于父进程会被堵塞,所以理想情况下最好不要使用vfork。


cow


_do_fork

关于子进程会先运行,所以父进程会被阻塞,直到子进程退出或者执行exec


copy_process


内核线程

(五)进程的生命周期——诞生:fork、vfork、clone、内核线程(待续)相关推荐

  1. UNIX 进程揭秘--进程的生命周期

    探索运行在 UNIX 操作系统下的进程的生命周期 Sean A. Walberg (sean@ertw.com), 高级网络工程师 2007 年 7 月 16 日 研究进程的生命周期,以便您能将所看到 ...

  2. 怎样建立产品体系?(五)- 产品生命周期

    产品生命周期是指,大多数产品所经历的从出现到消失4个阶段,引入期.成长期.成熟期和衰退期,并对营销策略.营销组合和新产品开发影响显著. 引入期(Introduction):为引入的产品建立市场,包括知 ...

  3. (四)进程的生命周期——起源

    操作系统:linux 处理器:arm 内核版本:4.x 目录: 0号进程 1号进程.2号进程 提到进程生命周期就不得不说一说进程的起源:进程是怎么来的?第一个进程是谁? 0号进程 实际上计算机中第一个 ...

  4. 六十五、vue生命周期和发送Ajax请求

    vue生命周期和发送Ajax请求 一 vue生命周期介绍 二 vue生命周期钩子函数 三 测试 三 发送Ajax请求 四 计算属性 五 监听属性 一 vue生命周期介绍 每个 Vue 实例在被创建时都 ...

  5. Vue笔记(五)——Token生命周期

    Token 定义:令牌,一般用于用户身份验证 Token的特点 随机性 不可预测性 时效性 无状态 跨域 node所需模块 jsonwebtoken 生成并加密Token // 设置对象 let us ...

  6. 修改Jenkins启动衍生进程的生命周期

    先介绍下场景: 在Jenkins中新建了一个Job,假设你在一些列Build Step之前/之后,启动了一个进程,打个比方说启动一个Jboss进程.等到Build完成,你去Console Output ...

  7. 实现多线程、进程、线程、设置和获取线程名称、线程调度、线程控制、线程生命周期、同步代码块、线程安全的类、Lock锁、生产者消费者模式

    实现多线程:

  8. 【Linux进程、线程、任务调度】二 fork/vfork与写时拷贝 线程的本质 托孤 进程睡眠和等待队列

    学习交流加(可免费帮忙下载CSDN资源): 个人微信: liu1126137994 学习交流资源分享qq群1(已满): 962535112 学习交流资源分享qq群2(已满): 780902027 学习 ...

  9. 【Linux 内核】进程管理 ( Linux 中进程的 CPU 资源调度 | 进程生命周期 | 创建状态 | 就绪状态 | 执行状态 | 阻塞状态 | 终止状态 | 进程生命周期之间的转换 )

    文章目录 一.Linux 中进程的 CPU 资源调度 二.进程生命周期 三.进程生命周期之间的转换 一.Linux 中进程的 CPU 资源调度 Linux 操作系统 是 多任务系统 , 可以 同时运行 ...

最新文章

  1. 在php中存redis数据,redis缓存都存哪些数据
  2. Redis【入门】就这一篇!
  3. 在.Net Core中实现一个WebSocket路由
  4. SSM-水果商城-pom.xml-学习-3
  5. IB学生可以报考全球顶尖大学,需要多少分?
  6. 怎么在计算机中添加电脑桌面,如何在电脑正在使用的主题中添加桌面背景图片...
  7. 红贝应用架构配置式应用开发示例
  8. E. 新旧身份证(继承)
  9. 利用python进行prosper贷款数据EDA分析(一)
  10. 无主键mysql表创建主键
  11. 浏览器打印功能print.js
  12. 数据分析法之对比分析法
  13. MyBatis报Invalid bound statement (not found)错误
  14. 医院计算机网络安全应急预案,医院(妇幼保健院)计算机网络信息管理系统故障应急预案(技术保障实施细则)...
  15. 浅谈VVC(H.266)的变换模块
  16. 软考高级-信息系统管理师之沟通管理(最新版)
  17. Unity【Multiplayer 多人在线】- Socket 通用客户端网络模块(一)、Connect 连接服务端
  18. 鸿蒙应用开发:安装DevEco Studio及环境配置
  19. fll机器人比赛logo_FLL机器人工程挑战赛
  20. Android运营商名称显示之SPN的读取(原)

热门文章

  1. excel如何批量完成手机号码实名认证?
  2. 十次方学习——nodejs(1)
  3. FCFS调度算法(操作系统)先来先服务
  4. 通过VBA在Excel中添加复选输入框,实现数据验证不能做到的多选
  5. C语言 科学计算器 后缀表达式 解析字符串 仿JS的eval函数
  6. android简书app源码,仿简书APP源码(android)
  7. 33题实战“泰坦尼克号生存预测”全流程
  8. java沙漏_Java - 沙漏
  9. Tesseract OCR手写数字的样本训练
  10. 在公司没事做的时候很心虚