๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
โญ Group_Study/Operating System

[2์ฃผ์ฐจ] Scheduling Algorithms

by ํฌ์ŠคํŠธ์‰์ดํฌ 2022. 12. 14.

์Šค์ผ€์ค„๋ง ์•Œ๊ณ ๋ฆฌ์ฆ˜

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) ๊ธฐ๋ฒ•

๋Œ“๊ธ€