posix Thread와 typical thread의 차이에 대하여

윤형수의 이미지

안녕하세요...

posix thread(linux, IEE)와 typical thread(Unix, System v) 의
차이에 대해서 공부하고자 합니다. 공부 잘 되면 세미나두 할려고 합니다.

일반적으로 함수명 다르고, 지금은 unix에서도 pthread지원하고 있는걸로
알고 잇습니다.

일반적으로 두 thread 모델의 차이라 함은 어떤게 있나요?

함수 사용차이는 알겠는데, 개념적, 특징적, 기타 차이점들을 알고 싶습니다.

두 thread 비교해 놓은 자료나 책들을 공부하신 분 계시면 책이나 자료에
관해서 좀 알려 주시면 감사드리겠습니다.

charsyam의 이미지

윤형수 wrote:
안녕하세요...

posix thread(linux, IEE)와 typical thread(Unix, System v) 의
차이에 대해서 공부하고자 합니다. 공부 잘 되면 세미나두 할려고 합니다.

일반적으로 함수명 다르고, 지금은 unix에서도 pthread지원하고 있는걸로
알고 잇습니다.

일반적으로 두 thread 모델의 차이라 함은 어떤게 있나요?

함수 사용차이는 알겠는데, 개념적, 특징적, 기타 차이점들을 알고 싶습니다.

두 thread 비교해 놓은 자료나 책들을 공부하신 분 계시면 책이나 자료에
관해서 좀 알려 주시면 감사드리겠습니다.

Posix Thread 라는 것은 그냥 thread 가 가져야 할 인터페이스를 정의해 놓은 겁니다. 단순히 그런식으로 구분하기는 힘들죠.

그냥 User Thread 와 Lightweight Process 뭐, 이런걸 찾아보시길...

그럼 고운 하루되세요.

=========================
CharSyam ^^ --- 고운 하루
=========================

mastercho의 이미지

아마도 POSIX 쓰레드 자체는 존재 하지않으며

유닉스 쓰레드를 POSIX 쓰레드에 맞춰 구현했을것입니다 --;

따라서 유닉스에서 POSIX 쓰레드를 쓰면 내부에선 유닉스 SVR 쓰레드가

돌아가고 있는것이져

승자는 자기보다 우월한 사람을 보면 존경심을 갖고 그로부터 배울 점을 찾지만 패자는 자기보다 우월한 사람을 만나면 질투심을 갖고 어디 구멍난 곳이 없는지 찾는다.
- 하비스

shkwon81의 이미지

Quote:
posix thread(linux, IEE)와 typical thread(Unix, System v) 의
차이에 대해서 공부하고자 합니다. 공부 잘 되면 세미나두 할려고 합니다.

일반적으로 함수명 다르고, 지금은 unix에서도 pthread지원하고 있는걸로
알고 잇습니다.

일반적으로 두 thread 모델의 차이라 함은 어떤게 있나요?

앞서 다른 분이 답변하신 것처럼 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에서 구현된 경우는 커널과는 무관합니다.)

차라리 쓰레드 모델을 공부해 보고 싶으시다면, 각 벤더 별로 제공하는 내부적인 쓰레드 모델끼리의 비교 분석을 해 보시는 게 좋을 듯 합니다.

sorcerer의 이미지

어차피 posix라는 것 자체가 일종의 개념일 뿐이지요.

http://terms.co.kr/POSIX.htm

저길 한번 보시면 posix에 대해 설명이 되어있습니다.
뭐, 말씀하셨듯 단지 Pthread는 껍데기일 뿐이겠지요.

SOrCErEr

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.