reference: kocw์ ๋ฐํจ๊ฒฝ ๊ต์๋ ๊ฐ์์ ๊ถ์ง์ฑ ๊ต์๋ ๊ฐ์(๋ํ ์ ๊ท ์์
)
์์
์ ๋ฃ๊ณ ๋์ ๊ฐ์ ๊ต์ฌ๋ฅผ ํ์ดํํ๊ณ ํ๊ธฐํ ๋ถ๋ถ์ ์ถ๊ฐ์ ์ผ๋ก ์ ๋ฆฌํ์์ต๋๋ค.
์น๋ทฐ์์ toc๋ฅผ ์ ๊ณตํฉ๋๋ค.
github์ md ํ์ผ๋ก ๋ณด๋ ๊ฒ ํธํ์๋ค๋ฉด, ์ฌ๊ธฐ๋ก ์ด๋ํด์ฃผ์๋ฉด ๋ฉ๋๋ค.
1. CPU scheduling์ด ํ์ํ ์ด์
CPU-burst Time์ ๋ถํฌ
์ฌ๋ฌ ์ข ๋ฅ์ job (=process)๊ฐ ์์ฌ ์๊ธฐ ๋๋ฌธ์ CPU scheduling์ด ํ์ํ๋ค.
interactive job์๊ฒ ์ ์ ํ response ์ ๊ณตํด์ผ ํ๊ณ cpu์ I/O ์ฅ์น ๋ฑ ์์คํ ์์์ ๊ณจ๊ณ ๋ฃจ ํจ์จ์ ์ผ๋ก ์ฌ์ฉํด์ผ ํ๋ค.
Q. ๋นจ๊ฐ์ ๋ถ๋ถ๊ณผ ๊ฐ์ด cpu๋ฅผ ์งง๊ฒ ํ๋ก๊ทธ๋จ๊ณผ ํ๋์ ๋ถ๋ถ๊ณผ ๊ฐ์ด cpu๋ฅผ ๊ธธ๊ฒ ์ฐ๋ ํ๋ก๊ทธ๋จ ์ค CPU๋ฅผ ๋๊ตฌํํ ๋จผ์ ์ฃผ์ด์ผ ํ ๊น์? (= cpu scheduling)
A. ์ด์ง์ ์ธ ์์ ์ด ์์ฌ์์ ๋, I/O bound job์ ๋จผ์ ์ฃผ๋ ๊ฒ์ด ์ข์. ์ด์ ๋ ์ค๋ ๊ฑธ๋ฆฌ๋ ์์ ์ ๋จผ์ ์์ฒญํ๋ ๊ฒ ์ข๊ณ I/O ์์ ์ ๋ณดํต ์ฌ์ฉ์์ interactionํ๋ ์์ ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
2. ํ๋ก์ธ์ค์ ํน์ฑ ๋ถ๋ฅ
- I/O-bound process
- CPU๋ฅผ ์ก๊ณ ๊ณ์ฐํ๋ ์๊ฐ๋ณด๋ค I/O์ ๋ง์ ์๊ฐ์ด ํ์ํ job
- many short CPU bursts
- ์ฆ, ์ค๊ฐ์ค๊ฐ I/O๊ฐ ๋ง์ด ๋ผ์ด๋ค์ด์ CPU bursts๊ฐ ์๋ ค ์งง์์ง. ๋์ ์๋ ๋ง์์ง
- CPU burst: cpu๋ฅผ ํ ๋ฒ์ ์ผ๋ง๋ ๊ธธ๊ฒ ์ฐ๋๋
- ์ฃผ๋ก ์ฌ๋๊ณผ interactionํ๋ ๊ฒ ๋ง์.
- CPU-bound process
- ๊ณ์ฐ ์์ฃผ์ job
- few, very long CPU bursts
3. CPU Scheduler & Dispatcher
CPU Scheduler ์ Dispatcher ๋ชจ๋ ์ด์์ฒด์ ์ ํน์ฑ ์ฝ๋์ ์ผ๋ถ์ด๋ค. ํ๋์จ์ด๋ ๋จ๋ ์ ์์ฉ ํ๋ก๊ทธ๋จ์ ๋งํ๋ ๊ฒ์ด ์๋๋ค.
- Cpu Scheduler
- ready ์ํ์ ํ๋ก์ธ์ค ์ค์์ ์ด๋ฒ์ CPU๋ฅผ ์ค ํ๋ก์ธ์ค๋ฅผ ๊ณ ๋ฅธ๋ค. ๊ฒฐ์ ํ๋ค.
- Dispatcher
- CPU์ ์ ์ด๊ถ์ CPU scheduler์ ์ํด ์ ํ๋ ํ๋ก์ธ์ค์๊ฒ ๋๊ธด๋ค.
- ์ด ๊ณผ์ ์ context switch(๋ฌธ๋งฅ ๊ตํ)์ด๋ผ๊ณ ํ๋ค.
- CPU scheduling์ด ํ์ํ ๊ฒฝ์ฐ๋ ํ๋ก์ธ์ค์๊ฒ ๋ค์๊ณผ ๊ฐ์ ์ํ ๋ณํ๊ฐ ์๋ ๊ฒฝ์ฐ์ด๋ค.
- Running ใ ก> Blocked
- Running ใ ก> Ready
- Blocked ใ ก> Ready
- Terminate
1, 4 ์์ ์ค์ผ์ค๋ง์ nonpreemptive (- ๊ฑ์ ๋ก ๋นผ์์ง ์๊ณ ์์ง ๋ฐ๋ฉ)
์ด์ธ์ ๋ชจ๋ ์ค์ผ์ค๋ง์ preemptive (- ๊ฐ์ ๋ก cpu๋ฅผ ๋นผ์๊น)
4. Scheduling Criteria
= Performance Index ( = Performance Measure, ์ฑ๋ฅ ์ฒ๋) ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ ์ค ๋ฌด์์ด ์ข์๊ฐ ํ๋จํ ์ ์๋ ์ฒ๋, ๋ฐฉ๋ฒ
- CPU utilization (์ด์ฉ๋ฅ )
- keep the CPU as busy as possible
- ๋น์ : ์ฃผ๋ฐฉ์ฅ์ด ๋์ง ์๊ณ ์ผํ ์๊ฐ์ ๋น์จ
- ๋์์๋ก ์ข์
- Throughput (์ฒ๋ฆฌ๋)
- the number of processes that complete their execution per time unit
- ๋น์ : ์ฃผ๋ฐฉ์ฅ์ด ์๋ ๋ช ๋ช ์ ๋ฐ์๋
- ๋์์๋ก ์ข์
- Turnaround time (์์ ์๊ฐ, ๋ฐํ ์๊ฐ)
- amount of time to execute a particular process
- ๋น์ : ์ค๊ตญ์ง ๋ค์ด์์ ๋ค ๋จน๊ณ ๋๊ฐ ์๊ฐ
- ์งง์์๋ก ์ข์
- Waiting time (๋๊ธฐ ์๊ฐ)
- amount of time a process has been waiting in the ready queue
- cpu ์ฐ๋ฌ ์์ ๊ธฐ๋ค๋ฆฐ ์๊ฐ์ ํฉ
- ๋น์ : ๋จ๋ฌด์ง ๊ธฐ๋ค๋ฆฌ๋ ์๊ฐ, ์ดํ์ ์ง์ฅ๋ฉด ๊ธฐ๋ค๋ฆฐ ์๊ฐ, ์ดํ์ ํ์์ก ๊ธฐ๋ค๋ฆฐ ์๊ฐ์ ํฉ
- ์งง์์๋ก ์ข์
- Response time (์๋ต ์๊ฐ)
- amount of time it takes from when a request was submitted until the first response is produced, not output (for time-sharing environment)
- ํ๋ก์ธ์ค๊ฐ cpu๋ฅผ ์ฐ๋ฌ ๋ค์ด์์ ์ฒ์ cpu๋ฅผ ์ฐ๊ธฐ๊น์ง ๊ฑธ๋ฆฐ ์๊ฐ. ํ๋ก์ธ์ค๊ฐ ์ฒ์ ์์ํด์ ์ฒ์์ผ๋ก cpu๋ฅผ ์ป์ ์๊ฐ์ด ์๋
- ๋น์ : ๋จ๋ฌด์ง ๊ธฐ๋ค๋ฆฌ๋ ์๊ฐ
- ์งง์์๋ก ์ข์
5. Scheduling Algorithms
5-1. FCFS (First-Come First-Service)
์๋ฅผ ๋ค๋ฉด, ํ์ฅ์ค์์, ์ํ์์ ์จ ์์๋๋ก ์ฒ๋ฆฌ๋๊ณ ์ ์ฌ๋์ ๋ด์ซ์ ์ ์๋ค.
CPU ์ ์ฅ์์ ๋ณด๋ฉด ๋นผ์์ ์ ์๋ค๋ ๋ป์ด๋ค. (nonpreemptive)
์์๋ฅผ ๋ด๋ณด์.
ํ๋ก์ธ์ค์ ๋์ฐฉ ์์๋ฅผ Burst Time์ด ์งง์ ์์๋ก ๋ฐ๊ฟจ๋๋ waiting time(๋๊ธฐ ์๊ฐ)์ด ํ์ ํ ์ค์ด๋ค์๋ค.
*Burst Time: CPU ์ฌ์ฉ ์๊ฐ
Convey effect(ํธ์ ํจ๊ณผ): short process behind long process ์ ์ ์ ์ข์ ํจ๊ณผ๋ก, ์๋ฅผ ๋ค๋ฉด ์ ์ธ์ฐ๋ ์ฌ๋์ด ์์์ ์ค๋ ๋ฒํ จ์ฃผ๋ฉด ๋ค ์ฌ๋๋ค์ ์ค๋ ์ฌ๋ ๊ฒ์ผ๋ก ๋น์ ํ ์ ์๋ค. ํ์ง๋ง CPU ๊ด์ ์์๋ ๋๊ธฐ ์๊ฐ์ด ๊ธธ์ด์ง๋ฏ๋ก ๋ถ์ ์ ์ธ ํจ๊ณผ์ด๋ค.
5-2. SJF (Shortest-Job-First)
๊ฐ ํ๋ก์ธ์ค์ ๋ค์๋ฒ CPU burst time์ ๊ฐ์ง๊ณ ์ค์ผ์ค๋ง์ ํ์ฉํ๋ค.
CPU burst time์ด ๊ฐ์ฅ ์งง์ ํ๋ก์ธ์ค๋ฅผ ์ ์ผ ๋จผ์ ์ค์ผ์คํ๋ค.
๋ ์ข ๋ฅ๋ก ๋๋๋ค.
- Nonpreemptive ๊ทธ๋ฐ๋ฐ ์ด ๋ฐฉ๋ฒ์ ์น๋ช ์ ์ธ ๋ฌธ์ ์ ์ด ์๋ค. ์์ํ ๋ด ์ฐจ๋ก๊ฐ ์ค์ง ์์ ์ ์๋ค๋ ๊ฒ์ด๋ค.
- ๋๋ ํ์ฅ์ค์ 10๋ถ ์ธ๊ฑฐ๋ผ์ ์งง๊ฒ ์ฐ๋ ์ฌ๋์๊ฒ ์๋ณดํ๋ค๊ณ ํ์ ๋, 5๋ถ 1๋ถ์ ์ฌ์ฉํ๋ ค๋ ์ฌ๋๋ค์ด ๊ณ์ ์จ๋ค๋ฉด ๋ ํ์ ํ์ฅ์ค์ ์ฌ์ฉํ ์ ์์ ๊ฒ์ด๋ค. ์ด๊ฒ์ Starvation์ด๋ผ๊ณ ํ๋ค.
- *Arrival Time: Ready Queue์ ๋์ฐฉํ๋ ์์ .
- ์ผ๋จ CPU๋ฅผ ์ก์ผ๋ฉด ์ด๋ฒ CPU burst๊ฐ ์๋ฃ๋ ๋๊น์ง CPU๋ฅผ ์ ์ ๋นํ์ง ์๋๋ค. ์ฝ๊ฒ ๋งํด, ๋ค ์ํ๋ ๋๊น์ง ๊ธฐ๋ค๋ ค์ค๋ค๋ ๋ป์ด๋ค.
- Preemptive
- ํ์ฌ ์ํ ์ค์ธ ํ๋ก์ธ์ค์ ๋จ์ burst time ๋ณด๋ค ๋ ์งง์ CPU burst time์ ๊ฐ์ง๋ ์๋ก์ด ํ๋ก์ธ์ค๊ฐ ๋์ฐฉํ๋ฉด CPU๋ฅผ ๋นผ์๊ธด๋ค. ์ด ๋ฐฉ๋ฒ์ SRTF๋ผ๊ณ ๋ถ๋ฅธ๋ค. ์ด์ ๋ํ ์์๋ ์๋์์ ๋ฐ๋ก ๋ค๋ฃฌ๋ค.
SJF is optimal
์? ์ฃผ์ด์ง ํ๋ก์ธ์ค๋ค์ ๋ํด minimum average waiting time์ ๋ณด์ฅํ๊ธฐ ๋๋ฌธ์ด๋ค. ๋๊ธฐ ์๊ฐ์ ๋ ์งง๊ฒ ์ค์ผ์ค๋งํ ์๋ ์๋ค.
5-3. SRTF (Shortest-Remaining-Time-First)
์ฌ๊ธฐ์ ๋ฌธ์ ์ ์ CPU๋ฅผ ๊ธฐ๋ค๋ฆฌ๋ ํ์ ๋ค์ด์ค๋ ์์ ์ CPU burst time์ ๋ฏธ๋ฆฌ ์ ์ ์๋ค๋ ์ ์ด๋ค. ํ๋ก๊ทธ๋จ์ ๋ณต์กํ๊ณ ์ํฉ์ ๋ฐ๋ผ ๋ค๋ฅด๊ธฐ ๋๋ฌธ์ ๊ณผ๊ฑฐ๋ฅผ ๋ณด๊ณ ์์ธกํ๋ค.
Q. ๊ทธ๋ฌ๋ค๋ฉด ๋ค์๋ฒ CPU burst time์ ์ด๋ป๊ฒ ์์ธกํ ์ ์์๊น?
A. (์ด์์ฒด์ ์์ ๋ฑ ํ ๋ฒ ๋์ค๋ ์์)
์ ํ์์ ํ๋ฉด,
α์ 1-α ๊ฐ ๋ ๋ค 1 ์ดํ์ด๋ฏ๋ก ํ์ term์ ์ ํ term๋ณด๋ค ์ ์ ๊ฐ์ค์น์ ๊ฐ์ ๊ฐ์ง๋ ๊ฒ์ ๋ณผ ์ ์๋ค. ์ฆ ์ต๊ทผ(์ง์ )์ ๊ฐ์ ๋ ๋ง์ด ๋ฐ์ํ๊ณ ์๋ค.
5-4. Priority Scheduling
- highest priority ๋ฅผ ๊ฐ์ง ํ๋ก์ธ์ค์๊ฒ CPU๋ฅผ ํ ๋นํ๋ค.
- ๊ฐ์ฅ ์์ ์ ์๊ฐ ๊ฐ์ฅ ๋์ ์ฐ์ ์์์ด๋ค.
- preempitive์ nonpreemptive๋ก ๋๋ ์ ์๋ค.
- SJF๋ ์ผ์ข ์ priority scheduling์ด๋ค. predicted next cpu burst time์ ์ฐ์ ์์๋ก ๊ฐ๋๋ค.
- ๊ทธ๋ฐ๋ฐ ์ฌ๊ฐํ ๋ฌธ์ ๋, Starvation - low priority processes may never execute ํด๊ฒฐ๋ฐฉ๋ฒ์ Aging - as time progresses increase the priority of the process
5-5. RR (Round Robin)
- ๊ฐ ํ๋ก์ธ์ค๋ ๋์ผํ ํฌ๊ธฐ์ ํ ๋น ์๊ฐ(time quantum)์ ๊ฐ์ง๋ค. (์ผ๋ฐ์ ์ผ๋ก 10~100 ms)
- ํ ๋น ์๊ฐ์ด ์ง๋๋ฉด ํ๋ก์ธ์ค๋ ์ ์ (preempted-cpu๋ฅผ ๋นผ์๊น)๋นํ๊ณ ready queue์ ์ ์ผ ๋ค์ ๊ฐ์ ๋ค์ ์ค์ ์ ๋ค.
- n๊ฐ์ ํ๋ก์ธ์ค๊ฐ ready queue์ ์๊ณ ํ ๋น ์๊ฐ์ด q time unit์ธ ๊ฒฝ์ฐ ๊ฐ ํ๋ก์ธ์ค๋ ์ต๋ q time unit ๋จ์๋ก CPU ์๊ฐ์ 1/n์ ์ป๋๋ค. ๋ฐ๋ผ์ ์ด๋ค ํ๋ก์ธ์ค๋ (n-1)q time unit ์ด์ ๊ธฐ๋ค๋ฆฌ์ง ์์์ ๋ณด์ฅํ๋ค.
- q (ํ ๋น ์๊ฐ)์ด ๊ธธ์ด์ง๋ฉด ๊ทธ๋ฅ FIFO๊ฐ ๋๊ณ , ๋ฐ๋๋ก ์งง์์ง๋ฉด ๋น๋ฒํ ๋ฌธ๋งฅ ๊ตํ์ผ๋ก ์ค๋ฒํค๋๊ฐ ์ปค์ง๋ค.
- ์ผ๋ฐ์ ์ผ๋ก SJF๋ณด๋ค average turnaround time(์ด ์์ ์๊ฐ)์ ๊ธธ์ง๋ง response time(์ฒซ ์๋ต ์๊ฐ)๋ ๋ ์งง๋ค.
heterogeneousํ ๋, ์ฆ long job๊ณผ short job์ด ์์ฌ์์ ๋ RR์ด ์ง๊ฐ๋ฅผ ๋ฐํํ๋ค.
homogeneous, ์ฆ ๋์ผํ job๋ง ์์ ๋๋ ํฐ ํจ๊ณผ๊ฐ ์๋ค. ์๋ฅผ ๋ค์ด ์ํ์์ 10๋ถ ์ ๋ ๋ณผ ์ผ์ ๋ด์ผํ๋ ์ฌ๋๋ค์ด ์๋๋ฐ 1๋ถ์ด ํ ๋น ์๊ฐ์ด๋ผ๊ณ ํ๋ฉด ๊ฒฐ๊ตญ ๋์ค์ ๋ชจ๋ ์ฌ๋์ด ๊ฐ์ด ์ง์ ๊ฐ๊ฒ๋๋ ๋นํจ์จ์ ์ธ ์ํฉ์ด ๋ฒ์ด์ง ์ ์๋ค. ์๋ต ์๋๋ ๋น ๋ฅด๊ธด ํ๋ฐ ์ด ์์ ์๊ฐ์ ๊ธธ๋ค.
5-6. Multilevel Queue
CPU๋ 1๊ฐ์ธ๋ฐ ์ค(ํ)์ ์ฌ๋ฌ ์ค๋ก ์๋ ๋ฐฉ๋ฒ์ด๋ค.
- ready queue๋ฅผ ์ฌ๋ฌ ๊ฐ๋ก ๋ถํ
- foreground (interactive)
- background (batch - no human interaction)
- ๊ฐ ํ๋ ๋
๋ฆฝ์ ์ธ ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ์ ๊ฐ์ง๋ค.
- foreground - RR. interactiveํ๋๊น ์๋ต ์๊ฐ์ด ๋น ๋ฅธ ๊ฒ ์ข์.
- background - FCFS. long job์ด ๋ง์์ context switch ์์ด ์ญ ์คํํ๋ ๊ฒ ์ข์.
- ํ์ ๋ํ ์ค์ผ์ค๋ง์ด ํ์ํ๋ค.
- ์ฒซ๋ฒ์งธ ๋ฐฉ๋ฒ์, Fixed priority scheduling
- serve all from foreground then from background fore ํ์ back์ ์๋น์คํ๋๋ก ๊ณ ์
- Possibility of starvation
- ๋๋ฒ์งธ ๋ฐฉ๋ฒ์, Time slice
- ๊ฐ ํ์ cpu time์ ์ ์ ํ ๋น์จ๋ก ํ ๋น
- ์๋ฅผ ๋ค์ด, ํ์ฌ cpu time์ foreground์๋ 80%๋ฅผ ํ ๋นํ๊ณ background์๋ 20% ํ ๋นํ๋ค.
- ์ฒซ๋ฒ์งธ ๋ฐฉ๋ฒ์, Fixed priority scheduling
- ์ ๋ถ์ ๋ณํ๊ฐ ์๋ค. ํ ๋ฒ ์ ํด์ง ์ ๋ถ(ํ)๋ก ํ์์ ์ด๊ฒ ๋๋ค.
5-7. Multilevel Feedback Queue
- ์(multilevel queue)์๋ ๋ค๋ฅด๊ฒ ํ๋ก์ธ์ค๊ฐ ๋ค๋ฅธ ํ๋ก ์ด๋์ด ๊ฐ๋ฅํ๋ค.
- aging์ ์ด์ ๊ฐ์ ๋ฐฉ์์ผ๋ก ๊ตฌํํ ์ ์๋ค.
- Multilevel-feedback-queue scheduler๋ฅผ ์ ์ํ๋ ํ๋ผ๋ฏธํฐ๋ค์ ์๋์ ๊ฐ๋ค.
- Queue์ ์
- ๊ฐ ํ์ scheduling algorithm
- Process๋ฅผ ์์ ํ๋ก ๋ณด๋ด๋ ๊ธฐ์ค (์น๊ฒฉ)
- Process๋ฅผ ํ์ ํ๋ก ๋ด์ซ๋ ๊ธฐ์ค (๊ฐ๋ฑ)
- ํ๋ก์ธ์ค๊ฐ cpu ์๋น์ค๋ฅผ ๋ฐ์ผ๋ ค ํ ๋ ๋ค์ด๊ฐ ํ๋ฅผ ๊ฒฐ์ ํ๋ ๊ธฐ์ค
- Multilevel Feedback Queue๋ฅผ ๊ตฌํํ ํ ์์์๋๋ก ๊ฐ์๋ก ์ฐ์ ์์๊ฐ ๋ฎ์์ง๋ค.๋์ผํ๊ฒ 16ms์ ๋ ์ผ๋๋ฐ ๋จ์ผ๋ฉด ์๋๋ก ๋์ด๊ฐ๊ณ 8+16ms์ ๋๋ด์ง ๋ชปํ ๊ฒฝ์ฐ ๊ทธ ์๋์ ํ๋ก ์ซ๊ฒจ๋์ FCFS ์ผ๋ก ์ฒ๋ฆฌ๋๋ค.
- ๋จผ์ ๋๊ตฌ๋ new job์ ๋งจ ์ ์ค(queue)์ ์๋๋ฐ cpu ํ ๋น ์๊ฐ์ด 8ms์ด๋ค. 8ms ๋์์ ๋ค ์ฐ๊ณ ๋๊ฐ๋ฉด ๊ทธ๋ฅ ์ค๋ฅธ์ชฝ์ผ๋ก ๋๊ฐ๊ฒ ๋๋ ๊ฒ์ด๊ณ 8ms ์ ์ฐ๊ณ ๋จ์ ๊ฒฝ์ฐ, ์๋์ ํ๋ก ๋ด๋ ค๊ฐ๋ค.
5-8. ์ด ์ธ์ ์ค์ผ์ค๋ง
์์์ ์ดํด๋ณธ ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ์ ํ์ ๋ ์์(1๊ฐ์ cpu)์์ ์ฌ๋ฌ ํ๋ก์ธ์ค๋ฅผ ์ด๋ป๊ฒ ์ค์ผ์ค๋ง ํ ์ง์ ๊ดํ ๋ด์ฉ์ด์๋ค. ์๋๋ ์ด์๋ ์ข ๋ค๋ฅธ ๋ด์ฉ์ด๋ฏ๋ก ์ด๋ ๊ฒ ํค๋๋ฅผ ์ก์๋ณด์๋ค.
Multiple-Processor Scheduling
CPU๊ฐ ์ฌ๋ฌ ๊ฐ์ธ ๊ฒฝ์ฐ๋ฅผ ๋ปํ๋ค. ์ด ๊ฒฝ์ฐ, ์ค์ผ์ค๋ง์ ๋์ฑ ๋ณต์กํด์ง๋ค. ํ์ฅ์ค์ ์นธ์ด 1๊ฐ๊ฐ ์๋ ์ฌ๋ฌ ๊ฐ, ์ํ์ ์ฐฝ๊ตฌ๊ฐ 1๊ฐ๊ฐ ์๋ ์ฌ๋ฌ ๊ฐ์ธ ๊ฒ์ผ๋ก ํ์ฅ๋์๋ค๊ณ ์๊ฐํ๋ฉด ๋๋ค. ์ด๋ ๊ฒ cpu๊ฐ ์ฌ๋ฌ ๊ฐ์ธ ๊ฒฝ์ฐ๋ ์์ธ์ ์ธ ์ํฉ์ด๋ค. ์ผ๋ฐ์ ์ธ ์ปดํจํฐ์๋ cpu๊ฐ 1๊ฐ ๋ค์ด๊ฐ๋๊น.
- Homogeneous processor์ธ ๊ฒฝ์ฐ
- Queue์ ํ ์ค๋ก ์ธ์์ ๊ฐ ํ๋ก์ธ์๊ฐ ์์์ ๊บผ๋ด๊ฐ๊ฒ ํ ์ ์๋ค.
- ๋ฐ๋์ ํน์ฑ ํ๋ก์ธ์์์ ์ํ๋์ด์ผ ํ๋ ํ๋ก์ธ์ค๊ฐ ์๋ ๊ฒฝ์ฐ์๋ ๋ฌธ์ ๊ฐ ๋ ๋ณต์กํด์ง๋ค.
- ์๋ฅผ ๋ค๋ฉด, ๋ฏธ์ฉ์ค์์ ๋ฏธ์ฉ์ฌ ์ฌ๋ฌ ๋ช ์ธ๋ฐ ์๋ฆฌ๊ฐ ๋น์๋ค๊ณ ๋ฐ๋ก ๊ฐ์ง ์๊ณ ์ํ๋ ๋์์ด๋๊ป ๋ฐ๊ธฐ๊น์ง ๊ธฐ๋ค๋ฆด ์ ์๋ค.
- Long sharing
- ์ผ๋ถ ํ๋ก์ธ์์ job์ด ๋ชฐ๋ฆฌ์ง ์๋๋ก ๋ถํ๋ฅผ ์ ์ ํ ๊ณต์ ํ๋ ๋ฉ์ปค๋์ฆ์ด ํ์ํ๋ค.
- ๋ณ๊ฐ์ ํ๋ฅผ ๋๋ ๋ฐฉ๋ฒ vs ๊ณต๋ ํ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ
- ํ์ฅ์ค์์ ๊ฐ ์นธ ๋ณ๋ก ์ค์ ์ค ๊ฒ์ธ์ง ํ ์ค ์๊ธฐ๋ฅผ ํ ๊ฒ์ธ์ง ๋ก ๋น์ ํ ์ ์๋ค.
- Symmetric Multiprocessing (SMP)
- ๊ฐ ํ๋ก์ธ์๊ฐ ๊ฐ์ ์์์ ์ค์ผ์ค๋ง์ ๊ฒฐ์ ํ๋ค.
- ๋ชจ๋ ํ๋ก์ธ์๊ฐ ๋๋ฑํ ๊ด๊ณ์ ์๋ ๋ฐฉ๋ฒ์ด๋ค.
- Asymmetirc multiprocessing
- ์์๋ ๋ค๋ฅด๊ฒ ํ๋์ ํ๋ก์ธ์๊ฐ ์์คํ ๋ฐ์ดํฐ์ ์ ๊ทผ๊ณผ ๊ณต์ ๋ฅผ ์ฑ ์์ง๊ณ ๋๋จธ์ง ํ๋ก์ธ์๋ ๊ฑฐ๊ธฐ์ ๋ฐ๋ฅด๋ ๋ฐฉ๋ฒ์ด๋ค.
- ํ ๋ง๋๋ก, cpu ์ค์์๋ ๋์ฅ cpu๊ฐ ์๊ณ ๊ทธ์ ๋ช ๋ น์ ๋ฐ๋ฅด๋ ๋ฐฉ์์ด๋ค.
5-9. Real-Time Scheduling
real time ์ด๋ dead line์ด ์์ด์ ์ฃผ์ด์ง ์๊ฐ ๋ด์ ์ฒ๋ฆฌ๊ฐ ๋์ด์ผ ํ๋ ๊ฒ์ ๋งํ๋ค.
- Hard real-time systems
- hard real-time task๋ ์ ํด์ง ์๊ฐ ์์ ๋ฐ๋์ ๋๋ด๋๋ก ์ค์ผ์ค๋งํด์ผ ํ๋ ๊ฒ
- ๊ทธ๋์ ์คํ๋ผ์ธ์ด๋ค. ์ฆ ํ๋ก์ธ์ค ๋์ฐฉ ์๊ฐ์ ๋ฏธ๋ฆฌ ์๊ณ ์ค์ผ์ค๋ง ํ๋ค.
- Soft real-time computing
- soft real-time task๋ ์ผ๋ฐ ํ๋ก์ธ์ค์ ๋นํด ๋์ priority๋ฅผ ๊ฐ๋๋ก ํด์ผ ํ๋ค.
- ์์๋ก ๋์์ ์คํธ๋ฆฌ๋ฐ์ ์๊ฐํด๋ณด๋ฉด, ์ด๋น 24 frame์ ๋ฐ๋์ decodingํด์ ๋ด๋ณด๋ด์ค์ผํ๋ค. ๋ฐ๋๋ผ์ธ์ ์งํค์ง ๋ชปํ๋ฉด ๋์์์ด ๋๊ธด๋ค. ํ์ง๋ง ์ผ๋ฐ์ ์ธ ์ปดํจํฐ๋ real-time ์ค์ผ์ค๋ง์ ์ฐ์ง ์๋๋ฐ (๋น์ธ๊ณ ์ด๋ ค์), ๋์์ ์ฒ๋ฆฌ๋ฅผ ์ฐ์ ์์๋ฅผ ๋๊ฒ ๋์ด ์ฒ๋ฆฌํ๋ค.
5-10.Thread Scheduling
- Local Scheduling
- User level thread์ ๊ฒฝ์ฐ, OS๊ฐ ์ค๋ ๋์ ์กด์ฌ๋ฅผ ๋ชจ๋ฅด๊ธฐ์, ์ฌ์ฉ์ ์์ค์ thread library์ ์ํด ์ด๋ค thread๋ฅผ ์ค์ผ์คํ ์ง ๊ฒฐ์ ํ๋ค. ์ฆ ํ๋ก์ธ์ค ๋ด๋ถ์์ ์ด๋ thread์ cpu๋ฅผ ์ค์ง ๊ฒฐ์ ํ๋ค.
- Global Scheduling
- Kernal level thread์ ๊ฒฝ์ฐ, OS๊ฐ ์ค๋ ๋์ ์กด์ฌ๋ฅผ ์๊ธฐ์, ์ผ๋ฐ ํ๋ก์ธ์ค์ ๋ง์ฐฌ๊ฐ์ง๋ก ์ปค๋์ ๋จ๊ธฐ ์ค์ผ์ค๋ฌ๊ฐ ์ด๋ค thread๋ฅผ ์ค์ผ์คํ ์ง ๊ฒฐ์ ํ๋ค. ์ฆ OS๊ฐ ์ง์ ๊ฒฐ์ ํ๋ค.
6. Algorithm Evaluation
Q. ์ด๋ค CPU ์ค์ผ์ค๋ง ์๊ณ ๋ฆฌ์ฆ์ด ์ข์๊ฑด์ง ์ด๋ป๊ฒ ์ธก์ ํ ๊น?
A. ์๋ 3๊ฐ์ ๋ฐฉ๋ฒ์ด ์์ด.
- Queueing models
- ํ๋ฅ ๋ถํฌ๋ก ์ฃผ์ด์ง๋ arrival rae์ service rate ๋ฑ์ ํตํด ๊ฐ์ข performance index ๊ฐ์ ๊ณ์ฐํ๋ ๋ฐฉ์์ด๋ค. 1960๋ ๋์ ์ฐ๋ ์ด๋ก ์ ๋ฐฉ๋ฒ์ด๋ค.
- Implementation(๊ตฌํ) & Measurement(์ฑ๋ฅ ์ธก์ )
- ์ค์ ์์คํ ์ ์๊ณ ๋ฆฌ์ฆ์ ๊ตฌํ! ํ์ฌ ์ค์ ์์ ์ ๋ํด์ ์ฑ๋ฅ์ ์ธก์ ํ์ฌ ๋น๊ตํ๋ ๋ฐฉ๋ฒ์ด๋ค. ๋๋ฌด ์ด๋ ค์ด ๋ฐฉ๋ฒ์ด๋ค.
- Simulation(๋ชจ์ ์คํ)
- ์๊ณ ๋ฆฌ์ฆ์ ๋ชจ์ ํ๋ก๊ทธ๋จ์ผ๋ก ์์ฑ ํ trace (input์ด ๋๋ ์์ ๋ค)๋ฅผ ์ ๋ ฅ์ผ๋ก ํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ๋น๊ตํด๋ณธ๋ค. ๊ทธ๋ฌ๋ฏ๋ก trace๊ฐ ์ ๋น์ฑ์ด ์์ด์ผ ํ๋ค.
'OS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
8์ฅ Memory Management (0) | 2021.06.19 |
---|---|
7์ฅ Deadlock (0) | 2021.06.19 |
6์ฅ Process Synchronization (0) | 2021.06.19 |
4์ฅ Process Management (0) | 2021.06.18 |
3์ฅ Process (0) | 2021.06.18 |
2์ฅ System Structure & Program Execution (0) | 2021.06.18 |