3 min read

OSTEP 07 CPU Scheduling

Table of Contents

1. μ›Œν¬λ‘œλ“œμ— λŒ€ν•œ κ°€μ •

일련의 ν”„λ‘œμ„ΈμŠ€λ“€μ΄ μ‹€ν–‰ν•˜λŠ” 상황을 μ›Œν¬λ‘œλ“œλΌκ³  λΆ€λ₯΄κΈ°λ‘œ ν•˜μž. μš°λ¦¬κ°€ μ‹œμŠ€ν…œμ—μ„œ μ‹€ν–‰ 쀑인 ν”„λ‘œμ„ΈμŠ€ ν˜Ήμ€ μž‘μ—…μ— λŒ€ν•΄ λ‹€μŒκ³Ό 같은 가정을 ν•˜μž.

  1. λͺ¨λ“  μž‘μ—…μ€ 같은 μ‹œκ°„ λ™μ•ˆ μ‹€ν–‰λœλ‹€.
  2. λͺ¨λ“  μž‘μ—…μ€ λ™μ‹œμ— λ„μ°©ν•œλ‹€.
  3. 각 μž‘μ—…μ€ μ‹œμž‘λ˜λ©΄ μ™„λ£Œλ  λ•ŒκΉŒμ§€ μ‹€ν–‰λœλ‹€.
  4. λͺ¨λ“  μž‘μ—…μ€ CPU만 μ‚¬μš©ν•œλ‹€. 즉 μž…μΆœλ ₯을 μˆ˜ν–‰ν•˜μ§€ μ•ŠλŠ”λ‹€.
  5. 각 μž‘μ—…μ˜ μ‹€ν–‰ μ‹œκ°„μ€ 사전에 μ•Œλ €μ Έ μžˆλ‹€.

2. μŠ€μΌ€μ€„λ§ 평가 ν•­λͺ©

λ°˜ν™˜ μ‹œκ°„ (Turnaround Time)

μž‘μ—… λ°˜ν™˜ μ‹œκ°„μ€ μž‘μ—…μ΄ μ™„λ£Œλœ μ‹œκ°μ—μ„œ μž‘μ—…μ΄ μ‹œμŠ€ν…œμ— λ„μ°©ν•œ μ‹œκ°μ„ λΊ€ μ‹œκ°„μœΌλ‘œ μ •μ˜λœλ‹€.

OSTEP 07 CPU Scheduling-1687805795335.jpeg

3. First In First Out (μ„ μž…μ„ μΆœ)

κ°€μž₯ 기초적인 μ„ μž…μ„ μΆœ μ•Œκ³ λ¦¬μ¦˜. λ‹¨μˆœν•˜κ³  κ΅¬ν˜„ν•˜κΈ° 쉽닀.

OSTEP 07 CPU Scheduling-1687805851046.jpeg

μ΄λ ‡κ²Œ λ¨Όμ € λ„μ°©ν•œ μž‘μ—…μ΄ 였래 κ±Έλ¦¬λŠ” 경우, 평균 λ°˜ν™˜ μ‹œκ°„μ΄ λŠ˜μ–΄λ‚˜κ²Œ λœλ‹€. κ·Έλ ‡λ‹€λ©΄ λ‹€λ₯Έ 쒋은 μ•Œκ³ λ¦¬μ¦˜μ€ μ—†μ„κΉŒ?

4. Shortest Job First (μ΅œλ‹¨ μž‘μ—… 우)

이 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•΄, κ°€μž₯ 짧은 μ‹€ν–‰ μ‹œκ°„μ„ κ°€μ§„ μž‘μ—…μ„ λ¨Όμ € μ‹€ν–‰μ‹œν‚€μž.

OSTEP 07 CPU Scheduling-1687805932236.jpeg

λͺ¨λ“  μž‘μ—…μ΄ λ™μ‹œμ— λ„μ°©ν•œλ‹€λ©΄, SJFκ°€ optimalν•œ μŠ€μΌ€μ€„λ§ μ•Œκ³ λ¦¬μ¦˜μ΄λ‹€. ν•˜μ§€λ§Œ Aκ°€ λ¨Όμ € λ„μ°©ν•˜κ³ , B와 Cκ°€ λ„μ°©ν•œλ‹€λ©΄?

OSTEP 07 CPU Scheduling-1687805997011.jpeg

Aκ°€ 끝날 λ•ŒκΉŒμ§€ 기닀릴 μˆ˜λ°–μ— μ—†κ³ , 평균 λ°˜ν™˜ μ‹œκ°„μ΄ μ˜¬λΌκ°„λ‹€.

5. Shortest Time-to-Completion First (μ΅œμ†Œ μž”μ—¬μ‹œκ°„ μš°μ„ )

이 μ•Œκ³ λ¦¬μ¦˜μ€ μƒˆλ‘œμš΄ μž‘μ—…μ΄ μ‹œμŠ€ν…œμ— λ“€μ–΄μ˜€λ©΄, λ‚¨μ•„μžˆλŠ” μž‘μ—…κ³Ό μƒˆλ‘œμš΄ μž‘μ—…μ˜ μž”μ—¬ μ‹€ν–‰ μ‹œκ°„μ„ κ³„μ‚°ν•˜κ³  κ·Έ 쀑 κ°€μž₯ 적은 μž”μ—¬ μ‹€ν–‰ μ‹œκ°„μ„ κ°€μ§„ μž‘μ—…μ„ μŠ€μΌ€μ€„ν•œλ‹€.

OSTEP 07 CPU Scheduling-1687806121061.jpeg

B와 Cκ°€ 더 빨리 λλ‚˜μ„œ 평균 λ°˜ν™˜ μ‹œκ°„μ΄ λ‹¨μΆ•λœλ‹€.

6. μƒˆλ‘œμš΄ 평가 κΈ°μ€€: 응닡 μ‹œκ°„ (Response Time)

μž‘μ—…μ˜ 길이λ₯Ό 미리 μ•Œκ³  있고, μž‘μ—…μ΄ 였직 CPU만 μ‚¬μš©ν•˜λ©°, 평가 기쀀이 λ°˜ν™˜ μ‹œκ°„ ν•˜λ‚˜λΌλ©΄, STCFλŠ” 맀우 ν›Œλ₯­ν•œ μ•Œκ³ λ¦¬μ¦˜μ΄λ‹€.

κ·ΈλŸ¬λ‚˜ μ‹œλΆ„ν•  μ»΄ν“¨ν„°μ˜ λ“±μž₯이 λͺ¨λ“  것을 λ°”κΎΈμ—ˆλ‹€. 이제 μ‚¬μš©μžλŠ” ν„°λ―Έλ„μ—μ„œ μž‘μ—…ν•˜κ²Œ λ˜μ–΄ μ‹œμŠ€ν…œμ—κ²Œ μƒν˜Έμž‘μš©μ„ μ›ν™œνžˆ ν•˜κΈ° μœ„ν•œ μ„±λŠ₯을 μš”κ΅¬ν•˜κ²Œ λ˜μ—ˆλ‹€. 응닡 μ‹œκ°„(response time)μ΄λΌλŠ” μƒˆλ‘œμš΄ 평가 기쀀이 νƒœμ–΄λ‚˜κ²Œ λœλ‹€. 응닡 μ‹œκ°„μ€ μž‘μ—…μ΄ 도착할 λ•ŒλΆ€ν„° 처음 μŠ€μΌ€μ€„ 될 λ•ŒκΉŒμ§€μ˜ μ‹œκ°„μœΌλ‘œ μ •μ˜λœλ‹€.

OSTEP 07 CPU Scheduling-1687806264753.jpeg

OSTEP 07 CPU Scheduling-1687806287759.jpeg

7. Round Robin

응닡 μ‹œκ°„ 문제λ₯Ό ν•΄κ²°ν•˜κΈ° μœ„ν•˜μ—¬, λΌμš΄λ“œ 둜빈(RR) μŠ€μΌ€μ€„λ§μ΄ λ„μž…λ˜μ—ˆλ‹€. RR은 μž‘μ—…μ΄ 끝날 λ•ŒκΉŒμ§€ 기닀리지 μ•ŠλŠ”λ‹€. λŒ€μ‹  일정 μ‹œκ°„ λ™μ•ˆ μ‹€ν–‰ν•œ ν›„ μ‹€ν–‰ 큐의 λ‹€μŒ μž‘μ—…μœΌλ‘œ μ „ν™˜ν•œλ‹€. μ΄λ•Œ μž‘μ—…μ΄ μ‹€ν–‰λ˜λŠ” 일정 μ‹œκ°„μ„ νƒ€μž„ 슬라이슀(time slice) λ˜λŠ” μŠ€μΌ€μ€„λ§ ν€€ν…€(scheduling quantum) 이라 λΆ€λ₯Έλ‹€. ^865cd1

νƒ€μž„ μŠ¬λΌμ΄μŠ€κ°€ μ§§μ„μˆ˜λ‘, 응닡 μ‹œκ°„μ΄ μ’‹μ•„μ§„λ‹€. ν•˜μ§€λ§Œ λ„ˆλ¬΄ 짧게 μ§€μ •ν•˜λ©΄ λ¬Έμ œκ°€ 생긴닀. λ¬Έλ§₯ κ΅ν™˜ λΉ„μš©μ΄ 전체 μ„±λŠ₯에 큰 영ν–₯을 미치기 λ•Œλ¬Έμ΄λ‹€. λ”°λΌμ„œ 졜적의 싀이λ₯Ό κ²°μ •ν•΄μ•Ό ν•œλ‹€.

λ°˜ν™˜ μ‹œκ°„μ΄ μœ μΌν•œ μΈ‘μ •μ˜ 기쀀인 경우, λΌμš΄λ“œ λ‘œλΉˆμ€ 거의 μ΅œμ•…μ˜ μ•Œκ³ λ¦¬μ¦˜μ΄λ‹€.

8. μž…μΆœλ ₯ μ—°μ‚°μ˜ κ³ λ €

4번 가정을 μ™„ν™”ν•˜μž. ν”„λ‘œκ·Έλž¨μ΄ μž…μΆœλ ₯ μž‘μ—…μ„ μˆ˜ν–‰ν•œλ‹€λ©΄?

OSTEP 07 CPU Scheduling-1687806591737.jpeg

ν˜„μž¬ 싀행쀑인 μž‘μ—…μ€ μž…μΆœλ ₯이 μ™„λ£Œλ  λ•ŒκΉŒμ§€ CPUλ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šμ„ 것이기 λ•Œλ¬Έμ—, μŠ€μΌ€μ€„λŸ¬λŠ” λ‹€λ₯Έ μž‘μ—…μ„ μŠ€μΌ€μ€„ν•΄μ•Ό ν•œλ‹€.

OSTEP 07 CPU Scheduling-1687806750918.jpeg

9. No More Oracle

μŠ€μΌ€μ€„λŸ¬κ°€ 각 μž‘μ—…μ˜ μ‹€ν–‰ μ‹œκ°„μ„ μ•Œκ³  μžˆλ‹€λŠ” 가정은 μ΅œμ•…μ˜ 가정이닀. 미래λ₯Ό μ˜ˆμΈ‘ν•˜λŠ” 일은 맀우 νž˜λ“€κΈ° λ•Œλ¬Έμ΄λ‹€.

OSTEP ꡐ재 μ°Έκ³