NPTL - Native POSIX Threading Library -- 김도집 (2005.11.17) [[TableOfContents]] = NPTL = == NPTL의 구현 == 다음 내용은 The Native POSIX Thread Library for Linux의 내용을 정리한 것이다. 설계에 있어서 '''커널 스레드'''와 '''사용자 레벨 스레드''' 간의 관계를 어떻게 둘 것인가 주요 쟁점이다. * 1:1 관계 * M:N 관계 후자의 경우 M개의 커널 스레드와 N개의 커널 스레드가 상관성을 갖도록 하며, 이 두 종류의 스레드를 위한 두 개의 스케줄러가 필요하다. 사용자 레벨 스케줄러는 커널 스케줄러에게 정보를 전달할 수 있을 것이고 커널 스케줄러는 결정된 내용을 사용자 레벨 스케줄러에게 알려줄 것이다. 그런데 M:N은 리눅스에서는 적합하지 않다는 것이 커널 개발자들의 중론이다. 이를 구현하기에는 너무 많은 비용이 든다는 것이다. 사용자 레벨에서 스케줄을 하기 위해서는 커널 공간의 레지스터 내용을 복사해 와야 하는 등의 문제가 있기 때문이다. == URLs == * [http://people.redhat.com/drepper/nptl-design.pdf The Native POSIX Thread Library for Linux] * [http://en.wikipedia.org/wiki/NPTL Native POSIX Thread Library - Wikipedia, the free encyclopedia] * [http://kerneltrap.org/node.php?id=429 Linux: NPTL vs. NPGT vs. LinuxThreads] * [http://linuxdevices.com/articles/AT6753699732.html Migrating to Linux kernel 2.6 -- Part 5: Migrating apps to the 2.6 ... ]