๐ปํ๋ก์ธ์ค๋?
- ํ๋ก์ธ์ค๋ ์ปดํจํฐ์์ ์ฐ์์ ์ผ๋ก ์คํ๋๊ณ ์๋ ์ปดํจํฐ ํ๋ก๊ทธ๋จ์ ๋งํ๋ค.
๐ปํ๋ก๊ทธ๋จ๊ณผ ํ๋ก์ธ์ค์ ์ฐจ์ด
- ํ๋ก๊ทธ๋จ ์์ฒด์๋ ์๋ช ์ด ์๋ค.ํ๋ก๊ทธ๋จ์ ๋ณด์กฐ ๊ธฐ์ต์ฅ์น์ ์กด์ฌํ๋ฉฐ ์คํ๋๊ธฐ๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ๋ช ๋ น์ด์ ์ ์ ์ธ ๋ฐ์ดํฐ์ ๋ฌถ์์ด๋ค.
- ์ด ํ๋ก๊ทธ๋จ์ ๋ช ๋ น์ด์ ์ ์ ๋ฐ์ดํฐ๊ฐ ์์์ ํ ๋น๋ฐ๊ณ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋๋ฉด ํ๋ก์ธ์ค๊ฐ ๋๋ค.
๐ปํ๋ก์ธ์ค์ ํน์ง
- ๋ณํ ์คํ์ด ๊ฐ๋ฅํ๋ค
- ํ๋์ ํ๋ก๊ทธ๋จ์ด ์ฌ๋ฌ ํ๋ก์์ค ์์ฑ์ด ๊ฐ๋ฅํ๋ค.
- ๊ฐ๊ฐ ๋ ๋ฆฝ๋ ๋ฉ๋ชจ๋ฆฌ ์์ญ๊ณผ ์ฃผ์ ๊ณต๊ฐ์ ์ด์์ฒด์ ๋ก ๋ถํฐ ํ ๋น ๋ฐ๋๋ค.
๐ปํ๋ก์ธ์ค ๊ตฌ์กฐ
- text(code) :์ฐ๋ฆฌ๊ฐ ์์ฑํ ์์ค์ฝ๋๊ฐ ๋ค์ด๊ฐ๋ ๋ถ๋ถ. ์ฆ, ์คํํ ํ๋ก๊ทธ๋จ์ ์ฝ๋๊ฐ ์ ์ฅ๋๋ ์์ญ์ผ๋ก ํ ์คํธ ์์ญ์ด๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค. ํจ์, ์ ์ด๋ฌธ, ์์ ๋ฑ์ด ์ฌ๊ธฐ์ ์ง์ ๋๋ค.
- data : ์ ์ญ๋ณ์์ static ๋ณ์๊ฐ ํ ๋น๋๋ ๋ถ๋ถ. ํ๋ก๊ทธ๋จ์ ์์๊ณผ ๋์์ ํ ๋น๋๊ณ , ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ๋์ด์ผ ๋ฉ๋ชจ๋ฆฌ์์ ์๋ฉธ๋๋ ์์ญ. (๋ฐ์ดํฐ ์์ญ์ ์ด๊ธฐํ์ฌ๋ถ์ ๋ฐ๋ผ Data์ BSS๋ก ๋๋ ์ ์ค๋ช ํ๊ธฐ๋ ํ๋ค.)
- stack :ํ๋ก๊ทธ๋จ์ด ์๋์ผ๋ก ์ฌ์ฉํ๋ ์์ ๋ฉ๋ชจ๋ฆฌ ์์ญ. ํจ์ ํธ์ถ์ ์์ฑ๋๋ ์ง์ญ๋ณ์์ ๋งค๊ฐ๋ณ์๊ฐ ์ ์ฅ๋๋ ์์ญ์ด๊ณ , ํจ์ ํธ์ถ์ด ์๋ฃ๋๋ฉด ์ฌ๋ผ์ง.
- heap : ํ๋ก๊ทธ๋๋จธ๊ฐ ํ ๋น/ํด์ ํ๋ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ. ์ด ๊ณต๊ฐ์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ ๋นํ๋ ๊ฒ์ ๋์ ํ ๋น์ด๋ผ๊ณ ๋ ๋ถ๋ฅธ๋ค.
๐ปํ๋ก์ธ์ค ์ํ
1.new:ํ๋ก์ธ์ค ์์ฑ์ค์ด๋ค.
- ํ๋ก์ธ์ค๋ฅผ ์์ฑํ๊ณ ์๋ ๋จ๊ณ๋ก ์ปค๋ ๊ณต๊ฐ์ PCB๊ฐ ๋ง๋ค์ด์ง ์ํ์ด๋ค.
2.ready:ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ํ์ด๋ค.
- ํ๋ก์ธ์ค๊ฐ ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋ ์ํ๋ก ์คํํ๋๋ฐ ํ์ํ ์์์ ๋ชจ๋ ์ป์ ์ํ์ด๋ค.
- ์์ง CPU๋ฅผ ๋ฐ์ง๋ ์์์ง๋ง CPU๋ฅผ ํ ๋น ๋ฐ์ผ๋ฉด ๋ฐ๋ก ์คํ ๊ฐ๋ฅํ ์ํ์ด๋ค.
3.running : ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ํ ๋น๋ฐ์ ๋ช ๋ น์ด๋ฅผ ์ํ์ค์ธ ์ํ์ด๋ค.
- ์ผ๋ฐ์ ์ผ๋ก CPU๊ฐ ํ๋์ด๊ธฐ ๋๋ฌธ์, ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๋์์ ์คํ๋๋ ์ค์ ๋ก ์คํ์ค์ธ ํ๋ก์ธ์ค๋ ๋งค ์์ ํ๋ ๋ฟ์ด๋ค.
4.Waiting: CPU๋ฅผ ํ ๋นํด์ฃผ์ด๋ ์คํํ ์ ์๋ ์ํ์ด๋ค.
- ํ์ฌ ํ๋ก์ธ์ค๊ฐ I/O์์ ๋ฑ์ ์ ์ฒ๋ฆฌ์ค ์ํ๋ฅผ ์๋ฏธํ๋ค.
5.terminated : ํ๋ก์ธ์ค์ ์คํ ์ข ๋ฃ
- ํ๋ก์ธ์ค์ ์คํ์ด ์๋ฃ๋๊ณ ํ ๋น๋ CPU๋ฅผ ๋ฐ๋ฉํ๊ณ , ์ปค๋๊ณต๊ฐ๋ด์ PCB๋ ๋จ์ ์๋ค.
๐ํ๋ก์ธ์ค๊ฐ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์ ๋ณด์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ
ํ๋ก์ธ์ค๋ ์๋ ๊ฑฐ ๊ฐ์์ง๋ง ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์ ๋ณด์ ์ ๊ทผํ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.๋ค๋ง ์ด ๊ฒฝ์ฐ์๋ ๋จ์ํ CPU๋ ์ง์คํฐ๋ฅผ ๊ต์ฒดํ๋ ๊ฒ๋ฟ๋ง ์๋๋ผ RAM๊ณผ CPU์ฌ์ด์ ์บ์ ๋ฉ๋ชจ๋ฆฌ๊น์ง ์ด๊ธฐํ ๋๊ธฐ๋๋ฌธ์ ์์๋ถ๋ด์ด ํฌ๋ค.
ํ๋ก์ธ์ค๊ฐ ๋ค๋ฅธํ๋ก์ธ์ค์ ์ ๋ณด์ ์ ๊ทผํ๊ธฐ ์ํด์๋ ํน์ ํ ๊ธฐ๋ฒ์ ์ฌ์ฉํ์ฌ์ผ ์ ๊ทผ ํ ์ ์๋ค.
- IPC(Inter-Process Communication)์ ์ฌ์ฉํ๋ค. ->๋๋ถ๋ถ์ IPC๊ธฐ๋ฒ์ ์ปค๋ ๊ณต๊ฐ์ ์ด์ฉํ๋ค.
- LPC(Local inter-Process Communication)์ ์ฌ์ฉํ๋ค.
- ๋ณ๋๋ก ๊ณต์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ง๋ค์ด์ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ก ์ค์ ํด์ฃผ๋ฉด ๋๋ค.
ํ๋ก์ธ์ค๋ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์ ๋ณด๋ฅผ ๊ณต์ ํ๋ ค๋ฉด IPC๋ฅผ ์ฌ์ฉํ๋ ๋ฑ์ ๋ฒ๊ฑฐ๋ก์ด ๊ณผ์ ์ ๊ฑฐ์ณ์ผ ํ์ง๋ง, ์ค๋ ๋๋ ๊ธฐ๋ณธ ๊ตฌ์กฐ ์์ฒด๊ฐ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ณต์ ํ๋ ๊ตฌ์กฐ์ด๊ธฐ ๋๋ฌธ์ ๋ค๋ฅธ ์ค๋ ๋์ ์ ๋ณด ๊ณต์ ๊ฐ ์ฝ๋ค.๋ค์์ ์ค๋ ๋์ ๋ํด์ ์ ์ด๋ณด๊ฒ ๋ค.
'Dev' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
DataBase Engine(๋ฐ์ดํฐ ๋ฒ ์ด์ค ์์ง) (0) | 2021.09.28 |
---|---|
ํ๋ก์(Proxy)๋ (0) | 2021.07.26 |
๊ฐ์ฒด ์งํฅ ํ๋ก๊ทธ๋๋ฐ(OOP) (0) | 2021.06.16 |
[Network]URL,URI,URN์ ์ ์ (0) | 2021.04.13 |
IntelliJ ๋จ์ถํค(MAC) (0) | 2021.03.11 |