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

目录:

  • 0号进程
  • 1号进程、2号进程

提到进程生命周期就不得不说一说进程的起源:进程是怎么来的?第一个进程是谁?

0号进程

实际上计算机中第一个进程并不是动态产生的,0号进程的信息在数据段中,预先设定好了,其对应的内核栈也在特定的位置(数据段中,由链接脚本arch/arm/kernel/vmlinux.lds.S决定)。

cpu在汇编阶段建立完页表、开启MMU,跳转到start_kernel之前,会将指针指向0号进程的栈顶偏移8 byte的位置。

#define THREAD_START_SP>>   (THREAD_SIZE - 8)

可以用QEMU验证上面的结论,进入start_kernel时,sp指向了0号进程的栈,其对应的进程PCB是init_task。


1号进程、2号进程

在start_kernel最后一步,rest_init中会依据进程0的PCB为模板创建出kernel_init进程和kthreadd进程。(kernel_thread就是调用do_fork)

kernel_init进程会去解析用户配置好的脚本,是用户空间的第一个进程。

kthreadd进程是内核线程的父进程,每当有内核线程需要创建,通过调用kthread_create将自己添加到kthread_create_list时,kthreadd会被唤醒来创捷这些内核线程。

(四)进程的生命周期——起源相关推荐

  1. Angular 个人深究(四)【生命周期钩子】

    Angular 个人深究(四)[生命周期钩子] 定义: 每个组件都有一个被 Angular 管理的生命周期. Angular 创建它,渲染它,创建并渲染它的子组件,在它被绑定的属性发生变化时检查它,并 ...

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

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

  3. Vue 生命周期探索:第四篇:生命周期-销毁流程

    文章目录 探索学习 Vue 生命周期篇 第四篇:生命周期-销毁流程 生命周期_销毁流程 1. beforeDestory (销毁前) 2. Teardown watchers,child compon ...

  4. 微信小程序把玩(四)应用生命周期

    为什么80%的码农都做不了架构师?>>>    App() 函数用来注册一个小程序,注意必须在 app.js 中注册,且不能注册多个. 使用方式也跟Android中的Applicat ...

  5. (第四篇)Vue生命周期

    生命周期 <!DOCTYPE html> <html lang="en"> <head><meta charset="UTF-8 ...

  6. Kubernetes(k8s)四、Pod生命周期(初始化容器的应用,探针liveness、readliness应用,)

    Pod生命周期 学习目标:初始化容器的应用及两个探针的应用 探针 是由 kubelet 对容器执行的定期诊断: Kubelet 可以选择是否执行在容器上运行的三种探针执行和做出反应: liveness ...

  7. Spring全家桶(四)Bean的生命周期

    十.Bean生命周期 10.1 Bean的生命周期 Spring IOC容器可以管理Bean的生命周期,也允许在Bean生命周期的特定点执行定制的任务. Spring IOC容器对Bean的生命周期进 ...

  8. 四、项目生命周期和开发生命周期

    一.简介 我们知道项目是暂时性.临时性的工作,具有开始时间和结束时间.正如达尔文进化论与马克思主义哲学认为:世界上任何事物都有其产生.发展和灭亡的过程(自然生命周期).项目同样有其生命周期,即开始.计 ...

  9. (五)进程的生命周期——诞生:fork、vfork、clone、内核线程(待续)

    操作系统:linux 处理器:arm 内核版本:4.x fork.vfork.clone cow _do_fork copy_process 内核线程 自然界中的每一个生命都需要经历出生.成长.死亡, ...

最新文章

  1. [实现] 利用 Seq2Seq 预测句子后续字词 (Pytorch)2
  2. 实验室中的机械臂-资料汇总
  3. java 内存泄露对象排查_记录一次 java内存泄漏的排查
  4. ccxprocess启动项可以禁用么_Mac怎么禁用Adobe无用自启动项-Mac禁用Adobe无用自启动项方法 - 河东软件园...
  5. 关于juniper配速小记
  6. django,cbv,模板层
  7. python爬取b站搜索结果播放地址_如何利用Python快速爬取B站全站视频信息
  8. 代替Reflection(反射)的一些方法(转)
  9. 二阶振荡环节的谐振频率_什么是谐振器?谐振器与振荡器有什么区别?
  10. 十年.十大经济金融事件
  11. 巫师3储物箱在哪_巫师三孤岩宝箱在哪 | 手游网游页游攻略大全
  12. TDA2030功放电路图
  13. 南华大学计算机考研真题,2021南华大学考研历年真题复习资料
  14. bootbox.js bootbox.promt()
  15. 计算机毕业设计Java城市出行行程智能推荐系统(源码+系统+mysql数据库+lw文档)
  16. 面板数据分析及stata应用笔记
  17. 用Windows自带的系统恢复环境WinRE进行系统重大故障排查,轻松修复Windows蓝屏、白屏等问题
  18. 教育资源平台空间装扮html代码,一看就会—— 河南省基础教育资源公共服务平台“人人通空间”...
  19. ppoe拨号服务器没响应,pppoe拨号失败怎么办 pppoe拨号失败解决方法
  20. python编游戏_python编的著名游戏

热门文章

  1. 对uni-app开发的某app安全分析
  2. 实例演绎Unix/Linux的一切皆文件思想
  3. go语言比java高级在哪里
  4. 【Anaconda安装与使用】
  5. wsgw登录抓包记录
  6. Vue3数组使用push,导致数组每一个元素都改变
  7. 新计算机无法 盘启动不了怎么办,制作好U盘启动盘,却无法引导启动,该怎么办?...
  8. c语言 url字符串解析,c语言截取下载url中文件名称
  9. python代码学习
  10. 数据结构-赫夫曼树(三)