进程的生命周期

本文详细介绍了Linux进程的生命周期,包括进程控制块PCB和task_struct,Linux进程的六个状态,如僵尸态、暂停状态和内存泄露的解释。还讨论了PID的数量限制问题,以及fork炸弹和查看PID限制的方法。此外,文章还探讨了如何通过waitpid清除僵尸进程,并分析了进程状态之间的联系和区别。
摘要由CSDN通过智能技术生成

进程的生命周期

注: 学习宋宝华课程总结

1. 进程控制块 PCB 与 task_struct

进程是资源封装管理的单位,资源指占用的内存,文件系统,信号及处理方法。线程是调度的单位,进程的区别是资源,资源是隔离的,进程把资源描述清楚就可以了

Process Control Block(PCB) 进程控制块, 在不同操作系统中用于描述进程,在 Linux 的 PCB 就是用 task_struct 来描述。描述来 task_struct 的部分成员

task_struct 结构体信息

  1. mm 内存资源: 进程的内存
  2. fs 文件系统资源: 根路径和当前路径指针
  3. files 文件系统资源: 进程打开的文件,文件描述符数组
  4. signal 信号资源: 不同进程可以针对同一信号挂不同的处理方法
  5. pid 属性资源: 描述进程的属性, 进程的 PID 是有限的

当前路经是在 fs_struct 中的

struct fs_struct {
        int users;
        spinlock_t lock;
        seqcount_t seq;
        int umask;
        int in_exec;
        struct path root, pwd;
};

files 进程打开的文件描述符 fd_array

/*
 * Open file table structure
 */
struct files_struct {
  /*
   * read mostly part
   */
        atomic_t count;
        struct fdtable __rcu *fdt;
        struct fdtable fdtab;
  /*
   * written part on a separate cache line in SMP
   */
        spinlock_t file_l
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值