ARM Linux Kernel Hacks

rousalome.egloos.com

포토로그 Kernel Crash


통계 위젯 (화이트)

191239
1625
172588


[리눅스] tgid와 pid에 대해서... 4. 프로세스(Process) 관리

예전 커널부터 리눅스는 태스크 마다, tgid 와 pid 멤버가 있었습니다.

tgid 는 thread group id 을 나타내고, (posix.1 에서 정의하는 프로세스)
pid 는 thread id 를 나타냅니다,

예전에 모든 스레드는, tgid 와 pid 가 같았습니다.

새로운 커널에서는 leader thread 인 경우만, tgid 와 pid 가 같고, child thread 인 경우는 tgid 와 pid 는 다릅니다.

getpid 를 호출하면 tgid 를 돌려주므로, 같은 thread group 인 경우 다 같습니다.
pid 를 알고 싶으면, sys_gettid() 커널 함수를 호출하면 되고, child thread 에 signal 을 보내고 싶으면, sys_tkill() 커널 함수를 호출하면 됩니다.

아직까지는 유저모드에서 사용할 수 있는 gettid, tkill 은 없는 것 같습니다.

그리고, /proc 은 /proc/tgid 에 대해서만 생성해주기 때문에, /proc 을 통해서는 child thread 에 대해서
알기 어려울 것 같습니다.

# Reference: For more information on 'Linux Kernel';

디버깅을 통해 배우는 리눅스 커널의 구조와 원리. 1

디버깅을 통해 배우는 리눅스 커널의 구조와 원리. 2





덧글

댓글 입력 영역