멀티코어와 동기화
메모리 배리어(펜스) 명령의 역할로 올바른 것은?
- A배리어 이전의 메모리 동작이 배리어 이후의 동작보다 먼저 다른 코어에 보이는 것을 보장한다
- B메모리를 물리적으로 구분하여 접근을 금지한다
- C모든 스레드가 모일 때까지 프로그램 실행을 멈춘다
정답과 해설 보기
정답: A. 배리어 이전의 메모리 동작이 배리어 이후의 동작보다 먼저 다른 코어에 보이는 것을 보장한다
CPU는 메모리 동작의 순서를 바꾸는 경우가 있으므로, 다른 코어와 정해진 순서로 데이터를 주고받으려면 그것을 막는 지시가 필요합니다. 메모리 배리어는 그 앞의 읽기·쓰기를 모두 끝낸 뒤(다른 코어에 보이게 한 뒤) 뒤의 읽기·쓰기를 수행하게 합니다. 락의 획득이나 해제 안에도 배리어의 기능이 포함되어 있어, 락으로 보호한 변수가 올바르게 전달됩니다.
- A. 맞습니다. 메모리 동작의 순서 변경을 막습니다.
- B. 접근 금지는 페이지 보호 등의 메커니즘입니다.
- C. 그것은 스레드 간 배리어 동기화입니다.