멀티코어와 동기화
하드웨어 트랜잭셔널 메모리(hardware transactional memory)의 개념으로 올바른 것은?
- A임계 구역을 투기적으로 실행하고, 다른 스레드와 충돌이 없으면 한꺼번에 확정(commit)하며, 충돌하면 취소하고 재시도한다
- B모든 메모리 읽기·쓰기를 은행 거래처럼 디스크에 기록한다
- C메모리 쓰기를 금지하고 읽기만 허용한다
정답과 해설 보기
정답: A. 임계 구역을 투기적으로 실행하고, 다른 스레드와 충돌이 없으면 한꺼번에 확정(commit)하며, 충돌하면 취소하고 재시도한다
트랜잭셔널 메모리에서는 임계 구역을 트랜잭션으로 실행하고, 그동안의 쓰기는 임시적인 것으로서 다른 곳에 보이지 않게 합니다. 다른 스레드가 같은 데이터에 접근하지 않았다면 마지막에 모든 쓰기를 한 번에 확정하고, 충돌이 있으면 전부 취소하고 재시도하거나 일반 락으로 전환합니다. 충돌이 적으면 거친 단위 락 그대로도 세밀한 단위 락에 가까운 병렬성을 얻을 수 있습니다.
- A. 맞습니다. 락을 잡지 않고 병렬로 실행할 수 있는 경우가 있습니다.
- B. 디스크 기록과는 관계없습니다.
- C. 쓰기도 수행합니다.