[์ด์์ฒด์ ] ํ๋ก์ธ์ค vs ์ฐ๋ ๋
๐งช Computer Science/Operating System
๋ฉ๋ชจ๋ฆฌ๋?
๋ฉ๋ชจ๋ฆฌ๋ ์ปดํจํฐ์์ ์์ ์ ์ํํ๊ธฐ ์ํด ์ฒ๋ฆฌ ๋์์ด๋ ๊ฒฐ๊ณผ ๋ฑ์ ์ ์ฅํ๊ธฐ ์ํ ๊ณต๊ฐ์ด๋ค. ํ๋ก๊ทธ๋จ์ ์คํํ๊ธฐ ์ํ ์ ๋ณด๋ค์ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฅ๋์ด ์ฒ๋ฆฌ๋๋ค.
ํ๋ก์ธ์ค์ ์ฐ๋ ๋์ ์ฐจ์ด
ํ๋ก์ธ์ค(Process)
๋ฉ๋ชจ๋ฆฌ์ ์ฌ๋ผ์ ์คํ๋๊ณ ์๋ ํ๋ก๊ทธ๋จ์ ์ธ์คํด์ค
ํน์ง
- ์ด์์ฒด์ ๋ก๋ถํฐ ๋ ๋ฆฝ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ์ ํ ๋น๋ฐ๋๋ค.(๋ค๋ฅธ ํ๋ก์ธ์ค์ ์์์ ์ ๊ทผ X)
- ํ๋ก์ธ์ค๋ค์ ๋ ๋ฆฝ์ ์ด๊ธฐ ๋๋ฌธ์ ํต์ ํ๊ธฐ ์ํด IPC๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค.
- ํ๋ก์ธ์ค๋ ์ต์ 1๊ฐ์ ์ฐ๋ ๋(๋ฉ์ธ ์ฐ๋ ๋)๋ฅผ ๊ฐ์ง๊ณ ์๋ค.
PCB(Process Control Block, ํ๋ก์ธ์ค ์ ์ด ๋ธ๋ก)
- PCB๋ ํน์ ํ๋ก์ธ์ค์ ๋ํ ์ค์ ์ ๋ณด๋ฅผ ์ ์ฅํ๊ณ ์๋ ์ด์์ฒด์ ์ ์๋ฃ๊ตฌ์กฐ๋ค.
- ์ด์์ฒด์ ๋ ํ๋ก์ธ์ค๋ฅผ ๊ด๋ฆฌํ๊ธฐ ์ํด, ํ๋ก์ธ์ค์ ์์ฑ๊ณผ ๋์์ ๊ณ ์ ํ PCB๋ฅผ ์์ฑํ๋ค.
- ํ๋ก์ธ์ค ์ ํ์ด ์ด๋ฃจ์ด์ง ๋, ์งํํ๋ ์์ ์ ์ ์ฅํ๊ณ CPU๋ฅผ ๋ฐํํด์ผ ํ๋๋ฐ ์ด ๋ ์์ ์ ์งํ์ํฉ์ ๋ชจ๋ PCB์ ์ ์ฅํ๋ค.
- ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ๋ค์ ์ ์ ํ ๋, PCB์ ์ ์ฅ๋์ด ์๋ ๋ด์ฉ์ ๋ฐํ์ผ๋ก ๋ค์ ์์ ์ ์งํํ ์ ์๋ค.
- ํ๋ก์ธ์ค ์๋ณ์, ์ํ, ํ๋ก๊ทธ๋จ ์นด์ดํฐ, CPU ๋ ์ง์คํฐ, CPU ์ค์ผ์ค๋ง ์ ๋ณด, ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์ ๋ณด, ์ ์ถ๋ ฅ ์ํ ์ ๋ณด, ์ด์นด์ดํ ์ ๋ณด ๋ฑ์ ํฌํจํ๋ค.
์ฐ๋ ๋(Thread)
- ํ๋ก์ธ์ค ๋ด์์ ํ ๋น๋ฐ์ ์์์ ์ด์ฉํด ๋์ํ๋ ์คํ ๋จ์
- ํน์ง
- ์ฐ๋ ๋๋ ํ๋ก์ธ์ค ๋ด์์ Stack๋ง ๋ฐ๋ก ํ ๋น ๋ฐ๊ณ , Code/Data/Heap ์์ญ์ ๊ณต์ ํ๋ค.
- Stack์ ๋ถ๋ฆฌํ๋ ์ด์ ๋ Stack์๋ ํจ์์ ํธ์ถ ์ ๋ณด๊ฐ ์ ์ฅ๋๋๋ฐ, Stack์ ๊ณต์ ํ๋ฉด LIFO ๊ตฌ์กฐ์ ์ํด ์คํ ์์๊ฐ ๋ณต์กํด์ง๊ธฐ ๋๋ฌธ์ ์คํ ํ๋ฆ์ ์ํํ๊ฒ ๋ง๋ค๊ธฐ ์ํจ์ด๋ค.)
- ์ฐ๋ ๋๋ ํ๋ก์ธ์ค์ ์์์ ๊ณต์ ํ๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ์ฐ๋ ๋์ ์ํ ๊ฒฐ๊ณผ๋ฅผ ์ฆ์ ํ์ธํ ์ ์๋ค.
- ํ๋ก์ธ์ค ๋ด์ ์กด์ฌํ๋ฉฐ ํ๋ก์ธ์ค๊ฐ ํ ๋น๋ฐ์ ์์์ ์ด์ฉํ์ฌ ์คํ๋๋ค.
Stack์ ์ฐ๋ ๋๋ง๋ค ๋ ๋ฆฝ์ ์ผ๋ก ํ ๋นํ๋ ์ด์
- ์คํ์๋ ํจ์์ ํธ์ถ ์ ๋ณด๊ฐ ์ ์ฅ๋๋๋ฐ, ์คํ์ ๊ณต์ ํ๋ฉด LIFO ๊ตฌ์กฐ์ ์ํด ์คํ ์์๊ฐ ๋ณต์กํด์ง๋ค. ์คํ ํ๋ฆ์ ์ํํ๊ฒ ๋ง๋ค๊ธฐ ์ํ ์ต์ ์กฐ๊ฑด์ผ๋ก ์ฐ๋ ๋๋ง๋ค ๋ ๋ฆฝ๋ ์คํ์ ํ ๋นํ๋ค.
PC Register๋ฅผ ์ฐ๋ ๋๋ง๋ค ๋ ๋ฆฝ์ ์ผ๋ก ํ ๋นํ๋ ์ด์
- PC ๊ฐ์ ์ฐ๋ ๋๊ฐ ๋ช ๋ น์ด์ ์ด๋๊น์ง ์ํ๋์๋์ง๋ฅผ ๋ํ๋ธ๋ค. ์ค์ผ์ค๋ฌ์ ์ํด ์ฐ๋ ๋๋ CPU๋ฅผ ํ ๋น๋ฐ์๋ค๊ฐ ๋นผ์๊ฒผ๋ค๋ฅผ ๋ฐ๋ณตํ๋ฏ๋ก ์ฐ๋ ๋ ๋ณ๋ก ์์ ์ ์งํ์ํฉ์ ๊ธฐ์ตํด์ผ ํ๋ค. ๋ฐ๋ผ์ PC ๋ ์ง์คํฐ๋ฅผ ๋ ๋ฆฝ์ ์ผ๋ก ํ ๋นํ๋ค.
์ปจํ ์คํธ ์ค์์น(Context Switch)
- ์ธํฐ๋ฝํธ๋ฅผ ๋ฐ์์์ผ CPU์์ ์คํ์ค์ธ ํ๋ก์ธ์ค(์ฐ๋ ๋)๋ฅผ ์ค๋จํ๊ณ , ๋ค๋ฅธ ํ๋ก์ธ์ค(์ฐ๋ ๋)๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๊ณผ์ ์ด๋ค.
- ํ์ฌ ์คํ์ค์ธ ํ๋ก์ธ์ค(์ฐ๋ ๋)์ด ์ํ๋ฅผ ๋จผ์ ์ ์ฅํ๊ณ , ๋ค์ ํ๋ก์ธ์ค(์ฐ๋ ๋)๋ฅผ ๋์์์ผ ์์ ์ ์ฒ๋ฆฌํ ํ์ ์ด์ ์ ์ ์ฅ๋ ํ๋ก์ธ์ค(์ฐ๋ ๋)์ ์ํ๋ฅผ ๋ค์ ๋ณต๊ตฌํ๋ค.
- ์ฌ๊ธฐ์ ์ธํฐ๋ฝํธ๋, CPU๊ฐ ํ๋ก์ธ์ค(์ฐ๋ ๋)๋ฅผ ์คํํ๊ณ ์์ ๋, ์ ์ถ๋ ฅ ํ๋์จ์ด ๋ฑ์ ์ฅ์น๋ ์์ธ ์ํฉ์ด ๋ฐ์ํ์ฌ ์ฒ๋ฆฌ๊ฐ ํ์ํจ์ CPU์ ์๋ฆฌ๋ ๊ฒ์ ๋งํ๋ค.
'๐งช Computer Science > Operating System' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ด์์ฒด์ ] ํ๋ก์ธ์ค ๋๊ธฐํ (0) | 2021.07.09 |
---|---|
[์ด์์ฒด์ ] CPU ์ค์ผ์ค๋ฌ(CPU Scheduler) (0) | 2021.07.08 |
[์ด์์ฒด์ ] ๋ฉํฐ ํ๋ก์ธ์ค vs ๋ฉํฐ ์ฐ๋ ๋ (0) | 2021.07.08 |
[์ด์์ฒด์ ] ์ด์์ฒด์ ๋ ๋ฌด์์ธ๊ฐ? (0) | 2021.06.03 |