리눅스의 스레드 구현
리눅스의 스레드: 주소공간과 같은 자원을 프로세스와 공유
Kthread: 커널 스레드를 만드는 프로세스
-> 새로운 커널 스레드를 생성
-> Kthread_create(int ...)
-> 생성되었지만 BLOCK 상태
※ Kernel thread는 우선순위가 항상 높다(User thread 보다)
프로세스 종료
exit()를 집어넣지 않아도 컴파일러가 집어넣어준다.
자발적: exit()
비자발적: Signal, Exception
Process descriptor 제거
종료된 프로세스의 descriptor는 여전히 존재(task_struct)
-> 자식 프로세스의 정보를 제공하기 위해 존재하며 부모가 가지고 오면 Delete
커널이 더 이상 필요 없다고 판단 되면제거
※ 좀비프로세스
자신이 종료할 때 자식 프로세스가 있으면 부모프로세스를 찾아주고 종료한다.
->exit() 안에 있음 다른부모가 결정되기 전까지 상태를 좀비프로세스라 한다.
'Linux > RaspberryPi' 카테고리의 다른 글
Raspberry Pi Compute Module 3 b+ EMMC OS 올리기 (0) | 2021.06.01 |
---|---|
리눅스 및 커널 프로그래밍 스터디 정리 #5 (2) | 2021.01.15 |
리눅스 및 커널 프로그래밍 스터디 정리 #4 (0) | 2021.01.15 |
리눅스 및 커널 프로그래밍 스터디 정리 #2 (0) | 2021.01.12 |
리눅스 및 커널 프로그래밍 스터디 정리 #1 (0) | 2020.11.29 |