κΈ΄ κΈ μ£Όμ. μ΄ν΄ μλμ΄μ μ΄κ²μ κ² μΆκ°νλ€λ³΄λ μμ² κΈΈμ΄μ§.
맨 μλμ μμ½λ³Έ μμ.
1. μ΄μ체μ λ
μμ€ν μννΈμ¨μ΄λ‘ νλμ¨μ΄μ μ¬μ©μ κ°μ 맀κ°μ²΄ μν μ νλ "μμ€ν μννΈμ¨μ΄"μ΄λ€.
λͺ©μ : μ¬μ©μκ° μ»΄ν¨ν° μμ€ν (νλμ¨μ΄) μ νΈλ¦¬νκ² μ΄μ©νλλ‘ νλ κ²,
μ΄λ₯Ό μν΄ νλμ¨μ΄μ μ»΄ν¨ν°μ λͺ¨λ μμμ κ΄λ¦¬νλ€. (μμ ν λΉ, μ μΆλ ₯ μ₯μΉ μ μ΄ λ±)
κ²°κ΅ κ·Όλ³Έμ μΌλ‘λ μ λͺ¨λ νλμ ν΅ν΄ μ¬μ©μκ° λ¬Έμ λ₯Ό μ½κ² ν΄κ²°νλλ‘ νλ κ²μ΄λ€.
2. μ΄μ체μ μ μ ν
μ΄μ체μ κ° μ΄λ€ νκ²½μμ μ¬μ©λλμ§λ₯Ό κΈ°μ€μΌλ‘ λλ κ².
μ¦ μ΄μ체μ μ λͺ©μ μ λ°λΌ λΆλ₯λ κ²μ΄λΌκ³ λ³Ό μ μμΌλ©° OS κ° λμνλ λ°©μμ μλ―Ένλ€.
1) μΌκ΄ μ²λ¦¬ μμ€ν (batch Processing System)
μ¬λ¬ μμ
(Job)μ ν λ²μ λͺ¨μμ(Batch) μμ°¨μ μΌλ‘ μ€ννλ λ°©μμ μλ―Ένλ€.
μ΄ λ°©μμ ν΅μ¬μ μ¬λμ΄ μ§μ κ°μ
ν νμ μμ΄ μλμΌλ‘ μ²λ¦¬λλ€λ μ μ΄λ€.
μ΄μ°½κΈ° μ»΄ν¨ν° vs μΌκ΄μ²λ¦¬ μμ€ν
μ΄μ°½κΈ° μ»΄ν¨ν°μ λ¬Έμ μ :
- ν μμ μ΄ λλ λκΉμ§ CPUκ° μ무κ²λ λͺ» νκ³ κΈ°λ€λ €μΌ νμ.
- μμ
μ΄ λλλ©΄ μ¬λμ΄ μ§μ λ€μ μμ
μ μ€νν΄μΌ νμ.
→ μ¦, μ²κ³΅μΉ΄λ(Job μΉ΄λ λ¬Άμ)λ₯Ό μ€νΌλ μ΄ν°μκ² μ λ¬νμ¬ μλμΌλ‘ μ€νν΄μΌ νμ. - CPUκ° λκ³ μλ μν(= μ ν΄ μν, Idle State) κ° κΈΈμμ.
μΌκ΄μ²λ¦¬ μμ€ν μ λ±μ₯κ³Ό λ³ν:
- μμ£Ό λͺ¨λν°(Resident Monitor) κ° νλ‘κ·Έλ¨ μ μ΄λ₯Ό μλμΌλ‘ λ겨μ€.
- λλΆμ μ€νΌλ μ΄ν°μ κ°μ μμ΄ μλ μ€ν κ°λ₯ν΄μ§.
- κ·Έλ¬λ μ¬μ ν μ¬λμ΄ μμ μ μ΄ μΉ΄λ(Control Card)λ₯Ό μμ£Ό λͺ¨λν°μ μ λ ₯ν΄μΌ νμ.
μΌκ΄μ²λ¦¬ μμ€ν μ νκ³
- CPUκ° κ° μμ μ μ€νν λ μμ€ν μ λ μ νλ ꡬ쑰μμ.
- μ¦, ν μμ μ΄ μ€νλλ λμ, λ€λ₯Έ μμ μ λμμ μ€νν μ μμμ.
- κ²°κ³Όμ μΌλ‘ CPUκ° μ ν΄ μν(Idle State)μ λΉ μ§λ λΉν¨μ¨μ μΈ κ΅¬μ‘°κ° λ¨μμμμ.
2) λ€μ€ νλ‘κ·Έλλ° μμ€ν (multiprogramming system)
μ€μμ²λ¦¬μ₯μΉ(CPU)μ μ΄μ©λ₯ μ κ·ΉλννκΈ° μν΄ κ°λ°λ μ΄μ체μ κΈ°λ²μ΄λ€.
μ¬λ¬ κ°μ νλ‘κ·Έλ¨μ΄ CPUμμ λμμ μ€νλλ κ²μ²λΌ 보μ΄μ§λ§, μ€μ λ‘λ λΉ λ₯΄κ² λ²κ°μ κ°λ©° μ€ννλ λ°©μμ΄λ€.
μ΄λ₯Ό ν΅ν΄ CPUκ° μ¬λ μκ°(μ ν΄ μκ°, Idle Time)μ μ΅μννκ³ , ν¨μ¨μ μΌλ‘ λμν μ μλλ‘ νλ€.
π μ¦, λ€μ€ νλ‘κ·Έλλ° μμ€ν
μμλ μ£ΌκΈ°μ΅μ₯μΉ(RAM)μ μ μ¬λ μ¬λ¬ νλ‘κ·Έλ¨(μ¬μ©μκ° μ€νν νλ‘κ·Έλ¨ ν¬ν¨)μ CPUκ° λΉ λ₯΄κ² μ ν(Switching)νλ©° μ€ννλ€.
π μ¬μ©μκ° μ¬λ¬ νλ‘κ·Έλ¨μμ λμμ μ
λ ₯(Input)μ μ£ΌλλΌλ, μ΄μ체μ κ° ν¨μ¨μ μΌλ‘ CPUλ₯Ό μ€μΌμ€λ§νμ¬ λ²κ°μ κ°λ©° μ€ννλ€.
π μ΄λ κ² νλ©΄ CPUκ° μ¬μ§ μκ³ μ§μμ μΌλ‘ μλ‘μ΄ μμ
μ μνν μ μλ€.
μ΄λ₯Ό μν΄ μ€μΌμ€λ§ κΈ°λ², κ΅μ°© μν λ¬Έμ , λ³ν μ μ΄ λ° λ³΄νΈ, κΈ°μ΅ μ₯μΉ κ΄λ¦¬ κΈ°λ², μ€μμ²λ¦¬ κ΄λ¦¬ κΈ°λ² λ±μ κ³ λ €ν΄μΌ νλ€. (λμ€μ λ€λ£° μμ )
ex) μ νλΈμμ λμμμ ν΄λ¦νκ³ ν¬λ‘¬μμ κ²μνλ μν©.
μ¬μ©μκ° νλ νλ
1οΈβ£ μ νλΈμμ λμμμ ν΄λ¦νλ€.
2οΈβ£ λμμμ΄ λ‘λ©(λ²νΌλ§) λλ λμ, ν¬λ‘¬μμ λ€μ΄λ² κ²μμ μ
λ ₯νλ€.
3οΈβ£ μ νλΈκ° μ¬μμ μμνκ³ , ν¬λ‘¬μμ κ²μ κ²°κ³Όκ° λ¬λ€.
π‘ μ΄ κ³Όμ μμ CPUκ° μ νλΈμ ν¬λ‘¬μ λ²κ°μ κ°λ©° μ€ν(Switching)νλ©΄μ CPUλ₯Ό ν¨μ¨μ μΌλ‘ νμ©
μ νλΈ & ν¬λ‘¬μ μν λ³ν (μ΄μ체μ μ μ₯μμ)
μμ | νλ‘κ·Έλ¨ | μ¬μ©μμ νλ | μ΄μ체μ μμμ μν λ³ν |
1οΈβ£ | μ νλΈ | λμμ ν΄λ¦ | μ νλΈ: Ready (μ€λΉ μν) → CPU ν λΉ λκΈ° μ€ |
2οΈβ£ | μ νλΈ | λμμ νμ΄μ§ μ΄λ¦¬λ μ€ | μ νλΈ: Running (μ€ν μν) → CPUκ° μ€μ λ‘ λμ |
3οΈβ£ | μ νλΈ | λ‘λ© νλ©΄ (λ²νΌλ§ μ€) | μ νλΈ: Waiting (λκΈ° μν) → λ€νΈμν¬ μλ΅ κΈ°λ€λ¦¬λ μ€ |
4οΈβ£ | ν¬λ‘¬ | μ¬μ©μκ° λ€μ΄λ² κ²μμ΄ μ λ ₯ | ν¬λ‘¬: Ready (μ€λΉ μν) → CPU ν λΉ λκΈ° μ€ |
5οΈβ£ | ν¬λ‘¬ | κ²μ λ²νΌ ν΄λ¦ → κ²μ μ€ν | ν¬λ‘¬: Running (μ€ν μν) → CPUκ° μ€μ λ‘ κ²μ μ€ν |
6οΈβ£ | ν¬λ‘¬ | κ²μ κ²°κ³Ό λ‘λ© μ€ | ν¬λ‘¬: Waiting (λκΈ° μν) → λ€νΈμν¬ μλ΅ κΈ°λ€λ¦¬λ μ€ |
7οΈβ£ | μ νλΈ | λ‘λ© μλ£, μμ μ¬μ μμ | μ νλΈ: Ready → Running (CPU μ€ν μ€) |
8οΈβ£ | ν¬λ‘¬ | κ²μ κ²°κ³Ό νμλ¨ | ν¬λ‘¬: Ready → Running (CPU μ€ν μ€) |
π‘ μ¦, μ΄μ체μ λ CPUκ° λμ§ μλλ‘ μ νλΈμ ν¬λ‘¬μ λ²κ°μ κ°λ©° μ€ν(Switching)νλ κ²μ.
μ°Έκ³ νκΈ°: μ΄μ체μ μ μν 3κ°μ§
νλ‘μΈμ€ μν | μ€λͺ |
μ€λΉ μν (Ready State) | RAMμ μμ§λ§ μμ§ CPUλ₯Ό λ°μ§ λͺ»ν μν (λκΈ° μ€) (μ¬μ©μκ° inputμ μ£Όλ μκ°) |
μ€ν μν (Running State) | CPUκ° νμ¬ μ€ν μ€μΈ μν |
λκΈ° μν (Waiting/Blocked State) | I/O μμ (μ: νμΌ μ½κΈ°, λ€νΈμν¬ μμ²) λλ¬Έμ CPUλ₯Ό λͺ» μ°κ³ κΈ°λ€λ¦¬λ μν (μ μ₯ μ€) |
μΌκ΄μ²λ¦¬ μμ€ν vs λ€μ€ νλ‘κ·Έλλ° μμ€ν
[μΌκ΄μ²λ¦¬ μμ€ν ]
1οΈβ£ κΈμ¬ κ³μ° (CPU) → λλ ν → λμ€ν¬ μ μ₯ (I/O, CPU μ ν΄)
2οΈβ£ λμ€ν¬ μ μ₯νλ λμ CPUκ° μ무κ²λ λͺ»νκ³ κΈ°λ€λ¦Ό (μ ν΄ μν)
3οΈβ£ λμ€ν¬ μ μ₯ λλλ©΄ λ€μ μ§μ κΈμ¬ κ³μ° μμ
β‘οΈ CPUκ° I/Oλ₯Ό κΈ°λ€λ¦¬λ λμ μ무κ²λ λͺ» ν¨.
[λ€μ€ νλ‘κ·Έλλ° μμ€ν ]
1οΈβ£ κΈμ¬ κ³μ° (CPU) → I/O μ μ₯νλ λμ, λ€λ₯Έ μ§μ κΈμ¬ κ³μ° μμ
2οΈβ£ I/O μμ
μ΄ λλλ©΄ μ μ₯ μλ£νκ³ λ€μ μμ
μ€ν
3οΈβ£ CPUκ° μ¬μ§ μκ³ κ³μ μμ
μ μνν¨
β‘οΈ CPUκ° μ ν΄ μν μμ΄ κ³μ μ¬μ©λ¨ → ν¨μ¨μ΄ μ¬λΌκ°.
3) μλΆν μμ€ν (time-sharing system)
λ€μ€ νλ‘κ·Έλλ° μμ€ν μ΄ νμ₯λ νν.
μ¬λ¬ μ¬μ©μκ° μ»΄ν¨ν°λ₯Ό λμμ μ¬μ©νλ κ²μ²λΌ 보μ΄κ² νλ μ΄μ체μ κΈ°λ².
μ¬μ©μλ‘ νμ¬κΈ μμ λ§μ΄ μ»΄ν¨ν° μμ€ν μ λ μ νμ¬ μ¬μ©νκ³ μλ λ―ν μ°©κ°μ΄λ νμμ κ°μ§κ² νλ€.
μ€μ λ‘λ CPU μκ°μ μͺΌκ°μ(Time-Sharing), κ° μ¬μ©μμκ² λ²κ°μ ν λΉνλ λ°©μμ΄λ€.
π μ¦, ν μ¬μ©μλ§ λ μ νμ§ μκ³ , μ¬λ¬ μ¬μ©μκ° ν°λ―Έλμ ν΅ν΄ λμμ μ¬μ©ν μ μλλ‘ λ§λ μμ€ν μ΄λ©° μ¬μ©μκ° μ§μ μ»΄ν¨ν°μ μ μ΄ν μ μλλ‘ νκΈ° μν΄ κ°λ°λμλ€.
μλΆν μμ€ν μ΄ λμνλ λ°©μ??
β
μ¬μ©μκ° ν°λ―Έλμμ λͺ
λ Ήμ΄λ₯Ό μ
λ ₯νλ©΄, ν΄λΉ λͺ
λ Ήμ΄ μ΄μ체μ λ‘ μ λ¬λ¨.
β
μ΄μ체μ κ° "μκ° ν λΉ(Time Slice)"μ μ€μ νκ³ , CPUκ° ν΄λΉ μ¬μ©μμκ² μΌμ μκ° λμ μ€ν κΈ°νλ₯Ό μ€.
β
μ ν΄μ§ μκ°μ΄ μ§λλ©΄, μ΄μ체μ λ λ€μ μ¬μ©μμκ² CPUλ₯Ό λ겨μ€. (컨ν
μ€νΈ μ€μμΉ)
β
μ΄ κ³Όμ μ΄ λ§€μ° λΉ λ₯΄κ² λ°λ³΅λλ©΄μ, μ¬λ¬ μ¬μ©μκ° λμμ μ¬μ©νλ κ²μ²λΌ 보μ΄κ² λ¨.
λ€μ€ νλ‘κ·Έλλ° μμ€ν | μλΆν μμ€ν | |
λͺ©μ | CPU νμ©λλ₯Ό λμ΄κΈ° μν¨ | μ¬λ¬ μ¬μ©μκ° λμμ μ¬μ©νλλ‘ νκΈ° μν¨ |
μ¬μ©μ μΈν°νμ΄μ€ | μ¬μ©μκ° μ§μ μ‘°μνμ§ μμ (λ°±κ·ΈλΌμ΄λ μ€ν) | ν°λ―Έλμ ν΅ν΄ μ§μ μ λ ₯ κ°λ₯ |
CPU ν λΉ λ°©μ | νλ‘κ·Έλ¨λ³λ‘ CPUλ₯Ό ν λΉ | μ¬μ©μλ³λ‘ CPUλ₯Ό λ²κ°μ ν λΉ |
μλ΅ μλ | μμ μ΄ λλ λκΉμ§ κΈ°λ€λ €μΌ ν¨ | 짧μ μκ° λ΄μ μλ΅μ΄ λμμ΄ |
μμ | μλ²μμ μ¬λ¬ κ°μ λ°±κ·ΈλΌμ΄λ νλ‘μΈμ€ μ€ν | μ¬λ¬ μ¬μ©μκ° λμμ 리λ μ€ ν°λ―Έλ μ¬μ© |
λνμ μΈ μλΆν μμ€ν μμ
리λ
μ€ μλ² ν°λ―Έλ (SSH μ μ) → μ¬λ¬ μ¬μ©μκ° μ격μΌλ‘ μ μν΄μ λμμ μ¬μ© κ°λ₯
μλμ° μ격 λ°μ€ν¬ν± (RDP) → μ¬λ¬ μ¬μ©μκ° νλμ μλ²μ μ μνμ¬ λμμ μ¬μ© κ°λ₯
AWS, Google Cloud κ°μ λ¨Έμ → ν΄λΌμ°λ μλ²μμ μ¬λ¬ μ¬μ©μκ° λμμ ν°λ―Έλ μ μ
λνκ΅ μλ² μμ€ν
(νμ¬κ΄λ¦¬, μ¨λΌμΈ μ½λ© νλ«νΌ) → μ¬λ¬ νμμ΄ λμμ λ‘κ·ΈμΈνμ¬ μ¬μ©
π‘ μ¦, μ°λ¦¬κ° μ격μΌλ‘ μλ²μ μ μν΄μ μ¬μ©νλ λλΆλΆμ μμ€ν μ΄ μλΆν μμ€ν κΈ°λ°μΌλ‘ λμν¨!
μλΆν μμ€ν μ μ₯λ¨μ
μ₯μ
β μ¬λ¬ μ¬μ©μκ° λμμ μ¬μ© κ°λ₯ → μ»΄ν¨ν° μμμ νμ©λ μ¦κ°
β μλ΅ μκ°μ΄ 보μ₯λ¨ → μ¬μ©μκ° λͺ
λ Ήμ μ
λ ₯νλ©΄ λΉ λ₯΄κ² μλ΅μ λ°μ μ μμ
β ν°λ―Έλμ ν΅ν΄ μ¬μ©μλ€μ΄ μ§μ μνΈμμ© κ°λ₯
π λ¨μ
β μ΄μ체μ κ° μ¬λ¬ μ¬μ©μμ μμμ 곡μ νκ² λ°°λΆν΄μΌ νλ―λ‘, μμ€ν
μ΄ λ³΅μ‘ν΄μ§κ³ κ΄λ¦¬ λΆλ΄μ΄ μ¦κ°νλ€.
β λν μλ΅ μκ°μ 보μ₯ν΄μΌ ν΄μ, κ°λ³ μμ
μλκ° λλ €μ§ μ μμ
β μ¬μ©μκ° λ§μμ§μλ‘ μμ€ν
λΆνκ° μ»€μ§
β 컨ν
μ€νΈ μ€μμΉ(μ¬μ©μ μ ν) λΉμ©μ΄ λ°μ
4) μ€μκ° μμ€ν (real-time system)
μ΄λ¦μμ μ μ μλ―μ΄ νΉμ μμ μ΄ λ°λμ μ ν΄μ§ μκ° μμ μ€νλμ΄μΌ νλ μ΄μ체μ μμ€ν μ΄λ€.
π μ¦, μλ΅μκ°μ΄ λ§€μ° μ€μνλ©°, μμ€ν μ΄ μ λ ₯(input)μ λ°μΌλ©΄ μ¦μ λ°μν΄μΌ νλ€.
μκ°μ μ΄κ³Όνλ©΄ μμ€ν μ€λ₯, μΉλͺ μ λ¬Έμ λ°μ κ°λ₯μ±μ΄ μλ€.
μκ°μ΄ μλͺ μΈ μμ€ν
ex) κ²μ(νΉν VR), μν μ€νΈλ¦¬λ°, μ§λ¬ΈμΈμκΈ°, μλ£ κΈ°κΈ°(Hard Real-Time System) λ±
μ€μκ° μμ€ν μ νΉμ§
β
μ ν΄μ§ μκ° λ΄μ λ°λμ μ€ν → μκ° μ΄κ³Ό μ μμ€ν
μ€λ₯ λ°μ κ°λ₯
β
κ³ μ μλ΅μ±(Real-Time Response) νμ → μ¦κ°μ μΈ λ°μ΄ν° μ²λ¦¬
β
μΌλ°μ μΈ μ΄μ체μ λ³΄λ€ λμ± μμ μ μΈ μ±λ₯ μꡬ
π‘ μ¦, μ€μκ° μμ€ν μ λ¨μν λΉ λ₯Έ κ² μλλΌ "μκ°μ μ΄κ³Όνλ©΄ μ λλ μμ€ν "
5. λ€μ€ μ²λ¦¬ μμ€ν (multiprocessing system) - μλμ μΌλ‘ λ μ€μ
CPU(νλ‘μΈμ)κ° 2κ° μ΄μ μλ μμ€ν
λ³λ ¬ κ³μ°(Parallel Processing)μ΄ κ°λ₯νμ¬ μμ
μλ ν₯μ
ν CPUκ° κ³ μ₯ λλ λ€λ₯Έ CPUκ° μμ
μ κ³μ μνν μ μμ΄ μ λ’°μ±(Reliability)μ΄ λμμ§
CPU κ°μ μ°κ²° λ°©μ(λ°μ°©λ κ²°ν© vs λμ¨ν κ²°ν©)μ λ°λΌ μμ€ν
κ΅¬μ‘°κ° λ¬λΌμ§
π μ¦, λ€μ€ μ²λ¦¬ μμ€ν μ λ¨μν CPU μ¬λ¬ κ°λ₯Ό μ¬μ©νλ κ² μλλΌ, CPU κ°μ νλ ₯ λ°©μκ³Ό λ©λͺ¨λ¦¬ 곡μ λ°©μμ λ°λΌ μ€κ³κ° λ€λ¦
λ€μ€ νλ‘κ·Έλλ° vs λ€μ€ μ²λ¦¬ μμ€ν μ°¨μ΄
λ€μ€ νλ‘κ·Έλλ° μμ€ν
→ CPU νλκ° μ¬λ¬ μμ
μ λΉ λ₯΄κ² λ²κ°μ μ€ν (Switching)
λ€μ€ μ²λ¦¬ μμ€ν
→ CPUκ° μ¬λ¬ κ°λΌμ μ§μ§ μ¬λ¬ μμ
μ λμμ μ€ν κ°λ₯
λ€μ€ μ²λ¦¬ μμ€ν μ μ’ λ₯
λμΉ λ€μ€ μ²λ¦¬ (SMP, Symmetric Multiprocessing)
β μ¬λ¬ κ°μ CPUκ° νλμ μ΄μ체μ (OS)μμ λμΌν λ©λͺ¨λ¦¬ & μμμ 곡μ νλ©° λμ
β λͺ¨λ CPUκ° λλ±ν μν μ μνν¨.
β μΌλ°μ μΈ PC, λ
ΈνΈλΆ, μλ², μ€λ§νΈν°μ λ©ν°μ½μ΄ CPUκ° ν΄λΉλ¨.
λΉλμΉ λ€μ€ μ²λ¦¬ (AMP, Asymmetric Multiprocessing)
β μ¬λ¬ κ°μ CPUκ° μμ§λ§, ν κ°μ CPUκ° μ€μμμ κ΄λ¦¬νκ³ , λλ¨Έμ§ CPUλ νΉμ μμ
λ§ μν
β λ§μ€ν°-μ¬λ μ΄λΈ(Master-Slave) ꡬ쑰 → ν CPUκ° λλ¨Έμ§ CPUλ₯Ό ν΅μ ν¨.
β μ΄κΈ° μνΌμ»΄ν¨ν°, μΌλΆ μλ² λλ μμ€ν
μμ μ¬μ©λ¨.
μ¦, μ°λ¦¬κ° νν μ¬μ©νλ PC, μλ², μ€λ§νΈν°μ "λμΉ λ€μ€ μ²λ¦¬(SMP)" λ°©μ
λ€μ€ μ²λ¦¬ μμ€ν μ ν΅μ¬ κ°λ
1) 곡μ κΈ°μ΅ μ₯μΉ(Shared Memory)
μ¬λ¬ CPU(νλ‘μΈμ)κ° νλμ λ©λͺ¨λ¦¬(곡μ λ©λͺ¨λ¦¬)λ₯Ό μ¬μ©νλ λ°©μ
CPU κ° λΉ λ₯Έ λ°μ΄ν° κ΅νμ΄ κ°λ₯ → μ±λ₯ ν₯μ
νμ§λ§ μ¬λ¬ CPUκ° λμμ μ κ·Όν λ μΆ©λ(κ²½μ) λ¬Έμ κ° λ°μν μ μμ
π‘ μ¦, λ€μ€ μ²λ¦¬ μμ€ν μμ CPUλ€μ΄ νλμ 곡μ λ©λͺ¨λ¦¬λ₯Ό μ¬μ©νλ©΄, λ°μ΄ν°λ₯Ό λΉ λ₯΄κ² μ£Όκ³ λ°μ μ μμ§λ§ μΆ©λ κ΄λ¦¬κ° νμν¨
2) λ€μ€ μ²λ¦¬κΈ°(Multiprocessor)
2κ° μ΄μμ CPU(νλ‘μΈμ)λ₯Ό μ¬μ©νμ¬ λ³λ ¬λ‘ μμ
μ μ²λ¦¬νλ μμ€ν
λͺ¨λ CPUκ° μ΄μ체μ (OS) μλμμ νλμ μμ€ν
μ²λΌ λμ
CPU κ° κ²°ν© λ°©μμ λ°λΌ λ°μ°©λ κ²°ν©(Tightly Coupled)κ³Ό λμ¨ν κ²°ν©(Loosely Coupled)μΌλ‘ λλ¨
π‘ μ¦, λ€μ€ μ²λ¦¬κΈ°λ μ¬λ¬ κ°μ CPUκ° νλμ μμ€ν μμ λ³λ ¬λ‘ μ°μ°νλ κ²μ μλ―Έν¨
3) λ°μ°©λ κ²°ν© μμ€ν (Tightly Coupled System)
μμ€ν
μ΄μ νκ²½ μ€ νλ.
μ¬λ¬ κ°μ CPUκ° νλμ μ΄μ체μ (OS)λ₯Ό 곡μ
λͺ¨λ CPUκ° νλμ 곡μ λ©λͺ¨λ¦¬λ₯Ό μ¬μ©
CPU κ° λ°μ΄ν° κ΅ν μλκ° λΉ λ¦ → λ³λ ¬ μ°μ°μ μ 리ν¨
- λ©ν°μ½μ΄ νλ‘μΈμ (Intel i9, AMD Ryzen 9) → μ½μ΄ μ¬λ¬ κ°κ° νλμ λ©λͺ¨λ¦¬λ₯Ό 곡μ
- μνΌμ»΄ν¨ν° (κ³ μ λ³λ ¬ μ°μ° μμ€ν )
π‘ μ¦, λ°μ°©λ κ²°ν© μμ€ν μ CPUλ€μ΄ νλμ μ΄μ체μ μ λ©λͺ¨λ¦¬λ₯Ό 곡μ νλ©° λΉ λ₯΄κ² νλ ₯νλ ꡬ쑰
4) λμ¨ν κ²°ν© μμ€ν (Loosely Coupled System)
μμ€ν μ΄μ νκ²½ μ€ νλ.
κ° CPU(νλ‘μΈμ)λ§λ€ λ
립μ μΈ λ©λͺ¨λ¦¬μ μ΄μ체μ (OS)λ₯Ό κ°μ§
CPU κ° λ€νΈμν¬(λ©μμ§ ν¨μ±)λ₯Ό ν΅ν΄ λ°μ΄ν°λ₯Ό μ£Όκ³ λ°μ
CPU κ° μΆ©λ λ¬Έμ λ μμ§λ§, λ°μ΄ν° κ΅ν μλκ° μλμ μΌλ‘ λλ¦Ό
λκ·λͺ¨ λΆμ° μμ€ν
μμ λ§μ΄ μ¬μ©λ¨
- ν΄λ¬μ€ν° μλ² (Cluster Computing) → μ¬λ¬ λμ μ»΄ν¨ν°κ° νλμ λ€νΈμν¬λ‘ μ°κ²°λ¨
- λΆμ° μμ€ν (Distributed System) → ꡬκΈ, λ€μ΄λ², AWS λ°μ΄ν°μΌν°
π‘ μ¦, λμ¨ν κ²°ν© μμ€ν μ CPUλ€μ΄ λ 립μ μΌλ‘ λμνλ©΄μ λ€νΈμν¬λ‘ νλ ₯νλ ꡬ쑰
5) μ λ’°μ±(Reliability)
λ€μ€ μ²λ¦¬ μμ€ν
μμλ ν CPUκ° κ³ μ₯ λλ λ€λ₯Έ CPUκ° λμ μμ
μ μν κ°λ₯!
λ°μ°©λ κ²°ν© μμ€ν
μ CPU κ° κ²°ν©μ΄ κ°ν΄μ, νλκ° μ£½μΌλ©΄ λ€λ₯Έ CPUλ μν₯μ λ°μ κ°λ₯μ±μ΄ μμ
λμ¨ν κ²°ν© μμ€ν
μ CPUλ€μ΄ λ
립μ μΌλ‘ λμνλ―λ‘, ν μμ€ν
μ΄ κ³ μ₯ λλ μ 체 μμ€ν
μ΄ λ©μΆμ§ μμ
π‘ μ¦, λμ¨ν κ²°ν© μμ€ν μ΄ λ°μ°©λ κ²°ν© μμ€ν λ³΄λ€ μ λ’°μ±μ΄ λ λμ
6) λ³λ ¬ κ³μ°(Parallel Processing)
μ¬λ¬ κ°μ CPUκ° λμμ μμ
μ λλ μ μ²λ¦¬νλ λ°©μ
CPUλ₯Ό λ§μ΄ μ¬μ©ν μλ‘ μ°μ° μλκ° λΉ¨λΌμ§
μνΌμ»΄ν¨ν°, μΈκ³΅μ§λ₯(AI), λΉ
λ°μ΄ν° λΆμ λ±μ νμμ μΈ κΈ°μ
- AI λ₯λ¬λ νμ΅ (TensorFlow, PyTorch) → GPU & TPUλ₯Ό νμ©ν λ³λ ¬ μ°μ°
- κΈ°μ μμΈ‘ (μνΌμ»΄ν¨ν°) → μμ²λ λ°μ΄ν°λ₯Ό λμμ μ²λ¦¬ν΄μΌ ν¨
- κ²μ κ·Έλν½ μ²λ¦¬ (RTX 4090 GPU) → μμ² κ°μ μ½μ΄κ° λ³λ ¬λ‘ μ°μ°
π‘ μ¦, λ³λ ¬ κ³μ°μ΄ κ°λ₯ν λ€μ€ μ²λ¦¬ μμ€ν μ AI, κ·Έλν½, κ³Όν μ°κ΅¬μμ νμμ μΈ κΈ°μ
6. κ°μΈμ© μ»΄ν¨ν° μμ€ν (personal computer system) - μλμ μΌλ‘ λ μ€μ
κ°μΈμ© μ»΄ν¨ν°λ λν μμ€ν λ³΄λ€ μκ³ κ°μ΄ μΌ μ΄μν μ»΄ν¨ν°λ₯Ό μλ―Ένλ€.
κ°μΈμ© μ»΄ν¨ν° μμ€ν μ κ°μΈμ΄ λ 립μ μΌλ‘ μ¬μ©νλ μ΄μ체μ μμ€ν
κ·Έλν½ μ¬μ©μ μΈν°νμ΄μ€(GUI)λ₯Ό κ°μ‘°νμ¬ μ¬μ©μκ° μ½κ² μ‘°μν μ μλλ‘ μ€κ³λ¨
λ€νΈμν¬ μ°κ²°(μΈν°λ· μ¬μ©)μ΄ κ°λ₯νμ§λ§, μλ²μ²λΌ λ€μμ μ¬μ©μλ₯Ό μ²λ¦¬νλλ‘ μ΅μ νλμ§ μμ
π μ¦, κ°μΈμ΄ νΈνκ² μ¬μ©ν μ μλλ‘ GUI & λ©ν°νμ€νΉ κΈ°λ₯μ΄ μ€μν νΉμ§
μλ²λ³΄λ€ 보μμ΄ μ½νκ³ , λλμ μ¬μ©μ μ²λ¦¬λ μ΄λ ΅μ§λ§ κ°μΈμ΄ μ¬μ©νκΈ° νΈλ¦¬ν¨
κ°μΈμ© μ»΄ν¨ν° μμ€ν μ μ’ λ₯
1) λ°μ€ν¬ν± μ΄μ체μ
μΌλ°μ μΈ κ°μ μ© PC & λ
ΈνΈλΆμμ μ¬μ©
λνμ μΈ μμ : Windows, macOS, Ubuntu(Linux)
2) λͺ¨λ°μΌ μ΄μ체μ
μ€λ§νΈν° & νλΈλ¦Ώμμ μ¬μ©
λνμ μΈ μμ : Android, iOS
3) ν¬λ‘¬λΆ & κ²½λ OS
ν΄λΌμ°λ μ€μ¬μΌλ‘ λμνλ κ²½λ μ΄μ체μ
λνμ μΈ μμ : ChromeOS (κ΅¬κΈ ν¬λ‘¬λΆ)
π‘ μ¦, κ°μΈμ© μ»΄ν¨ν° μμ€ν μ "λ°μ€ν¬ν± + λͺ¨λ°μΌ + κ²½λ OS"λ‘ λλ¨!
7. λΆμ° μ²λ¦¬ μμ€ν (distributed processing)
νλμ μ»΄ν¨ν°(μλ²)λ§ μ¬μ©νλ κ²μ΄ μλλΌ, μ¬λ¬ κ°μ μ»΄ν¨ν°κ° λ€νΈμν¬λ‘ μ°κ²°λμ΄ μμ
μ λΆλ΄νλ μμ€ν
μ¦, μμ
μ μ¬λ¬ μ»΄ν¨ν°κ° λλ μ μ²λ¦¬ν¨μΌλ‘μ¨ μλλ₯Ό λμ΄κ³ , νλκ° κ³ μ₯ λλ λ€λ₯Έ μ»΄ν¨ν°κ° λμ ν μ μλλ‘ ν¨.
λ©ν°μ½μ΄ CPUκ° μ¬λ¬ κ°μ μ°μ°μ μ²λ¦¬νλ κ²μ²λΌ, μ¬λ¬ κ°μ μ»΄ν¨ν°κ° νλ ₯νμ¬ μμ
μ μννλ κ°λ
π μ¦, μ¬λ¬ λμ μ»΄ν¨ν°κ° νλμ μμ€ν μ²λΌ λμνλ ꡬ쑰
β
ν λμ μ»΄ν¨ν°(μλ²)λ§ μ¬μ©νλ©΄ νκ³κ° μμ.
β
μ°μ°λμ΄ λ§μμ§λ©΄ νλμ μ»΄ν¨ν°κ° κ°λΉνκΈ° μ΄λ €μμ§.
β
ν μ»΄ν¨ν°κ° κ³ μ₯ λλ©΄ μμ€ν
μ μ²΄κ° λ©μΆ μνμ΄ μμ.
β
μ¬λ¬ κ°μ μ»΄ν¨ν°(μλ²)λ₯Ό λ€νΈμν¬λ‘ μ°κ²°ν΄μ νλ ₯νλ©΄ λ λΉ λ₯΄κ³ μμ μ μΈ μμ€ν
μ λ§λ€ μ μμ
ex) μ λ²μ 곡λΆνλ MSA(Microservices Architecture)λ λΆμ°μ²λ¦¬ μμ€ν μ ν ννμ. λΆμ° μμ€ν μ νμ©ν μννΈμ¨μ΄ κ°λ° λ°©μ
κ΅¬κΈ & λ€μ΄λ² κ²μ μμ§ → μλ§μ μλ²κ° κ²μ μμ²μ λλ μ μ²λ¦¬
AWS & λ€μ΄λ² ν΄λΌμ°λ → μλ²λ₯Ό λΆμ° λ°°μΉνμ¬ νΈλν½μ λλ μ²λ¦¬
μ¨λΌμΈ κ²μ μλ² (λ°°νκ·ΈλΌμ΄λ, λ‘€, λ©μ΄νμ€ν 리) → μ μΈκ³ μ¬μ©μ μ μμ μ¬λ¬ κ°μ μλ²κ° μ²λ¦¬
μ νλΈ & λ·νλ¦μ€ → λμμμ μ¬λ¬ μλ²κ° λλ μ μ€νΈλ¦¬λ°
λΈλ‘μ²΄μΈ & λΉνΈμ½μΈ → μ€μ μλ² μμ΄ P2P λ°©μμΌλ‘ κ±°λ κ²μ¦
8. λ©ν°λ―Έλμ΄ μμ€ν (multimedia system)
μμ(Video), μμ±(Audio), μ΄λ―Έμ§(Image), μ λλ©μ΄μ
(Animation), κ·Έλν½(3D λ±) λ± λ€μν λ©ν°λ―Έλμ΄ λ°μ΄ν°λ₯Ό μ²λ¦¬νλ μμ€ν
κΈ°μ‘΄μ μ΄μ체μ λ³΄λ€ λ λΉ λ₯Έ λ°μ΄ν° μ²λ¦¬ & μ€μκ° μ¬μ κΈ°λ₯μ΄ νμ
λ€νΈμν¬ νκ²½μμλ λλμ λ©ν°λ―Έλμ΄ λ°μ΄ν°λ₯Ό λκΉ μμ΄ μ μ‘ν΄μΌ ν¨
μλμ°, macOS, 리λ μ€, μλλ‘μ΄λ, iOS κ°μ νλ OSλ μ λΆ λ©ν°λ―Έλμ΄ κΈ°λ₯μ ν¬ν¨ν¨
π μ¦, μ νλΈ, λ·νλ¦μ€, μ€(Zoom), VR/AR κ°μ μλΉμ€κ° λ©ν°λ―Έλμ΄ μμ€ν κΈ°λ°μΌλ‘ λμν¨!
λ©ν°λ―Έλμ΄ μμ€ν μ νΉμ§
β
λλμ λ°μ΄ν° μ²λ¦¬ νμ → μμ, μμ± λ°μ΄ν°λ ν¬κΈ°κ° 컀μ λΉ λ₯Έ μ°μ° νμ
β
μ€μκ° μ±λ₯ μ€μ → λμμ μ€νΈλ¦¬λ°, νμνμ λ± μ€μκ°μΌλ‘ λκΉ μμ΄ μ¬μν΄μΌ ν¨
β
κ³ μ μ
μΆλ ₯(I/O) νμ → HDDλ³΄λ€ λΉ λ₯Έ SSD, RAM μΊμ νμ©
β
λ€μν λ―Έλμ΄ λκΈ°ν(Synchronization) → μμ & μμ±μ΄ μ΄κΈλμ§ μλλ‘ λκΈ°ν
π‘ μ¦, λ©ν°λ―Έλμ΄ μμ€ν μ λΉ λ₯Έ μ°μ°, μ€μκ° μ²λ¦¬, λμ©λ λ°μ΄ν° μ²λ¦¬κ° ν΅μ¬!
μ΄μ체μ κ° ν¬ν¨νλ λ©ν°λ―Έλμ΄ κΈ°λ₯
λ©ν°λ―Έλμ΄ νμΌ ν¬λ§· μ§μ (MP4, MP3, WAV, JPEG, PNG λ±)
λΉλμ€ & μ€λμ€ λμ½λ© κΈ°λ₯ (μ½λ± μ§μ, νλμ¨μ΄ κ°μ)
κ·Έλν½ λ λλ§ & 3D μ²λ¦¬ μ§μ (DirectX, OpenGL, Vulkan λ±)
λ©ν°λ―Έλμ΄ μ€νΈλ¦¬λ° & λ€νΈμν¬ μ μ‘ μ§μ (YouTube, Netflix)
VR/AR & κ²μ΄λ° μ΅μ ν κΈ°λ₯
9. μλ² λλ μμ€ν (embedded system)
νΉμ κΈ°λ₯μ μννκΈ° μν΄ νλμ¨μ΄ & μννΈμ¨μ΄κ° κ²°ν©λ μμ€ν (λ§μ΄ν¬λ‘νλ‘μΈμ λλ λ§μ΄ν¬λ‘컨νΈλ‘€λ¬λ₯Ό λ΄μ₯)
μ¬μ©μκ° μ§μ μ‘°μνλ κ² μλλΌ, μΌλ° PC(λ²μ© μ»΄ν¨ν°)μ λ€λ₯΄κ² νΉμ λͺ©μ μ λ§κ² μλμΌλ‘ λμ
μΌλ°μ μΈ μ»΄ν¨ν°(PC, λ ΈνΈλΆ)μ λ€λ₯΄κ², νΉμ μ₯μΉμ λ΄μ₯(Embed)λμ΄ μμ
λ΄μ₯ν μ»΄ν¨ν°.
μ΄μ체μ λ μΌλ°μ μΈ Windows, macOS, Linux, Android μ λ¬λ¦¬ μ μ© OS νΉμ νμ¨μ΄λ₯Ό μ¬μ©νλ€.
ex) μλμ°¨, μλ£κΈ°κΈ°, μ μμ ν, μλμ°¨, IoT κΈ°κΈ°, 곡μ₯ μλν μ₯λΉ
μλ² λλ μμ€ν μ΄ μ€μν μ΄μ
νΉμ κΈ°λ₯μ μλμΌλ‘ μν → μ¬μ©μ κ°μ
μμ΄ λμ κ°λ₯
μ λ ₯ μλͺ¨κ° μ κ³ , μνν κ°λ₯ → λ°°ν°λ¦¬ κΈ°λ° λλ°μ΄μ€μ μ ν©
λλ μμ° κ°λ₯ → μ λ ΄ν λΉμ©μΌλ‘ λ€μν μ νμ μ μ© κ°λ₯
μ¦, μλν + μνν + μ μ λ ₯ νΉμ± λλ¬Έμ κ±°μ λͺ¨λ μ°μ μμ μ¬μ©λ¨!
μ± μ λ무 μ΄λ ΅κ² λμμμ΄μ μ§νΌν°νν μ§λ¬Έν΄κ°λ©΄μ μ 리ν΄λ΄€λ€.
κ·Έλλ λ무λ무 κΈΈλ€ !
π₯ μ΅μ’ μμ½ μ 리 π₯
β
μ΄μ체μ (OS, Operating System) = νλμ¨μ΄μ μ¬μ©μ κ°μ 맀κ°μ²΄ μν μ νλ μμ€ν
μννΈμ¨μ΄
β
λͺ©μ
- μ¬μ©μκ° μ»΄ν¨ν°λ₯Ό νΈλ¦¬νκ² μ¬μ©νλλ‘ μ§μ
- νλμ¨μ΄μ λͺ¨λ μμμ ν¨μ¨μ μΌλ‘ κ΄λ¦¬ (μμ ν λΉ, μ μΆλ ₯ μ₯μΉ μ μ΄ λ±)
π’ 1) μΌκ΄ μ²λ¦¬ μμ€ν
β
μ¬λ¬ μμ
μ λͺ¨μ ν λ²μ μ€ν → μ¬λ κ°μ
μ΅μν
β
λ¨μ : CPUκ° ν μμ
μ΄ λλ λκΉμ§ λκΈ° → μ ν΄ μκ° λ°μ
π’ 2) λ€μ€ νλ‘κ·Έλλ° μμ€ν
β
μ¬λ¬ νλ‘κ·Έλ¨μ λΉ λ₯΄κ² μ ν(Switching) νλ©° μ€ν → CPU νμ©λ₯ μ¦κ°
β
I/O μμ
μ€μλ CPUκ° λ€λ₯Έ μμ
μ μν κ°λ₯
β
μ νλΈ λμμ λ‘λ© μ€ ν¬λ‘¬ κ²μ μ€ν κ°λ₯
π’ 3) μλΆν μμ€ν
β
CPU μκ°μ μ¬λ¬ μ¬μ©μμκ² μͺΌκ°μ ν λΉ(Time-Slice) → μ¬μ©μκ° λ
μ νλ κ²μ²λΌ 보μ΄κ² ν¨
β
SSH μ격 μ μ, AWS κ°μ μλ², 리λ
μ€ μλ² ν°λ―Έλ
π’ 4) μ€μκ° μμ€ν
β
νΉμ μμ
μ΄ λ°λμ μ ν΄μ§ μκ° λ΄μ μ€ν → μκ° μ΄κ³Ό μ μμ€ν
μ€λ₯ λ°μ
β
μ: VR κ²μ, μλ£κΈ°κΈ°, μλμ°¨ ABS μμ€ν
, μ§λ¬Έ μΈμκΈ°
π’ 5) λ€μ€ μ²λ¦¬ μμ€ν
β
CPUκ° μ¬λ¬ κ° → λ³λ ¬ κ³μ° κ°λ₯, μ±λ₯ ν₯μ, μ λ’°μ± μ¦κ°
β
λμΉ λ€μ€ μ²λ¦¬(SMP) vs λΉλμΉ λ€μ€ μ²λ¦¬(AMP)
β
μνΌμ»΄ν¨ν°, AI νμ΅, λ©ν°μ½μ΄ νλ‘μΈμ
π’ 6) κ°μΈμ© μ»΄ν¨ν° μμ€ν
β
κ°μΈμ΄ λ
립μ μΌλ‘ μ¬μ© → GUI(κ·Έλν½ μΈν°νμ΄μ€) κ°μ‘°
β
Windows, macOS, Android, iOS
π’ 7) λΆμ° μ²λ¦¬ μμ€ν
β
μ¬λ¬ λμ μλ²κ° λ€νΈμν¬λ‘ μ°κ²° → νλμ μμ€ν
μ²λΌ λμ
β
AWS ν΄λΌμ°λ, κ΅¬κΈ κ²μ, λΈλ‘체μΈ, μ¨λΌμΈ κ²μ μλ²
β
MSA(Microservices Architecture)λ λΆμ° μμ€ν
μ ν νν
π’ 8) λ©ν°λ―Έλμ΄ μμ€ν
β
μμ, μμ±, κ·Έλν½μ λΉ λ₯΄κ² μ²λ¦¬ & μ€μκ° μ¬μ κ°λ₯
β
μ νλΈ, λ·νλ¦μ€, VR, κ²μ, νμνμ(Zoom, MS Teams)
β
κ³ μ μ
μΆλ ₯, λ©ν°λ―Έλμ΄ μ½λ± μ§μ, μ€νΈλ¦¬λ° μ΅μ ν νμ
π’ 9) μλ² λλ μμ€ν
β
νΉμ κΈ°λ₯μ μννλ μ₯μΉ λ΄λΆμ λ΄μ₯λ μμ€ν
→ μλμΌλ‘ λμ
β
λμ₯κ³ , μΈνκΈ°, μ€λ§νΈTV, μλμ°¨ λ€λΉκ²μ΄μ
, IoT κΈ°κΈ°
β
RTOS(μ€μκ° μ΄μ체μ ), Embedded Linux μ¬μ©
π₯ μ΅μ’ μ 리: μ΄μ체μ ν΅μ¬ 3μ€ μμ½
β
μ΄μ체μ (OS)λ νλμ¨μ΄ & μ¬μ©μλ₯Ό μ°κ²°νλ μμ€ν
μννΈμ¨μ΄!
β
μ»΄ν¨ν° νκ²½μ λ°λΌ μ΄μ체μ μ ν(μΌκ΄ μ²λ¦¬, λ€μ€ νλ‘κ·Έλλ°, μλΆν λ±)μ΄ λ€λ¦!
β
νλ OS(Windows, macOS, Linux)λ λ©ν°λ―Έλμ΄ & λ€νΈμν¬ κΈ°λ°μΌλ‘ λ°μ μ€!
λλ λΉμ 곡μμ΄κΈ° λλ¬Έμ cs 곡λΆλ ννμ΄ μμμ ν΄μΌνλ€.
κ·Έλμ cs 곡λΆλ₯Ό νκΈ° μν΄μ μ€κ³ λ‘ μ± μ ꡬ맀νλ€.
κ΅μ¬ νμμλ μ¨λΌμΈ κ°μλ λ§μ§λ§ (λ°ν¨κ²½ κ΅μλ κ°μ 5κ° μ λ λ€μ΄λ΄ γ γ γ )
물리μ μΈ κ΅μ¬κ° μμ΄μΌμ§λ§ ν΄λΉ κ³Όλͺ©μ μ μ μ κ°μ§λ νΈ
μ νλΈμμ μΆμ²λ°μ 'μ΄μ체μ ' (μλ₯μΆνμ¬) λ₯Ό μ€κ³ λ‘ κ΅¬λ§€νλ€. (κ°μ ν 2017.08.10)
μλ§ μ»΄ν¨ν° 곡νκ³Ό κ΅μ¬λ‘ μ°μ΄λ κ² κ°μ.
νμ§ λμμΈμ΄λ©°, λ¬Έμ²΄κ° μμ μ 곡μμ κ·Έ μ체μ΄λ€.
ν λμ μ½ν 리 μλ 볡μ‘μ€λ¬μ΄ λ΄μ© ν΄.
νκ΅ λ€λ λ 곡λΆνλ κ²μ²λΌ μ¬λ¬λ² λ°λ³΅ν΄μ λ΄μΌμ§
μλ¦Ό: *κ°μΈ κ³΅λΆ λͺ©μ μΌλ‘ μ 리ν κΈμ λλ€*
μ°Έκ³ ν μ± : μ΄μ체μ (λ°κ·μ, κΉμ°½μ, λ°°μΈν, μ΄μ€μ°, λ°νμ§ μ§μ) - μλ₯μΆν