2 개의 프로세스 동기화에 문제가 있습니다. 3 개의 X 프로세스와 5 개의 Y 프로세스가 있습니다. 또한 나는 2 개의 자원 - A와 B를 가지고있다.상호 제외 및 프로세스 동기화; C++
자원 'A'는 동시에 최대 3 번 처리 될 수 있으며 자원 'B'에 접근하면 상호 제외가 필요하다.
프로세스 X와 Y :
void processX()
{
while (1)
{
AccessToResource(B);
AccessToResource(A);
}
}
void processY()
{
while (1)
{
AccessToResource(A);
AccessToResource(B);
}
}
내가 할 수있는 방법이 세마포어, 뮤텍스, 이벤트, 가장 짧은 방법을 사용하고 계십니까? 대한
는 지금은
CSemaphore sem(1,5,L"semaph");
을 가지고 이전과 리소스에 액세스 할 후) sem.Lock()와 sem.Unlock (하여 사용하고 있지만 그것은 아주 좋지 않다.
그래서 A와 B 모두에 대한 액세스를 동시에 잠글 필요가 없습니까? 각 리소스에 대한 액세스는 다른 리소스와 별도로 처리 할 수 있습니까? –
프로세스 X와 Y가 동시에 실행 중입니다. 나는 그것을 다루는 방법을 모르지만, 그것과 같은 나의 첫 번째 과제이다. – Pawel
@Pawel C++ 표준은 프로세스에 대한 개념이 없으며 표준 라이브러리에는 프로세스 간 통신 API가 없다. 질문에 사용할 API를 지정해야합니다. – user2079303