패스잇
CS 기초 · 심화

Read-Copy Update(RCU)는 다중 코어 환경에서 읽기 중심의 데이터 구조에 대한 동시성 제어를 위해 널리 사용되는 기법입니다. RCU의 동작 원리(읽기 측, 쓰기 측)를 상세히 설명하고, 기존 락 기반 동기화 방식과 비교했을 때 RCU가 제공하는 성능상의 이점과 한계점은 무엇인지 논해 주십시오.

힌트 · `grace period`, `quiescent state`의 개념, 읽기 스레드의 락 획득 없이 데이터 접근 가능, 쓰기 스레드의 복사-수정-교체 전략, 그리고 쓰기 오버헤드와 메모리 소비 증가를 중심으로 설명해야 합니다.

Read-Copy Update스핀락메모리 배리어Grace Period쓰기 측 지연

모범답안

Read-Copy Update(RCU)는 읽기 작업이 매우 빈번한 상황에서 락 없이 동시성을 확보하는 기법입니다. 읽기 측에서는 락 획득 없이 공유 데이터에 접근하며, 쓰기 측에서는 데이터를 직접 수정하지 않고 복사본을 만들어 수정 후 원자적으로 교체합니다.

RCU의 핵심은 'Grace Period'인데, 이는 모든 읽기 스레드가 공유 데이터에 대한 접근을 완료하는 시점을 의미합니다. Grace Period가 지나면 이전 데이터에 대한 참조가 없다고 판단하고 안전하게 메모리를 해제할 수 있습니다.

락 기반 방식과 비교했을 때 RCU는 읽기 성능이 월등히 뛰어납니다. 락 획득/해제 오버헤드가 없기 때문입니다. 하지만 쓰기 작업 시 복사본 생성 및 교체에 따른 오버헤드가 발생하고, Grace Period 동안 이전 데이터를 유지해야 하므로 메모리 사용량이 증가하는 단점이 있습니다. 또한, 쓰기 작업이 지연될 수 있다는 점도 고려해야 합니다. 따라서 읽기 비율이 압도적으로 높은 경우에 RCU가 효과적입니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 운영체제 면접 질문

← 운영체제 면접 질문 전체 보기