ํฌ๊ฒ ๋๊ฐ์ง๋ก ๋๋ ์ ์๋ค.
1) ์์คํ
์
์ฅ
-> CPU utilization, Throughput
2) ํ๋ก๊ทธ๋จ ์ ์ฅ
Utilization : CPU๊ฐ ๋์ง ์๊ณ ์ผํ ์๊ฐ์ ๋น์จ์ ๋ํ๋
-> ๊ฐ๋ฅํ ๋ฐ์๊ฒ ์ผ์์ผ๋ผ
Throughput : ์ฃผ์ด์ง ์๊ฐ๋์์ ๋ช๊ฐ์ ์์ ์ ์๋ฃํ๋๋
Turnaround time : ํ๋ก์ธ์ค๊ฐ ์์ํด์ ๋๋ ๋๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ (CPU burst + waiting : ์คํ์๊ฐ + ๋๊ธฐ์๊ฐ)
Waiting Time : ํ๋ก์ธ์ค๊ฐ ์ค๋น ํ(Ready Queue)์์ ๋๊ธฐํ ์๊ฐ์ ์ดํฉ
Response Time : ๋ ๋ํ์ ๋ค์ด์์ ์ฒ์์ผ๋ก CPU๋ฅผ ์ป๊ธฐ๊น์ง ๊ฑธ๋ฆฌ๋ ์๊ฐ
Ready Queue์ ๋ค์ด์จ ํ๋ก์ธ์ค๋ฅผ ๋์์ผ๋ก ๊ด์ฌ์๋ ๊ฒ๋ค์ด๋ค.
-> ready queue์ ๋ค์ด์จ ํ๋ก์ธ์ค์ Throughput์ด ์ด๋๋์ง utilization ์ด๋๋์ง๋ฅผ ๊ณ ๋ คํ์ฌ ์ค์ผ์ฅด๋ง์ ํ๋ค!!
CPU๊ฐ ์กฐ๊ธ ํ์ํ ์น๊ตฌํํ ๋จผ์ ์ ์ด๊ถ์ ์ฃผ์!
Nonpreemptive๋ฐฉ์ : ์์ ๋ณด๋ค ๋นจ๋ฆฌ ๋๋ผ ์ ์๋ ํ๋ก์ธ์ค๊ฐ ์ค๋๋ผ๋ CPU birst ๋ณด์ฅ
preemptive : CPU๋ฅผ ์คฌ๋ค๊ณ ํ๋๋ผ๊ณ ๋ ์งง์ ํ๋ก์ธ์ค๊ฐ ๋์ฐฉํ๋ฉด CPU์ ์ด๊ถ์ ๋๊ฒจ์ค
์ด์ ์ CPU๋ฅผ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋จ์ ์๊ฐ์ ๋น๊ตํด์ CPU์ ์ด๊ถ์ ๋๊ฒจ์ค์ง ๋ง์ง ๊ฒฐ์ (Shortest-Remaining-Time-First๋ผ๊ณ ๋ถ๋ฅธ๋ค.)
SJF is optimal -> preemptive ์ค์ผ์ค๋ฌ์ผ ๋ ์ต์ ๋ณด์ฅ
-> ์ด์ ๊ฐ์ ์์ ์์ ์ด๋ค ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋๋ผ๋ 3์ด ๋ฏธ๋ง์ด ๋ ์ ์๋ค (์ต์์ด๋ค)
๋ง์ง๋ง : ๋ค ์ ์ ๊ฐ์ค์น ๊ฐ์ ๊ฐ์ง๋ค.
์ฐ์ ์์๊ฐ ์ ์ผ ๋์ ํ๋ก์ธ์ค์๊ฒ CPU๋ฅผ ์ฃผ๊ฒ ๋ค
Preemptive : ์ฐ์ ์์๊ฐ ๋ ๋์ ํ๋ก์ธ์ค๊ฐ ๋์ฐฉํ๋ฉด ์๋ ํ๋ก์ธ์ค์์ CPU์ ์ด๊ถ์ ๋นผ์๊ณ ์ฐ์ ์์๊ฐ ๋ ๋์ ํ๋ก์ธ์ค์๊ฒ CPU์ ์ด๊ถ์ ๋๊ฒจ์ค๋ค.
Nonpreemptive : ๋ ๋์ ์ฐ์ ์์๊ฐ ๋์ฐฉํ๋๋ผ๋ CPU์ ์ด๊ถ์ ๊ฐ์ง๊ณ ์๋ ํ๋ก์ธ์ค๊ฐ ๊ณ์ CPU์ ์ด๊ถ์ ๊ฐ๊ณ ์๋๋ค.
์์ ์ ์์ผ์๋ก ๋์ ์ฐ์ ์์๋ฅผ ๊ฐ๋๋ค.
์์ํ CPU๋ฅผ ์ป์ง ๋ชปํ๋ ๊ฒฝ์ฐ๊ฐ ์กด์ฌ ํ ์ ์๋ค.
Solution : ์ฐ์ ์์๊ฐ ๋ฎ๋๋ผ๋ ์ค๋ ๊ธฐ๋ค๋ ธ๋ค๋ฉด ์ฐ์ ์์๋ฅผ ๋์ฌ์ฃผ์.
-> Aging
์๋ต์๊ฐ์ด ๋นจ๋ผ์ง๋ค๋ ์ฅ์ !
-> q์ ๋๊ธฐ์๊ฐ์ ์ค์ด๋ฉด ๋นจ๋ฆฌ CPU์ ์ด๊ถ์ ์ป์ ์ ์๊ณ CPU๋ฅผ ํ์๋ก ํ๋ ์๊ฐ์ด ์ ๋ค๋ฉด ๋นจ๋ฆฌ ์ข
๋ฃ ๋ ์ ์๋ค.
-> q์ ๊ธธ์ด๊ฐ ์งง์์ง
๊ทน๋จ์ ์ธ ์ํฉ : ๋๊ธฐ์๊ฐ์ ์์ฃผ ํฌ๊ฒ ์ก๋๋ค๋ฉด
-> FCFS
๋๋ฌด ์๊ฒ ์ก๋๋ค๋ฉด context swich์ค๋ฒํค๋๊ฐ ์ปค์ง๋ค.
RR์ ํ๋ก์ธ์ค์ ์ข
๋ฃ์๊ฐ์ ๋ชจ๋ฅผ ๋ ์ฌ์ฉํ๊ธฐ ์ข๋ค.
-> ๊ธธ๊ณ ์งง์๊ฒ ์์ฌ์์ ๋ ์ ๋ฆฌ
Response Time์ด ๋นจ๋ผ์ง๋ค๋ ๊ฒ์ด ์ฅ์ ์ด๋ค.
[์ถ์ฒ] ๋ฐํจ๊ฒฝ ๊ต์๋ ๊ฐ์