멀티코어와 동기화
카운터가 있는 세마포어(counting semaphore)의 사용법으로 가장 적절한 것은?
- A하나의 변수 값을 반드시 2배로 만든다
- B프로그램의 실행을 모두 하나의 스레드로 모은다
- C동시에 사용할 수 있는 수가 정해진 자원(예: 연결이 4개까지)을 4개의 스레드까지 동시에 사용하게 한다
정답과 해설 보기
정답: C. 동시에 사용할 수 있는 수가 정해진 자원(예: 연결이 4개까지)을 4개의 스레드까지 동시에 사용하게 한다
세마포어는 남은 수를 나타내는 카운터를 가지며, 사용하기 전에 1 줄이고(0이면 늘어날 때까지 대기), 사용이 끝나면 1 늘립니다. 초기값을 4로 하면 동시에 4개까지의 스레드가 자원을 사용할 수 있습니다. 초기값을 1로 하면 락처럼 배타 제어에 사용할 수 있습니다. 기다리는 스레드는 재워 두었다가 OS가 깨우는 것이 일반적입니다.
- A. 값을 계산하는 것이 아닙니다.
- B. 병렬 실행을 제한하는 것이지만, 하나로 모으는 것은 아닙니다.
- C. 맞습니다. 카운터로 남은 수를 관리합니다.