CnUnix

[알림판목록 I] [알림판목록 II] [글목록][이 전][다 음]
[ CnUnix ] in KIDS
글 쓴 이(By): ksangeun (우주인)
날 짜 (Date): 2004년 9월 21일 화요일 오전 09시 48분 55초
제 목(Title): Re: user thread, kernel thread


User thread가 Kernel thread보다 빠르다는 이야기가 저는 정확히

잘 이해가 안가는데요..

Sequoia님이 user mode에서 kernel 모드로 전환하는 오버헤드 때문

이라고 하셨는데, 정말 그 오버헤드가 그렇게 큰지 잘 모르겠습니다.

막연히 생각하면, 일반적인 윈도우즈 디바이스 드라이버 프로그래밍..

(DDK를 써서 만드는 NDIS Level 네트웍 프로그래밍이라던지..)

같은거는 오히려 User레벨의 소켓 프로그램보다 오버헤드도 적고

속도가 빠릅니다만 이거는 thread의 수행 속도가 빨라서가 아니라

거쳐가는 layer가 적기때문일태고...

막연히는 user level에서 thread가 돌 때는 kernel이 user level에서

수행될 수 없는 코드가 들어오면 blocking도 해야되고 해서 kernel이

더 바빠져서 user level이 더 느리지 않을까 하는 생각을 했는데..

OS 수업 들은지 7~8년 되어서 기억이 가물가물...

보충 설명 좀 해 주시면 감사하겠습니다.

p.s. 방금 윗 글을 다시 살펴보니 user thread의 의미가

user가 코드로 구현한 thread를 의미하는 것 같은데...맞나요?

저는 user level process, kernel level process로 이해했는데...



=======================================================================
main(){int a=107,j=2;while(a>-5000){a=a>0?a:99;putchar(a);
a=j==49?46:a-j;j*=j;j=j%256?j:7;j*=j%16?1:-1;};printf("%cm\n",111);};
=======================================================================

[알림판목록 I] [알림판목록 II] [글 목록][이 전][다 음]
키 즈 는 열 린 사 람 들 의 모 임 입 니 다.