[운영체제] 프로세스와 스레드의 개념과 차이점
프로그램이 메모리에 올라가서 CPU에 의하여 처리되는 상태의 작업 단위를 프로세스 라고 한다. 프로세스는 각각 독립적인 주소 공간을 할당을 받는다. 이 때 프로세스 내부에서의 메모리 구조는 코드-데이터-스택-힙 으로 구성이 된다. 스레드는 프로세스 내에서 동작하는 실행의 단위를 말하는 것이다. 프로세스는 최소한 하나 이상의 스레드 (메인스레드) 를 가진다. 하나의 프로세스 내에서 동작되는 실행의 흐름을 의미하며 프로세스 내에서 스레드끼리 정보나 주소, 자원등을 공유할 수 있다. 스레드가 여러개일 경우 각각 스레드마다 독립적인 스택을 확보하고 코드-데이터-힙 공간은 공유한다. 이는 스택이 함수내 호출인자 등을 저장하는 공간이기에 실행 흐름에서 독립적인 함수 호출을 가능케 하기 위함이다.