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 코칭합니다.
함께 보는 운영체제 면접 질문
- 시스템의 물리 메모리가 고갈될 위기에 처했을 때, 리눅스 OOM Killer는 어떤 기준으로 프로세스를 선택하여 종료시키며, OOM Killer의 동작 방식이 애플리케이션의 안정성과 가용성에 미치는 영향은 무엇입니까? OOM Killer의 동작을 제어하거나 회피할 수 있는 OS 수준의 설정 및 설계 기법에 대해 논하시오.
- ZFS나 Btrfs와 같은 Copy-on-Write(CoW) 파일 시스템은 기존 저널링 파일 시스템과 비교했을 때 데이터 무결성, 스냅샷, 데이터 보호 측면에서 어떤 근본적인 장점과 단점을 가집니까? CoW 파일 시스템의 내부 동작 원리를 설명하고, 대규모 데이터 환경에서 CoW 파일 시스템을 효과적으로 활용하기 위한 설계 전략을 제시해 주십시오.
- 리눅스 커널의 다양한 I/O 스케줄러(예: Noop, Deadline, CFQ, MQ-deadline)는 각각 어떤 특성과 목표를 가지고 있으며, 특정 워크로드(예: 데이터베이스, 웹 서버, 가상화 환경)에서 최적의 성능을 얻기 위해 어떤 I/O 스케줄러를 선택하고 튜닝해야 하는지 구체적인 근거와 함께 설명해 주십시오.
- 사용자 공간(User Space) 애플리케이션이 시스템 호출(System Call)을 통해 커널 공간(Kernel Space)의 서비스를 이용하는 전체 과정을 상세히 설명해 주십시오. 특히, 시스템 호출 트랩(trap) 발생부터 커널 내부의 핸들러 처리, 그리고 결과 반환까지의 메커니즘을 CPU 모드 전환과 보호 링(Protection Ring) 개념을 포함하여 기술하시오.