개발일기/CS(면접)

프로세스와 쓰레드에 대해 설명하고 차이점을 설명해라

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