μμ±μ : μ μ°¬λ―Ό
- μ°Έκ³ μλ£: Process&Thread
- μ°Έκ³ μμ: Process&Thread
- μ°Έκ³ μμ: Process&Thread
μ΄λ€ μμ μ μν΄ μ€νν μ μλ νμΌ
- μ»΄ν¨ν°μμ μ°μμ μΌλ‘ μ€νλκ³ μλ μ»΄ν¨ν° νλ‘κ·Έλ¨
- λ©λͺ¨λ¦¬μ μ¬λΌμ μ€νλκ³ μλ νλ‘κ·Έλ¨μ μΈμ€ν΄μ€(λ 립μ μΈ κ°μ²΄)
- μ΄μ체μ λ‘λΆν° μμ€ν μμμ ν λΉλ°λ μμ μ λ¨μ
- μ¦, λμ μΈ κ°λ μΌλ‘λ μ€νλ νλ‘κ·Έλ¨μ μλ―Ένλ€.
- CPU μκ°
- μ΄μλκΈ° μν΄ νμν μ£Όμ 곡κ°
- Code, Data, Stack, Heapμ κ΅¬μ‘°λ‘ λμ΄μλ λ
립λ λ©λͺ¨λ¦¬ μμ
- Codeλ μ€ν λͺ λ Ήμ ν¬ν¨νλ μ½λλ€
- Staticμ λ³μ νΉμ Global λ³μ
- Heapμ λμ λ©λͺ¨λ¦¬ μμ
- Stackμ μ§μλ³μ, 맀κ°λ³μ, λ°ν κ° λ± μΌμμ μΈ λ°μ΄ν°
- νλ‘μΈμ€λ κ°κ° λ 립λ λ©λͺ¨λ¦¬ μμ(Code, Data, Stack, Heap)μ ν λΉλ°λλ€.
- κΈ°λ³Έμ μΌλ‘ νλ‘μΈμ€λΉ μ΅μ1κ°μ μ€λ λ(λ©μΈμ€λ λ)λ₯Ό κ°μ§κ³ μλ€.
- κ° νλ‘μΈμ€λ λ³λμ μ£Όμ 곡κ°μμ μ€νλλ©°, ν νλ‘μΈμ€λ λ€λ₯Έ νλ‘μΈμ€μ λ³μλ μλ£κ΅¬μ‘°μ μ κ·Ό ν μ μλ€.
- ν νλ‘μΈμ€κ° λ€λ₯Έ νλ‘μΈμ€μ μμμ μ κ·Όνλ €λ©΄ νλ‘μΈμ€κ°μ ν΅μ μ μ¬μ©ν΄μΌ νλ€.
- Ex, νμ΄ν, νμΌ, μμΌ λ±μ μ΄μ©ν ν΅μ λ°©λ² μ΄μ©
- νλ‘μΈμ€ λ΄μμ μ€νλλ μ¬λ¬ νλ¦μ λ¨μ
- νλ‘μΈμ€μ νΉμ ν μν κ²½λ‘
- νλ‘μΈμ€κ° ν λΉλ°μ μμμ μ΄μ©νλ μ€νμ λ¨μ
- μ€λ λλ νλ‘μΈμ€ λ΄μμ κ°κ° Stackλ§ λ°λ‘ ν λΉλ°κ³ Code, Data, Heap μμμ 곡μ νλ€.
- μ€λ λλ ν νλ‘μΈμ€ λ΄μμ λμλλ μ¬λ¬ μ€νμ νλ¦μΌλ‘, νλ‘μΈμ€ λ΄μ μ£Όμ 곡κ°μ΄λ μμλ€(Heap κ³΅κ° λ±)μ κ°μ νλ‘μΈμ€ λ΄μ μ€λ λλΌλ¦¬ 곡μ νλ©΄μ μ€νλλ€.
- κ°μ νλ‘μΈμ€ μμ μλ μ¬λ¬ μ€λ λλ€μ κ°μ ν 곡κ°μ 곡μ νλ€. λ°λ©΄μ νλ‘μΈμ€λ λ€λ₯Έ νλ‘μΈμ€μ λ©λͺ¨λ¦¬μ μ§μ μ κ·Όν μ μλ€.
- κ°κ°μ μ€λ λλ λ³λμ λ μ§μ€ν°μ μ€νμ κ°κ³ μμ§λ§, ν λ©λͺ¨λ¦¬λ μλ‘ μ½κ³ μΈ μ μλ€.
- ν μ€λ λκ° νλ‘μΈμ€ μμμ λ³κ²½νλ©΄, λ€λ₯Έ μ΄μ μ€λ λλ κ·Έ λ³κ²½ κ²°κ³Όλ₯Ό μ¦μ λ³Ό μ μλ€.
- μΌλ° μ€λ λμ κ±°μ μ°¨μ΄κ° μμΌλ©°, JVMκ° μ΄μ체μ μ μν μ νλ€.
- μλ°μλ νλ‘μΈμ€κ° μ‘΄μ¬νμ§ μκ³ μ€λ λλ§ μ‘΄μ¬νλ©°, μλ° μ€λ λλ JVMμ μν΄ μ€μΌμ€λλ μ€ν λ¨μ μ½λ λΈλ‘μ΄λ€.
- μλ°μμ μ€λ λ μ€μΌμ€λ§μ μ μ μΌλ‘ JVMμ μν΄ μ΄λ£¨μ΄μ§λ€.
- μλμ κ°μ μ€λ λμ κ΄λ ¨λ λ§μ μ 보λ€λ JVMμ΄ κ΄λ¦¬ νλ€.
- μ€λ λκ° λͺκ° μ‘΄μ¬νλμ§
- μ€λ λλ‘ μ€νλλ νλ‘κ·Έλ¨ μ½λμ λ©λͺ¨λ¦¬ μμΉλ μ΄λμΈμ§
- μ€λ λμ μνλ 무μμΈμ§
- μ€λ λ μ°μ μμλ μΌλ§μΈμ§
- μ¦, κ°λ°μλ μλ° μ€λ λλ‘ μλν μ€λ λ μ½λλ₯Ό μμ±νκ³ , μ€λ λ μ½λκ° μλͺ μ κ°μ§κ³ μ€νμ μμνλλ‘ JVMμ μμ²νλ μΌ λΏμ΄λ€.
- νλμ μμ© νλ‘κ·Έλ¨μ μ¬λ¬κ°μ νλ‘μΈμ€λ‘ ꡬμ±νμ¬ κ° νλ‘μΈμ€κ° νλμ μμ μ μ²λ¦¬νλλ‘ νλ κ²μ΄λ€.
- μ¬λ¬κ°μ μμ νλ‘μΈμ€ μ€ νλμ λ¬Έμ κ° λ°μνλ©΄ κ·Έ μμ νλ‘μΈμ€λ§ μ£½λ κ² μ΄μμΌλ‘ λ€λ₯Έ μν₯μ΄ νμ°λμ§ μλλ€.
-
Context Switchingμμμ μ€λ²ν€λ
- Context Switching κ³Όμ μμ μΊμ¬ λ©λͺ¨λ¦¬ μ΄κΈ°ν λ± λ¬΄κ±°μ΄ μμ μ΄ μ§νλκ³ λ§μ μκ°μ΄ μλͺ¨λλ λ±μ μ€λ²ν€λκ° λ°μνκ² λλ€.
- νλ‘μΈμ€λ κ°κ°μ λ 립λ λ©λͺ¨λ¦¬ μμμ ν λΉλ°μκΈ° λλ¬Έμ νλ‘μΈμ€ μ¬μ΄μμ 곡μ νλ λ©λͺ¨λ¦¬κ° μμ΄, Context Switchingκ° λ°μνλ©΄ μΊμ¬μ μλ λͺ¨λ λ°μ΄ν°λ₯Ό λͺ¨λ 리μ νκ³ λ€μ μΊμ¬ μ 보λ₯Ό λΆλ¬μμΌ νλ€.
-
νλ‘μΈμ€ μ¬μ΄μ μ΄λ ΅κ³ 볡μ‘ν ν΅μ κΈ°λ²(IPC)
- νλ‘μΈμ€λ κ°κ°μ λ 립λ λ©λͺ¨λ¦¬ μμμ ν λΉλ°μκΈ° λλ¬Έμ νλμ νλ‘κ·Έλ¨μ μνλ νλ‘μΈμ€λ€ μ¬μ΄μ λ³μλ₯Ό 곡μ ν μ μλ€.
-
Context Switchingλ?
- CPUμμ μ¬λ¬ νλ‘μΈμ€λ₯Ό λμκ°λ©΄μ μμ μ μ²λ¦¬νλλ° μ΄ κ³Όμ μ Context SwitchingλΌ νλ€.
- ꡬ체μ μΌλ‘, λμ μ€μΈ νλ‘μΈμ€κ° λκΈ°λ₯Ό νλ©΄μ ν΄λΉ νλ‘μΈμ€μ μν(Context)λ₯Ό 보κ΄νκ³ , λκΈ°νκ³ μλ λ€μ μμμ νλ‘μΈμ€κ° λμνλ©΄μ μ΄μ μ 보κ΄νλ νλ‘μΈμ€μ μνλ₯Ό 볡ꡬνλ μμ μ λ§νλ€.
μ¬κΈ° λμμ μ€νμν€κ³ μΆμ νλ‘μΈμ€ λκ°κ° μλ€. μ΄κ±°λ₯Ό λμμ μ€ννκΈ° μν΄μ 짧μ ν
μΌλ‘ λ°λ³΅λμ΄μΌ νλ€.
λ¨Όμ νλ‘μΈμ€ 1μ΄ μ€νμνμ μκ³ CPUμ μ μ¬λμ΄ μλ€. μ΄λ νλ‘μΈμ€2λ μ€λΉμνμ μμ΅λλ€.
κ·Έλ¦¬κ³ νλ‘μΈμ€2λ₯Ό μ€ννκΈ° μν΄μλ νλ‘μΈμ€1μ΄ μ€λΉμνλ‘ λ΄λ €κ°κ³ νλ‘μΈμ€2κ° CPUμ μ μ¬κ° λκ³ ,
λ€μ 1λ‘ μ ννκΈ° μν΄μλ 2κ° μ€λΉμνλ‘ λ΄λ €κ°κ³ 1μ΄ CPUμ μ¬λΌμμΌ νλ€. μ΄κ² 컨ν
μ€νΈ μ€μμΉμ
λλ€.
- νλμ μμ©νλ‘κ·Έλ¨μ μ¬λ¬ κ°μ μ€λ λλ‘ κ΅¬μ±νκ³ κ° μ€λ λλ‘ νμ¬κΈ νλμ μμ μ μ²λ¦¬νλλ‘ νλκ² μ΄λ€.
- μλμ°, 리λ μ€ λ± λ§μ μ΄μ체μ λ€μ΄ λ©ν° νλ‘μΈμ±μ μ§μνκ³ μμ§λ§ λ©ν° μ€λ λ©μ κΈ°λ³ΈμΌλ‘ νκ³ μλ€.
- μΉ μλ²λ λνμ μΈ λ©ν° μ€λ λ μμ© νλ‘κ·Έλ¨μ΄λ€.
- μμ€ν
μμ μλͺ¨ κ°μ (μμμ ν¨μ¨μ± μ¦λ)
- νλ‘μΈμ€λ₯Ό μμ±νμ¬ μμμ ν λΉνλ μμ€ν μ½μ΄ μ€μ΄λ€μ΄ μμμ ν¨μ¨μ μΌλ‘ κ΄λ¦¬ν μ μλ€.
- μμ€ν
μ²λ¦¬λ μ¦κ° (μ²λ¦¬ λΉμ© κ°μ)
- μ€λ λ κ° λ°μ΄ν°λ₯Ό μ£Όκ³ λ°λ κ²μ΄ κ°λ¨ν΄μ§κ³ μμ€ν μμ μλͺ¨κ° μ€μ΄λ€κ² λλ€.
- μ€λ λ μ¬μ΄μ μμ λμ΄ μμ Context Switchingμ΄ λΉ λ₯΄λ€.
- κ°λ¨ν ν΅μ λ°©λ²μΌλ‘ μΈν νλ‘κ·Έλ¨ μλ΅ μκ° λ¨μΆ
- μ€λ λλ νλ‘μΈμ€ λ΄μ Stack μμμ μ μΈν λͺ¨λ λ©λͺ¨λ¦¬λ₯Ό 곡μ νκΈ° λλ¬Έμ ν΅μ μ λΆλ΄μ΄ μ λ€
- μ£Όμ κΉμ μ€κ³κ° νμνλ€.
- λλ²κΉ μ΄ κΉλ€λ‘λ€.
- λ¨μΌ νλ‘μΈμ€ μμ€ν μ κ²½μ° ν¨κ³Όλ₯Ό κΈ°λνκΈ° μ΄λ ΅λ€.
- λ€λ₯Έ νλ‘μΈμ€μμ μ€λ λλ₯Ό μ μ΄ν μ μλ€. (νλ‘μΈμ€ λ°μμ μ€λ λλ₯Ό κ°κ° μ μ΄ν μ μλ€.)
- λ©ν° μ€λ λμ κ²½μ° μμ 곡μ μ λ¬Έμ κ° λ°μνλ€, (λκΈ°ν λ¬Έμ )
- νλμ μ€λ λμ λ¬Έμ κ° λ°μνλ©΄ μ 체 νλ‘μΈμ€κ° μν₯μ λ°λλ€.
μμ μ μΈν°λ· μ΅μ€νλ‘λ¬λ₯Ό μ¬μ©νλ€κ° μ΄λ° μ°½μ κ²½νν΄ λ³Έ μ μ΄ μμ κ²μ΄λ€.
μ΄κ²μ λ©ν° μ€λ λλ₯Ό μ΄μ©νκΈ° λλ¬ΈμΈλ° κΈ΄λ°νκ² μ°κ²°λμ΄ μκΈ° λλ¬Έμ ν μ€λ λ, ν νμ λ¬Έμ κ° μκΈ°λ©΄,
μ 체 νλ‘μΈμ€μ μν₯μ λ―ΈμΉλ κ²μ΄λ€.
λ°λ©΄μ κ΅¬κΈ ν¬λ‘¬μ λ€μ λΉν¨μ¨μ μΈ λΆλΆμ΄ μμμ μμ§λ§ λ©ν° νλ‘μΈμ€λ₯Ό μ΄μ©νκΈ° λλ¬Έμ λ©ν°ν κ°μ μν₯μ λ λ°λλ€.
λ€ μ₯λ¨μ μ΄ μκΈ° λ§λ ¨μ΄λ€.
μμ μκ°ν λ©ν°νλ‘μΈμ€μ λ©ν°μ€λ λλ 'μ²λ¦¬λ°©μ'μ μΌμ’
μ΄κΈ° λλ¬Έμ μννΈμ¨μ΄μ λΆμΌμ κ°κΉκ³
λ©ν°μ½μ΄λ μ‘°κΈλ νλμ¨μ΄ μΈ‘λ©΄μ κ°κΉλ€ λ³Ό μ μλ€. λ©ν°μ½μ΄μ κ΄λ ¨λ ν€μλλ λμμ±κ³Ό λ³λ ¬μ²λ¦¬μ΄λ€.
- λμμ± : νλμ μ½μ΄μμ νλ μ΄μμ νλ‘μΈμ€(μ€λ λ)κ° λ²κ°μκ°λ©΄μ μ§νλμ§λ§ λμμ μ§νλλ κ²μ²λΌ 보μ΄λ κ²
- λ³λ ¬μ²λ¦¬ : λ μ΄μμ μ½μ΄μμ λμμ νλ μ΄μμ νλ‘μΈμ€(μ€λ λ)κ° νκΊΌλ²μ μ§νλλ κ²