O/S 동기화 문제입니다.
3개이하의 쓰레드만이 critical section 들어갈수 있게 시킬려고 합니다
semaphore 을 이용할 경우 그냥 카운트값 3을 주어 쉽게 풀리는데
mutex를 이용해 3개이하의 쓰레드만이 critical section을 들어갈수 있게 프로그래밍을 해야하는데
도저히 안됩니다 ㅠㅠ 어떻게 하면되죵 ㅠㅠ?
O/S 동기화 문제입니다.
3개이하의 쓰레드만이 critical section 들어갈수 있게 시킬려고 합니다
semaphore 을 이용할 경우 그냥 카운트값 3을 주어 쉽게 풀리는데
mutex를 이용해 3개이하의 쓰레드만이 critical section을 들어갈수 있게 프로그래밍을 해야하는데
도저히 안됩니다 ㅠㅠ 어떻게 하면되죵 ㅠㅠ?
동기화 클래스를 하나 만드셈여.. static UINT cnt 하나 둬서 생성자에 cnt++, 소멸자에 cnt--
O/s 책 문제인데 while(true){ critical section } while 문안에 mutex 사용해서 3개만 critical section 들어가게 만들라고 했어용 ㅠㅠ
critical section은 그 부분에 하나의 쓰레드나 하나의 프로세스만 접근 가능하다고 알았는데... 동시에 3개가 들어갈 수도 있나?
아하 들어가려고 시도하는 쓰레드가 3개 이하라고
쓰레드 3개 이상 들어가게 하는게 문제인 거에영 그냥;;
헐.... 쓰레드가 여러 개가 들어갈 수 있구나... 공부 다시해야할듯 ㅠㅠ
크리티컬 섹션으로 뮤텍스 값을 바꾸는데 쓰시면 되염
아 설명을 잘못했네
크리티컬 섹션에 들어갈 때 세마포어 감소시키는데, 이를 뮤텍스로 한번 감싸는 식으로