멀티코어와 동기화

아토믹 명령(atomic instruction, 불가분 명령)에 대한 설명으로 올바른 것은?

  1. A메모리의 읽기와 쓰기를, 도중에 다른 코어가 끼어들 수 없는 하나의 동작으로 수행하는 명령
  2. B원자의 수를 세기 위한 물리 계산용 명령
  3. C반드시 1클록에 끝나는 가장 빠른 명령
정답과 해설 보기

정답: A. 메모리의 읽기와 쓰기를, 도중에 다른 코어가 끼어들 수 없는 하나의 동작으로 수행하는 명령

아토믹 명령은 읽고, 계산하고, 쓰는 일련의 처리를 다른 코어의 읽기·쓰기가 사이에 끼어들지 않는 형태로 수행합니다. 다른 코어에서는 동작 전이나 후의 상태만 보입니다. CAS(compare-and-swap), fetch-and-add, RISC-V의 LR/SC나 AMO 명령 등이 있으며, 락이나 락프리(lock-free) 자료구조를 만드는 토대가 됩니다.

  • A. 맞습니다. 다른 코어에서는 한순간에 일어난 것처럼 보입니다.
  • B. 아토믹은 「나눌 수 없다」는 의미입니다.
  • C. 속도가 아니라 나눌 수 없다는 점이 특징입니다.
이 분야 연습하기 분야로 돌아가기

멀티코어와 동기화의 다른 문제

  1. 아토믹 명령 CAS(compare-and-swap)의 동작으로 올바른 것은?
  2. 위 코드는 CAS(&p, 기대값, 새 값)를 사용하여 공유 변수 counter를 2배로 만들고 있다. CAS가 실패하여 루프를 다시 도는 경우는 언제인가?
  3. RISC-V의 LR/SC(load-reserved/store-conditional)와 같은 명령 쌍에서, SC(조건부 스토어)가 실패하는 경우는 언제인가?
  4. CAS를 사용한 락프리 자료구조에서 문제가 되는 ABA 문제에 대한 설명으로 올바른 것은?
  5. RISC-V의 amoadd.w 명령이나 x86의 lock xadd 명령과 같은 fetch-and-add 명령의 동작으로 올바른 것은?

이 분야의 비교