CS
OS | νλ‘μΈμ€μ μ€λ λμ μ°¨μ΄
Yunny52
2023. 7. 3. 00:24
π νλ‘κ·Έλ¨(Program) μ΄λ
- μ¬μ μ μλ―Έ: μ΄λ€ μμ μ μν΄ μ€νν μ μλ νμΌ
π νλ‘μΈμ€(Process) λ
- μ¬μ μ μλ―Έ: μ»΄ν¨ν°μμ μ°μμ μΌλ‘ μ€νλκ³ μλ μ»΄ν¨ν° νλ‘κ·Έλ¨
- λ©λͺ¨λ¦¬μ μ¬λΌμ μ€νλκ³ μλ νλ‘κ·Έλ¨μ μΈμ€ν΄μ€(λ 립μ μΈ κ°μ²΄)
- μ΄μ체μ λ‘λΆν° μμ€ν μμμ ν λΉλ°λ μμ μ λ¨μ
- μ¦, λμ μΈ κ°λ μΌλ‘λ μ€νλ νλ‘κ·Έλ¨μ μλ―Ένλ€.
- ν λΉλ°λ μμ€ν
μμμ μ
- CPU μκ°
- μ΄μλκΈ° μν΄ νμν μ£Όμ 곡κ°
- Code, Data, Stack, Heapμ κ΅¬μ‘°λ‘ λμ΄ μλ λ 립λ λ©λͺ¨λ¦¬ μμ
- νΉμ§
- νλ‘μΈμ€λ κ°κ° λ 립λ λ©λͺ¨λ¦¬ μμ(Code, Data, Stack, Heapμ ꡬ쑰)μ ν λΉλ°λλ€.
- κΈ°λ³Έμ μΌλ‘ νλ‘μΈμ€λΉ μ΅μ 1κ°μ μ€λ λ(λ©μΈ μ€λ λ)λ₯Ό κ°μ§κ³ μλ€.
- κ° νλ‘μΈμ€λ λ³λμ μ£Όμ 곡κ°μμ μ€νλλ©°, ν νλ‘μΈμ€λ λ€λ₯Έ νλ‘μΈμ€μ λ³μλ μλ£κ΅¬μ‘°μ μ κ·Όν μ μλ€.
- ν νλ‘μΈμ€κ° λ€λ₯Έ νλ‘μΈμ€μ μμμ μ κ·Όνλ €λ©΄ νλ‘μΈμ€ κ°μ ν΅μ (IPC, inter-process communication)μ μ¬μ©ν΄μΌ νλ€. (EX | νμ΄ν, νμΌ, μμΌ λ±μ μ΄μ©ν ν΅μ λ°©λ² μ΄μ©)
π μ€λ λ(Thread) λ
- μ¬μ μ μλ―Έ: νλ‘μΈμ€ λ΄μμ μ€νλλ μ¬λ¬ νλ¦μ λ¨μ
- νλ‘μΈμ€μ νΉμ ν μν κ²½λ‘
- νλ‘μΈμ€κ° ν λΉλ°μ μμμ μ΄μ©νλ μ€νμ λ¨μ
- νΉμ§
- μ€λ λλ νλ‘μΈμ€ λ΄μμ κ°κ° Stackλ§ λ°λ‘ ν λΉλ°κ³ Code, Data, Heap μμμ 곡μ νλ€.
- μ€λ λλ ν νλ‘μΈμ€ λ΄μμ λμλλ μ¬λ¬ μ€νμ νλ¦μΌλ‘, νλ‘μΈμ€ λ΄μ μ£Όμ 곡κ°μ΄λ μμλ€ (ν κ³΅κ° λ±)μ κ°μ νλ‘μΈμ€ λ΄μ μ€λ λλΌλ¦¬ 곡μ νλ©΄μ μ€νλλ€.
- κ°μ νλ‘μΈμ€ μμ μλ μ¬λ¬ μ€λ λλ€μ κ°μ ν 곡κ°μ 곡μ νλ€. λ°λ©΄μ νλ‘μΈμ€λ λ€λ₯Έ νλ‘μΈμ€μ λ©λͺ¨λ¦¬μ μ§μ μ κ·Όν μ μλ€.
- κ°κ°μ μ€λ λλ λ³λμ λ μ§μ€ν°μ μ€νμ κ°κ³ μμ§λ§, ν λ©λͺ¨λ¦¬λ μλ‘ μ½κ³ μΈ μ μλ€.
- ν μ€λ λκ° νλ‘μΈμ€ μμμ λ³κ²½νλ©΄, λ€λ₯Έ μ΄μ μ€λ λ(sibling thread)λ κ·Έ λ³κ²½ κ²°κ³Όλ₯Ό μ¦μ λ³Ό μ μλ€.
π μλ° μ€λ λ(Java Thread) λ
- μΌλ° μ€λ λμ κ±°μ μ°¨μ΄κ° μμΌλ©°, JVMμ΄ μ΄μ체μ μ μν μ νλ€.
- μλ°μλ νλ‘μΈμ€κ° κ±°μ μ‘΄μ¬νμ§ μκ³ μ€λ λλ§ μ‘΄μ¬νλ©°, μλ° μ€λ λλ JVMμ μν΄ μ€μΌμ€λλ μ€ν λ¨μ μ½λ λΈλ‘μ΄λ€.
- μλ°μμ μ€λ λ μ€μΌμ€λ§μ μ μ μΌλ‘ JVMμ μν΄ μ΄λ£¨μ΄μ§λ€.
- μλμ κ°μ μ€λ λμ κ΄λ ¨λ λ§μ μ 보λ€λ JVMμ΄ κ΄λ¦¬νλ€.
- μ€λ λκ° λͺ κ° μ‘΄μ¬νλμ§
- μ€λ λλ‘ μ€νλλ νλ‘κ·Έλ¨ μ½λμ λ©λͺ¨λ¦¬ μμΉλ μ΄λμΈμ§
- μ€λ λμ μνλ 무μμΈμ§
- μ€λ λ μ°μ μμλ μΌλ§μΈμ§
- μ¦, κ°λ°μλ μλ° μ€λ λλ‘ μλν μ€λ λ μ½λλ₯Ό μμ±νκ³ , μ€λ λ μ½λκ° μλͺ μ κ°μ§κ³ μ€νμ μμνλλ‘ JVMμ μμ²νλ μΌ λΏμ΄λ€.