์ด์์ฒด์ ์ ๊ธฐ๋ณธ์ด๋ผ๊ณ ๋งํ ์ ์๋ ํ๋ก์ธ์ค์ ์ค๋ ๋์ ๋ํด ๊ณต๋ถํ๊ณ ์ ๋ฆฌํด๋ณด๋ ค ํ๋ค.
ํ๋ก๊ทธ๋จ, ํ๋ก์ธ์ค, ์ค๋ ๋์ ๊ฐ๋ ๊ณผ ์๋ ๋ฐฉ์์ ๋ํด ์์๋ณด์.
โ Program
ยท ์ด๋ค ์์ ์ ์ํด ์คํํ ์ ์๋ ํ์ผ(์คํ์ฝ๋)์ด๋ฉฐ, ์ ์ฅ์ฅ์น์ ์ ์ฅ์ ๋์ด ์์ง๋ง ๋ฉ๋ชจ๋ฆฌ์๋ ์ฌ๋ผ๊ฐ ์์ง ์์ ์ ์ ์ธ ์ํ์ด๋ค.
๐ฉ๐ปโ๐ป ์ ์ฅ์ฅ์น์ ์ ์ฅ์ ๋์ด ์์ง๋ง ๋ฉ๋ชจ๋ฆฌ์๋ ์ฌ๋ผ๊ฐ ์์ง ์์?
์์ง ์ด์์ฒด์ ๊ฐ ํ๋ก๊ทธ๋จ์๊ฒ ๋ ๋ฆฝ์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ ๋นํด์ฃผ์ง ์์๋ค๋ ๋ป์ด๋ค. ๋ชจ๋ ํ๋ก๊ทธ๋จ์ ์ด์์ฒด์ ๊ฐ ์คํ๋๊ธฐ ์ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ ๋นํด์ค์ผ ์คํ๋ ์ ์๋ค. ์ฝ๊ฒ ๋งํด ๊ทธ๋ฅ ์ฝ๋ ๋ฉ์ด๋ฆฌ๋ค.
ํ๋ก๊ทธ๋จ์ ์คํํ๋ ์๊ฐ ์ปดํจํฐ ๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ๊ฐ๊ฒ ๋๊ณ , ์คํ๋ ํ๋ก๊ทธ๋จ์ ํ๋ก์ธ์ค(Process)๋ผ๊ณ ํ๋ค.
โ Process
ยท ์ด์์ฒด์ ๋ก๋ถํฐ ์์คํ ์์์ ํ ๋น ๋ฐ๋ / ์ด์์ฒด์ ๊ฐ ๊ด๋ฆฌํ๋ ๋จ์
โ ํ ๋น๋ฐ๋ ์์คํ ์์์ ์ : CPU ์๊ฐ, ์ด์๋๊ธฐ ์ํด ํ์ํ ์ฃผ์ ๊ณต๊ฐ, Code/Data/Stack/Heap์ ๊ตฌ์กฐ๋ก ๋์ด ์๋ ๋ ๋ฆฝ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ
ยท Processer(์ฒ๋ฆฌ๊ธฐ, CPU)์ ์ํด ์ฒ๋ฆฌ๋๋ ํ๋ก๊ทธ๋จ์ผ๋ก ์์ (Job), ํ ์คํฌ(Task)๋ผ๊ณ ๋ ๋ถ๋ฆฐ๋ค.
ยท ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ก์ธ์ค ๋น ์ต์ 1๊ฐ์ ์ค๋ ๋๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
โ Thread
ยท ํ๋ก์ธ์ค ๋ด์์ ์คํ๋๋ ์ฌ๋ฌ ํ๋ฆ์ ๋จ์
ยท ํ๋ก์ธ์ค๊ฐ ํ ๋น๋ฐ์ ์์์ ์ด์ฉํ๋ ์คํ์ ๋จ์
ยท ์ค๋ ๋๋ ํ๋ก์ธ์ค ๋ด์์ ๊ฐ๊ฐ Stack๋ง ๋ฐ๋ก ํ ๋น๋ฐ๊ณ Code, Data, Heap ์์ญ์ ๊ณต์ ํ๋ค.
๐ Process ์ Thread ์ ์๋ ๋ฐฉ์
ํ๋ก์ธ์ค๋ ๊ฐ๊ฐ ๋ ๋ฆฝ๋ ์์ญ(Code, Data, Stack, Heap์ ๊ตฌ์กฐ)๋ฅผ ํ ๋น๋ฐ๋๋ค.

1๏ธโฃ Code
์คํํ ํ๋ก๊ทธ๋จ์ ์ฝ๋ ๋ฐ ๋งคํฌ๋ก ์์๊ฐ ๊ธฐ๊ณ์ด ํํ๋ก ์ ์ฅ๋๋ ๊ณต๊ฐ.
CPU๋ ์ฝ๋์์ญ์ ์ ์ฅ๋ ๋ช ๋ น์ด๋ฅผ ํ๋์ฉ ์ฒ๋ฆฌํ๋ค.
2๏ธโฃ Data
์ฝ๋์์ ์ ์ธํ ์ ์ญ๋ณ์, ์ ์ (Static) ๋ณ์๊ฐ ์ ์ฅ๋๋ ๊ณต๊ฐ
3๏ธโฃ Stack
์คํ๋๋ ํจ์ ์์์ ์ ์ธ๋ ์ง์ญ๋ณ์, ๋งค๊ฐ๋ณ์, ๋ฆฌํด ๊ฐ ๋ฑ์ด ์ ์ฅ๋๊ณ ํจ์ ํธ์ถ ์ ๊ธฐ๋ก๋๋ ๊ณต๊ฐ
4๏ธโฃ Heap
๊ด๋ฆฌ๊ฐ ๊ฐ๋ฅํ ๋ฐ์ดํฐ ์ด์ธ์ ๋ค๋ฅธ ํํ์ ๋ฐ์ดํฐ๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํ ๊ณต๊ฐ(Free Space)
์ด ๊ณต๊ฐ์ ๋์ ๋ฉ๋ชจ๋ฆฌ ํ ๋น ๊ณต๊ฐ์ด๋ฏ๋ก ์ฌ์ฉ์ด ๋๋๋ฉด ์ด์์ฒด์ ๋ก ๋ฐ๋ฉ๋๋ค.
๐ฉ๐ปโ๐ป ํ๋ก์ธ์ค๊ฐ ํ ๋น ๋ฐ์ ๋ฉ๋ชจ๋ฆฌ ์์ญ ๋ด์์ Stack ํ์์ผ๋ก ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๋ฐ๋ก ํ ๋น๋ฐ๊ณ , ๋๋จธ์ง Code/Data/Heap ํ์์ผ๋ก ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๊ณต์ ํ๋ค. ๋ฐ๋ผ์ ๊ฐ๊ฐ์ ์ค๋ ๋๋ ๋ณ๋์ Stack์ ๊ฐ์ง๊ณ ์์ง๋ง Heap ๋ฉ๋ชจ๋ฆฌ๋ ์๋ก ์ฝ๊ณ ์ธ ์ ์๊ฒ ๋๋ค.
์๋ ์ด๋ฏธ์ง๋ ์ค๋ ๋๋ค์ด ํ๋ก์ธ์ค์ Code/Data/Heap ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ๊ณต์ ํ๋ ๋ชจ์ต์ด๋ค

๐ ๊ฒฐ๋ก
ยท ํ๋ก์ธ์ค๋ ์ด์์ฒด์ ๋ก๋ถํฐ ์์์ ํ ๋น๋ฐ์ ์คํํ๊ณ , ์ค๋ ๋๋ ํ๋ก์ธ์ค๋ก๋ถํฐ ์์์ ํ ๋น๋ฐ์ ์คํํ๋ค.
ยท ํ๋์ ํ๋ก์ธ์ค ์์ ์ฌ๋ฌ ์ค๋ ๋ ์์ฑ์ด ๊ฐ๋ฅํ๋ฉฐ, ๊ฐ ์ค๋ ๋๋ ๊ฐ๋ณ ์คํ์ ๊ฐ์ง๊ณ ํ๋ก์ธ์ค์ ์ ์ญ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๊ณต์ ํ๋ฉฐ ํ๋ก๊ทธ๋จ์ ์คํํ๋ค.
References
ยท https://www.jiniaslog.co.kr/article/view?articleId=152
ยท https://velog.io/@raejoonee/ํ๋ก์ธ์ค์-์ค๋ ๋์-์ฐจ์ด
ยท https://gmlwjd9405.github.io/2018/09/14/process-vs-thread.html