νλ‘μΈμ€μ μ€λ λλ μλλ₯Ό μ°Έκ³ νμ
https://koreatstm.tistory.com/92
λ©ν° νλ‘μΈμ€μ λ©ν° μ€λ λλ ν μ΄ν리μΌμ΄μ μ λν μ²λ¦¬λ°©μμ΄λ€. λ¨μν νλ‘κ·Έλ¨μ μ¬λ¬κ° λμ°λκ²μ΄ μλ μΈμ μ΄λ€ λ°©μμΌλ‘ μ²λ¦¬νλλμ λ°λΌ λ€λ₯Έκ²μΌλ‘ μ΄ν΄ν΄μΌνλ€.
μ΄λ¦μ²λΌ μ¬λ¬κ°μ νλ‘μΈμ€, μ€λ λκ° λμνλ κ²μ μΌμ»«λλ€. λ€μ€μΌλ‘ λμκ°μΌλ‘μ¨ μ±λ₯ ν₯μμ ν¨κ³Όλ₯Ό μ»μ μ μλ€.
λ©ν° νλ‘μΈμ€ vs λ©ν° νλ‘μΈμ
νλ‘μΈμ€λ νλ‘κ·Έλ¨μ μ€ν μνλ₯Ό λ§νκ³ , νλ‘μΈμλ CPU μ½μ΄λ₯Ό μΌμ»«λλ€. μμ λ€λ₯Έ μλ―Έμ΄λ€.
λ©ν° νλ‘μΈμλ νλμ νλ‘κ·Έλ¨μμ μ¬λ¬ κ°μ νλ‘μΈμ€λ₯Ό μ€ννλ κ²μ μλ―Ένκ³ , λ©ν° νλ‘μΈμλ μ¬λ¬ κ°μ CPU μ½μ΄κ° νλμ μμ€ν μμ λμμ μ€νλλ κ²μ μλ―Ένλ€.
λ©ν° νλ‘μΈμ€
λκ° μ΄μμ λ€μ νλ‘μΈμκ° νλ ₯μ μΌλ‘ νλ μ΄μμ νμ€ν¬λ₯Ό λμμ λ³λ ¬λ‘ μ²λ¦¬νλ κ²
λ©ν° νλ‘μΈμ€ λ΄λΆκ΅¬μ‘°λ₯Ό 보면, νλμ λΆλͺ¨ νλ‘μΈμ€κ° μ¬λ¬ κ°μ μμ νλ‘μΈμ€λ₯Ό μμ±ν¨μΌλ‘ λ€μ€ νλ‘μΈμ€λ₯Ό μμ±νλ ꡬ쑰μ΄λ€.
ν νλ‘μΈμ€λ μ€νλλ λμ€μ νλ‘μΈμ€ μμ± μμ€ν μ½μ ν΅ν΄ μλ‘μ΄ νλ‘μΈμ€λ€μ μμ±ν μ μλλ°, λ€λ₯Έ νλ‘μΈμ€λ₯Ό μμ±νλ νλ‘μΈμ€λ₯Ό λΆλͺ¨ νλ‘μΈμ€(Parent Process)λΌ νκ³ , λ€λ₯Έ νλ‘μΈμ€μ μν΄ μμ±λ νλ‘μΈμ€λ₯Ό μμ νλ‘μΈμ€(Child Process)λΌκ³ νλ€.
μ΄λ, λΆλͺ¨ νλ‘μΈμ€μ μμ νλ‘μΈμ€λ κ°κ° κ³ μ ν Process IDλ₯Ό κ°μ§κ³ μλ€. λΆλͺ¨ νλ‘μΈμ€λ μμ νλ‘μΈμ€μ PIDλ₯Ό μκ³ μμΌλ©°, μ΄λ₯Ό ν΅ν΄ μμ νλ‘μΈμ€λ₯Ό μ μ΄ν μ μλ€. λν, μμ νλ‘μΈμ€λ λΆλͺ¨ νλ‘μΈμ€μ PIDλ₯Ό μκ³ μμ΄ μ΄λ₯Ό ν΅ν΄ λΆλͺ¨ νλ‘μΈμ€μ ν΅μ μ΄ κ°λ₯νλ€.
ν΅μ μ΄ κ°λ₯ν λΏ μλ‘ λ€λ₯Έ νλ‘μΈμ€λ₯΄ λ 립μ μΌλ‘ μ€νλλ©°, λ 립μ μΈ λ©λͺ¨λ¦¬ 곡κ°μ κ°μ§κ³ μμ΄ μλ‘ λ€λ₯Έ μμ μ μννλ€.
μ₯μ | λ¨μ |
1. λ
λ¦½μ± λ 립 κ΅¬μ‘°λ‘ μμ μ±μ΄ λμΌλ©°, νλ‘μΈμ€ νλμ λ¬Έμ κ° μ겨λ λ€λ₯Έ νλ‘μΈμ€μ μν₯μ λΌμΉμ§ μλλ€. |
1. Context Switching Overhead λ©ν° νμ€νΉμ ꡬμ±νλλ° ν΅μ¬ κΈ°μ μΈ context switching κ³Όμ μμ μ±λ₯μ νκ° μ¬ μ μλ€. μ΄λ‘ μΈν λΉλ²ν Context Switching μμ μΌλ‘ μΈν΄ λΉμ© μ€λ²ν€λκ° λ°μν μ μκ² λλ€.λ°λ©΄ μ€λ λλ₯Ό 컨ν μ€νΈ μ€μμΉνλ©΄ νλ‘μΈμ€ μ€μμΉ λ³΄λ€ κ°λ²Όμ ν¨μ¬ λΉ λ₯΄κ³ μ’λ€. |
2. νμ₯μ± λ©ν° νλ‘μΈμ€λ κ° νλ‘μΈμ€κ° λ 립μ μ΄λ―λ‘, μλ‘μ΄ κΈ°λ₯μ΄λ λͺ¨λμ μΆκ°νκ±°λ μμ ν λ λ€λ₯Έ νλ‘μΈμ€μ μν₯μ μ£Όμ§ μλλ€. κ·Έλμ μμ€ν μ κ·λͺ¨λ₯Ό μ½κ² νμ₯ν μ μλ€. |
2. μμ 곡μ λΉν¨μ¨μ± λ©ν° νλ‘μΈμ€λ κ° νλ‘μΈμ€κ° λ 립μ μΈ λ©λͺ¨λ¦¬ 곡κ°μ κ°μ§λ―λ‘, κ²°κ³Όμ μΌλ‘ λ©λͺ¨λ¦¬ μ¬μ©λμ΄ μ¦κ°νλ€. λ§μΌ κ° νλ‘μΈμ€κ°μ μμ 곡μ κ° νμν κ²½μ° νλ‘μΈμ€ μ¬μ΄μ μ΄λ ΅κ³ 볡μ‘ν ν΅μ κΈ°λ²μΈ IPCλ₯Ό μ¬μ©ν΄μΌνλ€. IPCμμ²΄λ‘ μ€λ²ν€λκ° λ°μνκ² λλ€. |
λ©ν°μ€λ λ
λ©ν° μ€λ λλ νλμ νλ‘μΈμ€ μμ μ¬λ¬κ°μ μ€λ λκ° μλ κ²μ λ§νλ€. λ°λΌμ νλμ νλ‘κ·Έλ¨μμ λκ°μ§ μ΄μμ λμμ λμμ μ²λ¦¬νλλ‘ νλ νμκ° κ°λ₯ν΄μ§λ€.
μΉ μλ²λ λνμ μΈ λ©ν° μ€λ λ μμ© νλ‘κ·Έλ¨μ΄λ€. μ¬μ©μκ° μλ² λ°μ΄ν°λ² μ΄μ€μ μλ£λ₯Ό μμ²νλ λμ λΈλΌμ°μ μ λ€λ₯Έ κΈ°λ₯μ μ΄μ©ν μ μλ μ΄μ λ λ°λ‘ λ©ν° μ€λ λ κΈ°λ₯ λλΆμΈ κ²μ΄λ€. μ¦, νλμ μ€λ λκ° μ§μ°λλλΌλ, λ€λ₯Έ μ€λ λλ μμ μ μ§μν μ μκ² λλ€.
νλμ νλ‘μΈμ€μμ μ¬λ¬ μ€λ λλ‘ μμμ 곡μ νλ©°, ν μ€ν¬λ₯Ό λλμ΄ λμμ λ³λ ¬μ (parallel)μΌλ‘ μννλ€.
μ₯μ | λ¨μ |
1. μλ΅μ± μμ μ λΆλ¦¬ν΄μ μ€ννλ―λ‘ μ€μκ°μΌλ‘ μ¬μ©μμκ² μλ΅ |
1. μμ μ±λ¬Έμ νλμ νλ‘μΈμ€ μμμ μλνλ―λ‘, νλμ μ€λ λμμ λ¬Έμ μκΈ°λ©΄ μ 체 νλ‘μΈμ€μ μν₯μ μ€λ€. |
2 ν¨μ¨μ± μν νλ‘μΈμ€ λ΄ μ€λ λμ λ©λͺ¨λ¦¬, μμμ 곡μ νμ¬ ν¨μ¨μ μΌλ‘ μ¬μ© |
2. λκΈ°νλ‘ μΈν μ±λ₯ μ ν μ€λ λκ° λκΈ°νλ λ°μ΄ν° μ κ·Όμ μ μ΄νκΈ°μν νμμ μΈ κΈ°μ μ΄λ€. λκΈ°ν μμ μ μ¬λ¬ μ€λ λλ€μ΄ μμμ λν μ κ·Όμ μμ°¨μ μΌλ‘ ν΅μ νλ κ²μ΄κ³ , κ·Έλ¬λ©΄ λμ μ κ·ΌμΌλ‘ μΈν λμ μμ κ³Ό κ°μ νμμ μΌμ΄λμ§ μκ² λμ§λ§, μ¬λ¬ μ€λ λ μ κ·Όμ μ ννλ κ²μ΄κΈ°μ λ³λͺ© νμμ΄ μΌμ΄λ μ±λ₯μ΄ μ νλ μ μλ€. |
3. κ²½μ μ± μ€λ λμλ context switching overheadκ° μ‘΄μ¬νμ§λ§, μλμ μΌλ‘ νλ‘μΈμ€ μμ± λΉμ©λ³΄λ€ μ€λ λ μμ±λΉμ©μ΄ μ κ³ , context switchingμ΄ νλ‘μΈμ€λ³΄λ€ λΉ λ₯΄λ€. |
3. Context Switching Overhead λ©ν° νλ‘μΈμ€λ³΄λ€ Context Switching Overheadκ° μμ§λ§ κ·Έλλ μ€λ²ν€λ λΉμ©μ΄ λ°μνλ€. |
4. κ°λ²Όμ νλ‘μΈμ€λ³΄λ€ κ°λ³κ³ μμ± λ° μ’ λ£κ° λΉ λ₯΄λ€. |
4. λ°λλ½(κ΅μ°© μν) λ€μμ νλ‘μΈμ€λ μ€λ λκ° μλ‘ μμμ μ μ νκ³ , μ¬λ¬ κ°μ μ€λ λκ° μλ‘ λκΈ°νλ©΄μ 무νμ κΈ°λ€λ¦¬κ²λλ μ¦μ |
REFERENCE
https://inpa.tistory.com/entry/π©%E2%80%8Dπ»-multi-process-multi-thread#thankYou
'πΌλ°±μ€λ > Server' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
μΈλΆ μλ² (1) | 2024.09.02 |
---|---|
μλ² κΈ°μ΄ (1) | 2024.09.02 |
λ³λ ¬ μ²λ¦¬ (0) | 2023.09.23 |
νλ‘μΈμ€μ μ€λ λ (0) | 2023.09.22 |
System Call (0) | 2023.09.22 |