메모리 베리어란?
컴퓨터 시스템에서 다중 스레드 또는 다중 프로세스가 동시에 접근할 수 있는 공유 메모리의 일관성을 유지하기 위해 사용되는 메커니즘
메모리 접근 순서와 관련된 명령들을 명확히 정의함으로써, 다중 스레드 간의 데이터 접근 순서를 제어하고
최신데이터를 보장 한다.
메모리 베리어의 목적
- 순서화 : 다중 스레드가 메모리에 접근하는 순서를 명확히 정의하여 일관된 데이터의 접근을 보장
- 가시성 보장 : 한 스레드가 수행한 메모리의 변경 사항이 다른 스레드에게 즉시 보이도록 한다.
메모리 베리어 종류
- Full Memory Barrier(ASM MFENCE, C# Thread.MemoryBarrier) : Store/Load 둘다 막는다.
- Store Memory Barrier (ASM SFENCE) : Store만 막는다
- Load Memory Barrier (ASM LFENCE) : Load만 막는다
메모리베리어를 사용하는 상황
- 스레드 간의 데이터 동기화가 필요한 경우
- 공유 데이터에 대한 안전한 접근을 보장해야 할 때
- 저수준의 동시성 제어가 필요한 경우
'프로그래밍 > MultiThread Programing' 카테고리의 다른 글
| 4. Lock과 Deadlock (0) | 2024.07.11 |
|---|---|
| 2. 캐시 이론 (0) | 2024.07.10 |
| 1. 멀티쓰레드 개론 (0) | 2024.07.10 |
