형제프로세스가 아닌 다른프로세스끼리 뮤텍스 사용하려면..

ㅡ,.ㅡ;;의 이미지

제가 뮤텍스는 잘사용을 안해서..

형제프로세스가 아닌 다른프로세스끼리는 뮤텍스 사용할수있나요?

여테까지 주로 세마포어 사용했었는데.. 뮤텍스로 할수 있나요?

nTachyon의 이미지

반드시 뮤텍스여야만 하나요???

반드시... 가 아니라면... 프로세스 사이에선 세마포어를 이용하심이...

반드시... 이더라도 뮤텍스는 힘들지 않나요?

ㅡ,.ㅡ;;의 이미지

nTachyon wrote:
반드시 뮤텍스여야만 하나요???

반드시... 가 아니라면... 프로세스 사이에선 세마포어를 이용하심이...

반드시... 이더라도 뮤텍스는 힘들지 않나요?

꼭그렇게 해야하는건 아닙니다만.. 그걸사용하고 싶어서요..ㅎㅎ
말했듯이 여테까지는 세마포어로 했었습니다.
그런데 순전히 제상각에 적용할부분이 뮤텍스를 사용함이 더 합당하다는 생각이 드는군요..ㅎㅎ


----------------------------------------------------------------------------

nTachyon의 이미지

기존에 이에 대한 글이 있네요.

아마 검색하셨을 수도 있지만 혹시나 해서

리눅스 환경이라면 힘드실 듯...

http://bbs.kldp.org/viewtopic.php?t=28658&highlight=%B9%C2%C5%D8%BD%BA+%BC%BC%B8%B6%C6%F7%BE%EE+%C7%C1%B7%CE%BC%BC%BD%BA

jemiro의 이미지

아래 것들이 정의 되어 있다면, 뮤텍스를 프로세스간에 사용할수 있습니다.
_POSIX_THREAD_PROCESS_SHARED

pthread_condattr_getpshared()
pthread_condattr_setpshared()
pthread_mutexattr_getpshared()
pthread_mutexattr_setpshared()
pthread_rwlockattr_getpshared()
pthread_rwlockattr_setpshared()

그리고 리눅스에서도 잘됩니다.

김성진의 이미지

제 기억으로는 redhat 7.x에서는 안되었고,

nptl이 적용된 리눅스는 되었던 걸로 문서에서 읽었습니다.

그..러..나..,

shared mutex를 쓴다는 이야기는 shared condition variables

(pthread_cond...)를 쓸 수 있다는 이야기인데,

이 부분은 애석하게도 portability가 그리 높지 않습니다.

제 의견으로는 portability를 중시하신다면,

시스템 세마퍼가 가장 낫고, 그렇지 않다면 case by case로

동작 유무를 일일이 체크해 보셔야 할 것입니다.

오랜된 운영체제에서는 지원을 하지 않습니다.

김성진 드림

고도의 추상화, 극도의 구체화, 에디슨을 그리워하다.