Process
νλ‘μΈμ€λ μ»΄ν¨ν°μμ μ€νμ€μΈ νλ‘κ·Έλ¨μ λ§νλ€. μ‘°κΈ λ μμΈν λ§νλ©΄, μ΄μ체μ μ μν΄ κ΄λ¦¬λλ©° μμμ ν λΉλ°μ λ 립μ μΌλ‘ μ€νμ΄ κ°λ₯ν νλ‘κ·Έλ¨μ λ¨μμ΄λ€.
νλ‘κ·Έλ¨μ΄λ 보쑰기μ΅μ₯μΉ (νλλμ€ν¬λ SSD)μ μ μ₯λμ΄ μ€νμ κΈ°λ€λ¦¬λ λͺ λ Ήμ΄μ λ°μ΄ν°μ μ§ν©μ μλ―Ένκ³ , νλ‘μΈμ€λ νλ‘κ·Έλ¨μ΄ λ©λͺ¨λ¦¬μ μ μ₯λμ΄ μ€νμ€μΈ νλ‘κ·Έλ¨μ μλ―Ένλ€.
μ°λ¦¬κ° μ΄λ€ νλ‘κ·Έλ¨μ μ€ννκ² λλ©΄, νλ‘κ·Έλ¨μ΄ μμ±λ μ½λλ₯Ό μ»΄ν¨ν°κ° μ½μμ μλ μ κΈμΈμ΄ ννλ‘ λ³ννμ¬ .exe
νμ₯μλ‘ λ μ€ννμΌμ μμ±νλ€. μ΄ νμΌμ μ€νλλ©΄ λ©λͺ¨λ¦¬μμ μ¬λΌκ°κ² λλλ° μ΄κ²μ νλ‘μΈμ€λΌκ³ νλ€.
λ©λͺ¨λ¦¬μ μ μ₯λ νλ‘μΈμ€λ ν¬κ² 4κ°μ§μ 곡κ°(μμ)μΌλ‘ μ΄λ£¨μ΄μ Έμλ€.

Process μμ
Code μμ (Text)
κ°λ°μκ° μμ±ν μμ€μ½λκ° μ μ₯λλ 곡κ°μ΄λ€. μ»΄νμΌ ν κΈ°κ³μ΄λ‘ λ²μλμ΄ μ κΈμΈμ΄ (0,1) μ ννλ‘ μ μ₯λλ€.
Data μμ (Data)
μ½λ μμμμ μ μΈλ μ μ/μ μ λ³μ, μμ λ± νλ‘κ·Έλ¨μ΄ μ€νλλ νμν λ°μ΄ν°λ€μ΄ μ μ₯λλ€.
Heap μμ
μ½λμμμμ μ μΈλ λ°μ΄ν° ꡬ쑰, κ°μ²΄ λ± λμ ν λΉ(C - malloc)μ μ μ₯νκΈ° μν μμμ΄λ€. μλ₯Ό λ€μλ©΄, λ°°μ΄ μμ±μ λ°°μ΄μ λ°μ΄ν°κ° μΆκ°λ¨μ λ°λΌ μ λμ μΌλ‘ μ μ₯곡κ°μ μ¦κ°μν¬μ μλ μμμ΄λ€. λ€λ₯Έ μμ λ€κ³Ό λ¬λ¦¬ λ° νμ μ ν¬κΈ°κ° κ²°μ λλ€. (λ€λ₯Έ μμ λ€μ μ»΄νμΌ μ ν¬κΈ°κ° κ²°μ λλ€.) μλμμ μ΄ν΄λ³Ό μ€ν μμλ³΄λ€ ν¬κΈ°κ° ν¬μ§λ§, ν¬μΈν°λ‘ λ©λͺ¨λ¦¬μ μ κ·Όν΄μΌ νκΈ° λλ¬Έμ μλκ° λ리λ€.
μ 리 νμλ©΄, νλ‘μΈμ€κ° μ€νμ€ λμ μΌλ‘ λ©λͺ¨λ¦¬λ₯Ό ν λΉ/ν΄μ νλλ° μ¬μ©λλ€.
μ μμ¬νμΌλ‘ λ©λͺ¨λ¦¬λ₯Ό ν λΉν ν΄μ νμ§ μμΌλ©΄ λ©λͺ¨λ¦¬ λμ (Memory Leak)κ° μΌμ΄λκΈ° λλ¬Έμ λ°λμ ν΄μ λ₯Ό ν΄μ£Όμ΄μΌ νλ€.
μ΄ κ³Όμ μ μλμΌλ‘ μ€νν΄μ£Όλ Garbage Collector λΌλ κΈ°λ₯μ μ§μνλ μΈμ΄λ€λ μλ€ (μλ°, νμ΄μ¬ λ±)
Stack μμ
μ§μλ³μ, λ§€κ°λ³μ, λ¦¬ν΄ κ° λ± μμμ μΌλ‘ μ¬μ© λλ λ°μ΄ν°λ€μ μ μ₯νλ μμμ΄λ€.
μ΄λ¦μ²λΌ Stack μλ£κ΅¬μ‘°μ νν (LIFO) λ₯Ό κ°μ§κ³ μμΌλ©°, νλ‘μΈμ€ λ§λ€ λ 립μ μΈ μμμ κ°μ§κ³ μλ€. μ μ₯ν΄μΌ ν λ³μμ μμ΄ λ무 λ§μ μμμ μ΄κ³Όνκ² λλ©΄ μκΈ°λ μλ¬κ° λ°λ‘ stack overflow μλ¬μ΄λ€.
Process κ΄λ¦¬
μ¬μ€ CPUλ νλ²μ νλμ νλ‘μΈμ€λ§ μ€νμ΄ κ°λ₯νμ§λ§, μ΄μ체μ κ° νλ‘μΈμ€λ₯Ό κ΄λ¦¬νλ©° λ§€μ° λΉ λ₯Έμλλ‘ νλ‘μΈμ€λ₯Ό κ΅μ²΄νκΈ° λλ¬Έμ μ¬μ©μμκ²λ μ¬λ¬ νλ‘μΈμ€λ₯Ό λμμ μ€ννλ κ²μ²λΌ 보μΈλ€.
κ·Έλ λ€λ©΄ μ΄ νλ‘μΈμ€λ₯Ό μ΄λ»κ² κ΄λ¦¬νλ κ²μΈμ§ μ΄ν΄λ³΄μ.
μ΄μ체μ λ νλ‘μΈμ€μ μνλ₯Ό μ€λΉ, μ€ν, λΈλ‘(λκΈ°) 3κ°μ§μ μνλ‘ κ΅¬λΆνκ³ κ° λ¨κ³κ°μ μν μ μ΄λ₯Ό νμ©νμ¬ κ΄λ¦¬νλ€.

λ¨Όμ νλ‘κ·Έλ¨ μ€νμ, νλ‘μΈμ€κ° μμ± λλ©°, μ€λΉ 리μ€νΈμ νλ‘μΈμ€κ° μΆκ°λκ³ CPU λ₯Ό ν λΉλ°κ² λλ€. μ΄ κ³Όμ μ λ°λ‘ Dispatching μ΄λΌκ³ λΆλ₯΄λ©° μ€λΉ β‘οΈ μ€ν μΌλ‘ μν μ μ΄ λλ€ κ³ νννλ€.
μ€νμνμμ CPU λ₯Ό μ¬μ©ν ν, CPU λ₯Ό ν λΉν΄μ νλ©° μμ§ μμ μ΄ λλμ§ μμλ€λ©΄ λ€μ μ€λΉμνλ‘ μ μ΄ λλ€.
λ§μ½ ν΄λΉ νλ‘μΈμ€λ₯Ό λ€μ μ¬μ©νκΈ° μ μ μ΄λ€ μ μΆλ ₯μ΄ νμν μνλΌλ©΄, μ μΆλ ₯μ΄ μλ£λ λκΉμ§ λΈλ‘(λκΈ°μν) λ‘ μ μ΄ λκ³ , μ΄ν μ μΆλ ₯μ΄ μ’ λ£λλ©΄ μ€λΉμνλ‘ μ μ΄ λλ€.
κ·Έλ°λ° νλ‘μΈμ€ λ§λ€ λ€ κ°μ μνλ₯Ό κ°μ§κ³ μμ§ μμκ²μ΄λ€. μ΄λ€ νλ‘μΈμ€λ λκΈ°μν, μ΄λ€ νλ‘μΈμ€λ λΈλ‘ μν λ± μ¬λ¬ μνλ₯Ό κ°μ§κ³ μμ ν λ° μ΄κ²λ€μ μ΄λμ μ μ₯ νλμ§ μλ¬Έμ΄ μκΈ΄λ€.
μ΄μ체μ λ νλ‘μΈμ€ λ€μ μ μ΄νκΈ° μν΄ PCB λΌλ κ³³μ νλ‘μΈμ€μ μν λ° μ 보λ₯Ό μ μ₯νλ€.
PCB (Process Control Block)
νλ‘μΈμ€ μμ±μμ λ§λ€μ΄μ§λ©°, μμμ μ΄ν΄λ³Έ νλ‘μΈμ€μ μν λ° μμ λ±μ λ°μ΄ν°κ° PCB μ μ μ₯λλ€.

μ°λ¦¬κ° μ΄λ€ νλ‘μΈμ€λ₯Ό μ€νμ€, μ μ λ€λ₯Έ νλ‘μΈμ€λ₯Ό μ€νν΄μΌ νλ€λ©΄, μ΄μ νλ‘μΈμ€μ μνλ₯Ό ν¬ν¨ν μ¬λ¬ μ 보λ€μ μ μ₯ν΄μΌνλ€.
λ°λΌμ PCB μλ
νλ‘μΈμ€ μμ΄λ
νλ‘μΈμ€μ μν
μ°μ μμ, μ€νμκ°, CPU μ μ μκ°
νλ‘μΈμ€ μ£Όμ곡κ°
...
λ± μ μ¬λ¬ λ°μ΄ν°λ€μ μ μ₯ νλ€.
μ΄λ, νμ¬ μ€νμ€μΈ νλ‘μΈμ€μΈ λ€λ₯Έ νλ‘μΈμ€λ₯Ό μ€ννκ² λλ€λ©΄, λ©λͺ¨λ¦¬μ μ μ₯λ PCB λ₯Ό κ΅μ²΄ν΄μΌνλλ° μ΄κ²μ λ°λ‘ Context Switch (λ¬Έλ§₯κ΅ν) μ΄λΌκ³ νλ€. μ½κ² λ§ν΄ μ€νμ€μΈ νλ‘μΈμ€μ μνμ 보λ₯Ό κ΅ννλ κ²μ΄λ€.

λ°λ‘ μ΄ λ¬Έλ§₯ κ΅νμ ν΅νμ¬ μ°λ¦¬κ° μ¬λ¬ νλ‘κ·Έλ¨λ€μ μ€νν μ μλ κ²μ΄λ€. (μμμ μ€λͺ νλ―μ΄, λμμ μ€νλλ κ²μ΄μλ λΉ λ₯΄κ² νλ‘μΈμ€κ° κ΅μ²΄λλ κ²)
μ΄λ, λ¬Έλ§₯κ΅νμ΄ μνμ€μΌλλ λ€λ₯Έ μμ μ΄ λΆκ°λ₯ νλ° μ΄κ²μ λ°λ‘ μ€λ²ν€λ λΌκ³ νλ€.
+ Thread
μΌλ°μ μΌλ‘ νλ‘μΈμ€μ μ€λ λ λ λ κ°λ μ μ ννκ² μμ§ λͺ»νλ©΄ νΌλνκΈ° μ¬μ΄ κ°λ μ΄λ€. (λ¨, CPU μμ λ§νλ μ€λ λλ νλμ¨μ΄ μ€λ λλ₯Ό λ»νκ³ , μ¬κΈ°μ λ§νλ μ€λ λλ μννΈμ¨μ΄ μ€λ λλ₯Ό λ»νλ€.)
νλ‘μΈμ€κ° λ©λͺ¨λ¦¬μ μ μ₯λμ΄ λ 립μ μΌλ‘ μ€νκ°λ₯ν νλ‘κ·Έλ¨μ λ¨μλΌλ©΄ μ€λ λλ νλ‘μΈμ€ λ΄μμ μ€νλλ μ¬λ¬ νλ¦μ λ¨μ μ΄λ€. μ΄λ μ€νλλ μμ μ νλ¦μ΄ νκ°λΌλ©΄ λ¨μΌ μ€λ λ, μ¬λ¬κ°λΌλ©΄ λ©ν° μ€λ λ λΌκ³ νλ€. (νλ‘μΈμ€λ λ°λμ νλ μ΄μμ μ€λ λλ₯Ό κ°μ§λ€.)
μλ₯Ό λ€μ΄ λΈλΌμ°μ μμ κ²μμ νλ©° νμΌμ λ€μ΄λ‘λνλ κ²μ κ²μμμ μ νλ μ€λ λ μ λ€μ΄λ‘λ μμ μ νλ μ€λ λ, 2κ°μ§μ μ€λ λλ₯Ό κ°μ§κ³ μλ κ²μ΄λ€.

μ€λ λλ νλ‘μΈμ€μ 4κ°μ§ μμ μ€, μ€ν μμλ§ λ°λ‘ ν λΉλ°κ³ λλ¨Έμ§ μμμ λ€λ₯Έ μ€λ λ μ 곡μ νλ©° μ€νλλ€.
λ 립μ μΈ μ€ν μμμ ν λΉλ°λλ€ β‘οΈ λ 립μ μΈ ν¨μ νΈμΆμ΄ κ°λ₯νλ€ β‘οΈ λ 립μ μΈ μ€ννλ¦μ΄ νλ μΆκ°λλ€
Last updated