์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ
FCFS (First-Come-First-Service)
โ Non-preemptive scheduling
โ ์ค์ผ์ค๋ง ๊ธฐ์ค
- ๋์ฐฉ์๊ฐ (ready queue ๊ธฐ์ค)
- ๋จผ์ ๋์ฐฉํ ํ๋ก์ธ์ค๋ฅผ ๋จผ์ ์ฒ๋ฆฌ
โ ์์์ ํจ์จ์ ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅ (high resource utilization): scheduling overhead๊ฐ ์ ์
โ Batch system์ ์ ํฉ, interactive system์ ๋ถ์ ํฉ
โ ๋จ์
- Convouy effect: ํ๋์ ์ํ ์๊ฐ์ด ๊ธด ํ๋ก์ธ์ค์ ์ํด ๋ค๋ฅธ ํ๋ก์ธ์ค๋ค์ด ๊ธด ๋๊ธฐ์๊ฐ์ ๊ฐ๊ฒ ๋๋ ํ์(๋๊ธฐ์๊ฐ >> ์คํ์๊ฐ)
- ๊ธด ํ๊ท ์๋ต์๊ฐ(response time)
RR (Round Robin)
โ Preemptive scheduling
โ ์ค์ผ์ค๋ง ๊ธฐ์ค
- ๋์ฐฉ์๊ฐ (ready queue ๊ธฐ์ค)
- ๋จผ์ ๋์ฐฉํ ํ๋ก์ธ์ค๋ฅผ ๋จผ์ ์ฒ๋ฆฌ
โ ์์ ์ฌ์ฉ ์ ํ ์๊ฐ(time quantum)์ด ์๋ค
- system parameter (ฮด)
- ํ๋ก์ธ์ค๋ ํ ๋น๋ ์๊ฐ์ด ์ง๋๋ฉด ์์ ๋ฐ๋ฉ (time-runout)
- ํน์ ํ๋ก์ธ์ค์ ์์ ๋ ์ ๋ฐฉ์ง
- context switch overhead๊ฐ ํฌ๋ค
โ ๋ํํ, ์๋ถํ ์์คํ ์ ์ ํฉ
โ Time quantum์ด ์์คํ ์ฑ๋ฅ์ ๊ฒฐ์ ํ๋ ํต์ฌ ์์
- very large(infinite) -> FCFS
- very small -> process sharing
- ์ฒด๊ฐ ํ๋ก์ธ์ ์๋ = ์ค์ ํ๋ก์ธ์ ์ฑ๋ฅ์ 1/n
- high context switch overhead
โ ์ ํ ์๊ฐ์ด ๋๋๋ฉด ๋ค์ ready queue์ ๋งจ ๋ค์ ๊ฐ์ ์ค์ ์ ๋ค
SPN (Shortest-Process-Next)
โ Non-preemptive scheduling
โ ์ค์ผ์ค๋ง ๊ธฐ์ค
- ์คํ์๊ฐ (burst time)
- busrt time์ด ๊ฐ์ฅ ์์ ํ๋ก์ธ์ค ๋จผ์ ์ฒ๋ฆฌ
- SJF(Shortest Job First) scheduling
โ ์ฅ์
- ํ๊ท ๋๊ธฐ์๊ฐ(WT) ์ต์ํ
- ์์คํ
๋ด ํ๋ก์ธ์ค ์ ์ต์ํ
- ์ค์ผ์ค๋ง ๋ถํ ๊ฐ์, ๋ฉ๋ชจ๋ฆฌ ์ ์ฝ -> ์์คํ ํจ์จ ํฅ์
- ๋ง์ ํ๋ก์ธ์ค๋ค์๊ฒ ๋น ๋ฅธ ์๋ต ์๊ฐ ์ ๊ณต
โ ๋จ์
- Starvation(๋ฌดํ ๋๊ธฐ)gustkd qkftod
- BT๊ฐ ๊ธด ํ๋ก์ธ์ค๋ ์์์ ํ ๋น ๋ฐ์ง ๋ชปํ ์ ์์
- Aging ๋ฑ์ผ๋ก ํด๊ฒฐ (HRRN)
- ์ ํํ ์คํ์๊ฐ์ ์ ์ ์์
- ์คํ์๊ฐ ์์ธก ๊ธฐ๋ฒ ํ์
SRTN (Shortest Remaining Time Next)
โ SPN์ ๋ณํ
โ Preemptive scheduling
- ์์ฌ ์คํ ์๊ฐ์ด ๋ ์ ์ ํ๋ก์ธ์ค๊ฐ ready ์ํ๊ฐ ๋๋ฉด ์ ์
โ ์ฅ์
- SPN์ ์ฅ์ ๊ทน๋ํ
โ ๋จ์
- ํ๋ก์ธ์ค ์์ฑ ์, ์ด ์คํ ์๊ฐ ์์ธก ํ์
- ์์ฌ ์คํ์ ๊ณ์ ์ถ์ ํด์ผํจ -> overhead
โ ๊ตฌํ ๋ฐ ์ฌ์ฉ์ด ๋นํ์ค์
HRRN (High-Response-Ratio-Next)
โ SPN์ ๋ณํ
- SPN + Aging concepts, Non-preemptive
โ Aging
- ํ๋ก์ธ์ค ๋๊ธฐ ์๊ฐ(WT)๋ฅผ ๊ณ ๋ คํ์ฌ ๊ธฐํ ์ ๊ณต
โ ์ค์ผ์ค๋ง ๊ธฐ์ค
- Response ratio๊ฐ ๋์ ํ๋ก์ธ์ค ์ฐ์
โ Response ratio = $WT+BT \over BT$(์๋ต๋ฅ )
- SPN์ ์ฅ์ + Starvation ๋ฐฉ์ง
- ์คํ ์๊ฐ ์์ธก ๊ธฐ๋ฒ ํ์ (overhead)
MLQ (Multi-level Queue)
โ ์์ (or ์ฐ์ ์์)๋ณ ๋ณ๋์ ready queue๋ฅผ ๊ฐ์ง
- ์ต์ด ๋ฐฐ์ ๋ queue๋ฅผ ๋ฒ์ด๋์ง ๋ชปํ๋ค
- ๊ฐ๊ฐ์ queue๋ ์์ ๋ง์ ์ค์ผ์ค๋ง ๊ธฐ๋ฒ ์ฌ์ฉ
โ queue ์ฌ์ด์๋ ์ฐ์ ์์ ๊ธฐ๋ฐ์ ์ค์ผ์ค๋ง ์ฌ์ฉ
โ ์ฅ์
- ์ฐ์ ์์๊ฐ ๋์ ์์ ๋ค์ ๋ํด ๋น ๋ฅธ ์๋ต์๊ฐ
โ ๋จ์
- ์ฌ๋ฌ ๊ฐ์ queue ๊ด๋ฆฌ ๋ฑ ์ค์ผ์ค๋ง overhead
- ์ฐ์ ์์๊ฐ ๋ฎ์ queue๋ starvation ํ์
โ Queue์ ๊ตฌ์ฑ์ ์ ์ฑ ์ ๋ฐ๋ผ ๊ฒฐ์
MFQ (Multi-level Feedback Queue)
โ ํ๋ก์ธ์ค์ queue๊ฐ ์ด๋์ด ํ์ฉ๋ MLQ
โ Feedback์ ํตํด ์ฐ์ ์์ ์กฐ์
- ํ์ฌ๊น์ง์ ํ๋ก์ธ์ ์ฌ์ฉ ์ ๋ณด(ํจํด)์ ํ์ฉ
โ ํน์ฑ
- Dynamic priority
- Preemptive scheduling
- Favor short burst time processes
- Favor I/O bounded processes
- Improve adaptability
โ ํ๋ก์ธ์ค์ ๋ํ ์ฌ์ ์ ๋ณด ์์ด SPN SRTN, HRRN ๊ธฐ๋ฒ์ ํจ๊ณผ๋ฅผ ๋ณผ ์ ์์
โ ๋จ์
- ์ค๊ฒ ๋ฐ ๊ตฌํ์ด ๋ณต์ก, ์ค์ผ์ค๋ง overhead
- Starvation ๋ฌธ์ ๋ฑ
โ ๋ณํ
- ๊ฐ ์ค๋น ํ๋ง๋ค ์๊ฐ ํ ๋น๋ ๋ค๋ฅด๊ฒ ๋ฐฐ์
- ํ๋ก์ธ์ค์ ํน์ฑ์ ๋ง๋ ํํ๋ก ์์คํ ์ด์ ๊ฐ๋ฅ
- ์
์ถ๋ ฅ ์์ฃผ ํ๋ก์ธ์ค๋ค์ ์์ ๋จ๊ณ ํ๋ก ์ด๋, ์ฐ์ ์์ ๋์
- ํ๋ก์ธ์ค๊ฐ block ๋ ๋ ์์์ ์ค๋น ํ๋ก ์ง์ ํ๊ฒ ํจ
- ์์คํ ์ ์ฒด์ ํ๊ท ์๋ต ์๊ฐ ์ค์, ์ ์ถ๋ ฅ ์์ ๋ถ์ฐ
- ๋๊ธฐ ์๊ฐ์ด ์ง์ ๋ ์๊ฐ์ ์ด๊ณผํ ํ๋ก์ธ์ค๋ค์ ์์ํ๋ก ์ด๋
- ์์ด์ง(Aging) ๊ธฐ๋ฒ
'โญ Group_Study > Operating System' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[3์ฃผ์ฐจ] Mutual Exclusion Solutions (SW & HW) (1) | 2022.12.17 |
---|---|
[3์ฃผ์ฐจ] Process Synchronization and Mutual Exclusion (0) | 2022.12.16 |
[2์ฃผ์ฐจ] Process Scheduling (0) | 2022.12.13 |
[2์ฃผ์ฐจ] Thread Management (0) | 2022.12.12 |
[1์ฃผ์ฐจ] Process Management: Interrupt, Context Switching (0) | 2022.12.07 |
๋๊ธ