메모리 베리어란?

컴퓨터 시스템에서 다중 스레드 또는 다중 프로세스가 동시에 접근할 수 있는 공유 메모리의 일관성을 유지하기 위해 사용되는 메커니즘

메모리 접근 순서와 관련된 명령들을 명확히 정의함으로써, 다중 스레드 간의 데이터 접근 순서를 제어하고

최신데이터를 보장 한다.

 

 

메모리 베리어의 목적

  1. 순서화 : 다중 스레드가 메모리에 접근하는 순서를 명확히 정의하여 일관된 데이터의 접근을 보장
  2. 가시성 보장 : 한 스레드가 수행한 메모리의 변경 사항이 다른 스레드에게 즉시 보이도록 한다. 

메모리 베리어 종류

  1. Full Memory Barrier(ASM MFENCE, C# Thread.MemoryBarrier) : Store/Load 둘다 막는다.
  2. Store Memory Barrier (ASM SFENCE) : Store만 막는다
  3. Load Memory Barrier (ASM LFENCE) : Load만 막는다

메모리베리어를 사용하는 상황

  1. 스레드 간의 데이터 동기화가 필요한 경우
  2. 공유 데이터에 대한 안전한 접근을 보장해야 할 때
  3. 저수준의 동시성 제어가 필요한 경우

'프로그래밍 > MultiThread Programing' 카테고리의 다른 글

4. Lock과 Deadlock  (0) 2024.07.11
2. 캐시 이론  (0) 2024.07.10
1. 멀티쓰레드 개론  (0) 2024.07.10