美文网首页
《Linux内核设计与实现》读书笔记 第三章

《Linux内核设计与实现》读书笔记 第三章

作者: muux | 来源:发表于2017-07-30 12:14 被阅读22次

    本章讨论了linux进程的生命周期,以及进程相关的一些抽象概念;

    一、进程描述符

    二话不说,先看一下进程描述符(task_struct)源码,这个结构体定义在<linux/sched.h>中,因为这个结构体太大了,就不贴代码了,就简单记录一些重要的字段吧;

    • pid
      进程id

    • state
      进程状态

    进程状态机.png
    • parent
      指向父进程描述符

    • children
      子进程链表

    二、进程的生命周期

    • 创建
      分为fork和exec两步,fork通过写时拷贝当前进程创建子进程,exec读取可执行文件载入地址空间运行;

    • 终结
      通过exit退出执行,释放进程占用的资源,状态置为僵死,此时进程描述符依然存留在内存中,直到父进程调用wait为止;
      如果父进程先行exit了,其子进程将会沦为孤儿进程,之后这些子进程退出时,由于没有父进程调用wait,其进程描述符永远无法回收;
      对于这种情况,应对方法是为其找到养父进程,实在找不到就由init进程充当其养父;

    相关文章

      网友评论

          本文标题:《Linux内核设计与实现》读书笔记 第三章

          本文链接:https://www.haomeiwen.com/subject/uymhlxtx.html