[ CnUnix ] in KIDS 글 쓴 이(By): Sequoia (매지동자) 날 짜 (Date): 2004년 9월 20일 월요일 오후 08시 44분 10초 제 목(Title): Re: user thread, kernel thread OS 책을 보는데 (pthread 같은) user thread 가 kernel thread 보다 빠르다고 하는 얘기가 있는데 왜 그런 걸까요? 그리고 그렇다면 user thread 가 kernel thread 보다 못한 점은 무엇일까요? ---- user thread는 유저가 스레드를 관리해주는거고 커널 스레드는 커널이 스레드를 관리해주는거죠. 커널 스레드는 CPU가 커널 모드로 전환되어서 '일반적인' 스레드 관리 작업을 하고 다시 유저 모드로 돌아가야 되지요. 이때 어떤 스레드로 돌아갈지도 체크해야 되고요. 유저 스레드는 CPU를 커널 모드로 전환시키지 않아도 되고, 애플리케이션에 특화된 스레드 관리 작업을 할 수 있는 만큼 일반적인 스레드 관리작업보다 작게 만들 수 있지요. 그래서 CPU 모드 전환에 따른 오버헤드나 '일반적인 상황'에 맞게 만든 무거운 스레드 관리 루틴을 수행하지 않아도 되지요. 유저 스레드가 커널 스레드보다 못한 점은 애플리케이션이 스레드 관리에 신경을 써야 된다는거죠. -_-; 스레드 관리 루틴을 언제 만들고 있을까요. 게다가 멀티 프로세서 머신에 대응하는 스레드 기능을 애플리케이션에서 구현하고 있으려면.. (이게 가능한지도 잘 모르겠네요..) * 나는 아직도 배가 고프다. * |