공유 메모리 2

[삽잡이] 원자적인 연산의 중요성

쓰레드는 독립적인 존재입니다.여러개의 쓰레드가 실행한다면, 각기 자유롭게 실행이 될 것입니다.하지만, 쓰레드를 여러대를 사용할 때에는 반드시 신경을 써야할 일이 있습니다.바로, '동기화'입니다. 여러 쓰레드가 열심히 자기 할일을 하고 있는데,하나의 '공유 변수'를 사용하게 될 때 문제가 발생합니다. 예를 들어, A라는 쓰레드가 데이터를 지우고 있는데B와 C라는 쓰레드는 그 사실을 모른채 A가 지운 데이터에 접근하고자하면 어떻게 될까요? 따라서, '원자적(Atomic)인 연산에 의해 공유 메모리는 아주 잘 보호되어야합니다.'원자는 더 이상 나눌 수 없는 최소 단위의 기본 입자를 말하지요...원자적 연산이란, 따악 하나만... 단 하나만 연산하는 것을 말합니다.연산을 수행하면서 그 누군가의 방해도 받지 않고..

#020_WIndow_System_멀티 쓰레드 공유 메모리

안녕하세요 삽잡이입니다.이번 시간에는 쓰레드 동기화에 대해서 알아보려고 합니다. 쓰레드는 각각 독립적으로 움직이기 때문에, 공유 변수에 더욱 주의를 해야합니다.그렇지 않으면 쓰레드에 정말로 많은 문제가 발생하게 됩니다.공유 메모리에 신경쓰지 않게 되어 발생한 오류는동기화와 관련된 문제로써 에러를 찾기 상대적으로 힘들어집니다. 여러개의 독립적인 쓰레드가 하나의 공유 메모리를 사용할 경우를 생각해보겠습니다.만약, 0번째 쓰레드가 Write 중인데 나머지 쓰레드들은 Read를 하고 있다면,메모리가 변경이 되는 것인데, Read를 하던 녀석들은 당황하겠지요...결과적으로 Memory Fault가 발생하는데, 이 문제는 심각한 문제입니다. 강조하지만, 원천적으로 공유 메모리는 쓰레드에서는 문제가 많습니다.하지만,..