메모리장벽

    [운영체제] 동기화를 위한 하드웨어 지원

    [운영체제] 동기화를 위한 하드웨어 지원

    피터슨의 방법은 하드웨어 지원을 요구하지 않기 때문에 소프트웨어 기반 해결책이라고 함. → 임계구역 문제를 해결하기 위한 3가지 하드웨어 명령어가 제시됨. 다음과 같은 상황을 가정해보자. x = 100의 연산과 flag = true의 연산은 서로 아무련 관련이 없다. ->만약 컴파일러가 flag = true를 먼저 실행한다면 예상과 다른 값이 나와버린다. 이러한 문제를 해결하기 위해 하드웨어 명령어를 제시한다. 1 ) 메모리 장벽 : memory barrier() 위로 선언된 모든 문장들이 실행 되어야 그 다음 문장이 실행됨. while(!flag) memory_barrier(); print x; x = 100; // x가 적재 되는 것을 보장 memory_barrier(); flag = true; 2 ..