멀티코어와 동기화
임계 구역(critical section)에 대한 설명으로 올바른 것은?
- A공유 데이터를 조작하므로 동시에 하나의 스레드만 실행해야 하는 프로그램의 부분
- B프로그램 중에서 실행 시간이 가장 긴 부분
- C오류가 발생했을 때만 실행되는 부분
정답과 해설 보기
정답: A. 공유 데이터를 조작하므로 동시에 하나의 스레드만 실행해야 하는 프로그램의 부분
공유 변수를 읽고 갱신하는 부분을 여러 스레드가 동시에 실행하면 데이터 레이스가 일어납니다. 이처럼 동시에 하나의 스레드만 실행해야 하는 부분을 임계 구역이라 부르며, 들어가기 전에 락을 잡고 나올 때 해제하여 보호합니다. 임계 구역이 길수록 다른 스레드가 기다리는 시간도 길어지므로, 가능한 한 짧게 하는 것이 기본입니다.
- A. 맞습니다. 락 등으로 보호합니다.
- B. 실행 시간의 길이로 정해지는 것이 아닙니다.
- C. 오류 처리를 말하는 것이 아닙니다.