읽기-수정-쓰기

Read–modify–write

컴퓨터 과학에서 읽기-수정-쓰기(read-modify-write)는 완전히 새로운 값 또는 이전 값의 일부 함수를 사용하여 메모리 위치를 읽고 동시에 새로운 값을 쓰는 원자 연산(테스트 앤 세트, fetch-and-add, compare-and-swap 등)의 클래스입니다.이러한 작업을 통해 멀티 스레드 애플리케이션에서의 레이스 조건을 방지할 수 있습니다.일반적으로 이들은 뮤텍스 또는 세마포어를 구현하기 위해 사용됩니다.이러한 원자 연산은 논블로킹 동기에서도 많이 사용됩니다.

Maurice Herlihy(1991)는 다음과 같이 합의된 번호에 따라 원자력 운용 순위를 매긴다.

컨센서스 번호가 낮은 조작만으로 소정의 컨센서스 번호가 필요한 조작은 아무리 많이 [2]사용해도 실행할 수 없습니다.읽기-수정-쓰기 명령은 종종 I/O 장치에서 사용할 때 예기치 않은 결과를 초래합니다. 쓰기 작업이 [3]읽기 작업에서 액세스하는 내부 레지스터에 영향을 주지 않을 수 있기 때문입니다.

이 용어는 실제 쓰기 작업을 원자성 읽기-수정-쓰기 [4]시퀀스로 수행하는 RAID 수준과도 관련이 있습니다.이러한 RAID 레벨에는 RAID 4, RAID 5, RAID 6이 포함됩니다.

「 」를 참조해 주세요.

레퍼런스

  1. ^ Herb Sutter의 "Writing Lock-Free Code: A Corrected Queue" : "CAS(Compare-and-Swap)는 널리 이용 가능합니다...그러나 일부 시스템은 대신 동등한 강력한 로드 링크/스토어 조건부(LL/SC)를 제공합니다."
  2. ^ 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.
  3. ^ Massmind: "읽기-수정-쓰기 문제"
  4. ^ "Basic RAID Organizations". umass.edu. Retrieved 2013-10-04.