인프런 커뮤니티 질문&답변

SmithKwon 권순환님의 프로필 이미지
SmithKwon 권순환

작성한 질문수

운영체제 공룡책 강의

12. 동기화 문제의 해결책: Chapter 6. Synchronization Tools (Part 2)

Fig 6.3 Peterson's solution Dev C++에서 실행 ==> 결과가 가끔 0이 아님

작성

·

186

1

안녕하세요?
 
초보가 이것 저것 해보는데 Fig 6.3 Peterson's solution 코드를 우분투에서 실행하면 항상 sum=0 인데, DEV C++에서 컴파일, 실행하면 자주 SUM=0이지만, 가끔 다른 양 혹은 음의 정수가 나옵니다.
 
무슨 문제 일까요?

 

답변 1

0

주니온님의 프로필 이미지
주니온
지식공유자

안녕하세요? 좋은 발견을 하셨네요.

 

Peterson's solution은 이론적으로 증명 가능한 완전한 해결책이긴 하지만,

현대적 컴퓨팅 환경의 실제 상황에서 적용할 수는 없는 솔루션입니다.

 

멀티 코어 컴퓨팅 환경이라든지,

Python이나 Java와 같은 독특한 메모리 모델을 갖고 있다든지,

이런 경우에는 저 코드로 구현했을 때 예외적 상황이 발생할 수 있습니다.

 

우분투라 하더라도 멀티코어 환경에서 돌리면 어떻게 될 지 모르고요,

Dev C++라 하더라도 싱글코어라면 문제없을수도 있을 거예요.

 

두 환경이 어떻게 다른 지 곰곰히 생각하면서 분석을 해 보시면

많은 공부가 되실 것 같네요.

 

잘 알겠습니다. 볼수록 어려워지는 것 같습니다. 감사합니다.

SmithKwon 권순환님의 프로필 이미지
SmithKwon 권순환

작성한 질문수

질문하기