위키득계정 ↗
기술

Userspace RCU

Userspace RCU기술
라이브러리 이름
liburcu
기반 방식
Read-Copy Update
적용 위치
사용자 공간
제공 변형
memb와 qsbr 및 mb와 bp
Userspace RCU는 사용자 공간 프로그램에서 Read-Copy Update 방식의 동시 자료 접근을 제공하는 라이브러리다. 읽기 구간과 갱신 및 이전 자료의 사용이 끝나는 시점을 연결해 안전한 자료 교체와 지연 처리를 구성한다.

읽기 구간과 자료 교체

읽는 스레드는 정해진 임계 구간에서 보호된 포인터에 접근한다. 갱신 측은 포인터를 바꾼 뒤 이전 값을 쓰는 독자가 더 이상 남지 않았는지 확인하는 유예 기간을 기다릴 수 있다. 갱신된 자료의 공개와 이전 자료의 사용 종료를 구분하는 구조다.

실행 조건에 맞는 변형

여러 라이브러리 변형은 읽기 측 부담과 유예 기간 확인 방식 및 응용의 참여 조건이 다르다. QSBR 방식은 독자 스레드가 휴지 상태를 주기적으로 알리는 동작을 필요로 한다. 다른 변형은 메모리 장벽이나 운영체제 기능 등을 활용한다.

지연 처리와 주변 인터페이스

유예 기간 이후 실행할 콜백을 등록해 이전 자료의 후속 처리를 비동기적으로 구성할 수 있다. RCU 외에 동시 자료 구조와 원자적 연산 및 메모리 모델 관련 인터페이스도 제공한다. 사용하는 변형과 API에 맞는 스레드 등록 및 구간 규칙을 지켜야 한다.

관련 문서

snmalloc / jemalloc / 메모리 관리 / 프로세스 / 동시성 / 리눅스