본문 바로가기
TIL (Today I Learned)/컴퓨터 시스템(CS)

[CS] Process vs Thread

by 둥굴프 2022. 12. 15.
이 문서는 유튜브 '널널한 개발자 TV'님의 강의를 토대로 작성되었습니다.

 

Proces는 연산할 것에 대한 관리의 단위이다.

그 단위는 OS가 관리한다.

 

연산은 연속적이며, Process에는 흐름이 기본적으로 1개 있다.

한 Process내부에 흐름이 n개 있을 수 있다.

동시에 각자 작용한다. 이때의 흐름을 Thread라고 한다.

이 흐름이 여러개가 되면 Multi-threading

 

OS는 가상 메모리 공간을 프로세스에게 할당한다.

 

Process(작업)는 최소 1개의 Thread 존재

OS는 Virtual Memory(제한된 공간)를 Process에게 할당한다.

Process에 속한 모든 Thread는 Process의 Virtual Memory로 공간 제약 된다.

Multi-Threading > 동시성 > 동기화

 

Process : 한 가구

행정상 집(Virtual memory)이라는 공간이 부여된다.

집에 있는 방(Thread Local Storage | Stack)은 세대원(Thread)이 각자 사용.

거실, 부엌, 화장실은 공동(Heap)으로 사용.

 

Thread마다 각자의 고유한 TLS를 가지고 있다.

Thread의 영역은 OS가 제공한 Virtual Memory공간으로 한정된다.

 

왜 Thread로 나눌까? Process를 여러번 실행시키면 되지 않을까?

Virtual Memory는 Process별로 할당된다.

즉, Process를 여러개로 만들면 자원이 낭비된다.

Thread를 여러개 만들면 V-M를 공유하여 자원을 절약할 수 있다.

 

운영체제의 설계철학에 따라 다르다.

Thread 위주 정책 > 윈도우

Process 위주 정책 > Linux

 

긴 글 읽어주셔서 감사드립니다.

22.12.15

댓글