읽기-수정-쓰기
Read–modify–write컴퓨터 과학에서 읽기-수정-쓰기(read-modify-write)는 완전히 새로운 값 또는 이전 값의 일부 함수를 사용하여 메모리 위치를 읽고 동시에 새로운 값을 쓰는 원자 연산(테스트 앤 세트, fetch-and-add, compare-and-swap 등)의 클래스입니다.이러한 작업을 통해 멀티 스레드 애플리케이션에서의 레이스 조건을 방지할 수 있습니다.일반적으로 이들은 뮤텍스 또는 세마포어를 구현하기 위해 사용됩니다.이러한 원자 연산은 논블로킹 동기에서도 많이 사용됩니다.
Maurice Herlihy(1991)는 다음과 같이 합의된 번호에 따라 원자력 운용 순위를 매긴다.
- §: 메모리 간 이동 및 스왑, 증강큐, 비교 및 스왑, fetch-and-cons, 스틱바이트, 로드링크/스토어컨디셔닝(LL/SC)[1]
- 2n-2: n-register 연결
- 2: 테스트 및 설정, 스왑, 가져오기 및 추가, 큐잉, 스택
- 1: 아토믹 읽기 및 아토믹 쓰기
컨센서스 번호가 낮은 조작만으로 소정의 컨센서스 번호가 필요한 조작은 아무리 많이 [2]사용해도 실행할 수 없습니다.읽기-수정-쓰기 명령은 종종 I/O 장치에서 사용할 때 예기치 않은 결과를 초래합니다. 쓰기 작업이 [3]읽기 작업에서 액세스하는 내부 레지스터에 영향을 주지 않을 수 있기 때문입니다.
이 용어는 실제 쓰기 작업을 원자성 읽기-수정-쓰기 [4]시퀀스로 수행하는 RAID 수준과도 관련이 있습니다.이러한 RAID 레벨에는 RAID 4, RAID 5, RAID 6이 포함됩니다.
「 」를 참조해 주세요.
레퍼런스
- ^ Herb Sutter의 "Writing Lock-Free Code: A Corrected Queue" : "CAS(Compare-and-Swap)는 널리 이용 가능합니다...그러나 일부 시스템은 대신 동등한 강력한 로드 링크/스토어 조건부(LL/SC)를 제공합니다."
- ^ Herlihy, Maurice (January 1991). "Wait-free synchronization" (PDF). ACM Trans. Program. Lang. Syst. 13 (1): 124–149. CiteSeerX 10.1.1.56.5659. doi:10.1145/114005.102808. Retrieved 2007-05-20.
- ^ Massmind: "읽기-수정-쓰기 문제"
- ^ "Basic RAID Organizations". umass.edu. Retrieved 2013-10-04.