사용자 스레드와 커널 스레드는 무엇입니까?


13

나는 스레드가 무엇인지 알고 어떻게 작동하는지 알고 있지만 사용자 스레드커널 스레드 가 무엇을 허용하는지에 관해서는 혼란 스럽습니다 .

사용자 스레드가 수행 할 수있는 작업과 커널 스레드가 수행 할 수있는 작업을 명확하게 설명 할 수 있습니까?


1
이 질문에 이미 이미 답변되었습니다 : stackoverflow.com/questions/5957570/kernel-space-vs-user-space
Shadok

잘 질문이 있지만 제대로 대답하지 않았습니다. 그 사람이 요구 한 5 가지 또는 6 가지의 대답은 모두 사용자 공간과 커널 공간에 관한 것입니다.
Fasih Khatib

1
Dave Rager의 정의는 간결하고 정확하다고 생각합니다. "커널 공간과 사용자 공간은 권한있는 운영 체제 기능과 제한된 사용자 응용 프로그램의 분리입니다."
Shadok

답변:


13

LWP (Lightweight Process)라고도하는 커널 스레드가 커널에 의해 생성되고 예약됩니다. 커널 스레드는 종종 사용자 스레드보다 비용이 많이 들며 커널 스레드를 직접 생성하기위한 시스템 호출은 플랫폼에 따라 다릅니다.

사용자 스레드는 일반적으로 스레딩 라이브러리에 의해 작성되고 스레딩 라이브러리 자체에 의해 스케줄링됩니다 (사용자 모드에서 실행되는 경우). 모든 사용자 스레드는이를 생성 한 프로세스에 속합니다. 사용자 스레드의 장점은 이식성이 있다는 것입니다. 다중 프로세서 시스템을 사용할 때 큰 차이를 볼 수 있습니다. 스레딩 라이브러리로 완전히 관리되는 사용자 스레드는 다른 CPU에서 병렬로 실행될 수 없지만 단일 프로세서 시스템에서는 제대로 실행됩니다. 커널 스레드는 커널 스케줄러를 사용하므로 다른 커널 스레드가 다른 CPU에서 실행될 수 있습니다. 많은 시스템이 스레딩을 다르게 구현합니다.

다 대일 스레딩 모델은 많은 사용자 프로세스를 하나의 커널 스레드에 직접 매핑하므로 커널 스레드는 기본 프로세스로 생각할 수 있습니다. 일대일 스레딩 모델은 각 사용자 스레드를 하나의 커널 스레드에 직접 매핑하므로이 모델을 사용하면 다중 프로세서 시스템에서 병렬 처리가 가능합니다. 각 커널 스레드는 스케줄러가 관리하는 VP (가상 프로세스)로 생각할 수 있습니다.

출처 : 답변

또한 wikipedia 3-3 장 프로세스, 커널 스레드, 사용자 스레드 및 파이버에서 정보를 찾을 수 있습니다.


나는 논증이 실제로 무엇인지 정확히 알지 못하고 대답을 완전히 알지 못하고 복사하는 것이 좋은 생각이라고 생각하지 않습니다. LWP는 일반적으로이 마지막 스레드와 사용자 스레드 사이의 브릿지로 커널 스레드 위에 작성되지 않습니까? 또한이 답변은 용어를 계속
바꾸어 놓기
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.