[ ์ค์ผ์ค๋ง ]
๋ฒ ์ด์ค : CPU์ ์์์ ํ์ ์ ์ด๋ค. ํ๋ก์ธ์ค ๋ง๋ค ์ ์ ํ ๋๋ ๊ฐ์ ธ์ผ ํ๋ค. ๋ฐฐ๋ถ ๋ฐฉ๋ฒ -> ์ค์ผ์ค๋ง
โ ์ฐ์ ์์
๐ ์ด์์ฒด์ ์์ ํ๋ก์ธ์ค ์ฐ์ ์์์ CPU ์์ ํ ๋น
์ด์์ฒด์ (OS)๋ ๋ค์์ ํ๋ก์ธ์ค๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด ๊ฐ ํ๋ก์ธ์ค์ ์ฐ์ ์์๋ฅผ ํ๋จํ๊ณ , ์ด๋ฅผ ํ๋ก์ธ์ค ์ ์ด ๋ธ๋ก(PCB)์ ๋ช ์ํจ. ์ผ๋ฐ์ ์ผ๋ก ์ฐ์ ์์๊ฐ ๋์ ํ๋ก์ธ์ค๋ CPU ์์์ ๋ ๋ง์ด, ๋ ๋นจ๋ฆฌ ํ ๋น๋ฐ๊ฒ ๋จ.
๐ ํ๋ก์ธ์ค ์ฐ์ ์์ ํ์ธ ๋ฐ ์กฐ์
๊ฐ๋ฐ์๋ ํ๋ก์ธ์ค์ ์ฐ์ ์์๋ฅผ ์กฐ์ ํ ์ ์์ผ๋ฉฐ, ps ๋ช ๋ น์ด๋ฅผ ์ด์ฉํด ํ์ฌ ์คํ ์ค์ธ ํ๋ก์ธ์ค์ ์ฐ์ ์์๋ฅผ ํ์ธํ ์ ์์. ์ด๋ฅผ ํตํด ์์คํ ์ ์์ ๋ฐฐ๋ถ ์ํ๋ฅผ ๋ถ์ํ๊ณ ์ต์ ํํ ์ ์์.
๐ ์ฐ์ ์์ ํ ๋น ๊ธฐ์ค
์ด์์ฒด์ ๋ ์ฃผ๋ก CPU ํ์ฉ๋ฅ ์ ๊ธฐ์ค์ผ๋ก ํ๋ก์ธ์ค์ ์ฐ์ ์์๋ฅผ ๊ฒฐ์ ํจ. CPU ํ์ฉ๋ฅ ์ ์ ์ฒด CPU ๊ฐ๋ ์๊ฐ ์ค ํน์ ์์ ์ ์ฒ๋ฆฌํ๋ ์๊ฐ์ ๋น์จ์ ์๋ฏธํจ. ๊ธฐ๋ณธ์ ์ผ๋ก ์ ์ถ๋ ฅ(I/O) ์์ ์ด ๋ง์ ํ๋ก์ธ์ค๋ ๋์ ์ฐ์ ์์๋ฅผ ์ ์งํ๋ ๊ฒฝํฅ์ด ์์.
๐ ํ๋ก์ธ์ค ์ ํ๊ณผ ์ฐ์ ์์
- CPU ๋ฒ์คํธ: ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ์ด์ฉํ์ฌ ์ฐ์ฐ์ ์ํํ๋ ์์ .
- ์ ์ถ๋ ฅ ๋ฒ์คํธ: ํ๋ก์ธ์ค๊ฐ ์ ์ถ๋ ฅ ์ฅ์น๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ฉฐ ์ํํ๋ ์์ .
- ์ ์ถ๋ ฅ ์ง์ค ํ๋ก์ธ์ค: ์ ์ถ๋ ฅ ์์ ์ด ๋ง์ ํ๋ก์ธ์ค๋ก, ๋ณดํต ๋์ ์ฐ์ ์์๋ฅผ ๋ถ์ฌ๋ฐ์.
- CPU ์ง์ค ํ๋ก์ธ์ค: CPU ์์ ์ด ๋ง์ ํ๋ก์ธ์ค๋ก, ๋น๊ต์ ๋ฎ์ ์ฐ์ ์์๋ฅผ ๊ฐ์ง ์ ์์.
๐ธ ์ด์์ฒด์ ๋ ์ ์ถ๋ ฅ ์ง์ค ํ๋ก์ธ์ค๋ฅผ ์ฐ์ ์คํํ์ฌ ์์คํ ์ด ๋์์์ด ์๋ํ ์ ์๋๋ก ํ๊ณ , CPU ์ง์ค ํ๋ก์ธ์ค์๋ ์ ์ ํ CPU๋ฅผ ํ ๋นํ๋ ๊ฒ์ด ํฉ๋ฆฌ์ ์ธ ๋ฐฉ์์. ์ด๋ฅผ ํตํด ์ ์ฒด์ ์ธ ์์คํ ์ฑ๋ฅ์ ์ต์ ํํ ์ ์์.
โ ์ค์ผ์ค๋ง ํ
๐ ์ค์ผ์ค๋ง ํ๋?
๐ธ ์ด์์ฒด์ ๋ CPU ์์์ ํ์๋ก ํ๋ ํ๋ก์ธ์ค๋ฅผ ํจ๊ณผ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด ์ค์ผ์ค๋ง ํ๋ฅผ ์ฌ์ฉํจ.
๐ธ ํ๋ก์ธ์ค๊ฐ ์คํ๋๊ธฐ ์ํด์๋ ํ์ ์ฝ์
๋์ด ๋๊ธฐํด์ผ ํ๋ฉฐ, ์ด์์ฒด์ ๋ ํด๋น ํ๋ฅผ ๊ด๋ฆฌํ์ฌ ์ ์ ํ ์์ ์ ํ๋ก์ธ์ค๋ฅผ ์คํํจ.
๐ธ ์ค์ผ์ค๋ง ํ๋ ๋ฐ๋์ ์ ์
์ ์ถ(FIFO) ๋ฐฉ์์ผ๋ก ๋์ํ์ง ์์ ์๋ ์์. ์ด์์ฒด์ ๋ ํ๋ก์ธ์ค์ ์ฐ์ ์์์ ๋ค์ํ ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ์ ๊ณ ๋ คํ์ฌ ํ์์ ํ๋ก์ธ์ค๋ฅผ ์ ํํ์ฌ ์คํํจ.
๐ ์ค์ผ์ค๋ง ํ์ ์ข
๋ฅ
1. ์ค๋น ํ(Ready Queue): CPU๋ฅผ ์ด์ฉํ๊ณ ์ ํ๋ ํ๋ก์ธ์ค์ PCB๊ฐ ์ ์ฅ๋๋ ํ์. CPU๋ฅผ ํ ๋น๋ฐ๊ธฐ ์ ๊น์ง ์ด ํ์์ ๋๊ธฐํ๊ฒ ๋จ.
2. ๋๊ธฐ ํ(Waiting Queue): ์
์ถ๋ ฅ(I/O) ์์
์ ์ํํ๊ธฐ ์ํด ๋๊ธฐํ๋ ํ๋ก์ธ์ค์ PCB๊ฐ ์ ์ฅ๋๋ ํ์. ํ๋ก์ธ์ค๊ฐ ์คํ ์ค ์
์ถ๋ ฅ ์์ฒญ์ ํ๋ฉด ์ด ํ๋ก ์ด๋ํจ.
๐ธ ์ด์์ฒด์ ๋ ํ๋ก์ธ์ค๋ฅผ ํ์ ์ฝ์
๋ ์์๋๋ก ์คํํ๋, ํ๋ก์ธ์ค์ ์ฐ์ ์์๋ฅผ ๊ณ ๋ คํ์ฌ ์คํ ์์๋ฅผ ์กฐ์ ํจ. ์คํ ์ค์ธ ํ๋ก์ธ์ค๊ฐ ํ ๋น๋ ์๊ฐ์ ๋ชจ๋ ์ฌ์ฉํ๋ฉด ๋ค์ ์ค๋น ํ๋ก ์ด๋ํ๋ฉฐ, ์คํ ๋์ค ์
์ถ๋ ฅ ์์
์ด ํ์ํ ๊ฒฝ์ฐ ๋๊ธฐ ํ๋ก ์ด๋ํ๊ฒ ๋จ.
๐ธ ์ด๋ฌํ ์ค์ผ์ค๋ง ํ๋ฅผ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํจ์ผ๋ก์จ ์ด์์ฒด์ ๋ ์์คํ
์์์ ์ต์ ํํ๊ณ , ํ๋ก์ธ์ค๊ฐ ์ํํ๊ฒ ์คํ๋ ์ ์๋๋ก ์กฐ์ ํจ.
โ ์ ์ ํ ์ค์ผ์ค๋ง, ๋น์ ์ ํ ์ค์ผ์ค๋ง
๐ ์ ์ ํ ์ค์ผ์ค๋ง๊ณผ ๋น์ ์ ํ ์ค์ผ์ค๋ง
๐ธ ์ด์์ฒด์ ์์ ์ค์ผ์ค๋ง์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ๋ก์ธ์ค์ ์คํ์ด ๋๋ ๋ ์ด๋ฃจ์ด์ง. ํ์ง๋ง ํ๋ก์ธ์ค๊ฐ ์ข
๋ฃ๋์ง ์์์์๋ ์คํ ๋์ค ์ค์ผ์ค๋ง์ด ์ํ๋๋ ๊ฒฝ์ฐ๊ฐ ์์. ๋ํ์ ์ผ๋ก ๋ ๊ฐ์ง ์ํฉ์ด ์กด์ฌํจ.
- ์คํ ์ํ์์ ์
์ถ๋ ฅ ์์
์ ์ํด ๋๊ธฐ ์ํ๋ก ์ ํ๋ ๋
- ์คํ ์ํ์์ ํ์ด๋จธ ์ธํฐ๋ฝํธ๊ฐ ๋ฐ์ํด ์ค๋น ์ํ๋ก ๋ณ๊ฒฝ๋ ๋
์ด๋ฌํ ์ํฉ์ ๋ฐ๋ผ ์ค์ผ์ค๋ง ๋ฐฉ์์ ์ ์ ํ ์ค์ผ์ค๋ง๊ณผ ๋น์ ์ ํ ์ค์ผ์ค๋ง์ผ๋ก ๊ตฌ๋ถ๋จ.
๐ ์ ์ ํ ์ค์ผ์ค๋ง (Preemptive Scheduling)
- ์ด์์ฒด์ ๊ฐ ํ์ฌ CPU๋ฅผ ์ฌ์ฉํ๊ณ ์๋ ํ๋ก์ธ์ค๋ก๋ถํฐ ๊ฐ์ ๋ก CPU ์์์ ํ์ํ์ฌ ๋ค๋ฅธ ํ๋ก์ธ์ค์ ํ ๋นํ ์ ์๋ ๋ฐฉ์์ ์๋ฏธํจ.
- ๋ํ์ ์ธ ์๋ก ํ์ด๋จธ ์ธํฐ๋ฝํธ ๊ธฐ๋ฐ ์ค์ผ์ค๋ง์ด ์์.
- ์ด์์ฒด์ ๋ ํ๋ก์ธ์ค๊ฐ ์ ํด์ง ์๊ฐ๋งํผ CPU๋ฅผ ์ฌ์ฉํ๋ฉด, ๊ฐ์ ๋ก ํด๋น ํ๋ก์ธ์ค๋ฅผ ์ค๋จ์ํค๊ณ ๋ค๋ฅธ ํ๋ก์ธ์ค์ CPU๋ฅผ ํ ๋นํจ. ์ด๋ฅผ ํตํด ๋ค์ค ์์ ํ๊ฒฝ์์ ๋ณด๋ค ๊ณต์ ํ CPU ๋ถ๋ฐฐ๊ฐ ๊ฐ๋ฅํด์ง.
๐ ์ ์ ํ ์ค์ผ์ค๋ง์ ์ฅ์
- CPU ์ฌ์ฉ ์๊ฐ์ ๊ท ๋ฑํ๊ฒ ๋ฐฐ๋ถํ ์ ์์.
- ์ค์ํ ์์ (์ฐ์ ์์๊ฐ ๋์ ํ๋ก์ธ์ค)์ด ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌ๋ ์ ์์.
- ์์คํ ์๋ต ์๋๊ฐ ํฅ์๋จ.
๐ ์ ์ ํ ์ค์ผ์ค๋ง์ ๋จ์
- ํ๋ก์ธ์ค ๊ฐ์ ์ ํ(context switching)์ด ์ฆ์ ์ค๋ฒํค๋๊ฐ ์ฆ๊ฐํจ.
- ํ๋ก์ธ์ค๊ฐ ์์ฃผ ์ค๋จ๋๋ฏ๋ก ์ผ๋ถ ์์ ์ด ์ง์ฐ๋ ์ ์์.
๐ ๋น์ ์ ํ ์ค์ผ์ค๋ง (Non-preemptive Scheduling)
- ๋น์ ์ ํ ์ค์ผ์ค๋ง์ ํ ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ์ฌ์ฉํ๊ธฐ ์์ํ๋ฉด ํด๋น ํ๋ก์ธ์ค๊ฐ ์ค์ค๋ก ์ข ๋ฃํ๊ฑฐ๋ ์ ์ถ๋ ฅ ์์ ์ผ๋ก ์ธํด ๋๊ธฐ ์ํ๋ก ์ ํ๋ ๋๊น์ง CPU๋ฅผ ์ ์ ํ๋ ๋ฐฉ์์.
- CPU๋ฅผ ์ฌ์ฉ ์ค์ธ ํ๋ก์ธ์ค๊ฐ ๋๋ ๋๊น์ง ๋ค๋ฅธ ํ๋ก์ธ์ค๋ ๊ธฐ๋ค๋ ค์ผ ํจ. ์ด ๋ฐฉ์์ ํ๋ก์ธ์ค ์คํ ๋์ค ๊ฐ์ ์ ์ธ ์์ ํ์๊ฐ ์๊ธฐ ๋๋ฌธ์ ์์คํ ์ ์์ธก ๊ฐ๋ฅ์ฑ์ด ๋์์ง.
๐ ๋น์ ์ ํ ์ค์ผ์ค๋ง์ ์ฅ์
- ํ๋ก์ธ์ค ์คํ์ด ์ค๋จ๋์ง ์์ ์์ธก ๊ฐ๋ฅ์ฑ์ด ๋์.
- ์ปจํ ์คํธ ์ค์์นญ ์ค๋ฒํค๋๊ฐ ์ ์ด ์์คํ ์์์ด ์ ์ฝ๋จ.
๐ ๋น์ ์ ํ ์ค์ผ์ค๋ง์ ๋จ์
- ๋ฎ์ ์ฐ์ ์์์ ํ๋ก์ธ์ค๊ฐ ์ค๋ซ๋์ ๋๊ธฐํ ๊ฐ๋ฅ์ฑ์ด ์์.
- ํน์ ํ๋ก์ธ์ค๊ฐ ์ฅ์๊ฐ CPU๋ฅผ ์ ์ ํ๋ฉด ๋ค๋ฅธ ํ๋ก์ธ์ค์ ์คํ์ด ์ง์ฐ๋ ์ ์์.
๐ ์ ์ ํ vs ๋น์ ์ ํ ์ค์ผ์ค๋ง ๋น๊ต
โ ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ
- ์ ์ ์ ์ฒ๋ฆฌ ์ค์ผ์ค๋ง FCFS : ์ค๋น ํ์ ์ฝ์ ๋ ์์๋๋ก CPU ํ ๋น
- ์ต๋จ ์์ ์ฐ์ ์ค์ผ์ค๋ง : ์ค๋น ํ์ ์ฝ์ ๋ ํ๋ก์ธ์ค๋ค ์ค CPU ์ฌ์ฉ ์๊ฐ์ ๊ธธ์ด๊ฐ ๊ฐ์ฅ ์งง์ ํ๋ก์ธ์ค๋ถํฐ CPU ํ ๋น
- ๋ผ์ด๋ ๋ก๋น ์ค์ผ์ค๋ง : ์ ํด์ง ์๊ฐ๋งํผ๋ง ๋์๊ฐ๋ฉฐ CPU ํ ๋น
- ์ต์ ์์ฌ ์๊ฐ ์ฐ์ ์ค์ผ์ค๋ง
- ์ฐ์ ์์ ์ค์ผ์ค๋ง : ๊ฐ์ฅ ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ์ง ํ๋ก์ธ์ค์ CPU ํ ๋น
- ๋ค๋จ๊ณ ํ ์ค์ผ์ค๋ง
- ๋ค๋จ๊ณ ํผ๋๋ฐฑ ํ ์ค์ผ์ค๋ง : ํ๋ก์ธ์ค๋ค์ด ํ ์ฌ์ด๋ฅผ ์ด๋ํ ์ ์๋ ๋ค๋จ๊ณ ํ ์ค์ผ์ค๋ง
[ ๊ฐ์๋ฉ๋ชจ๋ฆฌ ]
'๐ ๊ฐ๋ฐ ์ฑ > ๐ ์ด์์ฒด์ , ์ปดํจํฐ ๊ตฌ์กฐ ๋ฑ์ CS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์๋ฃ๊ตฌ์กฐ / ๋ฐฐ์ด, ์คํ, ํ, ํด์ํ ์ด๋ธ (0) | 2025.02.27 |
---|