개발일기/CS(면접)
프로세스와 쓰레드에 대해 설명하고 차이점을 설명해라
w.llama
2024. 8. 2. 21:07
- 프로세스
- 운영체제로 부터 자원을 할당받은 작업의 단위 즉 실행 중인 프로그램을 의미한다. 메모리에 적재되어 cpu 자원을 할당받아 실행되는 상태이며 운영체제로부터 프로세서,주소 공간,메모리 등의 자원을 할당받는다.
- 쓰레드
- 프로세스 내에서 실행되는 더작은 실행 단위이며 프로세스가 할당받은 자원을 이용하는 실행 흐름단위이다. 한 프로세스 내에서 동작되는 여러 실행의 흐름을 의미한다. 같은 프로세스 내의 다른 스레드와 주소공간이나 자원들을 공유한다.
- 프로세스와 쓰레드의 차이점
프로세스 | 쓰레드 | |
자원 할당 | 운영체제로부터 직접 자원할당 | 프로세스의 자원을 공유 |
메모리 사용 | 독립된 메모리 영역을 갖음 | 스택 영역을 제외한 메모리공유 |
통신 비용 | 쓰레드간 통신비용보다 많다 | 프로세스간 통신비용보다 적다 |
생성 및 컨텍스트 스위칭 | 쓰레드보다 느리다 | 프로세스보다 빠르다 |