🌐 CS:APP | λ©€ν‹°μŠ€λ ˆλ”©κ³Ό ν•˜μ΄νΌμ“°λ ˆλ”©

μ΄μˆœκ°„Β·2025λ…„ 3μ›” 27일

CS:APP

λͺ©λ‘ 보기
12/23

🧡 CS:APP | λ©€ν‹°μŠ€λ ˆλ”©κ³Ό ν•˜μ΄νΌμ“°λ ˆλ”© 정리


βœ… λ©€ν‹°μŠ€λ ˆλ”©(Multithreading)μ΄λž€?

ν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€ μ•ˆμ—μ„œ μ—¬λŸ¬ 개의 μŠ€λ ˆλ“œκ°€ λ™μ‹œμ— μ‹€ν–‰λ˜λ„λ‘ ν•˜λŠ” ν”„λ‘œκ·Έλž˜λ° 기법

  • 각 μŠ€λ ˆλ“œλŠ” 독립적인 흐름(control flow)을 κ°€μ§€κ³ ,
  • λ©”λͺ¨λ¦¬ 곡간은 κ³΅μœ ν•¨ (같은 μ£Όμ†Œ 곡간)

πŸ’‘ λ©€ν‹°μŠ€λ ˆλ”©μ˜ νŠΉμ§•

ν•­λͺ©μ„€λͺ…
μ‹€ν–‰ λ‹¨μœ„μŠ€λ ˆλ“œ (Thread)
λ©”λͺ¨λ¦¬μ£Όμ†Œ 곡간 곡유 (같은 μŠ€νƒ λΉΌκ³  λ‹€ 곡유)
μž₯점빠λ₯Έ μ»¨ν…μŠ€νŠΈ μ „ν™˜, μžμ› μ ˆμ•½
ν™œμš©μ›Ή μ„œλ²„, κ²Œμž„, GUI μ•± λ“± μ‹€μ‹œκ°„ μ²˜λ¦¬μ— 유리

🧠 μ˜ˆμ‹œ

  • μ›Ή μ„œλ²„μ—μ„œ μš”μ²­ 100개λ₯Ό λ™μ‹œμ— μ²˜λ¦¬ν•  λ•Œ,
    각 μš”μ²­μ„ κ°œλ³„ μŠ€λ ˆλ“œλ‘œ λΆ„λ¦¬ν•΄μ„œ λΉ λ₯΄κ²Œ 처리 κ°€λŠ₯

πŸš€ ν•˜μ΄νΌμ“°λ ˆλ”©(Hyper-Threading)μ΄λž€?

ν•˜λ“œμ›¨μ–΄ μˆ˜μ€€μ—μ„œ ν•˜λ‚˜μ˜ 물리적 CPU μ½”μ–΄κ°€ 두 개의 논리 μ½”μ–΄μ²˜λŸΌ λ™μž‘ν•˜λ„λ‘ λ§Œλ“  기술
β†’ 물리 1개 μ½”μ–΄ = 논리 2개 μ½”μ–΄


βœ… ν•˜μ΄νΌμ“°λ ˆλ”©μ˜ 핡심

  • μΈν…”μ—μ„œ λ§Œλ“  기술, λŒ€λΆ€λΆ„μ˜ μ΅œμ‹  CPU에 νƒ‘μž¬λ¨
  • CPU의 유휴 μžμ›(Idle Unit)을 ν™œμš©ν•΄μ„œ λ™μ‹œμ— 두 개의 μ“°λ ˆλ“œλ₯Ό μ‹€ν–‰ν•˜λŠ” κ²ƒμ²˜λŸΌ 보이게 함
  • μ‹€μ œ 병렬 싀행보단, λ¦¬μ†ŒμŠ€ ν™œμš©λ„ 증가가 λͺ©μ 

🧩 ꡬ쑰 비ꡐ

[물리 μ½”μ–΄ 1개]
 β”œβ”€ 논리 μŠ€λ ˆλ“œ A
 └─ 논리 μŠ€λ ˆλ“œ B  ← λ‘˜ λ‹€ λ™μ‹œμ— μ‹€ν–‰ κ°€λŠ₯ν•œ κ²ƒμ²˜λŸΌ λ³΄μž„

πŸ” λ©€ν‹°μŠ€λ ˆλ”© vs ν•˜μ΄νΌμ“°λ ˆλ”©

ν•­λͺ©λ©€ν‹°μŠ€λ ˆλ”©ν•˜μ΄νΌμ“°λ ˆλ”©
μœ„μΉ˜μ†Œν”„νŠΈμ›¨μ–΄ λ ˆλ²¨ν•˜λ“œμ›¨μ–΄ 레벨
μ£Όμ²΄ν”„λ‘œκ·Έλž˜λ¨Έ / OSCPU λ‚΄λΆ€ 섀계
μ˜λ―Έν•˜λ‚˜μ˜ ν”„λ‘œμ„ΈμŠ€ μ•ˆμ— μ—¬λŸ¬ μŠ€λ ˆλ“œν•˜λ‚˜μ˜ 물리 μ½”μ–΄μ—μ„œ μ—¬λŸ¬ μŠ€λ ˆλ“œ 처리
μ‹€ν–‰ λŒ€μƒλ…Όλ¦¬μ  μ‹€ν–‰ νλ¦„μ‹€μ œ ν•˜λ“œμ›¨μ–΄ μžμ›
λͺ©μ μ½”λ“œ λ™μ‹œ μ²˜λ¦¬λ¦¬μ†ŒμŠ€ ν™œμš© κ·ΉλŒ€ν™”

🧠 자주 λ‚˜μ˜€λŠ” 질문

❓ λ©€ν‹°μŠ€λ ˆλ”© ν”„λ‘œκ·Έλž¨μ΄ ν•˜μ΄νΌμ“°λ ˆλ”© CPUμ—μ„œ 돌면 더 λΉ λ₯ΌκΉŒ?

  • 상황에 따라 닀름!
  • CPUκ°€ 유휴 μƒνƒœμΈ μœ λ‹›μ΄ λ§Žλ‹€λ©΄ β†’ μ„±λŠ₯ ν–₯상 κ°€λŠ₯
  • ν•˜μ§€λ§Œ μΊμ‹œ 좩돌, μžμ› 경합이 μ‹¬ν•˜λ©΄ β†’ μ„±λŠ₯ μ €ν•˜ κ°€λŠ₯

βœ… ν•œ 쀄 정리

λ©€ν‹°μŠ€λ ˆλ”©μ€ ν•˜λ‚˜μ˜ ν”„λ‘œκ·Έλž¨μ—μ„œ μ—¬λŸ¬ μž‘μ—… 흐름을 λ§Œλ“œλŠ” 기법,
ν•˜μ΄νΌμ“°λ ˆλ”©μ€ CPUκ°€ κ·Έ 흐름듀을 ν•˜λ“œμ›¨μ–΄μ μœΌλ‘œ λ³‘λ ¬μ²˜λŸΌ μ²˜λ¦¬ν•΄μ£ΌλŠ” κΈ°μˆ μ΄λ‹€.

profile
μ„œνˆ΄μ§€μ–Έμ • 늘 행동이 먼저이기λ₯Ό

0개의 λŒ“κΈ€