ํฌ์ŠคํŠธ

๐ŸŒ‘ CPU Scheduling

  • ๋‹จ๊ณ„๋ณ„ ์ฒ˜๋ฆฌ ์Šค์ผ€์ค„๋ง
    • ์žฅ๊ธฐ ์Šค์ผ€์ค„๋ง Long-Term Scheduling
      • ์–ด๋Š ํ”„๋กœ๊ทธ๋žจ์„ ๋จผ์ € ์ ์žฌํ•  ๊ฒƒ์ธ๊ฐ€ ํ•˜๋Š” ์ˆ˜์ค€์˜ ์Šค์ผ€์ค„๋ง
      • ์žก ์Šค์ผ€์ค„๋ง์ด๋ผ๊ณ ๋„ ํ•จ
    • ์ค‘๊ธฐ ์Šค์ผ€์ค„๋ง Medium-Term Scheduling
      • ๋ฉ”๋ชจ๋ฆฌ์— ์ ์žฌ๋œ ํ”„๋กœ๊ทธ๋žจ๋“ค ์ค‘, ์ƒ๋‹น๊ธฐ๊ฐ„ ๋™์•ˆ ์ฒ˜๋ฆฌ๋ฅผ ๋ณด๋ฅ˜ํ•˜์—ฌ ์ž์›์„ ํ™•๋ณดํ•˜๋Š” ์ฐจ์›์˜ ์Šค์ผ€์ค„๋ง
      • ๋Œ€์ƒ์ด ๋œ ํ”„๋กœ์„ธ์Šค๋“ค์€ ์ž ์‹œ ๋””์Šคํฌ๋กœ ์ด๋™ํ•˜์—ฌ ๊ธฐ๋‹ค๋ฆผ (์Šค์™€ํ•‘)
    • ๋‹จ๊ธฐ ์Šค์ผ€์ค„๋ง Short-Term Scheduling
      • ์‹คํ–‰ ์ค€๋น„๊ฐ€ ๋œ ํ”„๋กœ์„ธ์Šค๋“ค ์ค‘, ์–ด๋Š ํ”„๋กœ์„ธ์Šค์—๊ฒŒ CPU๋ฅผ ๋ณด๋‚ผ ๊ฒƒ์ธ๊ฐ€ ํ•˜๋Š” ์ˆ˜์ค€์˜ ์Šค์ผ€์ค„๋ง
      • ๋ณดํ†ต CPU ์Šค์ผ€์ค„๋ง์ด๋ผ ํ•จ์€ ์ด ์ˆ˜์ค€์„ ๋งํ•จ (์ดํ›„ ํ†ต์ผ)

@0411

  • CPU ์Šค์ผ€์ค„๋ง ์ „๋žต์˜ ๋ชฉํ‘œ ๋ฐ ๊ธฐ์ค€

  • ์‚ฌ์šฉ์ž ๊ด€์ ์—์„œ์˜ ๊ธฐ์ค€ (ํ‰๊ฐ€ ๊ธฐ์ค€)
    • ์‘๋‹ต ์‹œ๊ฐ„ Response Time
      • ์‚ฌ์šฉ์ž ์ž…๋ ฅ์— ๋Œ€ํ•˜์—ฌ ์ถœ๋ ฅ์ด ์ด๋ฃจ์–ด์งˆ ๋•Œ๊นŒ์ง€ ์†Œ์š”๋˜๋Š” ์‹œ๊ฐ„
      • ๋™์ผํ•œ ์กฐ๊ฑด์—์„œ CPU ์Šค์ผ€์ค„๋ง ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ๋‹ฌ๋ผ์งˆ ๊ฒƒ์ž„
    • ๋ฐ˜ํ™˜์‹œ๊ฐ„ Turnaround Time
      • ํ”„๋กœ๊ทธ๋žจ์ด ์ œ์ถœ(ํ˜น์€ ์ ์žฌ)๋œ ํ›„ ์ตœ์ข… ๊ฒฐ๊ณผ๋ฌผ์„ ์–ป์„ ๋•Œ๊นŒ์ง€์˜ ์†Œ์š”์‹œ๊ฐ„
      • ์ด ์ฒ˜๋ฆฌ์‹œ๊ฐ„์ด๋ผ๊ณ ๋„ ํ•จ
    • ๋Œ€๊ธฐ ์‹œ๊ฐ„ Waiting Time
      • CPU๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ๋Š” ์‹œ๊ฐ„๋“ค์˜ ํ•ฉ
      • CPU๋Š” ์ž์ฃผ ์กฐ๊ธˆ์”ฉ ์ฃผ์–ด์ง
    • ์ง€ํ‘œ ๋ถ„์„
      • ์‚ฌ์šฉ์ž๋“ค์€ ์„ธ ๊ฐ€์ง€ ์ง€ํ‘œ๊ฐ€ ๋ชจ๋‘ ์งง์•„์ง€๊ธฐ๋ฅผ ํฌ๋ง
  • ์‹œ์Šคํ…œ ๊ด€์ ์—์„œ์˜ ๊ธฐ์ค€
    • CPU ์ด์šฉ๋ฅ  CPU Utilization
      • CPU๊ฐ€ ์ˆœ์ˆ˜ํ•˜๊ฒŒ ์‚ฌ์šฉ์ž ํ”„๋กœ๊ทธ๋žจ์„ ์‹คํ–‰ํ•˜๋Š”๋ฐ ์†Œ์š”ํ•œ ์‹œ๊ฐ„์˜ ๋น„์œจ
      • ์‰ฌ๋Š” ์‹œ๊ฐ„์ด๋‚˜ ์‹œ์Šคํ…œ ์ž์ฒด์˜ ๋‚ด๋ถ€ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด ๋ณด๋‚ธ ์‹œ๊ฐ„์ด ๋งŽ์œผ๋ฉด ์ข‹์ง€ ์•Š์Œ
      • @ ๋ฌธ๋งฅ ๊ต์ฒด ๋“ฑ
    • ์ฒ˜๋ฆฌ๋Ÿ‰ Throughput
      • ์ „์ฒด์ ์œผ๋กœ ๋‹จ์œ„ ์‹œ๊ฐ„๋‹น ์ฒ˜๋ฆฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์ˆ˜
    • ์ง€ํ‘œ ๋ถ„์„
      • ์‹œ์Šคํ…œ (์ปดํ“จํ„ฐ ์šด์˜์ž) ์ž…์žฅ์—์„œ๋Š” ๋‘ ์ง€ํ‘œ ๋ชจ๋‘ ๋†’์ด๊ธฐ๋ฅผ ํฌ๋ง
  • @ ~ ์‚ฌ์šฉ์ž ๊ด€์ ๊ณผ ์‹œ์Šคํ…œ ๊ณผ์ ์˜ ๋‘ ์ž…์žฅ์ด ์ƒ์ถฉ๋จ
  • ๋‘˜ ๋‹ค ์žก์„ ์ˆ˜ ์—†์Œ = ํ•˜๋‚˜๋Š” ์กฐ๊ธˆ ํฌ์ƒํ•ด์•ผ ํ•œ๋‹ค

  • ๊ธฐํƒ€
    • ๊ฐ€์šฉ์„ฑ Availability
      • ์ „์ฒด ์‹œ๊ฐ„ (์„œ๋น„์Šค, ๊ณ ์žฅ, ์œ ์ง€๋ณด์ˆ˜, ์ ๊ฒ€ ๋“ฑ) ๋Œ€๋น„ ์„œ๋น„์Šค ์‹œ๊ฐ„์˜ ๋น„์œจ (์‹ ๋ขฐ์„ฑ, ๊ฐ€๋™์œจ)
      • ํŠน์ • ์ž์›์— ๋Œ€ํ•˜์—ฌ ์ฆ‰์‹œ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์ •๋„ (์ฆ‰์‹œ ์ ‘๊ทผ ๊ฐ€๋Šฅ ๋นˆ๋„ ๋น„์œจ)
  • CPU ์Šค์ผ€์ค„๋ง์ด ์ด๋ฃจ์–ด์ง€๋Š” ์‹œ๊ธฐ

  • ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž…์ถœ๋ ฅ์„ ์š”๊ตฌํ•  ๋•Œ
    • ์ง„ํ–‰ ์ค‘์ด๋˜ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž…์ถœ๋ ฅ์„ ์š”๊ตฌํ•˜๋ฉด, OS๋Š” ์ž…์ถœ๋ ฅ ์ง„ํ–‰์ค‘์ธ ๋™์•ˆ ๋งˆ๋ƒฅ ๊ธฐ๋‹ค๋ฆด ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์„ ํƒํ•ด์„œ CPU๋ฅผ ๋ณด๋‚ด์•ผํ•œ๋‹ค.โ† ๋น„์„ ์  CPU ์Šค์ผ€์ค„๋ง
  • ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ข…๋ฃŒ๋ฅผ ์š”๊ตฌํ•  ๋•Œ
    • ํ”„๋กœ๊ทธ๋žจ์˜ ์ง„ํ–‰ ์ ˆ์ฐจ์ƒ ๋ชจ๋“  ์ฒ˜๋ฆฌ๊ฐ€ ๋๋‚˜ ์ข…๋ฃŒ๋ฅผ ์„ ์–ธํ•˜๋ฉด, OS๋Š” ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค๋ฅผ ์„ ํƒํ•˜์—ฌ CPU๋ฅผ ๋ณด๋‚ด์•ผ ํ•œ๋‹ค โ† ๋น„์„ ์  CPU ์Šค์ผ€์ค„๋ง
  • ๋†’์€ ์šฐ์„  ์ˆœ์œ„์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋‚˜ํƒ€๋‚ฌ์„ ๋•Œ
    • ๋†’์€ ์šฐ์„ ์ˆœ์œ„์˜ ํ”„๋กœ์„ธ์Šค๊ฐ€ ์ž…์ถœ๋ ฅ์„ ๋งˆ์น˜๊ณ  ์ค€๋น„์ƒํƒœ๋กœ ์ „ํ™˜๋˜๋ฉด, OS๋Š” ํ˜„์žฌ ์‹คํ–‰์ค‘์ธ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ณด๋ฅ˜ํ•˜๊ณ , ๋” ๋†’์€ ์šฐ์„  ์ˆœ์œ„์˜ ํ”„๋กœ์„ธ์Šค์—๊ฒŒ CPU๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค. โ† ์„ ์  CPU ์Šค์ผ€์ค„๋ง
  • ์‹คํ–‰์‹œ๊ฐ„์ด ์ดˆ๊ณผ๋˜์—ˆ์„ ๋•Œ
    • ํ˜„์žฌ ์‹คํ–‰ ์ค‘์ธ ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ํ—ˆ์šฉ๋œ ์ตœ๋Œ€ ์‹คํ–‰ ์‹œ๊ฐ„์ด ์ดˆ๊ณผํ•˜๋ฉด, CPU๋Š” ๋‹ค๋ฅธ ํ”„๋กœ์„ธ์Šค ~์—ฌ CPU๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค. โ† ์„ ์  CPU ์Šค์ผ€์ค„๋ง
  • ์„ ์ž… ์„ ์ฒ˜๋ฆฌ FCFS First-Come First-Served ์Šค์ผ€์ค„๋ง
    • ๊ฐœ๋…
      • ์ค€๋น„ ๋Œ€๊ธฐ์—ด Ready Queue ์— ๋„์ฐฉํ•œ ์ˆœ์„œ๋Œ€๋กœ ์ฒ˜๋ฆฌ
      • ์ž…์ถœ๋ ฅ์ด๋‚˜ ์ข…๋ฃŒ ์‹œ๊นŒ์ง€ ๊ณ„์† ์‹คํ–‰ โ† ๋น„์„ ์ ํ˜•
      • ๋ถ„์„
  • ์ตœ๋‹จ ์ž‘์—… ์šฐ์„  SJF Shortest Job First ์Šค์ผ€์ค„๋ง
    • ๊ฐœ๋…
      • ํ˜„์žฌ ์ค€๋น„ ๋Œ€๊ธฐ์—ด Ready Queue์— ๋„์ฐฉํ•œ ํ”„๋กœ์„ธ์Šค๋“ค ์ค‘, CPU ๋ฒ„์ŠคํŠธ CPU Burst๊ฐ€ ์งง์€ ๊ฒƒ์„ ์„ ํƒํ•˜์—ฌ ์‹คํ–‰
      • SPN Shortest Process Next ๋ผ๊ณ ๋„ ํ•จ
      • ์ฆ‰, ์ž…์ถœ๋ ฅ์ด๋‚˜ ์ข…๋ฃŒ ์‹œ๊นŒ์ง€ ๊ณ„์† ์‹คํ–‰ โ† ๋น„์„ ์ ํ˜•
    • ๋ถ„์„
      • ๊ธฐ์•„ ์ƒํƒœ ํ˜„์ƒ
      • CPU ๋ฒ„์ŠคํŠธ๋Š” ์–ด๋–ป๊ฒŒ ๊ณ„์‚ฐ?
        • ์˜ˆ์ธก ํ•˜๋Š” ๋ฐฉ๋ฒ•๋ก ์ด ์žˆ๋‹ค (์ˆ˜์—…์—์„œ ๋‹ค๋ฃจ์ง€๋Š” ์•Š์Œ)

@0413

  • ์ตœ๋‹จ ์ž”์—ฌ ์‹œ๊ฐ„ ์šฐ์„  SRTF Shortest Remaining Time First ์Šค์ผ€์ค„๋ง
    • ๊ฐœ๋…
      • ์‹คํ–‰ ์ค‘ ์ƒˆ๋กœ์šด ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋„์ฐฉํ•˜๋ฉด, ํ˜„ ํ”„๋กœ์„ธ์Šค์˜ ๋‚จ์€ ์‹œ๊ฐ„๊ณผ ์ƒˆ ํ”„๋กœ์„ธ์Šค์˜ CPU ๋ฒ„์ŠคํŠธ ์‹œ๊ฐ„์„ ๋น„๊ตํ•˜์—ฌ ์ƒˆ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋” ์งง์œผ๋ฉด ๊ต์ฒด โ† ์„ ์ ํ˜•
    • ๋ถ„์„
      • ํ‰๊ท  ๋Œ€๊ธฐ ์‹œ๊ฐ„๊ณผ ํ‰๊ท  ์‘๋‹ต ์‹œ๊ฐ„์„ ๋”์šฑ ๊ฐœ์„  โ†’ CPU ์ด์šฉ๋ฅ  ์ €ํ•˜ ํ˜„์ƒ ๋ฐœ์ƒ ์–ต์ œ
      • ๋ฐ˜๋ฉด ๊ธฐ์•„ ์ƒํƒœ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ ๋” ๋†’์Œ
  • ์ตœ๊ณ  ์‘๋‹ต๋ฅ  ์šฐ์„  HRRF Highest Response Ratio First ์Šค์ผ€์ค„๋ง
    • HRN Highest Response Ratio Next
    • ์‘๋‹ต๋ฅ 
      • CPU ๋ฒ„์ŠคํŠธ ๋Œ€๋น„ ๋Œ€๊ธฐ์—ด์—์„œ ๊ธฐ๋‹ค๋ฆฐ ์ •๋„์˜ ๊ฒ€์ฆ (CPU ๋ฒ„์ŠคํŠธ๊ฐ€ ํฌ๋ฉด ๊ทธ๋งŒํผ ๋งŽ์ด ๊ธฐ๋‹ค๋ ค๋„ ๋ฌด๋ฐ”์•Ÿ๋‹ค๋Š” ์ทจ์ง€)
      • ์‘๋‹ต๋ฅ  = (์ค€๋น„ํ ๋Œ€๊ธฐ์‹œ๊ฐ„ +CPU๋ฒ„์ŠคํŠธ ์‹œ๊ฐ„) / (CPU ๋ฒ„์ŠคํŠธ์‹œ๊ฐ„) = 1 + ์ค€๋น„ํ์‹œ๊ฐ„ / CPU ๋ฒ„์ŠคํŠธ ์‹œ๊ฐ„)
      • ์„ ์  ํ˜น์€ ๋น„์„ ์  ์šด์˜ ๊ฐ€๋Šฅ
    • ๊ฐœ๋…
      • SJF๋‚˜ SRTF์˜ ๊ธฐ์•„ Starvation ํ˜„์ƒ์„ ํ•ด๊ฒฐ
  • ๋ผ์šด๋“œ ๋กœ๋นˆ RR Round Robin ์Šค์ผ€์ค„๋ง
    • ๊ฐœ๋…
      • ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ๋™์ผํ•œ ์ตœ๋Œ€ ์‹คํ–‰ ํ—ˆ์šฉ ์‹œ๊ฐ„ (ํƒ€์ž„ ํ€€ํ…€ ํ˜น์€ ํƒ€์ž„ ์Šฌ๋ผ์ด์Šค)๋ฅผ ๋ถ€์—ฌํ•˜๊ณ , ๊ทธ ์‹œ๊ฐ„๋งŒํผ์”ฉ ๊ณตํ‰ํ•˜๊ฒŒ ์กฐ๊ธˆ์”ฉ CPU๋ฅผ ๋ณด๋ƒ„ โ† ์„ ์ ํ˜•
    • ๋ถ„์„
      • ํƒ€์ž„ ํ€€ํ…€์— ๋”ฐ๋ฅธ ๋ฌธ๋งฅ ๊ตํ™˜ Context Switching)
      • ๋ถ€๋‹ด ๋ฐ ํ‰๊ท ๋Œ€๊ธฐ ์‹œ๊ฐ„
  • ๋‹ค๋‹จ๊ณ„ ํ MQ Multi-Level Queue
    • ๊ฐœ๋…
      • ๋ชจ๋“  ํ”„๋กœ์„ธ์Šค์—๊ฒŒ ํš์ผ์ ์ธ ์Šค์ผ€์ค„๋ง ์ „๋žต์„ ์ ์šฉํ•˜์ง€ ์•Š๊ณ , ํ”„๋กœ์„ธ์Šค๋“ค์„ ํŠน์„ฑ๋ณ„๋กœ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ๊ฐ๊ฐ ๋…๋ฆฝ๋œ ์ •์ฑ…์„ ์‚ฌ์šฉ
    • ์˜ˆ -ํ”„๋กœ์„ธ์Šค๋ฅผ ์ค‘์š”๋„ ๋“ฑ์— ๋”ฐ๋ผ ํฌ๊ฒŒ ๊ทธ๋ฃนํ™”ํ•˜์—ฌ ๋ณ„๋„์˜ ํ ๊ด€๋ฆฌ
      • ๊ณ„์‚ฐ ์œ„์ฃผ์˜ ํ”„๋กœ์„ธ์Šค๋“ค์€ ํƒ€์ž„ ํ€€ํ…€์„ ๊ธธ๊ฒŒ ์ฃผ๊ณ , ์šฐ์„  ์ˆœ์œ„๋Š” ๋‚ฎ๊ฒŒ ๋ถ€์—ฌ
      • ์ž…์ถœ๋ ฅ ์œ„์ถ” ํ”„๋กœ์„ธ์„œ๋“ค์€ ๋ฐ˜๋Œ€๋กœ
    • ๋ถ„์„
      • ๋”์šฑ ์ •๊ตํ•œ ์ „๋žต์„ ์ ์šฉํ•˜๊ธฐ ์œ„ํ•ด ๋™์ผ ์ค€๋น„ ํ ํ”„๋กœ์„ธ์Šค๋“ค ๊ฐ„์—๋Š” ๋‹ค๋ฅธ ์Šค์ผ€์ค„๋ง ์ „๋žต์ด ์ ์šฉ
  • ๋‹ค๋‹จ๊ณ„ ํ”ผ๋“œ๋ฐฑ ํ MFQ Multi-level Feedback Queue
์ด ๊ธฐ์‚ฌ๋Š” ์ €์ž‘๊ถŒ์ž์˜ CC BY 4.0 ๋ผ์ด์„ผ์Šค๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.