πŸ–₯ CS/운영체제

운영체제 Day10 (CPU μŠ€μΌ€μ€„λ§)

KiwiπŸ’» 2022. 12. 26. 18:28

CPU μŠ€μΌ€μ€„λ§ κ°œμš”

ν”„λ‘œμ„ΈμŠ€ μš°μ„ μˆœμœ„

ν”„λ‘œμ„ΈμŠ€λ§ˆλ‹€ μš΄μ„ μˆœμœ„κ°€ μžˆλ‹€. μš°μ„ μˆœμœ„κ°€ 높은 ν”„λ‘œμ„ΈμŠ€μ—λŠ” λŒ€ν‘œμ μœΌλ‘œ μž…μΆœλ ₯ μž‘μ—…μ΄ λ§Žμ€ ν”„λ‘œμ„ΈμŠ€κ°€ μžˆλ‹€. μž…μΆœλ ₯ μž‘μ—…μ΄ λ§Žμ€ ν”„λ‘œμ„ΈμŠ€λŠ” μ™œ λ¨Όμ € μ‹€ν–‰ν•˜λŠ” 것이 효율적일까?

λŒ€λΆ€λΆ„μ˜ ν”„λ‘œμ„ΈμŠ€λ“€μ€ CPU와 μž…μΆœλ ₯μž₯치λ₯Ό λͺ¨λ‘ μ‚¬μš©ν•˜λ©° μ‹€ν–‰λœλ‹€. 달리 λ§ν•˜λ©΄ ν”„λ‘œμ„ΈμŠ€λŠ” μ‹€ν–‰ μƒνƒœμ™€ λŒ€κΈ° μƒνƒœλ₯Ό λ°©λ³΅ν•˜λ©° μ‹€ν–‰λœλ‹€.

  • μž…μΆœλ ₯ 집쀑 ν”„λ‘œμ„ΈμŠ€

μž…μΆœλ ₯이 μž‘μ—…μ΄ λ§Žμ€ ν”„λ‘œμ„ΈμŠ€(ex. λΉ„λ””μ˜€ μž¬μƒ, λ””μŠ€ν¬ λ°±μ—…)

  • CPU 집쀑 ν”„λ‘œμ„ΈμŠ€

CPU μž‘μ—…μ΄ λ§Žμ€ ν”„λ‘œμ„ΈμŠ€(ex. 컴파일, κ·Έλž˜ν”½ 처리)

CPU 집쀑 ν”„λ‘œμ„ΈμŠ€μ™€ μž…μΆœλ ₯ 집쀑 ν”„λ‘œμ„ΈμŠ€κ°€ λ™μ‹œμ— CPUμžμ›μ„ μš”κ΅¬ν–ˆλ‹€κ³  κ°€μ •ν• λ•Œ μž…μΆœλ ₯ 집쀑 ν”„λ‘œμ„ΈμŠ€λ₯Ό κ°€λŠ₯ν•œ 빨리 μ‹€ν–‰μ‹œμΌœ μž…μΆœλ ₯μž₯치λ₯Ό λŠμž„μ—†μ΄ μž‘λ™μ‹œν‚€κ³ , κ·Έλ‹€μŒ CPU 집쀑 ν”„λ‘œμ„ΈμŠ€μ— μ§‘μ€‘μ μœΌλ‘œ CPUλ₯Ό ν• λ‹Ήν•˜λŠ” 것이 효율 적이닀.

μŠ€μΌ€μ€„λ§ 큐

μš΄μ˜μ²΄μ œλŠ” ν”„λ‘œμ„ΈμŠ€λ“€μ— '쀄을 μ„œμ„œ 기닀릴 것'을 μš”κ΅¬ ν•˜λ©° 이λ₯Ό μŠ€μΌ€μ€„λ§ 큐둜 κ΅¬ν˜„ν•˜κ³  κ΄€λ¦¬ν•œλ‹€.

  • μ€€λΉ„ 큐

CPUλ₯Ό μ΄μš©ν•˜κ³  싢은 ν”„λ‘œμ„ΈμŠ€λ“€μ΄ μ„œλŠ” 쀄

  • λŒ€κΈ° 큐

μž…μΆœλ ₯μž₯치λ₯Ό μ΄μš©ν•˜κΈ° μœ„ν•΄ λŒ€κΈ° μƒνƒœμ— μ ‘μ–΄λ“  ν”„λ‘œμ„ΈμŠ€λ“€μ΄ μ„œλŠ” 쀄

μš΄μ˜μ²΄μ œλŠ” PCB듀이 큐에 μ‚½μΈλœ μˆœμ„œλŒ€λ‘œ ν”„λ‘œμ„ΈμŠ€λ₯Ό ν•˜λ‚˜μ”© κΊΌλ‚΄μ–΄ μ‹€ν–‰ν•˜λ˜, 그쀑 μš°μ„ μˆœμœ„κ°€ 높은 ν”„λ‘œμ„ΈμŠ€λ₯Ό λ¨Όμ € μ‹€ν–‰ν•œλ‹€.

μ„ μ ν˜•κ³Ό λΉ„μ„ μ ν˜• μŠ€μΌ€μ€„λ§

  • μ„ μ ν˜• μŠ€μΌ€μ€„λ§

μ„ μ ν˜• μŠ€μΌ€μ€„λ§μ€ ν”„λ‘œμ„ΈμŠ€κ°€ CPUλ₯Ό λΉ„λ‘―ν•œ μžμ›μ„ μ‚¬μš©ν•˜κ³  μžˆλ”λΌλ„ μš΄μ˜μ²΄μ œκ°€ ν”„λ‘œμ„ΈμŠ€λ‘œλΆ€ν„° μžμ›μ„ κ°•μ œλ‘œ λΉΌμ•—μ•„ λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€μ— ν• λ‹Ήν•  수 μžˆλŠ” μŠ€μΌ€μ€„λ§ 방식을 μ˜λ―Έν•œλ‹€.

  • λΉ„μ„ μ ν˜• μŠ€μΌ€μ€„λ§

ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€κ°€ μžμ›μ„ μ‚¬μš©ν•˜κ³  μžˆλ‹€λ©΄ κ·Έ ν”„λ‘œμ„ΈμŠ€κ°€ μ’…λ£Œλ˜κ±°λ‚˜ 슀슀둜 λŒ€κΈ° μƒνƒœμ— μ ‘μ–΄λ“€κΈ° μ „κΉŒμ§„ λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€κ°€ 끼어듀 수 μ—†λŠ” μŠ€μΌ€μ€„λ§ 방식을 μ˜λ―Έν•œλ‹€.

μ„ μ ν˜• μŠ€μΌ€μ€„λ§μ€ 더 κΈ‰ν•œ ν”„λ‘œμ„ΈμŠ€κ°€ μ–Έμ œλ“  끼어듀어 μ‚¬μš©ν•  수 μžˆλŠ” μŠ€μΌ€μ€„λ§ λ°©μ‹μœΌλ―€λ‘œ μ–΄λŠ ν•œ ν”„λ‘œμ„ΈμŠ€μ˜ μžμ› 독점을 막고 ν”„λ‘œμ„ΈμŠ€λ“€μ— 골고루 μžμ›μ„ λ°°λΆ„ν•  수 μž₯점이 μžˆμ§€λ§Œ, λ¬Έλ§₯ κ΅ν™˜ κ³Όμ •μ—μ„œ μ˜€λ²„ν—€λ“œκ°€ λ°œν•  수 μžˆλ‹€.

λΉ„μ„ μ ν˜• μŠ€μΌ€μ€„λ§μ€ λ¬Έλ§₯κ΅ν™˜ νšŸμˆ˜κ°€ μ„ μ ν˜• μŠ€μΌ€μ€„λ§λ³΄λ‹€ 적기 λ•Œλ¬Έμ— μ˜€λ²„ν—€λ“œλŠ” 비ꡐ적 μ μ§€λ§Œ, ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€κ°€ μžμ›μ„ μ‚¬μš© 쀑이라면 λ‹Ήμž₯ μžμ›μ„ μ‚¬μš©ν•΄μ•Ό ν•˜λŠ” 상황에도 λ¬΄μž‘μ • κΈ°λ‹€λ¦¬λŠ” μˆ˜λ°–μ— μ—†λ‹€.

CPU μŠ€μΌ€μ€„λ§ μ•Œκ³ λ¦¬μ¦˜

  • μ„ μž… μ„ μ²˜λ¦¬ μŠ€μΌ€μ€„λ§

CPUλ₯Ό λ¨Όμ € μš”μ²­ν•œ ν”„λ‘œμ„ΈμŠ€ λΆ€ν„° CPUλ₯Ό ν• λ‹Ήν•˜λŠ” μŠ€μΌ€μ€„λ§ 방식이닀. CPUλ₯Ό 였래 μ‚¬μš©ν•˜λŠ” ν”„λ‘œμ„ΈμŠ€κ°€ λ¨Όμ € λ„μ°©ν•˜λ©΄ λ‹€λ₯Έ ν”„λ‘œμ„ΈμŠ€λŠ” κ·Έ ν”„λ‘œμ„ΈμŠ€κ°€ λλ‚ λ•ŒκΉŒμ§€ λ¬΄μž‘μ • κΈ°λ‹€λ¦¬λŠ” μˆ˜λ°–μ— μ—†κ³  이런 ν˜„μƒμ„ ν˜Έμœ„ 효과라고 ν•œλ‹€.

  • μ΅œλ‹¨ μž‘μ—… μš°μ„  μŠ€μΌ€μ€„λ§

CPU 이용 μ‹œκ°„μ˜ 길이가 κ°€μž₯ 짧은 ν”„λ‘œμ„ΈμŠ€λΆ€ν„° μ‹€ν–‰ν•˜λŠ” μŠ€μΌ€μ€„λ§ 방식을 μ΅œλ‹¨ μž‘μ—… μš°μ„  μŠ€μΌ€μ€„λ§ ν˜Ήμ€ SJFμŠ€μΌ€μ€„λ§μ΄λΌκ³  ν•œλ‹€.

  • λΌμš΄λ“œ 둜빈 μŠ€μΌ€μ€„λ§

μ„ μž… μ„ μ²˜λ¦¬ μŠ€μΌ€μ€„λ§μ— νƒ€μž„ μŠ¬λΌμ΄μŠ€λΌλŠ” κ°œλ…μ΄ 더해진 μŠ€μΌ€μ€„λ§ 방식이닀. νƒ€μž„ μŠ¬λΌμ΄μŠ€λž€ 각 ν”„λ‘œμ„ΈμŠ€κ°€ CPUλ₯Ό μ‚¬μš©ν•  수 μžˆλŠ” 정해진 μ‹œκ°„μ„ μ˜λ§ˆν•œλ‹€.

  • μ΅œμ†Œ μž”μ—¬ μ‹œκ°„ μš°μ„  μŠ€μΌ€μ€„λ§

μ΅œλ‹¨ μž‘μ—… μš°μ„  μŠ€μΌ€μ€„λ§ μ•Œκ³ λ¦¬μ¦˜κ³Ό λΌμš΄λ“œ 둜빈 μ•Œκ³ λ¦¬μ¦˜μ„ 찹친 μŠ€μΌ€μ€„λ§ 방식이닀.

  • μš°μ„ μˆœμœ„ μŠ€μΌ€μ€„λ§
    • κΈ°μ•„
    • μš°μ„ μˆœμœ„κ°€ 높은 ν”„λ‘œμ„ΈμŠ€λ“€μ— μ˜ν•΄ 싀행이 κ³„μ†ν•΄μ„œ μ—°κΈ°λ˜λŠ” ν˜„μƒ
    • 에이징
    • κΈ°μ•„ ν˜„μƒμ„ λ°©μ§€ν•˜κΈ° μœ„ν•œ λŒ€ν‘œμ μΈ κΈ°λ²•μœΌλ‘œ μ˜€λž«λ™μ•ˆ λŒ€κΈ°ν•œ ν”„λ‘œμ„ΈμŠ€μ˜ μš°μ„ μˆœμœ„λ₯Ό 점차 λ†’μ΄λŠ” 방식이닀.
  • 닀단계 큐 μŠ€μΌ€μ€„λ§

μš°μ„ μˆœμœ„λ³„λ‘œ μ€€λΉ„ 큐λ₯Ό μ—¬λŸ¬ 개 μ‚¬μš©ν•˜λŠ” μŠ€μΌ€μ€„λ§ 방식이닀. μš°μ„ μˆœμœ„κ°€ κ°€μž₯ 높은 큐에 μžˆλŠ” ν”„λ‘œμ„ΈμŠ€λ“€μ„ λ¨Όμ € μ²˜λ¦¬ν•˜κ³ , μš°μ„ μˆœμœ„κ°€ κ°€μž₯ 높은 큐가 λΉ„μ–΄ 있으면 κ·Έλ‹€μŒ μš°μ„ μˆœμœ„ 큐에 μžˆλŠ” ν”„λ‘œμ„ΈμŠ€λ“€μ„ μ²˜λ¦¬ν•œλ‹€.