ํ๋ก์ธ์ค์ ํน์ฑ ๋ถ๋ฅ
- CPU-bound process
- CPU๋ฅผ ์ฃผ๋ก ์ฌ์ฉํ๋ ํ๋ก์ธ์ค(high CPU)
- ๊ณ์ฐ ์์ฃผ์ job
- few very long CPU burst(CPU-intensive)
- I/O-bound process
- CPU๋ฅผ ์ก๊ณ ๊ณ์ฐํ๋ ์๊ฐ๋ณด๋ค I/O์ ๋ง์ ์๊ฐ์ด ํ์ํ process(low CPU)
- interactive program
- many short CPU bursts(์ค๊ฐ์ I/O๊ฐ ๋ผ์ด๋ฆ)
CPU-burst Time์ ๋ถํฌ
- ์ฌ๋ฌ ์ข ๋ฅ์ job/process์ด ์์ฌ์๊ธฐ ๋๋ฌธ์ CPU ์ค์ผ์ค๋ง์ด ํ์ํ๋ค
- interactive job(I/O bound job)์๊ฒ ์ ์ ํ response๋ฅผ ์ฐ์ ์ ์ผ๋ก ์ ๊ณต
- CPU์ I/O ์ฅ์น ๋ฑ ์์คํ ์์์ ๊ณจ๊ณ ๋ฃจ ํจ์จ์ ์ผ๋ก ์ฌ์ฉ
CPU Scheduler & Dispatcher
1) CPU scheduler (OS ๋ด๋ถ ์ฝ๋)
ready ์ํ์ ํ๋ก์ธ์ค ์ค์์ ์ด๋ฒ์ CPU๋ฅผ ์ค ํ๋ก์ธ์ค๋ฅผ ๊ณ ๋ฅธ๋ค
2) Dispatcher (OS ๋ด๋ถ ์ฝ๋)
context switch - CPU์ ์ ์ด๊ถ์ CPU scheduler์ ์ํด ์ ํ๋ ํ๋ก์ธ์ค์๊ฒ ๋๊ธด๋ค
CPU Scheduling์ด ํ์ํ ๊ฒฝ์ฐ
- Running -> Blocked (I/O ์์ฒญ ์์คํ ์ฝ) : nonpreemtive
- Running -> Ready (ํ ๋น ์๊ฐ ๋ง๋ฃ๋ก timer interrupt) : preemtive
- Blocked -> Ready (I/O ์๋ฃ ํ ์ธํฐ๋ฝํธ) : preemtive
- Terminate : nonpreemtive
- nonpreemtive : ์์ง ๋ฐ๋ฉ - ์์คํ ์ ๊ฐ์ง๊ณ ์์ด๋ ์ฌ์ฉํ์ง ์์
- preemtive : ๊ฐ์ ๋ก ๋นผ์์
'๐ป CS > ์ด์์ฒด์ ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์ด์์ฒด์ ] 7. Deadlocks (0) | 2023.01.01 |
---|---|
[์ด์์ฒด์ ] 6. Process Synchronization (0) | 2022.12.25 |
[์ด์์ฒด์ ] 4. Process Management (0) | 2022.11.27 |
[์ด์์ฒด์ ] 3. Process (0) | 2022.11.20 |
[์ด์์ฒด์ ] 2. System Structure & Program Execution 2 (0) | 2022.11.20 |
๋๊ธ