프로세스와 스레드
프로세스(Process)란?
운영체제로부터 자원을 할당받는 작업의 단위입니다.
실행 중인 프로그램으로, 메모리상의 독립적인 공간을 가집니다.
예를 들어 카카오를 실행하고, 구글과 유투브, 이클립스를 실행할 때 이는 각각의 프로세스를 실행시키는 것입니다.
프로세스는 각각 독립된 메모리 영역(Code, Data, Stack, Heap의 구조)을 할당받습니다.
기본적으로 프로세스당 최소 1개의 스레드(메인 스레드)를 가지고 있습니다.
각 프로세스는 독립적으로 실행되며, 한 프로세스의 오류가 다른 프로세스에 영향을 미치지 않습니다.
프로세스 간 통신은 명시적인 IPC(Inter-Process Communication) 을 사용하여 이루어집니다.
스레드(Thread)란?
스레드는 프로세스 내에서 실행되는 작은 실행 단위로, 프로세스 내의 자원을 공유합니다.
모든 스레드는 같은 프로세스의 주소 공간을 공유합니다.
스레드는 프로세스 내에서 각각 Stack만 따로 할당받고 Code, Data, Heap 영역은 공유합니다.
같은 프로세스 안에 있는 여러 스레드들은 같은 힙 공간을 공유합니다.
This post is licensed under CC BY 4.0 by the author.