
사용자 수준 스레드를 OS 커널에 표시하는 UNIX 변형이나 다른 OS가 있습니까?
답변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)
다음과 같습니다.Linux스레드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]