Liux 커 널 에서 프로 세 스 와 관련 된 데이터 구조 (linux 3.16 - rc4 기반)

6182 단어 linux
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 / threadinfo.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

좋은 웹페이지 즐겨찾기