CPU ์Šค์ผ€์ฅด๋ง์— ๋Œ€ํ•ด ์•Œ์•„๋ณธ๋‹ค.

CPU๊ฐ€ ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค ์ž‘์—…์ด ๋๋‚˜๋ฉด ๋‹ค์Œ ํ”„๋กœ์„ธ์Šค ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•œ๋‹ค. ์ด๋•Œ ๋‹ค์Œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์–ด๋Š ํ”„๋กœ์„ธ์Šค์ธ์ง€๋ฅผ ์„ ํƒํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ CPU Scheduling ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ผ๊ณ  ํ•œ๋‹ค. ๊ฐ„๋‹จํžˆ ์ƒ๊ฐํ•ด๋ณด๋ฉด ๋จผ์ € ์˜จ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋จผ์ € ์‹คํ–‰๋˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ข‹์„ ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์—ฌ๋Ÿฌ ์ƒํ™ฉ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์ปดํ“จํ„ฐ ํ™˜๊ฒฝ์—์„œ ๊ผญ ์ด๋Ÿฌํ•œ ๋ฐฉ๋ฒ•์ด ์ข‹๋‹ค๊ณ  ํ•  ์ˆ˜ ์—†๋‹ค. (๋‹จ์ˆœํ•œ ํ™˜๊ฒฝ์—์„œ๋„ ์ด ๋ฐฉ๋ฒ•์ด ๋ฐ˜๋“œ์‹œ ๋น ๋ฅธ ๊ฒƒ๋„ ์•„๋‹ˆ๋‹ค.) ๊ทธ๋Ÿฌ๋ฏ€๋กœ CPU ์Šค์ผ€์ค„๋ง์—๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•œ๋‹ค.

1. ์Šค์ผ€์ฅด๋ง์˜ ์œ ํ˜•

์œ ํ˜•์œผ๋กœ๋Š” Preemptive ์™€ Non-preemptive๊ฐ€ ์žˆ๋‹ค.

1.1 Preemptive

Preemptive(์„ ์ )์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ CPU๋ฅผ ์ ์œ ํ•˜๊ณ  ์žˆ๋Š” ๋™์•ˆ I/O๋‚˜ ์ธํ„ฐ๋ŸฝํŠธ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒƒ๋„ ์•„๋‹ˆ๊ณ  ๋ชจ๋“  ์ž‘์—…์„ ๋๋‚ด์ง€๋„ ์•Š์•˜๋Š”๋ฐ, ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ•ด๋‹น CPU๋ฅผ ๊ฐ•์ œ๋กœ ์ ์œ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ˆ˜ํ–‰์ค‘์ธ ๊ฐ€์šด๋ฐ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ CPU๋ฅผ ๊ฐ•์ œ๋กœ ์ ์œ ํ•˜์—ฌ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. ๊ธ‰๋˜ฅ ์šฐ์„ ์ˆœ์œ„

1.2 Non-preemptive

Non-preemptive(๋น„์„ ์ )์€ ๋ง ๊ทธ๋Œ€๋กœ preemptive์™€ ๋ฐ˜๋Œ€์ด๋‹ค. ํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ํ•œ ๋ฒˆ CPU๋ฅผ ์ ์œ ํ–ˆ๋‹ค๋ฉด, I/O๋‚˜ ์ธํ„ฐ๋ŸฝํŠธ ๋ฐœ์ƒ ๋˜๋Š” ํ”„๋กœ์„ธ์Šค ์ข…๋ฃŒ๊ฐ€ ๋  ๋•Œ๊นŒ์ง€ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ CPU๋ฅผ ์ ์œ ํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ˆœ์„œ๋Œ€๋กœ ๋“ค์–ด๊ฐ€์ž

2. Scheduling criteria

Scheduling criteria(์ฒ™๋„)๋Š” ์Šค์ผ€์ค„๋ง์˜ ํšจ์œจ์„ ๋ถ„์„ํ•˜๋Š” ๊ธฐ์ค€๋“ค์ด๋‹ค.

  • CPU Utilization(์ด์šฉ๋ฅ , %)
    • CPU๊ฐ€ ์ˆ˜ํ–‰๋˜๋Š” ๋น„์œจ
  • Throughput(์ฒ˜๋ฆฌ์œจ, jobs/sec)
    • ๋‹จ์œ„์‹œ๊ฐ„๋‹น ์ฒ˜๋ฆฌํ•˜๋Š” ์ž‘์—…์˜ ์ˆ˜(์ฒ˜๋ฆฌ๋Ÿ‰)
  • Turnaround time(๋ฐ˜ํ™˜์‹œ๊ฐ„)
    • ํ”„๋กœ์„ธ์Šค์˜ ์ฒ˜์Œ ์‹œ์ž‘ ์‹œ๊ฐ„๋ถ€ํ„ฐ ๋ชจ๋“  ์ž‘์—…์„ ๋๋‚ด๊ณ  ์ข…๋ฃŒํ•˜๋Š”๋ฐ ๊ฑธ๋ฆฐ ์‹œ๊ฐ„์ด๋‹ค.(CPU, waiting, I/O ๋“ฑ ๋ชจ๋“  ์‹œ๊ฐ„์„ ํฌํ•จํ•œ๋‹ค.) ๋ฐ˜ํ™˜์‹œ๊ฐ„์€ ์งง์„ ์ˆ˜๋ก ์ข‹๋‹ค.
  • Waiting time(๋Œ€๊ธฐ์‹œ๊ฐ„)
    • CPU๋ฅผ ์ ์œ ํ•˜๊ธฐ ์œ„ํ•ด์„œ ready queue์—์„œ ๊ธฐ๋‹ค๋ฆฐ ์‹œ๊ฐ„์„ ๋งํ•œ๋‹ค.(๋‹ค๋ฅธ ํ์—์„œ ๋Œ€๊ธฐํ•œ ์‹œ๊ฐ„์€ ์ œ์™ธํ•œ๋‹ค.)
  • Response time(์‘๋‹ต์‹œ๊ฐ„)
    • ์ผ๋ฐ˜์ ์œผ๋กœ ๋Œ€ํ™”ํ˜• ์‹œ์Šคํ…œ์—์„œ ์ž…๋ ฅ์— ๋Œ€ํ•œ ๋ฐ˜์‘ ์‹œ๊ฐ„์„ ๋งํ•œ๋‹ค. ์‚ฌ์šฉ์ž์™€์˜ ์ƒํ˜ธ์ž‘์šฉ์„ ์ค‘์š”๋กœ ํ•˜๋Š” ํ”„๋กœ์„ธ์Šค์˜ ๊ฒฝ์šฐ์ด๋‹ค.

3. CPU Scheduling Algorithms

CPU์—์„œ ํ”„๋กœ์„ธ์Šค์˜ ์ˆœ์„œ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜์— ๋Œ€ํ•ด ์•Œ์•„๋ณธ๋‹ค.

3.1 First-Come, First-Served(FCFS)

FCFS๋Š” ๋จผ์ € ์˜จ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋จผ์ € CPU๋ฅผ ์ ์œ ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ์ด๋Š” ๋งค์šฐ ๋‹จ์ˆœํ•˜๊ณ  ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์ด์ง€๋งŒ, ๋ชจ๋“  ๋ถ€๋ถ„์—์„œ ํšจ์œจ์ ์ธ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค.

Gantt Chart

ProcessBurst Time(msec)
P124
P23
P33

์œ„์˜ ํ‘œ๋ฅผ ์•„๋ž˜์˜ ๊ทธ๋ฆผ์œผ๋กœ ๋‚˜ํƒ€๋‚ธ ๊ฒƒ์„ Gantt Chart๋ผ ํ•œ๋‹ค. P1, P2, P3 ์ˆœ์œผ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ๋„์ฐฉํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ–ˆ์„ ๋•Œ, P1, P2, P3์˜ ์ด ๋Œ€๊ธฐ์‹œ๊ฐ„์˜ ํ‰๊ท ์„ ๊ตฌํ•ด๋ณด์ž.

  • Average Waiting Time = ์ด๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ๋งŒ์•ฝ P3, P2, P1 ์ˆœ์œผ๋กœ ๋“ค์–ด์™”๋‹ค๊ณ  ์ƒ๊ฐํ•ด๋ณด์ž.

  • Average Waiting Time = ์ด๋‹ค.

๋‘ ์˜ˆ์ œ์—์„œ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋๋‚œ ์‹œ๊ฐ„์€ 30msec๋กœ ๊ฐ™์ง€๋งŒ, ํ‰๊ท  ๋Œ€๊ธฐ์‹œ๊ฐ„์œผ๋กœ ๋ดค์„ ๋•Œ๋Š” ์œ„์˜ ์˜ˆ์ œ๋Š” 17msec์ด๊ณ  ์•„๋ž˜๋Š” 3msec๋กœ ์ฐจ์ด๊ฐ€ ๋‚œ๋‹ค. ์ฆ‰, ๋“ค์–ด์˜จ ์ˆœ์„œ๋กœ ์ˆ˜ํ–‰ํ•œ๋‹ค๊ณ  ํ•ด๋„ ๋ฐ˜๋“œ์‹œ ํšจ์œจ์ ์ธ ๊ฒƒ์€ ์•„๋‹Œ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

์ด๊ฒƒ์€ ๊ณต์ค‘ํ™”์žฅ์‹ค์„ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋งจ๋‚  ๋”๋Ÿฝ๋ƒ 3๋ช…์˜ ์‚ฌ๋žŒ์œผ๋กœ ์น˜ํ™˜ํ•ด์„œ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค. ๋น ๋ฅธ ๋งบ๊ณ  ๋Š์Œ์ด ๊ฐ€๋Šฅํ•œ ์„ ์ˆ˜๊ฐ€ ๋จผ์ € ์ž…์žฅํ•˜๋Š” ๊ฒƒ์ด ๊ณต๊ณต์˜ ์ด์ต์„ ์ตœ๋Œ€ํ™” ํ•  ์ˆ˜ ์žˆ๋‹ค. ์‘?

์œ„ ์˜ˆ์ œ์ฒ˜๋Ÿผ P1, P2, P3 ์ˆœ์„œ๋กœ ๋“ค์–ด์™€ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฌ๋Š” ํ˜„์ƒ์„ Convoy Effect ๋ผ๊ณ  ํ•œ๋‹ค. ์ด๋Š” CPU ์‹œ๊ฐ„์„ ์˜ค๋ž˜ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋จผ์ € ์ˆ˜ํ–‰ํ•˜๋Š” ๋™์•ˆ ๋‚˜๋จธ์ง€ ํ”„๋กœ์„ธ์Šค๋“ค์€ ๊ทธ ๋งŒํผ ์˜ค๋ž˜ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค.

FCFS์˜ ํŠน์ง• ์ •๋ฆฌ

  1. Convoy Effect๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋‹ค.
  2. Non-preemptive ๋ฐฉ์‹์ด๋‹ค. ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋๋‚˜๊ธฐ ์ „์— ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ผ์–ด๋“ค ์ˆ˜ ์—†๋‹ค.

3.2 Shortest-Job-First(SJF)

SJF๋Š” ์ด๋ฆ„์—์„œ๋„ ๋‚˜ํƒ€๋‚˜๋“ฏ์ด ๊ฐ€์žฅ ์งง๊ฒŒ ์ˆ˜ํ–‰๋˜๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ฐ€์žฅ ๋จผ์ € ์ˆ˜ํ–‰๋˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. FCFS์—์„œ ๋ณด์•˜๋“ฏ์ด ์ˆ˜ํ–‰ ์‹œ๊ฐ„์ด ์งง์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋จผ์ € ์˜ค๋Š” ๊ฒƒ์ด ํ‰๊ท  ๋Œ€๊ธฐ์‹œ๊ฐ„์ด ์งง์€ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค. ์ด๋ฅผ ์ด์šฉํ•œ ๊ฒƒ์ด SJF์ด๋‹ค.

ProcessBurst Time(msec)
P16
P28
P37
P43

  • Average Waiting Time(AWT) = ์ด๋‹ค.

์œ„์˜ ์˜ˆ๋ฅผ FCFS๋กœ ๋‚˜ํƒ€๋ƒˆ์„ ๋•Œ ํ‰๊ท  ๋Œ€๊ธฐ์‹œ๊ฐ„์„ ๊ณ„์‚ฐํ•ด๋ณด์ž.

  • Average Waiting Time(AWT) = ์ด๋‹ค.

SJF์™€ FCFS์˜ ํ‰๊ท  ๋Œ€๊ธฐ์‹œ๊ฐ„์„ ์‚ดํŽด๋ณด๋ฉด ๋‹น์—ฐํžˆ SJF๊ฐ€ ๋” ์งง์€ ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. SJF๊ฐ€ ํ‰๊ท  ๋Œ€๊ธฐ์‹œ๊ฐ„ ๊ธฐ์ค€์œผ๋กœ ์–ด๋– ํ•œ ๋ฐฉ๋ฒ•๋ณด๋‹ค ์งง์€ ๊ฒƒ์€ ์ด๋ฏธ ์ˆ˜ํ•™์ ์œผ๋กœ ์ฆ๋ช…๋˜์–ด ์žˆ๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ ์–ด๋– ํ•œ ์˜ˆ์ œ๋ฅผ ๋ณด๋”๋ผ๋„ SJF๊ฐ€ AWT๋Š” ๊ฐ€์žฅ ์งง๋‹ค.

ํ•œ๊ณ„

์ด๋ฅผ ๋ณด๋ฉด SJF๊ฐ€ ๊ฐ€์žฅ ํšจ์œจ์ ์ธ CPU ์Šค์ผ€์ค„๋ง ๋ฐฉ๋ฒ•์œผ๋กœ ์ด๋ฅผ ์“ฐ๋ฉด ๋  ๊ฒƒ ๊ฐ™์ง€๋งŒ, ์‚ฌ์‹ค์€ ์ด ์Šค์ผ€์ค„๋ง ๋ฐฉ๋ฒ•์€ ๋งค์šฐ ๋น„ํ˜„์‹ค์ ์ด๋‹ค. ์™œ๋ƒํ•˜๋ฉด ํ˜„์‹ค์ ์ธ ์ปดํ“จํ„ฐ ํ™˜๊ฒฝ์—์„œ๋Š” ํ”„๋กœ์„ธ์Šค์˜ CPU ์ ์œ  ์‹œ๊ฐ„(burst time)์„ ์•Œ ์ˆ˜ ์—†๋‹ค. ์™œ๋ƒํ•˜๋ฉด ํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์‹คํ–‰ ์ค‘์—๋Š” ๋งŽ์€ ๋ณ€์ˆ˜๊ฐ€ ์กด์žฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— CPU ์ ์œ  ์‹œ๊ฐ„์„ ์•Œ๋ ค๋ฉด ์‹ค์ œ๋กœ ์ˆ˜ํ–‰ํ•˜์—ฌ ์ธก์ •ํ•˜๋Š” ์ˆ˜ ๋ฐ–์— ์—†๋‹ค. ์‹ค์ œ ์ธก์ •ํ•œ ์‹œ๊ฐ„์œผ๋กœ ์˜ˆ์ธกํ•ด์„œ SJF๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ์ง€๋งŒ, ์ด๋Š” ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ๋งค์šฐ ํฐ ์ž‘์—…์œผ๋กœ ์ž˜ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š”๋‹ค.

Preemptive & non-preemptive ๋ฐฉ์‹

ProcessArrival TimeBurst Time(msec)
P108
P214
P329
P436

non-preemptive

๊ฐ€์žฅ ๋จผ์ € ๋„์ฐฉํ•œ P1์ด ์ˆ˜ํ–‰๋˜๋Š” ๋™์•ˆ P2, P3, P4 ๋ชจ๋‘ ๋„์ฐฉํ•˜์ง€๋งŒ, non-preemptive์ด๋ฏ€๋กœ ์ด๋ฏธ ์ˆ˜ํ–‰์ค‘์ธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋๋‚  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ ค์•ผ ํ•œ๋‹ค. ์ผ๋‹จ ์‹œ์ž‘ํ•œ ๋†ˆ์€ ๊ทธ๋Œ€๋กœ ํ•˜๊ณ  ๋‚จ์€ ๋†ˆ๋“ค์— ๋Œ€ํ•ด์„œ ๋Œ€๊ธฐ์‹œ๊ฐ„์ด ์งง์€ ๊ฒƒ์— ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ฃผ์ž.

  • Average Waiting Time(AWT) = ์ด๋‹ค. โ€‹

Preemptive

์ด๋ฒˆ์—๋Š” p]Preemptive์ด๋ฏ€๋กœ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋„์ฐฉํ•  ๋•Œ๋งˆ๋‹ค, ์–ด๋Š ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ฐ€์žฅ ์งง์€ ๊ฒƒ์ธ์ง€ ์„ ํƒํ•ด์•ผ ํ•œ๋‹ค. ์ฃผ๋ชฉํ•  ์ ์€ P2 ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋„์ฐฉํ–ˆ์„ ๋•Œ, ํ˜„์žฌ ๋‚จ์€ burst time ์ค‘ ๊ฐ€์žฅ ์งง์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ P2์ด๋ฏ€๋กœ P1์„ ์ˆ˜ํ–‰ํ•˜๋˜ ๊ฒƒ์„ ๋ฉˆ์ถ”๊ณ  P2๊ฐ€ ์ˆ˜ํ–‰์„ ์‹œ์ž‘ํ•œ๋‹ค.

  • Average Waiting Time(AWT) = ์ด๋‹ค.

Preemptive SJF๋Š” ์˜ˆ์ œ์—์„œ ์‚ดํŽด๋ณด์•˜๋“ฏ์ด ํ˜„์žฌ ๋‚จ์•„์žˆ๋Š” ์‹œ๊ฐ„ ์ค‘ ๊ฐ€์žฅ ์งง์€ ํ”„๋กœ์„ธ์Šค๋ฅผ ์„ ํƒํ•˜๋ฏ€๋กœ Shortest-Remaining-Time-First(์ตœ์†Œ์ž”์—ฌ์‹œ๊ฐ„ ์šฐ์„ ) ์ด๋ผ ๋ถˆ๋ฆฌ๊ธฐ๋„ ํ•œ๋‹ค.

SJF์˜ ํŠน์ง• ์ •๋ฆฌ

  1. AWT๊ฐ€ ๊ฐ€์žฅ ์งง๋‹ค.
  2. ํ”„๋กœ์„ธ์Šค์˜ ์‹คํ–‰ ์‹œ๊ฐ„์„ ์•Œ ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋น„ํ˜„์‹ค์ ์ด๋‹ค. ์ด๋ฅผ ๊ฐ€๋Šฅ์ผ€ ํ•˜๊ธฐ ์‰ฌํ•ด์„œ๋Š” ์˜ˆ์ธก์ด ํ•„์š”ํ•˜๋‹ค.
  3. Preemptive & non-preemptive ๋‘˜๋‹ค ๊ฐ€๋Šฅํ•˜๋‹ค.
    • ์ด ์ค‘ Preemptive SJF๋Š” Shortest-Remaining-Time-First(์ตœ์†Œ์ž”์—ฌ์‹œ๊ฐ„ ์šฐ์„ )์ด๋ผ ๋ถˆ๋ฆฐ๋‹ค.

3.3 Priority

Priority ์Šค์ผ€์ค„๋ง์€ ๋ง๊ทธ๋Œ€๋กœ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋จผ์ € ์„ ํƒ๋˜๋Š” ์Šค์ผ€์ค„๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋‹ค. ์šด์˜์ฒด์ œ์—์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์šฐ์„ ์ˆœ์œ„๋Š” ์ •์ˆ˜๊ฐ’์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ์ž‘์€ ๊ฐ’์ด ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’๋‹ค.(Unix/Linux ๊ธฐ์ค€)๋ˆ ์ฃผ๋ฉฐ ํ™”์žฅ์‹ค ์•ž ์ค„์„ ์‚ฌ๋Š” ํ–‰์œ„

ProcessBurst Time(msec)Priority
P1103
P211
P324
P415
P552

ํ‘œ์—์„œ ์šฐ์„ ์ˆœ์œ„ ๊ฐ’์ด ๊ฐ€์žฅ ๋‚ฎ์€ ์ˆœ์„œ๋Œ€๋กœ ์ˆ˜ํ–‰ํ•œ ๋ชจ์Šต์„ ๊ฐ„ํŠธ ์ฐจํŠธ๋กœ ๋‚˜ํƒ€๋‚ด์—ˆ๋‹ค.

  • Average Waiting Time(AWT) = ์ด๋‹ค.

์šฐ์„  ์ˆœ์œ„๋ฅผ ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•

์šฐ์„ ์ˆœ์œ„๋ฅผ ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ํฌ๊ฒŒ ๋‚ด๋ถ€์ ์ธ ์š”์†Œ์™€ ์™ธ๋ถ€์ ์ธ ์š”์†Œ ๋‘ ๊ฐ€์ง€๋กœ ๋‚˜๋‰œ๋‹ค.

  • Internal
    • time limit, memory requirement, I/O to CPU burst(I/O์ž‘์—…์€ ๊ธธ๊ณ , CPU ์ž‘์—…์€ ์งง์€ ํ”„๋กœ์„ธ์Šค ์šฐ์„ ) ๋“ฑ
  • External
    • amount of funds being paid, political factors ๋“ฑ

Priority ์Šค์ผ€์ค„๋ง ์—ญ์‹œ preemprive ์™€ non-preemptive ๋‘ ๋ฐฉ์‹ ๋ชจ๋‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

ํ•œ๊ณ„

Priority ์Šค์ผ€์ค„๋ง์˜ ๋ฌธ์ œ์ ์€ **Starvation(๊ธฐ์•„)**์ด ์žˆ๋‹ค. ๋ชป ์‹ธ๋Š” ๋†ˆ์€ ํ‰์ƒ ๋ชป์‹ธ ใ… ใ…  Starvation์€ ๋ง ๊ทธ๋Œ€๋กœ CPU์˜ ์ ์œ ๋ฅผ ์˜ค๋žซ๋™์•ˆ ํ•˜์ง€ ๋ชปํ•˜๋Š” ํ˜„์ƒ์„ ๋งํ•œ๋‹ค. Priority ์Šค์ผ€์ค„๋ง ๋ฐฉ์‹์—์„œ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋งค์šฐ ๋‚ฎ์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ready queue์—์„œ ๋Œ€๊ธฐํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. ์ด ํ”„๋กœ์„ธ์Šค๋Š” ์•„๋ฌด๋ฆฌ ์˜ค๋ž˜ ๊ธฐ๋‹ค๋ ค๋„ CPU๋ฅผ ์ ์œ ํ•˜์ง€ ๋ชปํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋งค์šฐ ํฌ๋‹ค. ์‹ค์ œ ์ปดํ“จํ„ฐ ํ™˜๊ฒฝ์—์„œ๋Š” ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž์ฃผ ready queue์— ๋“ค์–ด์˜จ๋‹ค. ์ด๋Ÿฌํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋ชจ๋‘ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ์ƒํƒœ๋ผ๋ฉด ์ด๋ฏธ ๊ธฐ๋‹ค๋ฆฌ๊ณ  ์žˆ๋˜ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋‚ฎ์€ ํ”„๋กœ์„ธ์Šค๋Š” ํ•˜์—ผ์—†์ด ๊ธฐ๋‹ค๋ฆฌ๊ณ ๋งŒ ์žˆ๋Š” ์ƒํƒœ๋กœ ๋‚จ์•„์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.

ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

์ด๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋Š” aging์ด ์žˆ๋‹ค. ์ด ๋ฐฉ์‹์€ ready queue์—์„œ ๊ธฐ๋‹ค๋ฆฌ๋Š” ๋™์•ˆ ์ผ์ • ์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ผ์ •๋Ÿ‰ ๋†’์—ฌ์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. ๋ณต์ง€ ๊ทธ๋Ÿฌ๋ฉด ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋งค์šฐ ๋‚ฎ์€ ํ”„๋กœ์„ธ์Šค๋ผ ํ•˜๋”๋ผ๋„, ๊ธฐ๋‹ค๋ฆฌ๋Š” ์‹œ๊ฐ„์ด ๊ธธ์–ด์งˆ์ˆ˜๋ก ์šฐ์„ ์ˆœ์œ„๋„ ๊ณ„์† ๋†’์•„์ง€๋ฏ€๋กœ ์ˆ˜ํ–‰๋  ๊ฐ€๋Šฅ์„ฑ์ด ์ปค์ง„๋‹ค.

Priority์˜ ํŠน์ง• ์ •๋ฆฌ

  1. ์šฐ์„  ์ˆœ์œ„๊ฐ€ ๋†’์€ ๋…€์„ ๋ถ€ํ„ฐ ์ฒ˜๋ฆฌ
  2. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ํ‰์ƒ ์ฒ˜๋ฆฌ ๋ชป๋ฐ›๋Š” ๋…€์„์ด ์ƒ๊ธด๋‹ค. (Starvation)
  3. ์ด๋ฅผ ๋ฐฉ์ง€ ํ•˜๊ธฐ ์œ„ํ•ด Ready ์ƒํƒœ์—์„œ ์ผ์ •์‹œ๊ฐ„์ด ์ง€๋‚˜๋ฉด ์šฐ์„  ์ˆœ์œ„๋ฅผ ๋†’์—ฌ์ค€๋‹ค. (aging)

3.4 Round-Robin(RR)

Round-Robin์€ ์› ๋ชจ์–‘์œผ๋กœ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋Œ์•„๊ฐ€๋ฉฐ ์Šค์ผ€์ค„๋งํ•˜๋Š” ๊ฒƒ์„ ๋งํ•œ๋‹ค. ์ด๋Š” ์‹œ๋ถ„ํ•  ์‹œ์Šคํ…œ์—์„œ ์ฃผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ์ผ์ • ์‹œ๊ฐ„์„ ์ •ํ•˜์—ฌ ํ•˜๋‚˜์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ด ์‹œ๊ฐ„๋™์•ˆ ์ˆ˜ํ–‰ํ•˜๊ณ  ๋‹ค์‹œ ๋Œ€๊ธฐ ์ƒํƒœ๋กœ ๋Œ์•„๊ฐ„๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹ค์Œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์—ญ์‹œ ๊ฐ™์€ ์‹œ๊ฐ„๋™์•ˆ ์ˆ˜ํ–‰ํ•œ ํ›„ ๋Œ€๊ธฐํ•œ๋‹ค. ์ด๋Ÿฌํ•œ ์ž‘์—…์„ ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋Œ์•„๊ฐ€๋ฉด์„œ ํ•˜๋ฉฐ, ๋งˆ์ง€๋ง‰ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋๋‚˜๋ฉด ๋‹ค์‹œ ์ฒ˜์Œ ํ”„๋กœ์„ธ์Šค๋กœ ๋Œ์•„์™€์„œ ๋ฐ˜๋ณตํ•œ๋‹ค.

์œ„์—์„œ ๋งํ•œ ์ผ์ • ์‹œ๊ฐ„์„ Time Quantum(Time Slice)์ด๋ผ ๋ถ€๋ฅธ๋‹ค. Time Quantum์€ ์ผ๋ฐ˜์ ์œผ๋กœ 10 ~ 100msec ์‚ฌ์ด์˜ ๋ฒ”์œ„๋ฅผ ๊ฐ–๋Š”๋‹ค. Round-Robin์€ ๊ธฐ๋ณธ์ ์œผ๋กœ preemptive ์ด๋‹ค. ํ•œ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋˜๊ธฐ ์ „์— time quantum์ด ๋๋‚˜๋ฉด ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋กœ CPU๋ฅผ ๋„˜๊ฒจ์ฃผ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

ProcessBurst Time(msec)
P124
P23
P33

time Quantum = 4msec{:.center-text}

Round-Robin ๋ฐฉ์‹์—์„œ๋Š” time quantum์ด ๋๋‚˜๋ฉด CPU๋Š” ํ˜„์žฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋Œ€๊ธฐ์ƒํƒœ๋กœ ๋ณด๋‚ด๊ณ  ๋‹ค์Œ ํ”„๋กœ์„ธ์Šค๋ฅผ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์˜ˆ์ œ์—์„œ P1์ด 0msec์— ์ˆ˜ํ–‰์„ ์‹œ์ž‘ํ•˜์—ฌ ์ข…๋ฃŒ๋˜๊ธฐ ์ „์— time quantum ์‹œ๊ฐ„์ด ๋๋‚˜์—ฌ P2๊ฐ€ ์ˆ˜ํ–‰๋˜๋Š” ๋ชจ์Šต์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  P2, P3๋Š” time quantum์ด ๋๋‚˜๊ธฐ์ „์— ์ˆ˜ํ–‰์ด ๋๋‚ฌ๊ณ , ๋งˆ์ง€๋ง‰ ๋‚จ์€ P1์€ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์—†์œผ๋ฏ€๋กœ time quantum์ด ๋๋‚˜๋”๋ผ๋„ ์ข…๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๊ณ„์†ํ•ด์„œ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ชจ์Šต์ด๋‹ค.

  • Average Waiting Time(AWT) = ์ด๋‹ค.

ํ•œ๊ณ„

RR๋ฐฉ์‹์€ time quantum ํฌ๊ธฐ์— ๋”ฐ๋ผ AWT์™€ ๊ฐ™์€ ์Šค์ผ€์ค„๋ง ์ฒ™๋„๊ฐ€ ๋ฐ”๋€๋‹ค. ๊ทธ๋Ÿฌ๋ฏ€๋กœ RR ๋ฐฉ์‹์€ time quantum์— ๋งค์šฐ ์˜์กด์ ์ธ ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค.

๋งŒ์•ฝ time quantum ํฌ๊ธฐ๊ฐ€ ๋ฌดํ•œ์— ๊ฐ€๊น๊ฒŒ ์„ค์ •ํ•œ๋‹ค๋ฉด FCFS์™€ ๋™์ผํ•˜๊ฒŒ ๋™์ž‘ํ•œ๋‹ค. ๋ฐ˜๋Œ€๋กœ time quantum ํฌ๊ธฐ๋ฅผ 0์— ๊ฐ€๊น๊ฒŒ ์„ค์ •ํ•˜๋ฉด switching overhead๊ฐ€ ๋งค์šฐ ์ฆ๊ฐ€ํ•˜์—ฌ ๋น„ํšจ์œจ์ ์ด๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ time quantum ์€ ์ ๋‹นํ•œ ํฌ๊ธฐ๋กœ ์„ค์ •ํ•ด์ฃผ์–ด์•ผ ํ•˜๋Š”๋ฐ, ์ผ๋ฐ˜์ ์œผ๋กœ ์œ„์—์„œ ๋งํ–ˆ๋“ฏ์ด 10 ~ 100msec ์œผ๋กœ ์ •ํ•œ๋‹ค.

RR์˜ ํŠน์ง• ์ •๋ฆฌ

  1. ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค์— ์ผ์ •ํ•œ ์‹œ๊ฐ„(time quantum)์„ ์ฃผ์–ด์„œ ๊ด€๋ฆฌํ•œ๋‹ค.
  2. ๋”ฐ๋ผ์„œ time quantum์— ๋งค์šฐ ์˜์กด์ ์ด๋‹ค. ์ ๋‹นํ•œ ๊ฐ’(10 ~ 100msec)์ด ์ค‘์š”ํ•˜๋‹ค.
    • ~ FCFS
    • ~ switching overhead๊ฐ€ ๋งค์šฐ ์ฆ๊ฐ€

3.5 Multilevel Queue

Multilevel Queue๋ฅผ ์‚ดํŽด๋ณด๊ธฐ ์ „์— ํ”„๋กœ์„ธ์Šค ๊ทธ๋ฃน์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด์ž. ํ”„๋กœ์„ธ์Šค๋Š” ๊ธฐ์ค€์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

  • System processes
    • ์šด์˜์ฒด์ œ ์ปค๋„ ์ˆ˜์ค€์˜ ํ”„๋กœ์„ธ์Šค
  • Interactive processes
    • ์œ ์ € ์ˆ˜์ค€์˜ ๋Œ€ํ™”ํ˜• ํ”„๋กœ์„ธ์Šค (๊ฒŒ์ž„)
  • Interactive editing processes
    • Word Processor
  • Batch processes
    • ๋Œ€ํ™”ํ˜• ํ”„๋กœ์„ธ์Šค์˜ ๋ฐ˜๋Œ€์ธ ๊ฒƒ์œผ๋กœ ์ผ์ •๋Ÿ‰์„ ํ•œ ๋ฒˆ์— ์ฒ˜๋ฆฌํ•˜๋Š” ํ”„๋กœ์„ธ์Šค(Ex, ์ปดํŒŒ์ผ๋Ÿฌ)
  • Student processes

์œ„์™€ ๊ฐ™์ด ์—ฌ๋Ÿฌ ์„ฑ๊ฒฉ์— ๋”ฐ๋ผ ํ”„๋กœ์„ธ์Šค ๊ทธ๋ฃน์„ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด๋ฅผ ํ•˜๋‚˜์˜ ํ์— ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋น„ํšจ์œจ์ ์ด๋ผ๊ณ  ํŒ๋‹จํ•˜์˜€๋‹ค. ๊ทธ๋ž˜์„œ ๊ฐ ๊ทธ๋ฃน์— ๋”ฐ๋ผ ํ๋ฅผ ๋‘์–ด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด Muitilevel Queue ๋ฐฉ์‹์ด๋‹ค.

์œ„ ๊ทธ๋ฆผ์€ ๊ฐ ๊ทธ๋ฃน์— ๋”ฐ๋ผ ํ๋ฅผ ๋‚˜๋ˆˆ ๊ฒƒ์ด๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ ํ๋งˆ๋‹ค ๋‹ค๋ฅธ ๊ทœ์น™์„ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

๋จผ์ €, ํ๋งˆ๋‹ค ์šฐ์„ ์ˆœ์œ„๋ฅผ ์ง€์ •ํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค. ํ”„๋กœ์„ธ์Šค ๊ทธ๋ฃน์„ ๋ณด๋ฉด System process๋Š” ์ปค๋„ ์ˆ˜์ค€์—์„œ ์ค‘์š”ํ•œ ์ž‘์—…์ด๋ฏ€๋กœ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ๊ทธ๋ฃน์ด๋ผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์œ„ ๊ทธ๋ฆผ์—์„œ System process, Interactive process, Batch process ์ˆœ์œผ๋กœ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ์ˆœ์„œ์ด๋‹ค. Batch ํ”„๋กœ์„ธ์Šค๋Š” ์šด์˜์ฒด์ œ์˜ ๊ฐœ์ž…์ด ๋งค์šฐ ์ ์œผ๋ฏ€๋กœ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๊ฐ€์žฅ ๋‚ฎ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.

์œ„์˜ ๋ฐฉ์‹ ์ด์™ธ์—๋„ ํ์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ๊ธฐ์ค€์„ ๋‘˜ ์ˆ˜ ์žˆ๋‹ค. ํ๋งˆ๋‹ค CPU ์‹œ๊ฐ„์„ ๋‹ค๋ฅด๊ฒŒ ์ค„ ์ˆ˜๋„ ์žˆ๊ณ , ํ๋งˆ๋‹ค ๋‹ค๋ฅธ ์Šค์ผ€์ค„๋ง ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

Multilevel Queue์˜ ํŠน์ง•

  1. ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ทธ๋ฃน์œผ๋กœ ๋‚˜๋ˆˆ๋‹ค.
  2. ๊ฐ๊ฐ์˜ Queue์— ์ ˆ๋Œ€์  ์šฐ์„  ์ˆœ์œ„๊ฐ€ ์กด์žฌํ•œ๋‹ค.
  3. CPU time์„ Queue์— ์ฐจ๋“ฑ ๋ฐฐ๋ถ„ํ•œ๋‹ค.
  4. ๊ฐ Queue๋Š” ๋…๋ฆฝ๋œ scheduling ์ •์ฑ…์„ ๊ฐ–๋Š”๋‹ค.

3.6 Multilevel Feedback Queue

Multilevel Feedback Queue๋„ Multilevel Queue์™€ ๊ฐ™์ด ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์ ์—์„œ ์œ ์‚ฌํ•˜๋‹ค.

์œ„ ๊ทธ๋ฆผ์„ ๋ณด๋ฉด ๋จผ์ € ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋Š” ๊ฐ€์žฅ ์œ„์˜ ํ์—์„œ CPU์˜ ์ ์œ ๋ฅผ ๋Œ€๊ธฐํ•œ๋‹ค. ์ด ์ƒํƒœ๋กœ ์ง„ํ–‰ํ•˜๋‹ค๊ฐ€ ์ด ํ์—์„œ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์‹œ๊ฐ„์ด ๋„ˆ๋ฌด ์˜ค๋ž˜ ๊ฑธ๋ฆฐ๋‹ค๋ฉด ์•„๋ž˜์˜ ํ๋กœ ํ”„๋กœ์„ธ์Šค๋ฅผ ์˜ฎ๊ธด๋‹ค. ์ด์™€ ๊ฐ™์€ ๋ฐฉ์‹์œผ๋กœ ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  Multilevel Feedback Queue์—์„œ๋„ ๊ฐ ํ๋งˆ๋‹ค ๋‹ค๋ฅธ ์Šค์ผ€์ค„๋ง, ๋‹ค๋ฅธ ์šฐ์„ ์ˆœ์œ„ ๋“ฑ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

๋งŒ์•ฝ ์šฐ์„ ์ˆœ์œ„์ˆœ์œผ๋กœ ํ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ƒํ™ฉ์—์„œ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋‚ฎ์€ ์•„๋ž˜์˜ ํ์— ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค์—์„œ starvation ์ƒํƒœ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ์ด๋ฅผ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋†’์€ ์œ„์˜ ํ๋กœ ์˜ฎ๊ธธ ์ˆ˜๋„ ์žˆ๋‹ค.

๋Œ€๋ถ€๋ถ„์˜ ์ƒ์šฉ ์šด์˜์ฒด์ œ๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ฐ ํ๋งˆ๋‹ค ๋‹ค๋ฅธ ์Šค์ผ€์ค„๋ง ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•œ๋‹ค. ํ”„๋กœ์„ธ์Šค์˜ ์„ฑ๊ฒฉ์— ๋งž๋Š” ์Šค์ผ€์ค„๋ง ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ์ตœ๋Œ€ํ•œ ํšจ์œจ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์„ ์„ ํƒํ•œ๋‹ค.

Multilevel Feedback Queue์˜ ํŠน์ง•

  1. ์—ฌ๋Ÿฌ๊ฐœ์˜ Queue๋ฅผ ๊ฐ€์ง„๋‹ค.
  2. ๋‹ค๋ฅธ Queue๋กœ ์ ์ง„์  ์ด๋™ํ•œ๋‹ค.
    • ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค๋Š” ๊ฐ์ž์˜ ํ•˜๋‚˜์˜ Queue๋กœ ์ง„์ž…ํ•œ๋‹ค.
    • ๋„ˆ๋ฌด ๋งŽ์€ CPU time ์‚ฌ์šฉ์‹œ ๋‹ค๋ฅธ Queue๋กœ ์ด๋™ํ•œ๋‹ค.
    • ๊ธฐ์•„ ์ƒํƒœ ์šฐ๋ ค์‹œ ์šฐ์„  ์ˆœ์œ„ ๋†’์€ Queue๋กœ ์ด๋™ํ•œ๋‹ค.

Reference