10-1 ํ๋ก์ธ์ค ๊ฐ์
ํ๋ก์ธ์ค ์ ์ด ๋ธ๋ก
- CPU ์์์ ํ์ ๋์ด ์๊ธฐ ๋๋ฌธ์ ํ๋ก์ธ์ค๋ค์ ์ฐจ๋ก๋๋ก ๋์๊ฐ๋ฉฐ ํ์ ๋ ์๊ฐ๋งํผ๋ง CPU๋ฅผ ์ด์ฉ.
- ์ด์์ฒด์ ๋ ๋น ๋ฅด๊ฒ ๋ฒ๊ฐ์ ์ํ๋๋ ํ๋ก์ธ์ค์ ์คํ ์์๋ฅผ ๊ด๋ฆฌํ๊ณ , ํ๋ก์ธ์ค์ CPU๋ฅผ ๋น๋กฏํ ์์์ ๋ฐฐ๋ถํ๊ธฐ ์ํด ํ๋ก์ธ์ค ์ ์ด ๋ธ๋ก(PCB: Process Control Block)์ ์ด์ฉ.
- PCB๋ ํ๋ก์ธ์ค์ ๊ด๋ จ๋ ์ ๋ณด๋ฅผ ์ ์ฅํ๋ ์๋ฃ ๊ตฌ์กฐ์ด๋ฉฐ, ์ปค๋ ์์ญ์ ์์ฑ๋๋ค.
- PCB๋ฅผ ํตํด ์์์๋ ๋ํ์ ์ธ ์ ๋ณด๋ค: ํ๋ก์ธ์คID, ๋ ์ง์คํฐ ๊ฐ, ํ๋ก์ธ์ค ์ํ, CPU์ค์ผ์ค๋ง ์ ๋ณด, ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ์ ๋ณด, ์ฌ์ฉํ ํ์ผ๊ณผ ์ ์ถ๋ ฅ์ฅ์น ๋ชฉ๋ก
๋ฌธ๋งฅ ๊ตํ
- Ex) ํ๋ก์ธ์ค A๊ฐ ์ด์์ฒด์ ๋ก๋ถํฐ CPU๋ฅผ ํ ๋น๋ฐ์ ์คํ๋๋ค๊ฐ ์๊ฐ์ด ๋ค ๋์ด ํ๋ก์ธ์ค B์ CPU ์ฌ์ฉ๊ถ์ ๋๊ธฐ๋ ์ํฉ.
- ํ๋ก์ธ์ค A๋ ์ง๊ธ๊น์ง์ ์ค๊ฐ ์ ๋ณด๋ฅผ ๋ฐฑ์ ํด์ผํ๋๋ฐ ์ด๋ฌํ ํ๋ก์ธ์ค ์ํ์ ์ฌ๊ฐํ๊ธฐ ์ํด ๊ธฐ์ตํด์ผ ํ ์ ๋ณด๋ฅผ ๋ฌธ๋งฅ์ด๋ผ ํจ.
- ๊ธฐ์กด ํ๋ก์ธ์ค์ ๋ฌธ๋งฅ์ PCB์ ๋ฐฑ์ ํ๊ณ , ์๋ก์ด ํ๋ก์ธ์ค๋ฅผ ์คํํ๊ธฐ ์ํด ๋ฌธ๋งฅ์ PCB๋ก๋ถํฐ ๋ณต๊ตฌํ์ฌ ์๋ก์ด ํ๋ก์ธ์ค๋ฅผ ์คํํ๋ ๊ฒ์ ๋ฌธ๋งฅ ๊ตํ(context switching)์ด๋ผ๊ณ ํจ.
- ๋ฌธ๋งฅ ๊ตํ์ ์ฌ๋ฌ ํ๋ก์ธ์ค๊ฐ ๋์์์ด ๋น ๋ฅด๊ฒ ๋ฒ๊ฐ์ ๊ฐ๋ฉฐ ์คํ๋๋ ์๋ฆฌ.
ํ๋ก์ธ์ค์ ๋ฉ๋ชจ๋ฆฌ ์์ญ
- ํ๋ก์ธ์ค๊ฐ ์์ฑ๋๋ฉด ์ปค๋ ์์ญ์ PCB๊ฐ ์์ฑ๋๊ณ , ์ฌ์ฉ์ ์์ญ์๋ ์ฝ๋ ์์ญ, ๋ฐ์ดํฐ ์์ญ, ํ ์์ญ, ์คํ ์์ญ์ผ๋ก ๋๋์ด ์ ์ฅ.
- ์ฝ๋ ์์ญ๊ณผ ๋ฐ์ดํฐ ์์ญ์ ํฌ๊ธฐ๊ฐ ๊ณ ์ ๋ ์ ์ ํ ๋น ์์ญ
- ํ ์์ญ๊ณผ ์คํ ์์ญ์ ํ๋ก์ธ์ค ์คํ ๊ณผ์ ์์ ๊ทธ ํฌ๊ธฐ๊ฐ ๋ณํ ์ ์๋ ๋์ ํ ๋น ์์ญ
- ์ฝ๋ : ์คํํ ์ ์๋ ์ฝ๋, ์ฆ ๊ธฐ๊ณ์ด๋ก ์ด๋ฃจ์ด์ง ๋ช
๋ น์ด๊ฐ ์ ์ฅ.
- ๋ฐ์ดํฐ๊ฐ ์๋ CPU๊ฐ ์คํํ ๋ช ๋ น์ด๊ฐ ๋ด๊ฒจ ์๊ธฐ ๋๋ฌธ์ Write๊ฐ ๊ธ์ง๋์ด ์์ผ๋ฉฐ, Read-only ๊ณต๊ฐ์ด๋ค.
- ๋ฐ์ดํฐ : ์ ๊น ์ผ๋ค๊ฐ ์์จ ๋ฐ์ดํฐ๊ฐ ์๋ ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ ๋์ ์ ์งํ ๋ฐ์ดํฐ๊ฐ ์ ์ฅ๋๋ ๊ณต๊ฐ.
- ์ ์ญ ๋ณ์๊ฐ ๋ํ์ ์ธ ์.
- ํ : ํ๋ก๊ทธ๋๋จธ๊ฐ ์ง์ ํ ๋นํ ์ ์๋ ์ ์ฅ ๊ณต๊ฐ.
- ํ ์์ญ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ ๋น ์, ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ ์ฌ์ฉ์ด ๋๋ฌ์ ๋ ํด๋น ๊ณต๊ฐ์ ๋ฐํํด์ผํ๋ค.
- ๋ง์ฝ ๋ฐํํ์ง ์๋๋ค๋ฉด ํ ๋นํ ๊ณต๊ฐ์ ๋ฉ๋ชจ๋ฆฌ ๋ด์ ๊ณ์ ๋จ์ ๋ฉ๋ชจ๋ฆฌ ๋ญ๋น๋ฅผ ์ด๋(๋ฉ๋ชจ๋ฆฌ ๋์).
- ์คํ : ๋ฐ์ดํฐ๋ฅผ ์ผ์์ ์ผ๋ก ์ ์ฅํ๋ ๊ณต๊ฐ.
- ๋ฐ์ดํฐ ์์ญ๊ณผ ๋ฌ๋ฆฌ ์ ๊น ์ฐ๋ ๊ฐ๋ค์ด ์ ์ฅ๋๋ฉฐ ๋งค๊ฐ ๋ณ์, ์ง์ญ ๋ณ์๊ฐ ๋ํ์ ์ธ ์.
10-2 ํ๋ก์ธ์ค ์ํ์ ๊ณ์ธต ๊ตฌ์กฐ
ํ๋ก์ธ์ค ์ํ
- ์์ฑ ์ํ : ์ด์ ๋ง ๋ฉ๋ชจ๋ฆฌ์ ์ ์ฌ๋์ด PCB๋ฅผ ํ ๋น ๋ฐ์ ์ํ.
- ์ค๋น ์ํ : CPU๋ฅผ ํ ๋น ๋ฐ์ ์คํ ํ ์ ์์ง๋ง, ์ฐจ๋ก๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ์ํ. ์ค๋น์์ ์คํ ์ํ๋ก ์ ํ๋๋ ๊ฒ์ ๋์คํจ์น๋ผ๊ณ ํจ.
- ์คํ ์ํ : CPU๋ฅผ ํ ๋น ๋ฐ์ ์คํ ์ค์ธ ์ํ.
- ๋๊ธฐ ์ํ : ์คํ ๋์ค ์ ์ถ๋ ฅ ์ฅ์น ์์ ์ด ๋๋ ๋๊น์ง ๊ธฐ๋ค๋ฆฌ๋ ์ํ.
- ์ข ๋ฃ ์ํ : ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ๋ ์ํ. ์ด์์ฒด์ ๋ PCB์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ ๋ฆฌ.
ํ๋ก์ธ์ค ๊ณ์ธต ๊ตฌ์กฐ
- ํ๋ก์ธ์ค๋ ์คํ ๋์ค ์์คํ ํธ์ถ์ ํตํด ๋ค๋ฅธ ํ๋ก์ธ์ค๋ฅผ ์์ฑํ ์ ์๋ค.
- ์ด๋ ์ ํ๋ก์ธ์ค๋ฅผ ์์ฑํ ํ๋ก์ธ์ค๋ฅผ ๋ถ๋ชจ ํ๋ก์ธ์ค
- ๋ถ๋ชจ ํ๋ก์ธ์ค์ ์ํด ์์ฑ๋ ํ๋ก์ธ์ค๋ฅผ ์์ ํ๋ก์ธ์ค
ํ๋ก์ธ์ค ์์ฑ ๊ธฐ๋ฒ
- ๋ถ๋ชจ ํ๋ก์ธ์ค๋ fork(๋ณต์ฌ๋ณธ์ ๋ง๋๋ ์์คํ ํธ์ถ)๋ฅผ ํตํด ์์ ์ ๋ณต์ฌ๋ณธ์ ์์ ํ๋ก์ธ์ค๋ก ์์ฑ.
- ์์ ํ๋ก์ธ์ค๋ exec(์๋ก์ด ํ๋ก๊ทธ๋จ์ผ๋ก ์ ํํ๋ ์์คํ ํธ์ถ)๋ฅผ ํตํด ์์ ์ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๋ค๋ฅธ ํ๋ก๊ทธ๋จ์ผ๋ก ๊ต์ฒด.
10-3 ์ค๋ ๋
ํ๋ก์ธ์ค์ ์ค๋ ๋
- ํ๋ก์ธ์ค(process)๋ ์ด์์ฒด์ ๋ก๋ถํฐ ์์์ ํ ๋น๋ฐ์ ์์ ์ ๋จ์.
- ์ค๋ ๋(thread)๋ ํ๋ก์ธ์ค๋ฅผ ๊ตฌ์ฑํ๋ ์คํ์ ํ๋ฆ ๋จ์.
๊ณผ๊ฑฐ ๋จ์ผ ์ค๋ ๋ ํ๋ก์ธ์ค ๋น์์๋ ํ ๋ฒ์ ํ๋์ ์์ ์ ์ฒ๋ฆฌํ์ง๋ง, ์๊ฐ์ด ํ๋ฅผ์๋ก ํ๋ก๊ทธ๋จ์ด ๋ณต์กํด์ง๊ณ ํ๋ก์ธ์ค ํ๋๋ง์ ์ฌ์ฉํด์ ํ๋ก๊ทธ๋จ์ ์คํํ๊ธฐ์๋ ๋ฒ ์ฐจ๊ฒ ๋์๋ค.
์ฝ๊ฒ ๋ ์ค๋ฅด๋ ๋ฐฉ๋ฒ์, "ํ ํ๋ก๊ทธ๋จ์ ์ฒ๋ฆฌํ๊ธฐ ์ํ ํ๋ก์ธ์ค๋ฅผ ์ฌ๋ฌ ๊ฐ ๋ง๋ค๋ฉด ์ด๋จ๊น?"๋ผ๋ ์๊ฐ์ด ๋ค์ง๋ง ์ด๋ ๋ถ๊ฐ๋ฅํ๋ค.
์๋ํ๋ฉด ์ด์์ฒด์ ๋ ์์ ์ฑ์ ์ํด ํ๋ก์ธ์ค๋ง๋ค ์์ ์๊ฒ ํ ๋น๋ ๋ฉ๋ชจ๋ฆฌ ๋ด์ ์ ๋ณด์๋ง ์ ๊ทผํ ์ ์๋๋ก ์ ์ฝ์ ๋๊ณ ์๊ณ , ์ด๋ฅผ ๋ฒ์ด๋๋ ์ ๋ณด์ ์ ๊ทผํ๋ ค๋ฉด ์ค๋ฅ๊ฐ ๋ฐ์ํ๊ธฐ ๋๋ฌธ์ด๋ค.
์ด๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ํ๋ก์ธ์ค๋ณด๋ค ๋ ์์ ์คํ ๋จ์ ๊ฐ๋ ์ด ํ์ํ๊ฒ ๋์๊ณ , ์ด ๊ฐ๋ ์ด ๋ฐ๋ก ์ค๋ ๋์ด๋ค.
๋ฉํฐํ๋ก์ธ์ค์ ๋ฉํฐ์ค๋ ๋
- ์ฌ๋ฌ ํ๋ก์ธ์ค๋ฅผ ๋์์ ์คํํ๋ ๊ฒ์ ๋ฉํฐํ๋ก์ธ์ค
- ์ฌ๋ฌ ์ค๋ ๋๋ก ํ๋ก์ธ์ค๋ฅผ ๋์์ ์คํํ๋ ๊ฒ์ ๋ฉํฐ์ค๋ ๋
- ํ๋ก์ธ์ค๋ผ๋ฆฌ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์์์ ๊ณต์ ํ์ง ์์ง๋ง, ์ค๋ ๋๋ผ๋ฆฌ๋ ๊ฐ์ ํ๋ก์ธ์ค ๋ด์ ์์์ ๊ณต์ .
- ์์์ ๊ณต์ ํ๋ค๋ ํน์ฑ์ ๋จ์ ์ด ๋ ์๋ ์๋๋ฐ, ๋ฉํฐํ๋ก์ธ์ค ํ๊ฒฝ์์๋ ํ๋์ ํ๋ก์ธ์ค์ ๋ฌธ์ ๊ฐ ์๊ฒจ๋ ๋ค๋ฅธ ํ๋ก์ธ์ค์๋ ์ง์ฅ์ด ์ ๊ฑฐ๋ ์์ง๋ง, ๋ฉํฐ์ค๋ ๋ ํ๊ฒฝ์์๋ ํ๋์ ์ค๋ ๋์ ๋ฌธ์ ๊ฐ ์๊ธฐ๋ฉด ํ๋ก์ธ์ค ์ ์ฒด์ ๋ฌธ์ ๊ฐ ์๊ธธ ์ ์๋ค.
'๐ฅ๏ธ CS > ๐ป ์ด์์ฒด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[CS] ํผ๊ณต์ปด์ด Chapter 12. ํ๋ก์ธ์ค ๋๊ธฐํ (0) | 2024.08.16 |
---|---|
[CS] ํผ๊ณต์ปด์ด Chapter 11. CPU ์ค์ผ์ค๋ง (0) | 2024.08.14 |
[CS] ํผ๊ณต์ปด์ด Chapter 9. ์ด์์ฒด์ ์์ํ๊ธฐ (0) | 2024.08.09 |
[CS] ํผ๊ณต์ปด์ด Chapter 8. ์ ์ถ๋ ฅ์ฅ์น (0) | 2024.08.07 |
[CS] ํผ๊ณต์ปด์ด Chapter 7. ๋ณด์กฐ๊ธฐ์ต์ฅ์น (0) | 2024.08.05 |