[질문] 메시지큐에 멀티 프로세스 접근 문제
글쓴이: kpserv / 작성시간: 금, 2009/07/03 - 3:48오후
오랜만에 질문을 드립니다..^^;;
멀티프로세스와 메시지큐에 관한 것입니다..
이해도를 높이기 위해.. 예를 들어서 설명을 하겠습니다..^^
10개의 프로세스가 하나의 메시지큐에 데이터를 삽입하고..
하나의 프로세스는 그 메시지큐에서 데이터를 꺼내어 간다고 했을때..
10개의 프로세스가 동시에 접근해서 데이터를 삽입했을때..
데이터가 뒤섞이는 문제를 일으키는 경우가 있나요? (세마포어를 쓰지 않았을경우임)
제가 알기론 메시지큐는 시스템 콜이다 보니 문제가 없어보이는데요..^^;;
제가 이해하고 있는게 맞는건가요???
Forums:
네 맞습니다.
메시지 큐는 어플리케이션(유저) 레벨에서 동기화가 필요 없습니다. 데이터 뒤섞이지 않구요.
그리고 마지막 말씀에 대해서 조금 정정을 해드리자면,
시스템콜이이다 보니 문제 없는 것은 아니구요. 그냥 메시지큐 관련 시스템 콜 코드 내에 동기화 코드
가 들어있는 것일 뿐 시스템 콜과 프로세스 동기화는 전혀 별개 문제 입니다.
메시지큐가 제일 좋죠
멀티 쓰레드 프로그래밍하는 사람에게는 메시지큐가 최고라고 생각합니다.
문제는 내부적으로 lock 을 사용하기 때문에 IPC (시그널,파이프,메시지큐) 중에서 가장 속도가 느리다고 서버 프로그래밍 방식중에서는 천대(?)받는 경향이 있고요. (ui 프로그래밍으로서는 훌륭한데)
linux/unix 에서는 IPC 고유 ID 및 개수 제한이 있어서 무한정 생성해서 쓸 수도 없습니다.
(MS windows 에서도 메시지 큐 비슷한게 있긴 했었는데... 그건 어떤지 잘 모르겠슴)
-----
안녕하세요 소프트웨어 공학센터 장원석 책임입니다.
http://www.software.kr
댓글 달기