운영체제 기본/Linux/RCU
외관
RCU(Read-Copy Update)는 읽기가 많고 갱신이 드문 공유 자료구조에서 읽는 쪽의 동기화 부담을 줄이는 방법이다. 새 자료를 공개하는 시점과 이전 자료의 메모리를 회수하는 시점을 분리한다. 읽던 스레드는 이전 자료를 계속 사용할 수 있고, 갱신자는 그 읽기가 끝난 뒤에 이전 자료를 해제한다.
Linux v6.12의 일반 RCU API와 Tree RCU를 다룬다. 내부 구현은 다중 CPU, CONFIG_PREEMPT_RCU=y, 일반 유예 기간을 기준으로 한다. SRCU와 Tasks RCU, 신속 유예 기간은 별도 구현이며 이 흐름에 섞지 않는다.
관련 총론
문서 순서
- 포인터 공개와 읽기 구간: 자료를 초기화한 뒤 공개하고, 읽는 동안 수명을 보장하는 방법.
- 갱신과 메모리 회수: 이전 자료를 분리한 뒤 유예 기간을 기다리는 이유와 동기·비동기 회수.
- Tree RCU와 유예 기간: 읽기 구간 추적, CPU별 상태와 트리, 콜백 실행 경로.
RCU는 갱신자 사이의 상호배제나 공유 자료의 모든 일관성 조건을 대신하지 않는다.