๐Ÿ“Œ CPU Scheduling 1

๋ชจ๊น…ยท2023๋…„ 4์›” 4์ผ
0

๐Ÿ“– 01. Scheduling Algorithms

  • ํฌ๊ฒŒ ๋‘๊ฐ€์ง€๋กœ ๋‚˜๋ˆ„์–ด ๋ณด๋ฉด
    -> noncreemptive (=์ž์ง„ ๋ฐ˜๋‚ฉ)
    -> creemptive (=๊ฐ•์ œ๋กœ ๋นผ์•—์Œ) : Timer๋ฅผ ํ†ตํ•ด

๐Ÿ“– 02. Scheduling Criteria -> Performance Index (= Performance Measure, ์„ฑ๋Šฅ ์ฒ™๋„)

  • ์–ด๋–ค ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด ์ข‹์€์ง€ ํ‰๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•จ.

ํฌ๊ฒŒ ๋‘๊ฐ€์ง€๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.
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 ์–ด๋•Ÿ๋Š”์ง€๋ฅผ ๊ณ ๋ คํ•˜์—ฌ ์Šค์ผ€์ฅด๋ง์„ ํ•œ๋‹ค!!

๐Ÿ“– 03. FCFS (First-Come First-Served)

  • ์ฒซ๋ฒˆ์งธ ์˜จ ์†๋‹˜์—๊ฒŒ ์ฒซ ์„œ๋น„์Šค ํ•ด์ฃผ๊ธฐ
  • nonpreemptive ์Šค์ผ€์ค„๋ง์ด๋‹ค.
    -> ํšจ์œจ์ ์ด์ง€ ์•Š๋‹ค.
    -> CPU๋ฅผ ์˜ค๋ž˜์“ฐ๋Š” ์นœ๊ตฌ๊ฐ€ ๋„์ฐฉํ•˜๋ฉด ๋‹ค๋ฅธ์นœ๊ตฌ๋“ค์ด ๊ธฐ๋‹ค๋ ค์•ผ ํ•œ๋‹ค.

  • ์•ž์—์žˆ๋Š” ํ”„๋กœ์„ธ์Šค์˜ ์˜ํ–ฅ์„ ๋งŽ์ด ๋ฐ›๋Š”๋‹ค.

๐Ÿ“– 04. SJF (Shortest-Job-First)

  • CPU๊ฐ€ ์กฐ๊ธˆ ํ•„์š”ํ•œ ์นœ๊ตฌํ•œํ…Œ ๋จผ์ € ์ œ์–ด๊ถŒ์„ ์ฃผ์ž!

  • Nonpreemptive๋ฐฉ์‹ : ์ž์‹ ๋ณด๋‹ค ๋นจ๋ฆฌ ๋๋‚ผ ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ์˜ค๋”๋ผ๋„ CPU birst ๋ณด์žฅ

  • preemptive : CPU๋ฅผ ์คฌ๋‹ค๊ณ  ํ•˜๋”๋ผ๊ณ  ๋” ์งง์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋„์ฐฉํ•˜๋ฉด CPU์ œ์–ด๊ถŒ์„ ๋„˜๊ฒจ์คŒ

  • ์ด์ „์— CPU๋ฅผ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋‚จ์€ ์‹œ๊ฐ„์„ ๋น„๊ตํ•ด์„œ CPU์ œ์–ด๊ถŒ์„ ๋„˜๊ฒจ์ค„์ง€ ๋ง์ง€ ๊ฒฐ์ •(Shortest-Remaining-Time-First๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.)

  • SJF is optimal -> preemptive ์Šค์ผ€์ค„๋Ÿฌ์ผ ๋•Œ ์ตœ์†Œ ๋ณด์žฅ

๐Ÿ“– 05. Example of Non-Preemptive SJF

๐Ÿ“– 06. Example of Preemptive SJF


-> ์ด์™€ ๊ฐ™์€ ์˜ˆ์ œ์—์„œ ์–ด๋–ค ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜๋”๋ผ๋„ 3์ดˆ ๋ฏธ๋งŒ์ด ๋  ์ˆ˜ ์—†๋‹ค (์ตœ์†Œ์ด๋‹ค)

  • ๋‘๊ฐ€์ง€ ๋ฌธ์ œ์ ์ด ์กด์žฌํ•œ๋‹ค.
  1. starvation(๊ธฐ์•„ ํ˜„์ƒ) : CUP ์‚ฌ์šฉ์‹œ๊ฐ„์ด ๊ธด ํ”„๋กœ์„ธ์Šค๋Š” ์˜์›ํžˆ ์‹คํ–‰์ด ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋‹ค.
  2. CPU ์‚ฌ์šฉ์‹œ๊ฐ„์„ ๋ฏธ๋ฆฌ ์•Œ ์ˆ˜ ์—†๋‹ค.

  1. T : ์‹ค์ œ CPU burst ์‚ฌ์šฉ์‹œ๊ฐ„
  2. ํƒ€์šฐ : CPU burst ์˜ˆ์ธก์‹œ๊ฐ„

๐Ÿ“– 07. Exponential Averaging

๋งˆ์ง€๋ง‰ : ๋‹ค ์ ์€ ๊ฐ€์ค‘์น˜ ๊ฐ’์„ ๊ฐ€์ง„๋‹ค.

๐Ÿ“– 08. Priority Scheduling

  • ์šฐ์„ ์ˆœ์œ„๊ฐ€ ์ œ์ผ ๋†’์€ ํ”„๋กœ์„ธ์Šค์—๊ฒŒ CPU๋ฅผ ์ฃผ๊ฒ ๋‹ค

  • Preemptive : ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋” ๋†’์€ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋„์ฐฉํ•˜๋ฉด ์›๋ž˜ ํ”„๋กœ์„ธ์Šค์—์„œ CPU์ œ์–ด๊ถŒ์„ ๋นผ์•—๊ณ  ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋” ๋†’์€ ํ”„๋กœ์„ธ์Šค์—๊ฒŒ CPU์ œ์–ด๊ถŒ์„ ๋„˜๊ฒจ์ค€๋‹ค.

  • Nonpreemptive : ๋” ๋†’์€ ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋„์ฐฉํ•˜๋”๋ผ๋„ CPU์ œ์–ด๊ถŒ์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ํ”„๋กœ์„ธ์Šค๊ฐ€ ๊ณ„์† CPU์ œ์–ด๊ถŒ์„ ๊ฐ–๊ณ  ์žˆ๋Š”๋‹ค.

  • ์ž‘์€ ์ •์ˆ˜์ผ์ˆ˜๋กœ ๋†’์€ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๊ฐ–๋Š”๋‹ค.

  • ์˜์›ํžˆ CPU๋ฅผ ์–ป์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ์กด์žฌ ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • Solution : ์šฐ์„ ์ˆœ์œ„๊ฐ€ ๋‚ฎ๋”๋ผ๋„ ์˜ค๋ž˜ ๊ธฐ๋‹ค๋ ธ๋‹ค๋ฉด ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋†’์—ฌ์ฃผ์ž.
    -> Aging

๐Ÿ“– 09. Round Robin (RR)

  • ์‘๋‹ต์‹œ๊ฐ„์ด ๋นจ๋ผ์ง„๋‹ค๋Š” ์žฅ์ !
    -> q์— ๋Œ€๊ธฐ์‹œ๊ฐ„์„ ์ค„์ด๋ฉด ๋นจ๋ฆฌ CPU์ œ์–ด๊ถŒ์„ ์–ป์„ ์ˆ˜ ์žˆ๊ณ  CPU๋ฅผ ํ•„์š”๋กœ ํ•˜๋Š” ์‹œ๊ฐ„์ด ์ ๋‹ค๋ฉด ๋นจ๋ฆฌ ์ข…๋ฃŒ ๋  ์ˆ˜ ์žˆ๋‹ค.
    -> q์˜ ๊ธธ์ด๊ฐ€ ์งง์•„์ง

  • ๊ทน๋‹จ์ ์ธ ์ƒํ™ฉ : ๋Œ€๊ธฐ์‹œ๊ฐ„์„ ์•„์ฃผ ํฌ๊ฒŒ ์žก๋Š”๋‹ค๋ฉด
    -> FCFS

  • ๋„ˆ๋ฌด ์ž‘๊ฒŒ ์žก๋Š”๋‹ค๋ฉด context swich์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์ปค์ง„๋‹ค.

๐Ÿ“– 10. Example: RR with Time Quantum = 20

  • RR์€ ํ”„๋กœ์„ธ์Šค์˜ ์ข…๋ฃŒ์‹œ๊ฐ„์„ ๋ชจ๋ฅผ ๋•Œ ์‚ฌ์šฉํ•˜๊ธฐ ์ข‹๋‹ค.
    -> ๊ธธ๊ณ  ์งง์€๊ฒŒ ์„ž์—ฌ์žˆ์„ ๋•Œ ์œ ๋ฆฌ

  • Response Time์ด ๋นจ๋ผ์ง„๋‹ค๋Š” ๊ฒƒ์ด ์žฅ์ ์ด๋‹ค.

๐Ÿ“– 11. Turnaround Time Varies With Time Quantum





[์ถœ์ฒ˜] ๋ฐ˜ํšจ๊ฒฝ ๊ต์ˆ˜๋‹˜ ๊ฐ•์˜

profile
๋ฉˆ์ถ”์ง€ ์•Š๊ธฐ

0๊ฐœ์˜ ๋Œ“๊ธ€