C로 코드를 짯다치면
컴파일러 최적화 단계에서 한번 바뀌고,
프로세서 레벨에서 명령들을 다시 한번 최적화를해서 또 순서가 바뀜,
이거를 둘다 금지해야 정확한 read, write 타이밍을 잡을수가 있고 정밀한 동기화가 가능해짐
C로 코드를 짯다치면
컴파일러 최적화 단계에서 한번 바뀌고,
프로세서 레벨에서 명령들을 다시 한번 최적화를해서 또 순서가 바뀜,
이거를 둘다 금지해야 정확한 read, write 타이밍을 잡을수가 있고 정밀한 동기화가 가능해짐
멀티 프로세서간 동기화문제 공부중인데 어셈레벨에서 해결하고있음
프로그래밍 자체가 추상화에 대한 학문인데 그런 식으로 갈꺼면 프로그래밍을 배우는 의미가 없지
그냥 뮤텍스, 스핀락 ,크리티컬섹션 처럼 RCU란것도 있길래 한번 살펴봄,
Lock Free Programming 이라는 동네도 있다 아토믹 오퍼레이션으로 진짜 이상한 짓하는 동네 ㅋㅋㅋ
동기화 객체 구현보면 시1바 무슨 전자현미경 같은걸로 초정밀 작업하는 느낌임
그리고 그거 버그나면 못 고침 ㅇㅇ 예전에 듣는 얘기로는 운영체제 쉽핑하고 나서 3년 뒤에 갑자기 데드락이 났는데 3시간 동안 두명이서 파일 하나 노려보는 식으로 디버깅해서 겨우 찾았다고 함. 병렬 플밍에서는 그게 최선이라더라;;
rcu, read-write lock, grace period 생각보다 운영체제보다 윗단에서도 많이 쓰임