νλ‘μΈμ€: μ΄μ체μ λ‘λΆν° μμμ ν λΉλ°μ μμ μ λ¨μ
μ€λ λ: νλ‘μΈμ€κ° ν λΉλ°μ μμμ μ΄μ©νλ μ€ν νλ¦μ λ¨μ
μμΈν μμ보μ
1. νλ‘μΈμ€
μλ μλ κ²μκ³Ό μΈν°λ· μμΉμ ν¨κ» ν μ μμλ€. λ©ν°νμ€νΉμ΄ κ°λ₯νκΈ° μ κΉμ§λ!!
Process is a program in execution
μ¦, νλ‘κ·Έλ¨μ΄ μ€νλΌμ λμκ°κ³ μλ μν, μ»΄ν¨ν°κ° μ΄λ€μΌμ νκ³ μλ μν
λ©λͺ¨λ¦¬μ μ¬λΌμ μ€νλκ³ μλ νλ‘κ·Έλ¨μ μΈμ€ν΄μ€. "μμ "
λμμ±(Concurrency)λ μ¬λ¬κ°μ μμ μ ν λ, λ€ λλ΄μ§ μκ³ μΌλΆλΆμ© λμκ°λ©° μμ νλ μν
μ΄λ κ² μ§νμ€μΈ μμ μ λ°κΎΈλ κ²μ Context Switchingμ΄λΌκ³ νλ€.
λ³λ ¬μ±(Parallelism)μ νλ‘μΈμ€ νλμ μ½μ΄ μ¬λ¬κ°κ° λ¬λ €μ κ°κ° λμμ μμ λ€μ μννλ κ²μ΄λ€.
νλ‘μΈμ€μ λ©λͺ¨λ¦¬μμ
βCode μμ: μ€νν νλ‘κ·Έλ¨μ μ½λλ λͺ λ Ήμ΄λ€μ΄ κΈ°κ³μ΄ ννλ‘ μ μ₯λ μμμ΄λ€. CPUλ μ½λμμμ μ μ₯λ λͺ λ Ήμ΄λ€μ νλμ© μ²λ¦¬
βData μμ: μ μ λ³μμ μ μ λ³μκ° μ μ₯λλ μμμ΄λ€. νλ‘κ·Έλ¨μ΄ μ€νλλ©΄μ ν λΉλκ³ μ’ λ£λλ©΄μ μλ©Ένλ€.
βStack μμ: μ»΄νμΌ μ ν¬κΈ° κ²°μ . ν¨μ, μ§μλ³μ, 맀κ°λ³μ λ±μ΄ μ μ₯λλ μμμ΄λ€. ν¨μ νΈμΆμ κΈ°λ‘λκ³ μ’ λ£λλ©΄ μ κ±°λλ€.
βHeap μμ: λ°νμ μ ν¬κΈ° κ²°μ . κ΄λ¦¬κ° κ°λ₯ν λ°μ΄ν° μ΄μΈμ λ€λ₯Έ ννμ λ°μ΄ν°λ₯Ό κ΄λ¦¬νκΈ° μν μμ 곡κ°μ΄λ€.
μ΄λ, stack, heapμ λμ μμμ΄κ³ , data, codeλ μ μ μμμ΄λ€.
2. νλ‘μΈμ€μ μν(state)
νλ‘μΈμ€λ μνκ° λ³κ²½λλ©° μνλλ€.
βRunning: CPUλ₯Ό μ‘κ³ instructionμ μνμ€μΈ μν
βReady: CPUλ₯Ό κΈ°λ€λ¦¬λ μν
βWaiting: CPUλ₯Ό μ£Όμ΄λ λΉμ₯ instructionμ ν μ μλ μν
βNew: λμ€ν¬μμ λ©λͺ¨λ¦¬λ‘ νλ‘κ·Έλ¨μ΄ μ¬λΌκ°μ μ€λΉμ€μΈ μν
βTerminated: executionμ΄ λλ μν
3. μ€λ λ (Thread)
ν νλ‘μΈμ€ λ΄μμλ μ¬λ¬ κ°λμ μμ λ€μ΄ λμμ μ§νλ νμκ° μμ. μ΄ κ°λλ₯Ό 'μ€λ λ' λΌκ³ νλ€.
μ΄λ ΅λ€. μμλ₯Ό ν΅ν΄μ μ΄ν΄ν΄λ³΄μ
μ리 νλνλλ₯Ό νλ‘μΈμ€λΌκ³ νλ€.
νλ²κ±°λ₯Ό λ§λλ νλ‘μΈμ€μμλ ν¨ν°λ₯Ό κ΅½λ μ€λ λμ μΌμ±λ₯Ό λΉ΅μμ μ¬λ¦¬λ μ€λ λκ° μμ κ²μ΄λ€.
ν λ©λ΄μ μ€λ λλ κ°μ νλ‘μΈμ€μμ 쑰리λλ€.
ν¨ν°λ₯Ό λ€λ₯Έ νλ‘μΈμ€μμ ꡬμμ κ°μ Έμ€λ €λ©΄ μΌνκΈ°κ° νλ€λ€.
νλ‘μΈμ€λ€μ μ»΄ν¨ν°μ μμμ λΆν ν΄μ μ°μ§λ§ μ€λ λλ νλ‘μΈμ€λ§λ€ μ£Όμ΄μ§ μ 체 μμμ ν¨κ» μ¬μ©νλ κ²μ΄λ€.
λ¨μ λ μλ€.
μ€λ λ λκ°κ° λμμ μμ λλ€κ³ νμ. μλ¬!!
μλλ λ²νΌμ νλμ© 10λ² λλ¬μ 20μ΄ λμμΌνλλ°, λμμ λλ₯΄λ€λ³΄λ κ°μ΄ λ리λ κ²½μ°κ° μ겨μ 20λ³΄λ€ μ κ² λλ¦°λ€.
λ°λΌμ μ€λ λλ₯Ό μ¬μ©νλ νλ‘κ·Έλ¨μ μ½λμ§κΈ°, λλ²κΉ νκΈ° λͺ¨λ νλ€λ€.
μ½λ,λ°μ΄ν°,μ€ν,νμ κ°κ° μμ±νλ νλ‘μΈμ€μλ λ¬λ¦¬ μ€λ λλ μ½λ, λ°μ΄ν°, νμ μ€λ λλΌλ¦¬ μλ‘ κ³΅μ νκ³ μ€νμ κ°κ° μμ±λλ€.
λ©ν°μ€λ λ©μ νλ‘μΈμ€ λ΄ μμ μ μ¬λ¬κ°μ λ©ν°μ€λ λλ‘ μ²λ¦¬νλ κΈ°λ²μ΄λ©° μ€λ λλΌλ¦¬ μμμ 곡μ νκΈ°μ ν¨μ¨μ±μ΄ λλ€.
REFERENCE
https://gmlwjd9405.github.io/2018/09/14/process-vs-thread.html
'πΌλ°±μ€λ > Server' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
λ©ν°νλ‘μΈμ€μ λ©ν° μ€λ λ (0) | 2023.09.23 |
---|---|
λ³λ ¬ μ²λ¦¬ (0) | 2023.09.23 |
System Call (0) | 2023.09.22 |
TCP vs UDP (0) | 2023.09.22 |
OSI 7κ³μΈ΅κ³Ό TCP/IP 4κ³μΈ΅ λͺ¨λΈ (0) | 2023.09.22 |