사용자 수준 스레드를 운영 체제 커널에 표시하는 UNIX 변형이나 다른 운영 체제가 있습니까?
답변1
당신이 묻는 것은 사용자 스레드가 커널에서 예약 가능한 엔터티인지 여부입니다. 사용자 스레드가 커널에 "표시"되는지 여부는 사용된 모델에 따라 사용자 -> 커널 간의 매핑에 따라 달라집니다. 여러 스레딩 모델이 있습니다 -
- mx1 - 모든 사용자 스레드가 1개의 커널 스레드에 매핑됩니다.
- mxn - m 스레드는 n 커널 스레드에 매핑됩니다.
- 1x1 - 1개의 커널 스레드에 매핑된 1개의 사용자 스레드
[https://www.kernel.org/doc/ols/2002/ols2002-pages-330-337.pdf][1]스레딩 모델에 대한 정보입니다.
Linux의 기본 스레딩 모델은 (<glibc 2.4)
다음과 같습니다.리눅스 스레드1x1을 사용합니다. 여기서 각 스레드에는 서로 다른 PID가 있습니다. LinuxThreads는 posix와 호환되지 않으므로 새로운 스레딩 모델이 구현됩니다.NPTL (man pthreads(7) for more info)
. 존재하다NPTL(1x1), 프로세스의 모든 사용자 스레드는 동일한 pid를 갖지만 고유한 스레드 ID를 갖습니다. 이는 ps에서 -L 플래그를 사용하여 볼 수 있습니다.(man ps(1))
NPTL에 관한 좋은 기사 -- [https://www.redhat.com/whitepapers/developer/POSIX_Linux_Threading.pdf][2]