Scheduling
โข
CPU๋ฅผ ์ ์ฌ์ฉํ๊ธฐ ์ํด ์คํํ ํ๋ก์ธ์ค๋ฅผ ์ ํํ๋ ๊ฒ
โข
์ค๋ฒํค๋ โ / ์ฌ์ฉ๋ฅ โ / ๊ธฐ์ ํ์ โ ํ๋๋ก ์ค๊ณํด์ผ ํ๋ค.
โข
๋ชฉํ
1.
Batch System: ๊ฐ๋ฅํ๋ฉด ๋ง์ ์ผ์ ์ํ. ์๊ฐ(time) ๋ณด๋จ ์ฒ๋ฆฌ๋(throughout)์ด ์ค์
2.
Interactive System: ๋น ๋ฅธ ์๋ต ์๊ฐ. ์ ์ ๋๊ธฐ ์๊ฐ.
3.
Real-time System: ๊ธฐํ(deadline) ๋ง์ถ๊ธฐ.
์ ์ / ๋น์ ์ ์ค์ผ์ค๋ง
โข
์ ์ (preemptive) : OS๊ฐ CPU์ ์ฌ์ฉ๊ถ์ ์ ์ ํ ์ ์๋ ๊ฒฝ์ฐ, ๊ฐ์ ํ์ํ๋ ๊ฒฝ์ฐ
โข
๋น์ ์ (nonpreemptive) : ํ๋ก์ธ์ค ์ข
๋ฃ or I/O ๋ฑ์ ์ด๋ฒคํธ๊ฐ ์์ ๋๊น์ง ์คํ ๋ณด์ฅ (์ฒ๋ฆฌ์๊ฐ ์์ธก ์ด๋ ค์)
ํ๋ก์ธ์ค ์ํ
์น์ธ (Admitted)ย
โข
ํ๋ก์ธ์ค ์์ฑ์ด ๊ฐ๋ฅํ์ฌ ์น์ธ๋จ.
์ค์ผ์ค๋ฌ ๋์คํจ์น (Scheduler Dispatch)ย
โข
์ค๋นย ์ํ์ ์๋ ํ๋ก์ธ์ค ์ค ํ๋๋ฅผ ์ ํํ์ฌ ์คํ์ํค๋ ๊ฒ
์ธํฐ๋ฝํธ (Interrupt)ย
โข
์์ธ,ย ์
์ถ๋ ฅ, ์ด๋ฒคํธ ๋ฑ์ด ๋ฐ์ํ์ฌ ํ์ฌ ์คํย ์ค์ธ ํ๋ก์ธ์ค๋ฅผ ์ค๋น ์ํ๋ก ๋ฐ๊พธ๊ณ , ํด๋น ์์
์ ๋จผ์ ์ฒ๋ฆฌํ๋ ๊ฒ.
์
์ถ๋ ฅ ๋๋ ์ด๋ฒคํธ ๋๊ธฐ (I/O or Event wait)ย
โข
์คํ ์ค์ธย ํ๋ก์ธ์ค๊ฐ ์
์ถ๋ ฅ์ด๋ ์ด๋ฒคํธ๋ฅผ ์ฒ๋ฆฌํด์ผ ํ๋ ๊ฒฝ์ฐ, ์
์ถ๋ ฅ/์ด๋ฒคํธ๊ฐ ๋ชจ๋ ๋๋ ๋๊น์ง ๋๊ธฐ ์ํ๋ก ๋ง๋๋ ๊ฒ.
์
์ถ๋ ฅ ๋๋ ์ด๋ฒคํธ ์๋ฃ (I/O or Event Completion)ย
โข
์
์ถ๋ ฅ/์ด๋ฒคํธ๊ฐ ๋๋ ํ๋ก์ธ์ค๋ฅผ ์ค๋น ์ํ๋ก ์ ํํ์ฌ ์ค์ผ์ค๋ฌ์ ์ํด ์ ํ๋ ์ ์๋๋ก ๋ง๋๋ ๊ฒ.
๋น์ ์ ์ค์ผ์ค๋ง :ย Interrupt,ย Scheduler Dispatch
์ ์ ์ค์ผ์ค๋ง :ย I/O or Event Wait
CPU ์ค์ผ์ค๋ง์ ์ข ๋ฅ
โข
๋น์ ์ ์ค์ผ์ค๋ง
1.
FCFS (First Come First Served)
โข
ํ์ ๋์ฐฉํ ์์๋๋ก CPU ํ ๋น
โข
์คํ ์๊ฐ์ด ์งง์ ๊ฒ ๋ค๋ก ๊ฐ๋ฉด ํ๊ท ๋๊ธฐ ์๊ฐ์ด ๊ธธ์ด์ง
2.
SJF (Shortest Job First)
โข
์ํ์๊ฐ์ด ๊ฐ์ฅ ์งง๋ค๊ณ ํ๋จ๋๋ ์์
์ ๋จผ์ ์ํ
โข
๊ฐ์ฅ ์งง์ ํ๊ท ๋๊ธฐ ์๊ฐ์ ๊ฐ์ง๊ณ ์๋ค.
โข
ํ์ง๋ง ์ค์ ๋ก ํ๋ก์ธ์ค์ CPU ์ ์ ์๊ฐ(burst time)์ ์ ์ ์๊ธฐ ๋๋ฌธ์ ๋นํ์ค์ ์ด๋ค.
โข
์ ์ SJF๋ ์กด์ฌํ๋ค.
โข
์ ์ ์ค์ผ์ค๋ง
1.
Priority Scheduling
โข
์ ์ /๋์ ์ผ๋ก ์ฐ์ ์์๋ฅผ ๋ถ์ฌํ์ฌ ์ฐ์ ์์๊ฐ ๋์ ์์๋๋ก ์ฒ๋ฆฌ
โข
์ฐ์ ์์๊ฐ ๋ฎ์ ํ๋ก์ธ์ค๊ฐ ๋ฌดํ์ ๊ธฐ๋ค๋ฆฌ๋ Starvation ์ด ์๊ธธ ์ ์์
โข
Aging ๋ฐฉ๋ฒ(ready queue์์ ๊ธฐ๋ค๋ฆฌ๋ ๋์ ์ผ์ ์๊ฐ์ด ์ง๋๋ฉด ์ฐ์ ์์๋ฅผ ์ฌ๋ ค์ฃผ๋ ๋ฐฉ๋ฒ)์ผ๋ก Starvation ๋ฌธ์ ํด๊ฒฐ ๊ฐ๋ฅ
2.
Round Robin
โข
FCFS์ ์ํด ํ๋ก์ธ์ค๋ค์ด ๋ณด๋ด์ง๋ฉด ๊ฐ ํ๋ก์ธ์ค๋ ๋์ผํ ์๊ฐ์ย Time Quantumย ๋งํผ CPU๋ฅผ ํ ๋ฌ ๋ฐ์
โฆ
Time Quantumย orย Time Sliceย : ์คํ์ ์ต์ ๋จ์ ์๊ฐ
โข
ํ ๋น ์๊ฐ(Time Quantum)์ด ํฌ๋ฉด FCFS์ ๊ฐ๊ฒ ๋๊ณ , ์์ผ๋ฉด ๋ฌธ๋งฅ ๊ตํ (Context Switching) ์ฆ์์ ธ์ ์ค๋ฒํค๋ ์ฆ๊ฐ
3.
Multilevel-Queue (๋ค๋จ๊ณ ํ)
โข
์์
๋ค์ ์ฌ๋ฌ ์ข
๋ฅ์ ๊ทธ๋ฃน์ผ๋ก ๋๋์ด ์ฌ๋ฌ ๊ฐ์ ํ๋ฅผ ์ด์ฉํ๋ ๊ธฐ๋ฒ
โข
์ฐ์ ์์๊ฐ ๋ฎ์ ํ๋ค์ด ์คํ ๋ชปํ๋ ๊ฑธ ๋ฐฉ์งํ๊ณ ์ ๊ฐ ํ๋ง๋ค ๋ค๋ฅธย Time Quantum์ ์ค์ ํด์ฃผ๋ ๋ฐฉ์ ์ฌ์ฉ
โข
์ฐ์ ์์๊ฐ ๋์ ํ๋ ์์ย Time Quantumย ํ ๋น. ์ฐ์ ์์๊ฐ ๋ฎ์ ํ๋ ํฐย Time Quantumย ํ ๋น.
4.
Multilevel-Feedback-Queue (๋ค๋จ๊ณ ํผ๋๋ฐฑ ํ)
โข
๋ค๋จ๊ณ ํ์์ ์์ ์ย Time Quantum์ ๋ค ์ฑ์ด ํ๋ก์ธ์ค๋ ๋ฐ์ผ๋ก ๋ด๋ ค๊ฐ๊ณ ์์ ์ย Time Quantum์ ๋ค ์ฑ์ฐ์ง ๋ชปํ ํ๋ก์ธ์ค๋ ์๋ ํ ๊ทธ๋๋ก
โฆ
Time Quantum์ ๋ค ์ฑ์ด ํ๋ก์ธ์ค๋ CPU burst ํ๋ก์ธ์ค๋ก ํ๋จํ๊ธฐ ๋๋ฌธ
โข
์งง์ ์์
์ ์ ๋ฆฌ, ์
์ถ๋ ฅ ์์ฃผ(Interrupt๊ฐ ์ฆ์) ์์
์ ์ฐ์ ๊ถ์ ์ค
โข
์ฒ๋ฆฌ ์๊ฐ์ด ์งง์ ํ๋ก์ธ์ค๋ฅผ ๋จผ์ ์ฒ๋ฆฌํ๊ธฐ ๋๋ฌธ์ Turnaround ํ๊ท ์๊ฐ์ ์ค์ฌ์ค
์ค์ผ์ค๋ง์ ์ฒ๋ (Scheduling Criteria)
Scheduling criteria(์ฒ๋)๋ ์ค์ผ์ค๋ง์ ํจ์จ์ ๋ถ์ํ๋ ๊ธฐ์ค๋ค์ด๋ค.
CPU Utilization(์ด์ฉ๋ฅ , %)
โข
CPU๊ฐ ์ํ๋๋ ๋น์จ
Throughput(์ฒ๋ฆฌ์จ, jobs/sec)
โข
๋จ์์๊ฐ๋น ์ฒ๋ฆฌํ๋ ์์
์ ์(์ฒ๋ฆฌ๋)
Turnaround time(๋ฐํ์๊ฐ)
โข
์คํ ์๊ฐ๊ณผ ๋๊ธฐ ์๊ฐ์ ๋ชจ๋ ํฉํ ์๊ฐ์ผ๋ก ์์
์ด ์๋ฃ๋ ๋๊น์ง ์ด ๊ฑธ๋ฆฐ ์๊ฐ
Waiting time(๋๊ธฐ์๊ฐ)
โข
CPU๋ฅผ ์ ์ ํ๊ธฐ ์ํด์ ready queue์์ ๊ธฐ๋ค๋ฆฐ ์๊ฐ์ ๋งํ๋ค.(๋ค๋ฅธ ํ์์ ๋๊ธฐํ ์๊ฐ์ ์ ์ธํ๋ค.)
Response time(์๋ต์๊ฐ)
โข
์ผ๋ฐ์ ์ผ๋ก ๋ํํ ์์คํ
์์ ์
๋ ฅ์ ๋ํ ๋ฐ์ ์๊ฐ์ ๋งํ๋ค. (์์
์ด ์ ์ผ ์ฒ์ ์คํ๋๊ธฐ๊น์ง ๊ฑธ๋ฆฐ ์๊ฐ)