[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ] ์ค์ผ์ค๋ง(Scheduling)
2022. 7. 22. 01:52
Scheduling
ํ๋ก์ธ์ค๊ฐ ์์ฑ๋์ด ์คํ๋ ๋ ํ์ํ ์์คํ ์ ์ฌ๋ฌ ์์์ ํด๋น ํ๋ก์ธ์ค์๊ฒ ํ ๋นํ๋ ์์
- ํ๋ก์ธ์ค๊ฐ ์์ฑ๋์ด ์๋ฃ๋ ๋๊น์ง ํ๋ก์ธ์ค๋ ์ฌ๋ฌ ์ข ๋ฅ์ ์ค์ผ์ค๋ง ๊ณผ์ ์ ๊ฑฐ์น๊ฒ ๋จ
์ค์ผ์ค๋ง์ ์ข ๋ฅ
- ์ฅ๊ธฐ ์ค์ผ์ค๋ง : ์ด๋ค ํ๋ก์ธ์ค์๊ฒ ์์คํ ์์์ ํ ๋นํ ์ง ๊ฒฐ์ → ์ค๋น์ํ ํ๋ก ๋ณด๋ด๋ ์์
- ์ค๊ธฐ ์ค์ผ์ค๋ง : ์ด๋ค ํ๋ก์ธ์ค๋ค์ด CPU๋ฅผ ํ ๋น๋ฐ์ ๊ฒ์ธ์ง ๊ฒฐ์
- ๋จ๊ธฐ ์ค์ผ์ค๋ง : ํ๋ก์ธ์ค ์คํ์ ์ํด CPU ํ ๋น์๊ธฐ, ํน์ ํ๋ก์ธ์ค ์ง์
์ค์ผ์ค๋ง์ ๋ชฉ์
- ๊ณต์ ์ฑ : ๋ชจ๋ ํ๋ก์ธ์ค์ ๊ณต์ ํ๊ฒ ํ ๋น
- ์ฒ๋ฆฌ์จ ์ฆ๊ฐ : ๋จ์ ์๊ฐ๋น ํ๋ก์ธ์ค๋ฅผ ์ฒ๋ฆฌํ๋ ๋น์จ ์ฆ๊ฐ
- CPU ์ด์ฉ๋ฅ ์ฆ๊ฐ : CPU๊ฐ ์์ํ๊ฒ ํ๋ก์ธ์ค๋ฅผ ์คํํ๋ ์์์๊ฐ ๋น์จ ์ฆ๊ฐ
- ์ฐ์ ์์ ์ ๋ : ์ฐ์ ์์๊ฐ ๋์ ํ๋ก์ธ์ค ๋จผ์ ์คํ
- ์ค๋ฒํค๋ ์ต์ํ : ์ค๋ฒํค๋ ์ต์ํ
- ์๋ต ์๊ฐ ์ต์ํ : ์์ ์ ์ง์ํ๊ณ , ๋ฐ์ํ๊ธฐ ์์ํ๋ ์๊ฐ ์ต์ํ
- ๋ฐํ ์๊ฐ ์ต์ํ : ํ๋ก์ธ์ค๋ฅผ ์ ์ถํ ์๊ฐ๋ถํฐ ์คํ์ด ์๋ฃ๋ ๋๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ต์ํํจ
- ๋๊ธฐ ์๊ฐ ์ต์ํ : ํ๋ก์ธ์ค๊ฐ ์ค๋น์ํ ํ์์ ๋๊ธฐํ๋ ์๊ฐ ์ต์ํ
- ๊ท ํ ์๋ ์์์ ์ฌ์ฉ : ๋ฉ๋ชจ๋ฆฌ, ์ ·์ถ๋ ฅ ์ฅ์น ๋ฑ์ ์์์ ๊ท ํ ์๊ฒ ์ฌ์ฉ
- ๋ฌดํ ์ฐ๊ธฐ ํํผ : ์์์ ์ฌ์ฉํ๊ธฐ ์ํด ๋ฌดํ์ ์ฐ๊ธฐ๋๋ ์ํ ํํผ ๊ฐ๋ฅ
๋น์ ์ (Non-Preemptive) ์ค์ผ์ค๋ง
์ด๋ฏธ ํ ๋น๋ CPU๋ฅผ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ ๊ฐ์ ๋ก ๋นผ์์ ์ฌ์ฉํ ์ ์๋ ์ค์ผ์ค๋ง ๊ธฐ๋ฒ
- ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ํ ๋น๋ฐ์ผ๋ฉด ํด๋น ํ๋ก์ธ์ค๊ฐ ์๋ฃ๋ ๋๊น์ง CPU๋ฅผ ์ฌ์ฉํ๋ค.
- ํ๋ก์ธ์ค ์๋ต ์๊ฐ ์์ธก ์ฉ์ด
- ์ผ๊ด ์ฒ๋ฆฌ ๋ฐฉ์์ ์ ํฉ
์ข ๋ฅ
- FCFS (First Come Frist Service) : ํ๋ก์ธ์ค๊ฐ ์ค๋น์ํ ํ์ ๋์ฐฉํ ์์์ ๋ฐ๋ผ CPU ํ ๋น. ๊ฐ์ฅ ๊ฐ๋จํ ์๊ณ ๋ฆฌ์ฆ.
- SJF (Shortest Job First) : ์ค๋น์ํ ํ์์ ๋๊ธฐ์ค์ธ ํ๋ก์ธ์ค ์ค ์คํ์๊ฐ์ด ๊ฐ์ฅ ์งง์ ํ๋ก์ธ์ค๊ฐ ์ข ๋ฃ ์๊น์ง ์์ ์ ์ . ๊ฐ์ฅ ์ ์ ํ๊ท ๋๊ธฐ์๊ฐ์ ์ ๊ณตํ๋ ์ต์ ์๊ณ ๋ฆฌ์ฆ. ๊ธฐ์ ํ์ ๋ฐ์
- ์ฐ์ ์์ (Priority) : ํ๋ก์ธ์ค๋ณ ์ฐ์ ์์๊ฐ ์ฃผ์ด์ง๊ณ , ์ฐ์ ์์์ ๋ฐ๋ผ CPU ํ ๋น
- HRN (Highest Response-ratio Next) : ํ์ฌ ์๋ต๋ฅ ์ด ๊ฐ์ฅ ๋์ ๊ฒ์ ์ ํ → ์ฐ์ ์์ ๊ณ์ฐ์ = ( ๋๊ธฐ์๊ฐ + ์๋น์ค(์คํ)์๊ฐ ) / ์๋น์ค ์๊ฐ. ๊ธฐ์ ํ์ ์ต์ํ ๊ธฐ๋ฒ
- ๊ธฐํ๋ถ (Deadline) : ์์ ๋ค์ด ๋ช ์๋ ์๊ฐ์ด๋ ๊ธฐํ ๋ด์ ์๋ฃ๋๋๋ก ๊ณํ
์ ์ (Preemptive) ์ค์ผ์ค๋ง
ํ ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ํ ๋น๋ฐ์ ์คํ ์ค์ผ ๋ ์ฐ์ ์์๊ฐ ๋์ ๋ค๋ฅธ ํ๋ก์ธ์ค๊ฐ CPU๋ฅผ ๊ฐ์ ๋ก ๋นผ์์ ์ฌ์ฉํ ์ ์๋ ์ค์ผ์ค๋ง ๊ธฐ๋ฒ
- ์ฐ์ ์์๊ฐ ๋์ ํ๋ก์ธ์ค๋ฅผ ๋น ๋ฅด๊ฒ ์ฒ๋ฆฌ ๊ฐ๋ฅ
- ์ฃผ๋ก ๋น ๋ฅธ ์๋ต ์๊ฐ์ ์๊ตฌํ๋ ๋ํ์ ์๋ถํ ์์คํ ์ ์ฌ์ฉ
- ๋ง์ ์ค๋ฒํค๋(Overhead) ์ด๋ (*์ค๋ฒํค๋ : ์ฒ๋ฆฌ์ ๋๋ ๊ฐ์ ์ ์ฒ๋ฆฌ์๊ฐ·๋ฉ๋ชจ๋ฆฌ)
์ข ๋ฅ
- ๋ผ์ด๋ ๋ก๋น(Round Robin) : ๊ฐ์ ํฌ๊ธฐ์ CPU ์๊ฐ ํ ๋น
- SRT(Shortest Remaining Time First) : ๊ฐ์ฅ ์งง์ ์๊ฐ์ด ์์๋๋ ํ๋ก์ธ์ค๋ฅผ ๋จผ์ ์ํํ๊ณ , ๋จ์ ์ฒ๋ฆฌ ์๊ฐ์ด ๋ ์งง๋ค๊ณ ํ๋จ๋๋ ํ๋ก์ธ์ค๊ฐ ์ค๋น ํ์ ์๊ธฐ๋ฉด ์ธ์ ๋ผ๋ ํ๋ก์ธ์ค๊ฐ ์ ์ ๋จ
- ๋ค๋จ๊ณ ํ(Multi Level Queue) : ์์ ๋ค์ ์ฌ๋ฌ ์ข ๋ฅ ๊ทธ๋ฃน ๋ถํ
- ๋ค๋จ๊ณ ํผ๋๋ฐฑ ํ : ํ๋ง๋ค ์๋ก ๋ค๋ฅธ CPU์๊ฐ ํ ๋น๋ ๋ถ์ฌ, FIFO์ ๋ผ์ด๋ ๋ก๋น ์ค์ผ์ค๋ง ๊ธฐ๋ฒ์ ํผํฉํ ๊ฒ
'etc > ์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ] OSI ์ฐธ์กฐ ๋ชจ๋ธ (0) | 2022.07.24 |
---|---|
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ] ์ธํฐ๋ท (0) | 2022.07.23 |
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ] ํ๋ก์ธ์ค์ ์ค๋ ๋ (0) | 2022.07.21 |
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ] ๊ฐ์ ๊ธฐ์ต ์ฅ์น (Virtual Memory) (0) | 2022.07.20 |
[์ ๋ณด์ฒ๋ฆฌ๊ธฐ์ฌ ์ค๊ธฐ] ์์คํ ์นดํ๋ก๊ทธ (0) | 2022.07.20 |