• 카테고리

    질문 & 답변
  • 세부 분야

    시스템

  • 해결 여부

    미해결

메세지 패싱에 대해 질문이 있습니다.

22.02.16 09:40 작성 조회수 198

1

안녕하세요 교수님!

프로젝트를 하다가 연구 방향에 대해 궁금한 점이 있어서

질문드립니다.

 

공유 메모리(Shared-memory)가 아니라 메세지 패싱 방식을 이용해서 다자간(생산자, 소비자 각 3명 초과 > 3) 생산자 소비자 문제에 대한 해결 방법을 코딩으로 구현해야 하는 데요.

 

세마포어를 이용하여 자원 관리를 하고, 타임스탬프를 통해, 큐에 들어온 지 오래된 것부터 소비해야합니다. 이런 경우, 어떻게 접근해야 할까요? 

답변 1

답변을 작성해보세요.

0

답변이 너무 늦었네요.

 

질문에 약간 오해의 소지가 있습니다만,

위 질문에서 유추한 해결 방법은 어렵지 않을 것 같습니다.

 

1. 메시지 패싱 방식이다.

순수한 메시지 패싱 방식이라면 송신자가 수신자를 지정해서 메시지를 던지면 되므로, 

단순한 바이너리 세마포어(뮤텍스)로도 충분할 것 같습니다.

 

2. 타임스탬프를 통해 큐를 관리해야 한다.

단일 큐를 사용한다면, 굳이 타임스탬프를 사용할 필요는 없겠지요?

큐 자료구조를 구현하고 push/pop을 하면 되니까요.

그렇다면, 마찬가지로 바이너리 세마포어(뮤텍스)로도 충분할 것 같습니다.

 

운영체제 / 프로그래밍 언어별로 큐잉과 세마포어의 지원이 약간씩 다르므로

이것이 최적의 해결책이다, 라고 말씀드릴 순 없지만,

질문하신 상황은 동기화 메커니즘을 충분히 이해했다면

해결책이 몹시 복잡한 상황은 아니므로, 단순하게 생각하시면 쉽게 풀리실 것 같습니다.

 

감사합니다 교수님!! :)