[μ΄μ체μ ] νλ‘μΈμ€μ μν
νλ‘μΈμ€λ μ¬λ¬ κ°μ§ μν κ°μ κ°μ§λ€.
μμ±(create)
μμ± μνλ νλ‘μΈμ€κ° μμ±λ μνλ₯Ό μλ―Ένλ©°, fork() λλ exec() ν¨μλ₯Ό ν΅ν΄ μμ±νλ€. μ΄λ PCB(Process Control Block)κ° ν λΉλλ€.
- fork()λ λΆλͺ¨ νλ‘μΈμ€μ μ£Όμ 곡κ°μ κ·Έλλ‘ λ³΅μ¬νλ©°, μλ‘μ΄ μμ νλ‘μΈμ€λ₯Ό μμ±νλ ν¨μμ΄λ€. μ£Όμ 곡κ°λ§ 볡μ¬ν λΏμ΄κ³ λΆλͺ¨ νλ‘μΈμ€μ λΉλκΈ° μμ λ±μ μμνμ§ μλλ€.
- exec()λ μλ‘κ² νλ‘μΈμ€λ₯Ό μμ±νλ ν¨μμ΄λ€.
μ€λΉ(ready)
μ€λΉ μνλ λ©λͺ¨λ¦¬ 곡κ°μ΄ μΆ©λΆν κ²½μ° λ©λͺ¨λ¦¬λ₯Ό ν λΉλ°κ³ , μλλ©΄ μλ μνλ‘ λκΈ°λ₯Ό νκ³ μλ€κ° CPU μ€μΌμ€λ¬λ‘λΆν° CPU μμ κΆμ΄ λμ΄μ€κΈ°λ₯Ό κΈ°λ€λ¦¬λ μνμ΄λ€. μ΄λ CPU μμ κΆμ λ°μ μ€ν μνλ‘ λ€μ΄κ°λ κ²μ λμ€ν¨μΉ(dispatch)λΌ νλ€.
μ€ν(running)
CPU μμ κΆκ³Ό λ©λͺ¨λ¦¬λ₯Ό ν λΉλ°κ³ νλ‘μΈμ€κ° μ€ν μ€μΈ μνλ₯Ό μλ―Ένλ€.
λκΈ°(wait)
μ΄λ€ μ΄λ²€νΈκ° λ°μν μ΄ν κΈ°λ€λ¦¬λ©΄μ νλ‘μΈμ€κ° μ°¨λ¨λ μνμ΄λ€. I/O λλ°μ΄μ€μ μν μΈν°λ½νΈλ‘ μ΄λ° νμμ΄ λ§μ΄ λ°μνλ€.
μ’ λ£(terminated)
μ’ λ£ μνλ λ©λͺ¨λ¦¬μ CPU μμ κΆμ λͺ¨λ λκ³ κ°λ μνλ₯Ό λ§νλ€. μ’ λ£λ μμ°μ€λ½κ² μ’ λ£λκΈ°λ νμ§λ§, ν λΉλ μμμ νκ³μΉλ₯Ό λμ΄μκ±°λ λΆλͺ¨ νλ‘μΈμ€κ° μ’ λ£λκ±°λ, μ¬μ©μκ° process.kill λ± μ¬λ¬ λͺ λ Ήμ΄λ‘ νλ‘μΈμ€λ₯Ό μ’ λ£ν λ λ°μνλ€.