νλ‘μΈμ€(Process)μ μ€λ λ(Thread)λ μ΄μ체μ μμ μμ μ μννλ κΈ°λ³Έ λ¨μμ΄λ€.
νλ‘μΈμ€(Process)
νλ‘μΈμ€λ μ€ν μ€μΈ νλ‘κ·Έλ¨μ μΈμ€ν΄μ€λ₯Ό μλ―Ένλ€. κ°κ°μ νλ‘μΈμ€λ λ 립λ λ©λͺ¨λ¦¬ 곡κ°μ κ°μ§κ³ μμΌλ©°, μμ μ μμ(λ©λͺ¨λ¦¬, νμΌ νΈλ€ λ±)μ κ°μ§κ³ μλ€. μ€νλκΈ° μ μ€νν μ μλ νμΌμ νλ‘κ·Έλ¨μ΄λΌκ³ νκ³ νλ‘μΈμ€λ νλ‘κ·Έλ¨μ μ€νμμΌ μ μ μΈ νλ‘κ·Έλ¨μ΄ λμ μΌλ‘ λ³νμ¬ μ€νλλ μνλ₯Ό λ§νλ€.
λ©λͺ¨λ¦¬ 곡κ°
κ°κ°μ νλ‘μΈμ€λ λ 립λ μ£Όμ 곡κ°μ κ°μ§λ©°, λ€λ₯Έ νλ‘μΈμ€μ λ©λͺ¨λ¦¬μ μ§μ μ κ·Όν μλ μλ€.
1. ν μ€νΈ(μ½λ) μμ
- μ€νν νλ‘κ·Έλ¨ μ½λκ° μ μ₯λλ μμ
- λ³΄ν΅ μ½κΈ° μ μ©μΌλ‘ μ€μ λλ©°, μ¬λ¬ νλ‘μΈμ€μμ 곡μ ν μ μλ€. μλ₯Ό λ€μ΄, λμΌν νλ‘κ·Έλ¨μ μ€ννλ μ¬λ¬ μΈμ€ν΄μ€λ λμΌν μ½λ μμμ 곡μ ν μ μλ€.
2. λ°μ΄ν° μμ
- μ μ λ°μ΄ν° μΉμ : μ΄κΈ°νλ μ μ λ³μ λ° μ μ λ³μκ° μ μ₯
- BSS(Block Started by Symbol) μΉμ : μ΄κΈ°νλμ§ μμ μ μ λ³μμ μ μ λ³μκ° μ μ₯
- νλ‘κ·Έλ¨ μμ μ ν λΉλλ©°, νλ‘κ·Έλ¨μ΄ μ’ λ£λ λκΉμ§ μ‘΄μ¬νλ€.
3. ν(Heap) μμ
- λμ μΌλ‘ ν λΉλ λ©λͺ¨λ¦¬κ° μ μ₯λλ μμ
- λ°νμ μ λμ μΌλ‘ λ©λͺ¨λ¦¬λ₯Ό ν λΉνκ³ ν΄μ ν μ μλ€. λ©λͺ¨λ¦¬ κ΄λ¦¬μ μ± μμ νλ‘κ·Έλλ¨Έμκ² μλ€. μλ₯Ό λ€μ΄, mallocμ΄λ newλ₯Ό μ¬μ©νμ¬ λ©λͺ¨λ¦¬λ₯Ό ν λΉνκ³ freeλ deleteλ₯Ό μ¬μ©νμ¬ ν΄μ νλ€.
4. μ€ν(Stack) μμ
- ν¨μ νΈμΆ μ μμ±λλ μ§μ λ³μ, ν¨μ μΈμ, λ¦¬ν΄ μ£Όμ λ±μ΄ μ μ₯λλ€.
- ν¨μ νΈμΆ μ μ€ν νλ μμ΄ μμ±λκ³ , ν¨μκ° μ’ λ£λλ©΄ ν΄λΉ μ€ν νλ μμ΄ μ κ±°λλ€. LIFO(Last In First Out) λ°©μμΌλ‘ κ΄λ¦¬λλ€.
μ½λ μμκ³Ό λ°μ΄ν° μμμ μ μΈν λ κ·Έ ν¬κΈ°κ° κ²°μ λλ μ μ μμμ΄μ§λ§, μ€ν μμκ³Ό ν μμμ νλ‘μΈμ€κ° μ€νλλ λμ ν¬κΈ°κ° λμ΄λ¬λ€ μ€μ΄λ€κΈ°λ νλ λμ μμμ΄λ€.
μ€λ λ(Thread)
μ€λ λλ νλ‘μΈμ€ λ΄μμ μ€νλλ μμ μ€ν λ¨μμ΄λ€. κ°μ νλ‘μΈμ€ λ΄μ μ€λ λλ λμΌν λ©λͺ¨λ¦¬ 곡κ°μ 곡μ νλ©°, νλ‘μΈμ€μ μμμ μ κ·Όν μ μλ€.
λ©λͺ¨λ¦¬ 곡κ°
μ€λ λλ κ°μ νλ‘μΈμ€ λ΄μ μ½λ(ν μ€νΈ) μμ, λ°μ΄ν° μμ, ν μμμ 곡μ ν΄μ μ¬μ©νκ³ , κ°κ°μ μ€νκ³Ό μμ λ μ§μ€ν° 곡κ°λ§ ν λΉ λ°λλ€.
μ€λ λλ λ 립μ μΌλ‘ μ€νλλ νλ¦μ΄λ€. λ 립μ μΈ μ€νμ μ¬μ©ν¨μΌλ‘μ¨ μ€λ λλ λ€λ₯Έ μ€λ λμ ν¨μ νΈμΆμ΄λ μ§μ λ³μμ μν₯μ μ£Όμ§ μκ³ , μμ λ§μ λ 립μ μΈ μ€ν νλ¦μ μ μ§ν μ μλ€.
λ©ν° νλ‘μΈμ±, λ©ν° μ€λ λ© νκ²½μ, νλ‘μΈμ€ λ¬Έλ§₯ μ νκ³Ό μ€λ λ λ¬Έλ§₯ μ ν λΉκ΅
- μ£Όμ κ³΅κ° κ³΅μ
- νλ‘μΈμ€: μλ‘ λ€λ₯Έ νλ‘μΈμ€λ λ 립μ μΈ μ£Όμ 곡κ°μ κ°μ§λ―λ‘, νμ΄μ§ ν μ΄λΈμ λ³κ²½ν΄μΌ νλ€. λ©λͺ¨λ¦¬ 맀ν μ 보λ₯Ό 무ν¨ννκ³ λ€μ λ‘λν΄μΌ νκΈ° λλ¬Έμ λΉμ©μ΄ λ§μ΄ λ λ€.
- μ€λ λ: λμΌν νλ‘μΈμ€ λ΄μ μ€λ λλ κ°μ μ£Όμ 곡κ°μ 곡μ νλ―λ‘, νμ΄μ§ ν μ΄λΈμ λ³κ²½ν νμκ° μλ€. λ°λΌμ λ©λͺ¨λ¦¬ 맀ν μ 보λ₯Ό 무ν¨νν νμκ° μκ³ , μ΄λ‘ μΈν΄ λΉμ©μ΄ μ κ°λλ€.
- μΊμ 무ν¨ν
- νλ‘μΈμ€: νλ‘μΈμ€ κ° μ ν μ, CPU μΊμ(λͺ λ Ήμ΄ μΊμ, λ°μ΄ν° μΊμ)λ₯Ό 무ν¨ννκ³ λ€μ λ‘λν΄μΌ νλ€.
- μ€λ λ: λμΌν νλ‘μΈμ€ λ΄μ μ€λ λλ κ°μ μ£Όμ 곡κ°μ 곡μ νλ―λ‘, μΊμ 무ν¨νκ° νμνμ§ μλ€.
- λ°μ΄ν° κ²½μ€
- νλ‘μΈμ€: PCBμλ νλ‘μΈμ€μ λ©λͺ¨λ¦¬ κ΄λ¦¬ μ 보, μ΄λ¦° νμΌ λͺ©λ‘ λ± λ λ§μ μ 보λ₯Ό μ μ₯νλ―λ‘ μλμ μΌλ‘ 무κ²κ³ , κ·Έλ¬λ―λ‘ λ³΅μν΄μΌν μλ λ§μμ§λ€.
- μ€λ λ: TCBλ μ€λ λμ λ μ§μ€ν° μν, μ€ν ν¬μΈν° λ±μ μ 보λ₯Ό μ μ₯νκΈ°μ μλμ μΌλ‘ κ°λ³λ€.
λκΈ