나는 스레드가 무엇인지 알고 어떻게 작동하는지 알고 있지만 사용자 스레드 와 커널 스레드 가 무엇을 허용하는지에 관해서는 혼란 스럽습니다 .
사용자 스레드가 수행 할 수있는 작업과 커널 스레드가 수행 할 수있는 작업을 명확하게 설명 할 수 있습니까?
나는 스레드가 무엇인지 알고 어떻게 작동하는지 알고 있지만 사용자 스레드 와 커널 스레드 가 무엇을 허용하는지에 관해서는 혼란 스럽습니다 .
사용자 스레드가 수행 할 수있는 작업과 커널 스레드가 수행 할 수있는 작업을 명확하게 설명 할 수 있습니까?
답변:
LWP (Lightweight Process)라고도하는 커널 스레드가 커널에 의해 생성되고 예약됩니다. 커널 스레드는 종종 사용자 스레드보다 비용이 많이 들며 커널 스레드를 직접 생성하기위한 시스템 호출은 플랫폼에 따라 다릅니다.
사용자 스레드는 일반적으로 스레딩 라이브러리에 의해 작성되고 스레딩 라이브러리 자체에 의해 스케줄링됩니다 (사용자 모드에서 실행되는 경우). 모든 사용자 스레드는이를 생성 한 프로세스에 속합니다. 사용자 스레드의 장점은 이식성이 있다는 것입니다. 다중 프로세서 시스템을 사용할 때 큰 차이를 볼 수 있습니다. 스레딩 라이브러리로 완전히 관리되는 사용자 스레드는 다른 CPU에서 병렬로 실행될 수 없지만 단일 프로세서 시스템에서는 제대로 실행됩니다. 커널 스레드는 커널 스케줄러를 사용하므로 다른 커널 스레드가 다른 CPU에서 실행될 수 있습니다. 많은 시스템이 스레딩을 다르게 구현합니다.
다 대일 스레딩 모델은 많은 사용자 프로세스를 하나의 커널 스레드에 직접 매핑하므로 커널 스레드는 기본 프로세스로 생각할 수 있습니다. 일대일 스레딩 모델은 각 사용자 스레드를 하나의 커널 스레드에 직접 매핑하므로이 모델을 사용하면 다중 프로세서 시스템에서 병렬 처리가 가능합니다. 각 커널 스레드는 스케줄러가 관리하는 VP (가상 프로세스)로 생각할 수 있습니다.
출처 : 답변
또한 wikipedia 3-3 장 프로세스, 커널 스레드, 사용자 스레드 및 파이버에서 정보를 찾을 수 있습니다.