Linux - 프로 세 스 - 데이터 구조
: task_struct
、 。
// ( ) , 。
// long state (-1 ,0 ( ),>0 )。
// long counter ( )( ), 。
// long priority 。 counter=priority, 。
// long signal , , = +1。
// struct sigaction sigaction[32] , 。
// long blocked ( )。
// -------------------
// int exit_code , 。
// unsigned long start_code 。
// unsigned long end_code ( )。
// unsigned long end_data + ( )。
// unsigned long brk ( )。
// unsigned long start_stack 。
// long pid ( )。
// long pgrp 。
// long session 。
// long leader 。
// int groups[NGROUPS] 。 。
// task_struct *p_pptr 。
// task_struct *p_cptr 。
// task_struct *p_ysptr 。
// task_struct *p_osptr 。
// unsigned short uid ( id)。
// unsigned short euid id。
// unsigned short suid id。
// unsigned short gid ( id)。
// unsigned short egid id。
// unsigned short sgid id。
// long timeout 。
// long alarm ( )。
// long utime ( )。
// long stime ( )。
// long cutime 。
// long cstime 。
// long start_time 。
// struct rlimit rlim[RLIM_NLIMITS] 。
// unsigned int flags; , 149 ( )。
// unsigned short used_math : 。
// ------------------------
// int tty tty 。-1 。
// unsigned short umask 。
// struct m_inode * pwd i 。
// struct m_inode * root i 。
// struct m_inode * executable i 。
// struct m_inode * library i 。
// unsigned long close_on_exec 。( include/fcntl.h)
// struct file * filp[NR_OPEN] , 32 。 。
// struct desc_struct ldt[3] 。0- ,1- cs,2- ds&ss。
// struct tss_struct tss 。
// ======================================
105 struct task_struct {
106 /* these are hardcoded - don't touch */
107 long state; /* -1 unrunnable, 0 runnable, >0 stopped */
108 long counter;
109 long priority;
110 long signal;
111 struct sigaction sigaction[32];
112 long blocked; /* bitmap of masked signals */
113 /* various fields */
114 int exit_code;
115 unsigned long start_code,end_code,end_data,brk,start_stack;
116 long pid,pgrp,session,leader;
117 int groups[NGROUPS];
118 /*
119 * pointers to parent process, youngest child, younger sibling,
120 * older sibling, respectively. (p->father can be replaced with
121 * p->p_pptr->pid)
122 */
123 struct task_struct *p_pptr, *p_cptr, *p_ysptr, *p_osptr;
124 unsigned short uid,euid,suid;
125 unsigned short gid,egid,sgid;
126 unsigned long timeout,alarm;
127 long utime,stime,cutime,cstime,start_time;
128 struct rlimit rlim[RLIM_NLIMITS];
129 unsigned int flags; /* per process flags, defined below */
130 unsigned short used_math;
131 /* file system info */
132 int tty; /* -1 if no tty, so it must be signed */
133 unsigned short umask;
134 struct m_inode * pwd;
135 struct m_inode * root;
136 struct m_inode * executable;
137 struct m_inode * library;
138 unsigned long close_on_exec;
139 struct file * filp[NR_OPEN];
140 /* ldt for this task 0 - zero 1 - cs 2 - ds&ss */
141 struct desc_struct ldt[3];
142 /* tss for this task */
143 struct tss_struct tss;
144 };
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
바이너리 파일cat 또는tail, 터미널 디코딩 시 처리 방법cat으로 바이너리 파일을 보려고 할 때 코드가 엉망이 되어 식은땀이 났다. 웹에서 스크롤된 정보의 처리 방법과alias의 설정을 요약합니다. reset 명령을 사용하여 터미널을 재설정합니다.이렇게 하면 고치지 못하...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.