공유메모리를 이용한 프로세스간 MUTEX 가 가능한가요?
글쓴이: ssehoony / 작성시간: 수, 2006/03/15 - 7:00오후
1. 세마포어보단 pthread 의 mutex 가 더 가볍다.
2. 난 세마포어와 같이 레퍼런스 카운트까지 하는 것은 필요 없다. 그냥 lock, unlock 만 있으면 된다.
3. 공유메모리를 이용해 프로스세간 변수를 공유할 수 있다.
위 세개의 종합적 사고의 결과물로
"공유메모리에 pthread 의 mutex 를 올려서 세마포어 대신 사용하면 조금이나마 빠르지 않을까?"
라는 것을 얻었습니다.
근데 공유메모리에 mutex 를 올려서 사용해도 문제가 생기지 않을지 궁금하네요.
멀티프로세스에서의 공유메모리는 1,2차 캐쉬 때문에 상당히 복잡한 메커니즘으로 구성되어 있을 듯 한데, mutex 를 사용해도 되나요?
사용해도 된다면, 세마포어를 사용하는 것 보다 더 빠른가요?
제가 쓸데 없는 생각하고 있나요? ㅡ.ㅡ;
Forums:
당근 되죠..
뮤텍스를 공유메모리에 올리고 뮤텍스를 시스템 스코프로 설정하시고...
솔라리스 같은 경우는 프로세스 종료시에 잡고 있던 락을 해제하게끔 할수도
있습니다.
심지어는 파일에 락을 저장해 두고 메모리에 매핑해서 쓸수도 있습니다.-_-
리눅스에서
프로세스간 뮤텍스 공유는 안되는걸로 알고있는데,
바뀌었는지 모르겠네요.
다른 UNIX에서는 pthread api로 mutex 공유를 할수는 있습니다.
리눅스에서는 아마 구현 안되어 있다는 errno 값이 나올겁니다
無心
댓글 달기