posix Thread와 typical thread의 차이에 대하여
글쓴이: 윤형수 / 작성시간: 월, 2003/07/21 - 7:30오후
안녕하세요...
posix thread(linux, IEE)와 typical thread(Unix, System v) 의
차이에 대해서 공부하고자 합니다. 공부 잘 되면 세미나두 할려고 합니다.
일반적으로 함수명 다르고, 지금은 unix에서도 pthread지원하고 있는걸로
알고 잇습니다.
일반적으로 두 thread 모델의 차이라 함은 어떤게 있나요?
함수 사용차이는 알겠는데, 개념적, 특징적, 기타 차이점들을 알고 싶습니다.
두 thread 비교해 놓은 자료나 책들을 공부하신 분 계시면 책이나 자료에
관해서 좀 알려 주시면 감사드리겠습니다.
Forums:
Re: posix Thread와 typical thread의 차이에 대하여
Posix Thread 라는 것은 그냥 thread 가 가져야 할 인터페이스를 정의해 놓은 겁니다. 단순히 그런식으로 구분하기는 힘들죠.
그냥 User Thread 와 Lightweight Process 뭐, 이런걸 찾아보시길...
그럼 고운 하루되세요.
=========================
CharSyam ^^ --- 고운 하루
=========================
게다가.......
아마도 POSIX 쓰레드 자체는 존재 하지않으며
유닉스 쓰레드를 POSIX 쓰레드에 맞춰 구현했을것입니다 --;
따라서 유닉스에서 POSIX 쓰레드를 쓰면 내부에선 유닉스 SVR 쓰레드가
돌아가고 있는것이져
승자는 자기보다 우월한 사람을 보면 존경심을 갖고 그로부터 배울 점을 찾지만 패자는 자기보다 우월한 사람을 만나면 질투심을 갖고 어디 구멍난 곳이 없는지 찾는다.
- 하비스
[quote]posix thread(linux, IEE)와 typical
앞서 다른 분이 답변하신 것처럼 pthread는 쓰레드를 다루기 위한 API 및 쓰레드의 행동 방식에 대한 표준일 뿐입니다.
즉, 시그널 처리는 어떻게 해야 한다라든가, 이런 함수는 이렇게 동작해야 한다거나.. 하는 것들을 정의해 놓은 것이지요..
각 벤더가 pthread를 구현할 때는 일반적으로 자신의 OS 내부의 자체적인 쓰레드를 이용합니다. 단, 기억할 것은 pthread를 구현하기 위해 내부적으로 어떤 방법을 선택할 것인가는 구현자의 몫이라는 것입니다.
예를 들면, pthread는 순전히 user-level에서만 구현될 수도 있습니다. 또는 순전히 kernel-level의 모델로 구현할 수도 있겠지요.. 리눅스에서 사용하는 LinuxThread 구현의 경우는 심지어 pthread를 "프로세스"를 이용하여 구현합니다. 그렇다고, "프로세스"를 이용하였기 때문에 리눅스의 pthread는 제대로 된 pthread 구현이 아니다라고 말할 수는 없습니다. 또한 두 방식의 장점을 취한 two-level 모델도 있는데, 많은 상용 유닉스 벤더의 경우 이 구현을 택하고 있습니다.
흠.. 말이 두서가 없는데요..
정리해 보자면, pthread는 프로그래머에게 표준화된 API 및 행동 양식을 정의해 줄 뿐입니다. 그 내부적으로는 OS 자체적인 어떤 구현 방식이라도 이용할 수 있습니다.
따라서, pthread와 솔라리스의 lwp 모델을 비교한다? 이런 건 그리 의미가 없어 보입니다..
pthread 쓰레드 라이브러리
| |
lwp 커널 쓰레드
위와 같은 계층 관계니까요.
(물론 앞서 언급한 순수한 user-level에서 구현된 경우는 커널과는 무관합니다.)
차라리 쓰레드 모델을 공부해 보고 싶으시다면, 각 벤더 별로 제공하는 내부적인 쓰레드 모델끼리의 비교 분석을 해 보시는 게 좋을 듯 합니다.
어차피 posix라는 것 자체가 일종의 개념일 뿐이지요.http:
어차피 posix라는 것 자체가 일종의 개념일 뿐이지요.
http://terms.co.kr/POSIX.htm
저길 한번 보시면 posix에 대해 설명이 되어있습니다.
뭐, 말씀하셨듯 단지 Pthread는 껍데기일 뿐이겠지요.
SOrCErEr
댓글 달기