-
카테고리
-
세부 분야
시스템
-
해결 여부
미해결
메세지 패싱에 대해 질문이 있습니다.
22.02.16 09:40 작성 조회수 198
1
안녕하세요 교수님!
프로젝트를 하다가 연구 방향에 대해 궁금한 점이 있어서
질문드립니다.
공유 메모리(Shared-memory)가 아니라 메세지 패싱 방식을 이용해서 다자간(생산자, 소비자 각 3명 초과 > 3) 생산자 소비자 문제에 대한 해결 방법을 코딩으로 구현해야 하는 데요.
세마포어를 이용하여 자원 관리를 하고, 타임스탬프를 통해, 큐에 들어온 지 오래된 것부터 소비해야합니다. 이런 경우, 어떻게 접근해야 할까요?
답변을 작성해보세요.
0
주니온
지식공유자2022.03.05
답변이 너무 늦었네요.
질문에 약간 오해의 소지가 있습니다만,
위 질문에서 유추한 해결 방법은 어렵지 않을 것 같습니다.
1. 메시지 패싱 방식이다.
순수한 메시지 패싱 방식이라면 송신자가 수신자를 지정해서 메시지를 던지면 되므로,
단순한 바이너리 세마포어(뮤텍스)로도 충분할 것 같습니다.
2. 타임스탬프를 통해 큐를 관리해야 한다.
단일 큐를 사용한다면, 굳이 타임스탬프를 사용할 필요는 없겠지요?
큐 자료구조를 구현하고 push/pop을 하면 되니까요.
그렇다면, 마찬가지로 바이너리 세마포어(뮤텍스)로도 충분할 것 같습니다.
운영체제 / 프로그래밍 언어별로 큐잉과 세마포어의 지원이 약간씩 다르므로
이것이 최적의 해결책이다, 라고 말씀드릴 순 없지만,
질문하신 상황은 동기화 메커니즘을 충분히 이해했다면
해결책이 몹시 복잡한 상황은 아니므로, 단순하게 생각하시면 쉽게 풀리실 것 같습니다.
답변 1