본문으로 이동

읽기-수정-쓰기

위키백과, 우리 모두의 백과사전.

읽기-수정-쓰기(read–modify–write)는 컴퓨터 과학에서 메모리 위치를 읽고 여기에 새 값을 쓰는 원자적 작업 클래스(예: 검사와 지정, 페치와 추가, 비교와 교환)이다. 완전히 새로운 값이나 이전 값의 일부 기능을 동시에 사용한다. 이러한 작업은 다중 스레드 응용 프로그램에서 경쟁 조건을 방지한다. 일반적으로 뮤텍스세마포어를 구현하는 데 사용된다. 이러한 원자적 작업은 비차단 동기화에도 많이 사용된다.

모리스 헐리히(1991)는 다음과 같이 합의 수치를 기준으로 원자 작업의 순위를 매겼다.

주어진 합의 번호가 필요한 작업을 아무리 많이 사용해도 합의 번호가 낮은 작업만으로 구현하는 것은 불가능하다.[2] 읽기-수정-쓰기 명령어는 입출력 장치에서 사용될 때 예상치 못한 결과를 낳는 경우가 많다. 쓰기 작업은 읽기 작업에서 액세스되는 동일한 내부 레지스터에 영향을 미치지 않을 수 있기 때문이다.[3]

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

같이 보기

[편집]

각주

[편집]
  1. "Writing Lock-Free Code: A Corrected Queue" by Herb Sutter: "Compare-and-swap (CAS) is ... widely available ... However, some systems instead provide the equivalently powerful load-linked/store-conditional (LL/SC) instead."
  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. S2CID 2181446. 2007년 5월 20일에 확인함. 
  3. Massmind: "The read–modify–write problem"
  4. “Basic RAID Organizations”. 《umass.edu》. 2021년 2월 24일에 원본 문서에서 보존된 문서. 2013년 10월 4일에 확인함.