프로세스(Process)란?
- 메모리에 올라와 실행되고 있는 프로그램의 인스턴스
- 운영체제로 부터 독립된 메모리 영역을 할당받는다 (다른 프로세스의 자원에 접근 X)
- 프로세스들은 독립적이기 때문에 통신하기 위해 IPC를 사용해야 한다.
- 프로세스는 최소 1개의 쓰레드를 가지고 있다.
* IPC(Inter-Process Communication) - 프로세스 사이의 데이터 통신, 대표적인 종류로는 시그널, 파이프, 메세지 큐, 공유메모리, 메일박스 등
스레드(Thread)란?
- 프로세스 내에서 할당받은 자원을 이용해 동작하는 실행 단위
- 쓰레드는 프로세스 내에서 Stack만 따로 할당 받고, Code,Data, Heap 영역은 공유한다.
(Stack을 분리한 이유는 Stack에는 함수의 호출 정보가 저장되는데, Stack을 공유하면 LIFO 구조에 의해 실행순서가 복잡해지기 때문에 실행흐름을 원활하게 만들기 위함이다.)
- 쓰레드는 프로세스의 자원을 공유하기 때문에 다른 쓰레드에 의한 결과를 즉시 확인 가능
- 프로세스 내에 존재하며 프로세스가 할당받은 자원을 이용하여 실행된다.
[ 참고 ]
'개발자 기술 면접 준비 > 정리' 카테고리의 다른 글
멀티 프로세스 VS 멀티 쓰레드 (0) | 2021.06.07 |
---|---|
컨텍스트 스위칭이란? (0) | 2021.06.07 |
직렬화란? (0) | 2021.06.07 |
가비지 컬렉션이란? (0) | 2021.06.07 |
제너릭이란? (0) | 2021.05.31 |