week11 junghyunlyoo process - GANGNAM-JAVA/JAVA-STUDY GitHub Wiki
νλ‘μΈμ€μ μμ±
νλ‘κ·Έλ¨μ΄ μ€ν λλ €λ©΄ μ¦ νλ‘μΈμ€κ° μμ± λλ €λ©΄ νλ‘μΈμ μ μ μκ°, λ©λͺ¨λ¦¬, νμΌ, μ μΆλ ₯μ₯μΉ κ°μ μμμ΄ νμνλ€.
νλ‘μΈμ€κ° μμ±λκ±°λ μ€νλ λ μ΄ μμλ€μ΄ νλ‘μΈμ€μ ν λΉνλ€. λν νμ¬μ νλ μνλ₯Ό λνλ΄λ νλ‘κ·Έλ¨ μΉ΄μ΄ν°(PC), νλ‘μΈμμ νμ¬ νλ(λ μ§μ€ν° λ΄μ©)λ νλ‘μΈμ€ λ΄λΆμ ν¬ν¨λλ€.
νλ‘μΈμ€λ μλμ κ°μ΄ λ©λͺ¨λ¦¬ ꡬ쑰λ₯Ό μ΄λ£¬λ€.
-
μ€νμ νΈμΆν ν¨μμ λ°ν μ£Όμ, λ°ν κ°, 맀κ°λ³μ, μ§μλ³μ λ±μ λ°μ΄ν°λ₯Ό μΌμμ μΌλ‘ μ μ₯νλ μμμ΄λ€.
-
νμ λ€λ₯Έ μμκ³Όλ λ³λλ‘ μ μ§λλ μμ μμμ΄λ€. λμ μΌλ‘ λ©λͺ¨λ¦¬λ₯Ό ν λΉνκΈ° μν΄ νλ‘κ·Έλ¨ μ€ν μ€ μμ€ν νΈμΆμ μ¬μ©νλ€κ° ν΄μ νλ λ°©λ²μΌλ‘ νμ©νλ€. νλ‘μΈμ€μ 곡μ λΌμ΄λΈλ¬λ¦¬μ λμ μΌλ‘ μ μ¬λ λͺ¨λμ΄ μλ‘ κ³΅μ νλλ°, λμ λ©λͺ¨λ¦¬ ν λΉμ΄ λ°μνλ©΄ μ€νμμ μͺ½μΈ μμͺ½μΌλ‘ 컀μ§λ€.
-
λ°μ΄ν°λ νλ‘κ·Έλ¨μ κ°μ μ£Όμ 곡κ°μ΄λ€. μ μλ³μλ μ μ λ³μλ₯Ό μ μ₯νκ±°λ ν λΉνκ³ μ€ννκΈ° μ μ μ΄κΈ°ννλ€. μ½κΈ°μ μ°κΈ°κ° κ°λ₯ν μμμ΄λ€.
-
μ½λλ μ€ν λͺ λ Ήμ ν¬ν¨νλ λ©λͺ¨λ¦¬μ΄λ€. νλ‘κ·Έλ¨μ μμν λ νλ‘μΈμκ° λμ€ν¬μμ μ½μ΄ μ€ννλ μ»΄νμΌλ νλ‘κ·Έλ¨μ μ μ₯νλ€. μ½κΈ° μ μ© μμμ΄κΈ° λλ¬Έμ νλ‘κ·Έλ¨μ΄ μ½λ μμμ μΉ¨λ²νμ¬ μ°κΈ°λ₯Ό μλνλ©΄ μ€λ₯κ° λ°μν΄μ νλ‘κ·Έλ¨μ μ’ λ£νλ€.
μ΄λ κ² νλ‘μΈμ€λ λ³λμ μ£Όμ 곡κ°μμ μ€νλλ©°, ν νλ‘μΈμ€λ λ€λ₯Έ νλ‘μΈμ€μ μμ μμμ μ κ·Όν μ μλ€. λ§μ½ ν νλ‘μΈμ€κ° λ€λ₯Έ νλ‘μΈμ€μ μμμ μ κ·Όνλ €λ©΄ νμ΄ν, νμΌ, μμΌ λ±μ νλ‘μΈμ€ κ° ν΅μ (IPC)μ μ¬μ©ν΄μΌνλ€.
νλ‘μΈμ€μ μν λ³νμ μν μ 보
μνλ³ν | νκΈ°λ°©λ² |
---|---|
μ€λΉ->μ€ν | dispatch |
μ€ν->μ€λΉ | timeout |
μ€ν->λκΈ° | block |
λκΈ°->μ€λΉ | wakeup |
μ€λΉ->μ€ν
μ€λΉ ν 맨 μμ μλ νλ‘μΈμ€κ° νλ‘μΈμλ₯Ό μ μ νλ κ²μ dispatchλΌκ³ νλ€.
λ€μ€ νλ‘κ·Έλλ° μ΄μ체μ μμλ μ€ν μνμΈ νλ‘μΈμ€κ° ν λΉλ CPU μ μ μκ°λ§νΌλ§ νλ‘μΈμλ₯Ό μ¬μ©νλλ‘ νμ¬ νΉμ νλ‘μΈμ€κ° νλ‘μΈμλ₯Ό κ³μ λ
μ νλ κ²μ λ°©μ§νλ€.
μ€ν->μ€λΉ
μ΄μ체μ λ μ€ν μνμ νλ‘μΈμ€κ° CPUλ₯Ό κ³μ λ
μ νμ§ μλλ‘ μΈν°λ½νΈ ν΄λ‘μ λμ΄ νΉμ νλ‘μΈμ€κ° ν λΉλ CPUμ μ μκ°λμλ§ νλ‘μΈμλ₯Ό μ μ νκ² νλ€.
νλ‘μΈμ€κ° μΌμ μκ°μ΄ μ§λλ νλ‘μΈμλ₯Ό λ°ννμ§ μμΌλ©΄ ν΄λ‘μ΄ μΈν°λ½νΈλ₯Ό λ°μμμΌ μ΄μ체μ μ νλ‘μΈμ μ μ΄κΆμ λΆμ¬νκ² λλ€.
κ·Έλ¬λ©΄ μ€ν μνμ νλ‘μΈμ€λ μ€λΉ μνκ° λκ³ , μ€λΉ 리μ€νΈμ 첫 λ²μ§Έ νλ‘μΈμ€κ° μ€ν μνκ° λλ€.
μ€ν->λκΈ°
ν λΉλ μκ° μ΄μ μ μ€ν μνμ νλ‘μΈμ€μ μ
μΆλ ₯ μ°μ° λ±μ΄ νμνκ±°λ μλ‘μ΄ μμ μμ² λ±μ λ¬Έμ λ‘ νλ‘μΈμλ₯Ό μ€μ€λ‘ μλνλ©΄ λκΈ° μνκ° λλ€.
λκΈ°->μ€λΉ
λκΈ°μ€μ΄μλ νλ‘μΈμ€λ μΈν°λ½νΈλ₯Ό λ°μμν¨ νλ‘μΈμ€κ° μ’
λ£λλ©΄ λκΈ°μμ μ€λΉ μνκ° λλ€.
νλ‘μΈμ€ μ μ΄ λΈλ‘(PCB, Process Control Block)
μ΄μ체μ κ° νλ‘μΈμ€λ₯Ό μ μ΄ν λ νμν νλ‘μΈμ€ μν μ 보λ νλ‘μΈμ€ μ μ΄ λΈλ‘μ μ μ₯λλ€.
νλ‘μΈμ€ μ μ΄ λΈλ‘μ νλ‘μΈμ€κ° μμ±λ λ λ§λ€ μμ±λλ€. νλ‘μΈμ€κ° μμ±λλ©΄ λ©λͺ¨λ¦¬μ PCBλ₯Ό μμ±νκ³ , νλ‘μΈμ€κ° μ’ λ£λλ©΄ PCBλ μμ νλ€. PCBμ λ€μ΄μλ μ 보λ€μ μλμ κ°λ€.
μ 보 | μ€λͺ |
---|---|
νλ‘μΈμ€ μλ³μ | κ° νλ‘μΈμ€μ κ³ μ μλ³μ |
νλ‘μΈμ€ μν | μμ±, μ€λΉ, μ€ν, λκΈ°, μ€λ¨ λ± μννμ |
νλ‘κ·Έλ¨ μΉ΄μ΄ν°(PC) | νλ‘μΈμ€λ₯Ό μ€ννλ λ€μ λͺ λ Ήμ΄μ μ£Όμ |
λ μ§μ€ν° μ μ₯ μμ | λμ°κΈ°, μΈλ±μ€ λ μ§μ€ν°, μ€ν ν¬μΈν°, λ²μ© λ μ§μ€ν°, 쑰건 μ½λ λ±μ μ 보. μΈν°λ½νΈκ° λ°μνλ©΄ νλ‘κ·Έλ¨ μΉ΄μ΄ν°μ ν¨κ» μ μ₯νμ¬ μ¬μ€νν λ μλλλ‘ λ³΅κ·ν μ μκ² νλ€. |
νλ‘μΈμ μ€μΌμ€λ§ μ 보 | νλ‘μΈμ€μ μ°μ μμ, μ€μΌμ€λ§ νμ ν¬μΈν°, κΈ°ν μ€μΌμ€ 맀κ°λ³μ |
κ³μ μ 보 | νλ‘μΈμ μ¬μ© μκ°, μ€μ μ¬μ©μκ°, μ¬μ© μν μκ°, κ³μ λ²νΈ, μμ μ΄λ νλ‘μΈμ€ λ²νΈ λ± |