[IT μΈνλΌ] Ch4 κΈ°λ³Έ μ΄λ‘ (ν, λ°°νμ μ μ΄, μν μ μ₯/λΉμ μ₯)
π <κ·Έλ¦ΌμΌλ‘ 곡λΆνλ IT μΈνλΌ κ΅¬μ‘°> λ₯Ό μ½κ³ κ·Έ λ΄μ©μ μ 리νμμ΅λλ€
ν
'ν(Queue)'λ μ°λ¦¬λ§λ‘ 'λκΈ° νλ ¬'μ΄λΌ ννν μ μλ€.
- ν(λκΈ° νλ ¬)μμλ μ€μ μ€ λλ κ°μ₯ λ§μ§λ§μ μκ³ , μ²λ¦¬λ μ λλΆν° μμλλ‘ λλ€.
- λ¨Όμ λ€μ΄μ¨ λ°μ΄ν°κ° λ¨Όμ λκ°λ ν λμμ FIFO(First In First Out) λ°©μμ΄λΌκ³ νλ€.
νλ μ»΄ν¨ν° μΈκ³μμ λ€μν κ³³μ νλ ¬μ΄ λ§λ€μ΄μ§λ€.
- CPU μ²λ¦¬λ₯Ό κΈ°λ€λ¦¬κ³ μλ νλ‘μΈμ€λ μ€λ λ νλ ¬
- νλ λμ€ν¬ λ±μ μ μ₯μ μ½κΈ° μ²λ¦¬λ₯Ό κΈ°λ€λ¦¬κ³ μλ I/O μꡬ νλ ¬
- λ€νΈμν¬ μ μ μ±λ¦½μ κΈ°λ€λ¦¬κ³ μλ μ μ μꡬ νλ ¬
μ΄λ CPUλ₯Ό κΈ°λ€λ¦¬κ³ μλ νλ‘μΈμ€ νλ ¬μ λ°ν(Run-Queue)λΌκ³ νλ€.
'λ°νμ μμΈ νλ‘μΈμ€ μλ₯Ό μ½μ΄ μλ‘ λλμ΄μ 1μ΄λΌλ©΄ λ¬Έμ μλ€' λΌλ κ²μ΄ μΌλ°μ μ΄λ€.
μ°Έκ³ λ‘, CPUμμ μ²λ¦¬ μ€μΈ νλ‘μΈμ€λ₯Ό λ°νλ‘ μΈμν μ§λ OS μ’ λ₯μ λ°λΌ λ¬λΌμ§λ€. 리λ μ€μμλ CPUμμ μ€ν μ€μΈ νλ‘μΈμ€λ λ°νλ‘ μΈμνλ€. OS 컀λμλ νλ‘μΈμ€ μ€μΌμ€λ¬λΌλ κΈ°λ₯μ΄ μμ΄μ λ°ν λ±μ κ΄λ¦¬νλ€.
νλ‘μΈμ€λ μ€λ λκ° μ¬μ©νλ λμμ΄ CPUκ° μλλΌ HDDλ©΄ λ°μ΄ν°λ² μ΄μ€μ λμ€ν¬ I/O μμκ° λλ€.
HDDλ λ°μ΄ν°κ° κΈ°λ‘λΌ μλ νΉμ μμΉμ μ‘μΈμ€ν΄μΌ νκΈ° λλ¬Έμ CPUμ²λΌ λΉμ΄ μλ€λ μ΄μ λ‘ λ€λ₯Έ κ²μ μ¬μ©ν μ μλ€. λν, 곡μ μ μ₯μμμλ μΌλ°μ μΌλ‘ μΊμλΌ λΆλ¦¬λ λ©λͺ¨λ¦¬λ₯Ό λ΄μ₯νκ³ μμ΄μ I/Oκ° λ°μνλ©΄ μΊμμ 보κ΄νκΈ° λλ¬Έμ κΈ°λ‘λκΈ°κΉμ§ κΈ°λ€λ¦¬μ§ μμλ λλ€.
λ°°νμ μ μ΄
λ°°νμ μ μ΄λ λ§ κ·Έλλ‘ 'λ€λ₯Έ κ²μ λ°°μ νλ μ μ΄'λ€.
μ»΄ν¨ν° μΈκ³μμ μμλ₯Ό λ€μ΄λ³΄λ©΄, μ§λ ¬ μ²λ¦¬μμλ λ°°νμ μ μ΄κ° νμ μμ§λ§, λ³λ ¬ μ²λ¦¬μμλ νμνλ€.
μ΄λ κ² λ°°νμ μ μ΄λ₯Ό νλ λΆλΆμ λ³λͺ© νμμ΄ λ°μνκΈ° μ½λ€.
μΌλ°μ μΌλ‘ OSλ DBMSλ λ³λ ¬ μ²λ¦¬λ₯Ό μν΄ λ°°νμ μ μ΄λ₯Ό μ¬μ©νλ€κ³ νλ€.
νΉμ§μ μ 리νλ©΄ λ€μκ³Ό κ°λ€.
- 볡μμ μ²λ¦¬κ° 곡μ μμ(CPU, λ©λͺ¨λ¦¬, λμ€ν¬ λ±)μ λμμ μ‘μΈμ€νλ©΄ λΆμΌμΉκ° λ°μν μ μκΈ° λλ¬Έμ λ°°νμ μ μ΄λ‘ 보νΈν΄ μ£Όμ΄μΌ νλ€.
- λ°°νμ μ μ΄μμλ νΉμ μ²λ¦¬κ° 곡μ μμμ μ΄μ©νκ³ μλ λμ λ€λ₯Έ μ²λ¦¬κ° μ΄μ©ν μ μκ² ν΄μ λΆμΌμΉκ° λ°μνμ§ μλλ‘ νλ€.
DBMSμμ μ¬μ©λλ λ°°νμ μ μ΄λ₯Ό μμ보μ.
1οΈβ£DBMSμ λ°°νμ μ μ΄μμλ λ§€μ° μ§§μ μκ° λμλ§ λ½(Lock)μ μ μ§νλ λμΉ(Latch)λΌλ κ²μ΄ μμ΄μ CPUμμ μλ―Έκ° μλ μ²λ¦¬λ₯Ό νλ©΄μ λκΈ°νλ λ°©μμ΄ μλ€. μ€νλ½(Spin-Lock)μ΄λΌκ³ λ λΆλ¦°λ€.
2οΈβ£ννΈ λΉκ΅μ μ₯μκ° λ½μ μ μ§νλλ‘ νλ₯Ό μ΄μ©ν΄μ κ΄λ¦¬νλ λ°©μμΈ μ¬λ¦½λ½(Sleep-Lock)μ΄λΌλ κ²λ μλ€.
3οΈβ£μ€νλ½μ CPUμμ μλ―Έ μλ μ²λ¦¬λ₯Ό λ°λ³΅νλ©΄μ λκΈ°νμ§λ§, λ¨μν κ³μ λ°λ³΅λ§ νλ κ²μ΄ μλλΌ μ€νν΄μ λ½μ ν보νμ§ λͺ»νλ©΄ μ¬λ¦½νλ λ± μν©μ λ°λΌ μ€νν μ§ μ¬λ¦½ν μ§λ₯Ό νλ¨νλ μ΄λν°λΈλ½(Adaptive-lock) λ°©μλ μλ€.
리λ μ€ μ»€λμ λΉ μ»€λλ½(Big Kernel Lock, BKL)μ΄λΌ λΆλ¦¬λ, νλμ μ€νλ½μΌλ‘ μ μ§λλ€.
컀λμ BKLμ΄ μ΄μ©λλ λΆλΆμμλ μ²λ¦¬κ° μ§λ ¬νλΌμ λμμ νλμ CPUλ§ μ»€λ μ½λλ₯Ό μ€νν μ μλ€. λ°λΌμ μ΄ λΆλΆμ΄ λ³λͺ© μ§μ μ΄ λκΈ° μ½λ€.
μν μ μ₯/ μν λΉμ μ₯
- μν μ μ₯(Stateful): μν μ 보λ₯Ό κ°μ§
- μ 보λ₯Ό λ§μ΄ κ°μ§κ³ μκΈ°μ μΈλΆνλ μ μ΄κ° κ°λ₯ν λ°λ©΄, κ΅¬μ‘°κ° λ³΅μ‘νλ€.
- μμ) ssh
- μ±ν λΉμ μ₯(Stateless): μν μ 보λ₯Ό κ°μ§μ§ μμ
- κ³ κΈ°λ₯μ μλμ§λ§, μνλ₯Ό κ³ λ €νμ§ μκΈ° λλ¬Έμ κ°λ¨νλ©° μ±λ₯μ΄λ μμ μ± μΈ‘λ©΄μμ μ°μνλ€.
- μμ) http
μ»΄ν¨ν° λ΄μμλ κ±°μ λͺ¨λ κ³³μ μν μ μ₯μ΄ μ¬μ©λκ³ μλ€. 볡μ‘ν μ²λ¦¬λ₯Ό ꡬννκΈ° μν΄ μν μ μ₯μ νμλΆκ°κ²°μ΄λ€.
μΌλ° CPUλ νλμ CPUμμ 볡μμ νλ‘μΈμ€λ₯Ό μ‘°κΈμ© μ²λ¦¬νλ€. μ΄ λλ¬Έμ νΉμ μμ μ μ§μ§λ‘ μ²λ¦¬λ₯Ό νκ³ μλ νλ‘μΈμ€λ 1CPUλΉ νλλ€.
μ²λ¦¬λ₯Ό νμ§ μλ νλ‘μΈμ€λ λκΈ° μνλ‘ μμ΄μΌ νλ€. μ΄λ₯Ό ν¨μ¨μ μΌλ‘ μ²λ¦¬νκΈ° μν΄ νλ‘μΈμ€μμλ μλμ κ°μ μνλ‘ μν μ μ΄λ₯Ό νλ€.
- κ°μ: μ΄λ€ λͺ λ Ήμ΄λ μ ν리μΌμ΄μ μ΄ μ€ννλ©΄ νλ‘μμ€κ° μμ±λλ©΄ μ€νλλ€.
- μ€ν κ°λ₯ μν: κ°μ₯ λ¨Όμ μ€ν νλΌ λΆλ¦¬λ μμ λκΈ° νλ ¬μ μ€μ μμΌ νλ€.
- μ€ν μν: μ°¨λ‘κ° λμμ€λ©΄ μ€ν μνλ‘ μ μ΄νκ³ μ ν리μΌμ΄μ μ μ²λ¦¬νλ€.
- νλμ CPUκ° λ μ νλ κ²μ΄ μλλΌ μΌμ λμ μ²λ¦¬νλ©΄ CPUλ₯Ό λ€μ μ΄λ©°, μ΄λ νλ‘μΈμ€λ λ€μ μμ νλ ¬λ‘ λμκ° μ€μ μ λ€.
- λκΈ° μν: λ§μ½ λμ€ν¬ μ‘μΈμ€ λ± I/O λκΈ°κ° λ°μνλ μ²λ¦¬λ₯Ό μ€νν κ²½μ° λκΈ° μνλ‘ μ μ΄νλ€.
- μ’ λ£: μ΄ λνμ μΈ μΈ κ°μ§ μν(μ€ν κ°λ₯ μν, μ€ν μν, λκΈ° μν)λ₯Ό μ μ΄νλ©΄μ μ²λ¦¬κ° μ λΆ λλλ©΄ μ’ λ£νλ€.