2024/07/22 2
-
개념스레드 란? CPU의 1개당 실행단위 를 이야기한다. 한개의 프로세스(프로그램... 이라고 표현하면 잘못된 것 이긴 하지만, 대략적으로) 마다 최소 1개 이상의 Thread를 가질 수 있다. 작업을 시작하려면 작업공간과 인부를 가져야 한다고 이해하자. 여기서 작업공간은 메모리(램또는 SSD같은것) 이고,인부는 CPU라고 생각하면 된다. 정리하면 다음과 같다.한 Process는 최소 1개 이상의 Thread를 갖는다.( Memory 와 함께 )즉, 한 Process는 [ CPU + Memory ] ( VMS 버추얼 메모리 ) 를 가진다.Thread는 개별화된 흐름(문맥)이다. int main()함수가 n개(스레드 개수만큼) 있다고 생각하면 된다.전용 스택을 갖는 실행의 단위이다.1MB가량의 콜스택 메모..
-
개요두개 이상의 프로세스 , 스레드가 공유자원을 동시에 사용하려고 진행하려고 할 때 발생하는 현상을 말한다.예시 T1과 T2가 동시에 Input에 접근한다고 가정하자. 우리는 항상 일정한 결과를 얻고싶지만, T1과 T2가 동시에 메모리에 접근해서 1이나 2를 때려박는 상황이다. T2는 뭐가있던 2로 바꿔버리고, T2는 뭐가있던 1로 바꿔버리는 상황일 때. 누가먼저 데이터를 집어넣는지 알 수 없을 때 우리는 Out이 뭐가 나타날지 알 수가 없다. 또, 메모리를 처리하고 종료 할 때 비정상적으로 종료된다면 메모리의 데이터영역관리가 엉망진창이 되어버릴것이다. 이렇게 공유메모리를 동시에 접근하려고 하는 문제가 레이스컨디션 문제이다.