위키득계정 ↗
기술

Relacy

Relacy기술
분류
동기화 알고리즘 검증 도구
언어
C플러스플러스
배포 형태
헤더 전용 라이브러리
주요 자료형
rl::atomic과 rl::thread
Relacy는 완화된 메모리 모델에서 동기화 알고리즘을 검사하기 위한 C플러스플러스 도구다. 분석용 원자 연산과 스레드 표현을 사용해 테스트를 구성한다.

검사용 실행 환경

원자적 연산을 사용한 코드라도 메모리 순서가 의도와 다르면 결과가 달라질 수 있다. Relacy는 이런 동기화 알고리즘을 별도 검사 환경에 놓고 살펴보는 데 쓰인다. 실제 서비스 전체보다 공유 상태와 스레드 동작을 좁힌 테스트가 출발점이 된다.

기존 코드와 연결

기본적으로 Relacy가 정의한 자료형을 사용해 테스트를 작성한다. 표준 헤더를 가로채 std 이름으로 작성된 코드를 다루는 방식도 제공한다. 이 방식은 포함 경로와 첫 헤더 등 요구 조건이 있으므로 단순한 링크 옵션 변경으로 취급하면 안 된다.

이식성과 유지 관리

표준 라이브러리를 대신하는 구성은 컴파일러와 라이브러리 구현이 바뀌면 동작하지 않을 수 있다. 검증 도구 자체의 지원 환경과 검사 대상의 컴파일 조건을 함께 기록해야 한다. 헤더 전용이라는 배포 방식이 환경 차이를 모두 없애 주는 것은 아니다.

관련 문서

CDSChecker / GenMC / Nidhugg / Jcstress