首页 > 系统 > Linux > 正文

linux内核中与进程相关的数据结构(基于linux3.16-rc4)

2024-06-28 13:25:14
字体:
来源:转载
供稿:网友
linux内核中与进程相关的数据结构(基于linux3.16-rc4)

1.进程描述符

 1 struct task_struct { 2  3    volatile long state; 4  5   ....... 6  7    struct list_head tasks; 8  9   .......10 11    struct mm_struct *mm, *active_mm;12 13   .......14 15    struct vm_area_struct *vmacache[VMACACHE_SIZE];16 17   ......18 19    pid_t pid;20    pid_t tgid;21 22   .......23    }

所在文件:include/linux/sched.h

2.线程描述符(current指向该描述符,并通过该描述符找到进程描述符)

 1  struct thread_info { 2          struct task_struct      *task;                             /* main task structure */ 3          struct2. exec_domain  *exec_domain;              /* execution domain */ 4          __u32                        flags;                             /* low level flags */ 5          __u32                        status;                          /* thread synchronous flags     */ 6          __u32                        cpu;                             /* current CPU */ 7          int                              saved_PReempt_count; 8          mm_segment_t         addr_limit; 9          struct restart_block   restart_block;10          void __user               *sysenter_return;11          unsigned int              sig_on_uaccess_error:1;12          unsigned int              uaccess_err:1;              /* uaccess failed */13    };

所在文件:arch/x86/include/asm/thread_info.h

3.进程的内核栈

1   union thread_union {2 3   struct thread_info thread_info;4 5   unsigned long stack[THREAD_SIZE/sizeof(long)];6 7    }

所在文件:include/linux/sched.h

    

4.进程的运行队列

1 struct rt_prio_array {                            2 3    DECLARE_BITMAP(bitmap, MAX_RT_PRIO+1);4 5    struct list_head queue[MAX_RT_PRIO];6 7  }

所在文件:kernel/sched/sched.h


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表