(五)进程的生命周期——诞生:fork、vfork、clone、内核线程(待续)
操作系统: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、内核线程(待续)相关推荐
- UNIX 进程揭秘--进程的生命周期
探索运行在 UNIX 操作系统下的进程的生命周期 Sean A. Walberg (sean@ertw.com), 高级网络工程师 2007 年 7 月 16 日 研究进程的生命周期,以便您能将所看到 ...
- 怎样建立产品体系?(五)- 产品生命周期
产品生命周期是指,大多数产品所经历的从出现到消失4个阶段,引入期.成长期.成熟期和衰退期,并对营销策略.营销组合和新产品开发影响显著. 引入期(Introduction):为引入的产品建立市场,包括知 ...
- (四)进程的生命周期——起源
操作系统:linux 处理器:arm 内核版本:4.x 目录: 0号进程 1号进程.2号进程 提到进程生命周期就不得不说一说进程的起源:进程是怎么来的?第一个进程是谁? 0号进程 实际上计算机中第一个 ...
- 六十五、vue生命周期和发送Ajax请求
vue生命周期和发送Ajax请求 一 vue生命周期介绍 二 vue生命周期钩子函数 三 测试 三 发送Ajax请求 四 计算属性 五 监听属性 一 vue生命周期介绍 每个 Vue 实例在被创建时都 ...
- Vue笔记(五)——Token生命周期
Token 定义:令牌,一般用于用户身份验证 Token的特点 随机性 不可预测性 时效性 无状态 跨域 node所需模块 jsonwebtoken 生成并加密Token // 设置对象 let us ...
- 修改Jenkins启动衍生进程的生命周期
先介绍下场景: 在Jenkins中新建了一个Job,假设你在一些列Build Step之前/之后,启动了一个进程,打个比方说启动一个Jboss进程.等到Build完成,你去Console Output ...
- 实现多线程、进程、线程、设置和获取线程名称、线程调度、线程控制、线程生命周期、同步代码块、线程安全的类、Lock锁、生产者消费者模式
实现多线程:
- 【Linux进程、线程、任务调度】二 fork/vfork与写时拷贝 线程的本质 托孤 进程睡眠和等待队列
学习交流加(可免费帮忙下载CSDN资源): 个人微信: liu1126137994 学习交流资源分享qq群1(已满): 962535112 学习交流资源分享qq群2(已满): 780902027 学习 ...
- 【Linux 内核】进程管理 ( Linux 中进程的 CPU 资源调度 | 进程生命周期 | 创建状态 | 就绪状态 | 执行状态 | 阻塞状态 | 终止状态 | 进程生命周期之间的转换 )
文章目录 一.Linux 中进程的 CPU 资源调度 二.进程生命周期 三.进程生命周期之间的转换 一.Linux 中进程的 CPU 资源调度 Linux 操作系统 是 多任务系统 , 可以 同时运行 ...
最新文章
- 在php中存redis数据,redis缓存都存哪些数据
- Redis【入门】就这一篇!
- 在.Net Core中实现一个WebSocket路由
- SSM-水果商城-pom.xml-学习-3
- IB学生可以报考全球顶尖大学,需要多少分?
- 怎么在计算机中添加电脑桌面,如何在电脑正在使用的主题中添加桌面背景图片...
- 红贝应用架构配置式应用开发示例
- E. 新旧身份证(继承)
- 利用python进行prosper贷款数据EDA分析(一)
- 无主键mysql表创建主键
- 浏览器打印功能print.js
- 数据分析法之对比分析法
- MyBatis报Invalid bound statement (not found)错误
- 医院计算机网络安全应急预案,医院(妇幼保健院)计算机网络信息管理系统故障应急预案(技术保障实施细则)...
- 浅谈VVC(H.266)的变换模块
- 软考高级-信息系统管理师之沟通管理(最新版)
- Unity【Multiplayer 多人在线】- Socket 通用客户端网络模块(一)、Connect 连接服务端
- 鸿蒙应用开发:安装DevEco Studio及环境配置
- fll机器人比赛logo_FLL机器人工程挑战赛
- Android运营商名称显示之SPN的读取(原)