개인공부

Process & Thread

리승우 2022. 12. 17. 18:18

우선 Program이란?

> 실행되기 전 상태의 명령어, 코드 및 정적인 데이터들의 묶음

> 어떤 작업을 위해 운영체제 위에서 실행할 수 있는 파일

 

Process

> 운영 체제 위에서 실행 중인 Program

> 운영체제로부터 시스템 자원을 할당 받는 작업의 단위

 

 

Thread

> 프로세스 내에서 실행되는 흐름의 단위

> CPU 이용의 기본 단위

> Text, data, heap 영역을 공유

> 각 thread는 별도의 stack 영역을 가짐

 

 

Multi Thread

> 프로세스의 자원을 공유

> 향상된 응답성

> Context Switching 비용이 적음

> 자원을 공유하는만큼, 충돌을 주의해야함 (Thread-safe하게 해야함!)

 

Multi Process

> 하나의 작업을 여러 개의 프로세스가 처리

> 프로세스간 통신

> Context Switching 비용이 큼

> 자식 프로세스 중 하나가 문제가 생겨도 다른 프로세스에 영향이 없음 (ex. 구글 크롬)