비순차적 명령어 처리 Out of Order Execution (OoOE)


비순차적 명령어 처리 Out of Order Execution (OoOE)

멀티 스레드 프로그래밍에서는 코드가 정확하고 디스 어셈블리로 봐도 아무런 문제가 없는 프로그램일지라도, 아주 낮은 확률로 예기치 않은 동작을 하며, 이는 반드시 버그로 이어진다.위 소스코드는 가장 단순한 Lock 알고리즘으로 알려진 피터슨의 알고리즘의 구현이다. Lock(...) 메서드를 이용해 현재 스레드 아이디로 잠금을 걸면 다른 스레드는 희생자(victim)가 되어 임계지점에 진입하지 못하고 while 문안에서 대기하게 된다.앞 장인 데이터 레이스에서 C++ 11의 mutex를 사용했을 때는 결과는 정상적이었으나 엄청난 오버헤드를 발생시켰다. 따라서 위와 같이 간단한 Lock 알고리즘이라면 적은 오버헤드로 원하는 결과를 출력하는..........

비순차적 명령어 처리 Out of Order Execution (OoOE)에 대한 요약내용입니다.

자세한 내용은 아래에 원문링크를 확인해주시기 바랍니다.



원문링크 : 비순차적 명령어 처리 Out of Order Execution (OoOE)