공부/개념 & 유용한 내용
쓰레드와 프로세스의 차이점
ENUM01
2020. 7. 1. 10:26
프로세스

사전적 의미
- 컴퓨터에서 연속적으로 실행되고 있는 프로그램
- 메모리에 올라와 실행되고 있는 프로그램의 인스턴스(독립적인 개체)
- 운영 체제로부터 시스템 자원을 할당받는 작업의 단위
할당받는 시스템 자원의 예
- CPU 시간
- Code, Data , Stack, Heap 의 구조로 되어 있는 독립된 메모리 영역
스레드

사전적 의미
- 프로세스 내에서 실행되는 여러 흐름의 단위
- 프로세스의 특정한 수행 경로
- 프로세스가 할당받은 자원을 이용하는 실행의 단위
특징
- 스레드는 프로세스 내에서 각각 Stack만 따로 할당받고 , Code , Data , Heap 영역은 공유한다.
- 스레드는 한 프로세스 내에서 동작되는 여러 실행의 흐름으로, 프로세스 내의 주소 공간이나
자원들(힙 공간등)을 같은 프로세스 내에 스레드끼리 공유하면서 실행된다.
* 스택을 독립적으로 할당하는 이유
- 스택은 함수 호출 시 전달되는 인자 , 되돌아갈 주소 값 및 함수 내에서 선언하는 변수 등을 저장하기
위해 사용되는 메모리 공간이다. 따라서 스택 메모리 공간이 독립적이라는 것은 독립적인 함수 호출이 가능하다는
것이고, 이는 독립적인 실행 흐름이 추가되는 것이다. 결과적으로 실행 흐름의 추가를 위한 최소 조건이
독립된 스택을 제공하는 것이다.
참고블로그
https://gmlwjd9405.github.io/2018/09/14/process-vs-thread.html
https://brownbears.tistory.com/39