πμ€λ λλ
- νλ‘μΈμ€κ° ν λΉλ°μ μμμ μ΄μ©νλ μ€ν νλ¦μ λ¨μμ΄λ€.
- κ° μ€λ λ(Thread)λ Thread ID, νλ‘κ·Έλ¨ μΉ΄μ΄ν°,λ μ§μ€ν° μ§ν©, μ€νμΌλ‘ ꡬμ±λμ΄ μλ€.
- κ°μ νλ‘μΈμ€μ μνλ μ€λ λλ μλ‘ μ½λ, λ°μ΄ν° μΉμ , Heap, μ΄λ¦°νμΌμ΄λ μ νΈμ κ°μ μ΄μ체μ μμλ€μ 곡μ νλ€.
πμ€λ λκ° νμν μ΄μ
- μΉμλ²λ μλ§μ ν΄λΌμ΄μΈνΈλ‘λΆν° μμ²μ λ°λλ€.λ§μ½ λ¨μΌ νλ‘μΈμ€λ‘ μλνλ€λ©΄ ,μμ μ λ¨μΌ νλ‘μΈμ€λ‘ νλ²μ νλμ ν΄λΌμ΄μΈνΈλ§μ μλΉμ€ ν μ μκ²λμ΄ μ€λ«λμ κΈ°λ€λ €μΌνλ€.
πλ©ν°νμ€νΉκ³Ό λ©ν°μ€λ λ
π λ©ν° νμ€νΉ
- λ©ν°νμ€νΉμ νλμ μ΄μ체μ μΈμμ μ¬λ¬ νλ‘μΈμ€κ° μ€νλλκ²μ μλ―Ένλ€.
- λ©ν°νμ€νΉμ μ¬λ¬ νλ‘μΈμ€κ° λμμ μ€νλλ κ²μ²λΌ 보μ΄μ§λ§ μμΈν μ리λ₯Ό μμ보면 κ·Έλ μ§ μλ€.
πλ©ν°μ€λ λ
- λλΆλΆμ νλ‘κ·Έλ¨μ νλμ νλ‘μΈμ€μμ μ¬λ¬κ°μ μ€λ λλ‘ κ΅¬μ±ν΄μ μ²λ¦¬νλ λ°©μμ μ¬μ©νλ€.μ΄λ₯Ό λ©ν°μ€λ λ©μ΄λΌ νλ€.
- μμμ 곡μ ν΄μ ν¨κ³Όμ μ΄κ³ , ν΅μ κ° λΉμ©μ΄ μ λ€.
πλ©ν°μ€λ λ μ₯λ¨μ
π€¨λ©ν°μ€λ λ μ₯μ
- μμ€ν μμ μλͺ¨ κ°μ (μμμ ν¨μ¨μ± μ¦λ) :νλ‘μΈμ€λ₯Ό μμ±νμ¬ μμμ ν λΉνλ μμ€ν μ½μ΄ μ€μ΄λ€μ΄ μμμ ν¨μ¨μ μΌλ‘ κ΄λ¦¬ ν μ μλ€.
- μμ€ν μ²λ¦¬λ μ¦κ°(μ²λ¦¬ λΉμ© κ°μ) : μ€λ λ μ¬μ΄μ μμ λμ΄ μμ Context Switchingμ΄ λΉ λ₯΄λ€.
- κ°λ¨ν ν΅μ λ°©λ²μΌλ‘ μΈν νλ‘κ·Έλ¨ μλ΅ μκ° λ¨μΆ: μ€λ λλ νλ‘μΈμ€ λ΄μ Stackμμμ μ μΈν λͺ¨λ λ©λͺ¨λ¦¬λ₯Ό 곡μ νκΈ° λλ¬Έμ ν΅μ μ λΆλ΄μ΄ μ λ€.
πλ©ν°μ€λ λ λ¨μ
- μ€λ λ νλκ° νλ‘μΈμ€ λ΄λΆ μμμ λ§μ³λ²λ¦¬λ©΄ λͺ¨λ νλ‘μΈμ€κ° μ’ λ£λ μ μλ€.
- μμμ 곡μ νκΈ° λλ¬Έμ λκΈ°ν λ¬Έμ κ° λ°μν μ λ°μ μλ€.
πλκΈ°ν λ¬Έμ (Synchronization Issue)λ λ©ν°μ€λ λλ₯Ό μ¬μ©νλ©΄ κ°κ°μ μ€λ λ μ€μ μ΄λ€ κ²μ΄ μ°μ μμλ‘ μ€νλλμ§ μ μ μλ€.
λ§μ½ A μ€λ λκ° μ΄λ€ μμμ μ¬μ©νλ€κ° B μ€λ λλ‘ μ μ΄κΆμ΄ λμ΄κ° ν B μ€λ λκ° ν΄λΉ μμμ μμ νμ λ, λ€μ μ μ΄κΆμ λ°μ
Aμ€λ λκ° ν΄λΉ μμμ μ κ·Όνμ§ λͺ»νκ±°λ λ°λ μμμ μ κ·Όνκ² λλ μ€λ₯κ° λ°μν μ μλ€.κ·Έλ¬λ―λ‘ νλ‘κ·Έλλ¨Έκ° μ§μ λκΈ°ν
λ¬Έμ μ λμν μ μμ΄μΌ νλ€.
π»λ§λ¬΄λ¦¬
μ€λ λλ νλ‘μΈμ€ μμ ν¬ν¨λμ΄ μκΈ° λλ¬Έμ,νλ‘μΈμ€μ κ°λ μ λ²μλΆν°κ° λ€λ₯΄λ€.
μ΄μ체μ κ° νλ‘μΈμ€μκ² Code/Data/Stack/Heap λ©λͺ¨λ¦¬ μμμ ν λΉν΄ μ£Όκ³ μ΅μ μμ λ¨μλ‘ μΌλ λ°λ©΄, μ€λ λλ νλ‘μΈμ€ λ΄μμ Stack λ©λͺ¨λ¦¬ μμμ μ μΈν λ€λ₯Έ λ©λͺ¨λ¦¬ μμμ κ°μ νλ‘μΈμ€ λ΄ λ€λ₯Έ μ€λ λμ 곡μ νλ€.
λ©ν°νμ€νΉλ³΄λ€ λ©ν°μ€λ λκ° μμμ μλ μ μκ² λλ€. λ€λ§ μ€λ λμ μ€μΌμ€λ§μ μ΄μ체μ κ° μ²λ¦¬νμ§ μκΈ° λλ¬Έμ νλ‘κ·Έλλ¨Έκ° μ§μ λκΈ°ν λ¬Έμ μ λμν μ μμ΄μΌ νλ€.
References
- https://gmlwjd9405.github.io/2018/09/14/process-vs-thread.html
- https://velog.io/@ckstn0777/OS-μ€λ λ
- https://velog.io/@raejoonee/νλ‘μΈμ€μ-μ€λ λμ-μ°¨μ΄
'Dev > ComputerScience' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[CS]μΈν°λ½νΈ(Interrupt) (0) | 2021.06.13 |
---|---|
[CS]Context Switching(컨νμ€νΈ μ€μμΉ) (0) | 2021.06.13 |