02. Process VS Thread
Process
νλ‘μΈμ€λ κ΄λ¦¬μ "λ¨μ" μ΄λ€. μ΄λ, κ΄λ¦¬μ 주체λ "OS"κ° λλ€.
νλ‘μΈμ€κ° μ‘΄μ¬νλ©΄ μ΅μ νκ°μ μ€λ λλ μ‘΄μ¬νλλ°, νλ‘μΈμ€ μμ μλ§μ μ€λ λκ° μ‘΄μ¬νλ€κ³ μ΄λ‘ μ μΌλ‘ μ κ·Όν μ μμ§λ§ μ¬μ€ νλ‘μΈμ€ μμ νκ°μ λ©μΈ μ€λ λλΌκ³ νλ€.
νκ°μ νλ‘μΈμ€ λ΄λΆμ λ¨μΌ ~ μ¬λ¬ μ€λ λκ° μ‘΄μ¬ν μ μκ³ μ΄λ€μ "λμμ" "κ°μ" μμ νλ€
μ°μ°
νλ‘μΈμ€κ° λνλ μ λ?! νκ³ λ¬»λλ€λ©΄ "μ°μ°"νλ μ λΌκ³ 보면 λλ€. νλ‘μΈμ€λ μ°μμ μΌλ‘ μ°μ°μ²λ¦¬λ₯Ό νλλ° μ΄λ μ€λ λλ₯Ό μ¬μ©ν΄μ μ°μ°νλ κ²,,, μ΄λ, OSκ° μ°μ°μ νμν CPUμ μ°μ΅μ₯ (RAM) μ μ 곡ν΄μ£Όλ κ²μ΄λ€.

Process Flow
ν° κ·Έλ¦Ό : Process -> μ°μ° -> μ°μ°μ μν΄μλ νλμ¨μ΄μ CPUμ RAMμ μ¬μ©ν΄μΌν¨ (resource) -> OSκ° VM ν λΉ
CPUμλ μ¬λ¬ μ½μ΄κ° μλλ° OSμμ μ΄λ€ coreλ₯Ό μ¬μ©ν κ±΄μ§ (CPU), μ΄λ RAMμ μ¬μ©ν κ±΄μ§ (μ£Όλ‘ νμ΄μ§ λ¨μλ‘ μλ¦) κ²°μ ν΄μ€λ€. CPUκ° μ°μ°μ²λ¦¬λ₯Ό ν΄μ€λ€λ©΄ RAMμ μ°μ΅μ₯μ΄λ€..*μ°Έκ³ λ‘ μ΄ coreκ° i-core 9 ν λ κ·Έ μ½μ΄μ
Virtual Memory
μ΄λ, CPUμ λ¨μ μ§μ μ μΌλ‘ μ¬μ©νκ²λ μ΄μ΄μ£Όμ§ μλλ€. CPUλ μ§μ μ¬μ©νκ²λλ νμ§λ§ RAMμ μ λ λΆκ°,,
λμ Virtual Memory(VM)μ΄λΌλ κ³³μ μ¬μ©νλ€.
- RAM : 1μ°¨ λ©λͺ¨λ¦¬
- HDD : 2μ°¨ λ©λͺ¨λ¦¬
- Virtual Memory : 1μ°¨ + 2μ°¨ λ©λͺ¨λ¦¬
VMμ μ°μλ λ©λͺ¨λ¦¬λ‘ 1+2μ°¨ λ©λͺ¨λ¦¬κ° μ λΆ λμ΄λμ΄μλ λ©λͺ¨λ¦¬ 곡κ°μ΄λΌκ³ μκ°νλ©΄ λλ€. μ΄λ, νλ‘μΈμ€κ° VMμ ν 곡κ°μ ν λΉλ°μλλ° μκ³ λ³΄λ HDD곡κ°μΌ μλ μλ€ (νμλ§€λ¬Ό γ γ·γ· λ°°μ λ°κ³ λ¬λλ° κ²λ λλ¦° μν©.. κ·Έλλ μ무κ²λ μλκ²λ³΄λ¨ λ«μλ..? νλ μ¬μ μΌλ‘ ν λΉν΄μ€λ€) μ무λλ μ°μμ μΌλ‘ μ¬λ¬ μ 무λ₯Ό μ²λ¦¬νλ €λ€λ³΄λκΉ μ΄λ κ² νμλ§€λ¬Όλ μ¬λ €λμκ² μλκΉ..?νλ€.
μ 리
- νλ‘μΈμ€(μμ )μ μ΅μ νκ°μ μ€λ λλ₯Ό κ°λλ€.
- μ€λ λλ μ°μ°νλ λμ
- OSλ Virtual Memoryλ₯Ό νλ‘μΈμ€μκ² ν λΉνλ€
- λ°λΌμ, νλ‘μΈμ€μ μν λͺ¨λ μ€λ λ(μ°μ°μ 주체)λ νλ‘μΈμ€μ VMμΌλ‘ 곡κ°μ΄ μ νλμ΄μλ€.
Process and Thread

μ§ : νλ‘μΈμ€ -> νλ‘μΈμ€μ ν λΉλ VM λ§νΌμ ν¬κΈ°λ₯Ό κ°λλ€
λ°© : μ€λ λ -> μ€λ λ λ§λ€ κ³ μ Thread Local Storageλ₯Ό κ°μ§λ©° μ€λ λ λ§λ€ μ€νμΌλ‘ λΆλ¦¬λ
κ±°μ€ : Heap μμ
Reference