Process
- Program(์คํํ์ผ)์ด Memory์ ์ ์ฌ๋์ด CPU๋ฅผ ํ ๋น๋ฐ์ ์คํ๋๋ ๊ฒ
- ์คํ์ค์ธ ํ๋ก๊ทธ๋จ(Program in Execution)
- ์ด์์ฒด์ ๊ฐ ์๋ํ๋ ๋ค์ํ ์๋ฆฌ๋ค์ด process๋ฅผ ์ํด ์กด์ฌํ๋ ๊ฒ
Memory
- CPU๊ฐ ์ง์ ์ ๊ทผํ ์ ์๋ ์ปดํจํฐ ๋ด๋ถ์ ๊ธฐ์ต์ฅ์น(CPU๋ ํ๋์จ์ด๋ ์ ๊ทผ ๋ถ๊ฐ๋ฅ)
- program์ด CPU์์ ์คํ๋๋ ค๋ฉด ํด๋น ๋ด์ฉ์ด memory์ ์ ์ฌ๋ ์ํ์ฌ์ผ๋ง ๊ฐ๋ฅ!
- process์๊ฒ ํ ๋น๋๋ memory ๊ณต๊ฐ์ Code, Data, Stack, Heap 4๊ฐ์ ์์ญ์ผ๋ก ์ด๋ฃจ์ด์ ธ ์์ผ๋ฉฐ ๊ฐ๊ฐ์ process๊ฐ ๋ ๋ฆฝ์ ์ผ๋ก ์ด 4๊ฐ์ ์์ญ์ ํ ๋น๋ฐ์
- Code ์์ญ : ์คํํ ํ๋ก๊ทธ๋จ์ ์ฝ๋๊ฐ ์ ์ฅ๋๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ
- Data ์์ญ : ํ๋ก๊ทธ๋จ์ ์ ์ญ ๋ณ์์ static ๋ณ์๊ฐ ์ ์ฅ๋๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ
- Heap ์์ญ : ํ๋ก๊ทธ๋๋จธ๊ฐ ์ง์ ๊ณต๊ฐ์ ํ ๋น(malloc)/ํด์ (free)ํ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ
- Stack ์์ญ : ํจ์ ํธ์ถ ์ ์์ฑ๋๋ ์ง์ญ ๋ณ์์ ๋งค๊ฐ ๋ณ์๊ฐ ์ ์ฅ๋๋ ์์ ๋ฉ๋ชจ๋ฆฌ ์์ญ
CPU์ ์ฐ์ฐ(feat. PC register)
- ํ๋ก๊ทธ๋จ์ ์คํ์ด๋ผ ํจ์ CPU๊ฐ ํ๋ก๊ทธ๋จ์ ์ฝ๋๋ฅผ ํ ๋๋ก ์ค์ ์ฐ์ฐ์ ํด์ผํ๋ ๊ฒ
- CPU ๋ด๋ถ์ PC(Program Counter) register์ ‘๋ค์์ ์คํ๋ ์ฝ๋(๋ช ๋ น์ด; instruction)์ ์ฃผ์๊ฐ’๊ฐ ์ ์ฅ๋์ด์์
- ์ฆ, memory์ ์ ์ฌ๋์ด์๋ process code์์ญ์ ๋ช ๋ น์ด ์ค ๋ค์๋ฒ ์ฐ์ฐ์์ ์ฝ์ ๋ช ๋ น์ด์ ์ฃผ์๊ฐ์ PC register๊ฐ ๊ฐ๋ฆฌํค๊ฒ ๋๊ณ , ํด๋น ๋ช ๋ น์ด๋ฅผ ์ฝ์ด์์ CPU๊ฐ ์ฐ์ฐํ๊ฒ ๋๋ฉด process๊ฐ ์คํ์ด ๋๋ ๊ฒ