λ³Έ κ²μκΈμ KOCW μ΄νμ¬μλνκ΅ λ°ν¨κ²½ κ΅μλμ <μ΄μ체μ > κ°μλ₯Ό λ£κ³ μ 리ν λ΄μ©μ λλ€.
κ²μκΈμ ν¬ν¨λλ μ΄λ―Έμ§ μλ£λ <μ΄μ체μ > κ°μμ ν¬ν¨λ κ°μ μλ£μ λλ€.
μ€λ λ(Thread)
μ€λ λλ νλ‘μΈμ€λ₯Ό ꡬμ±νλ μ€ν λ¨μμ λλ€. (lightweight processλΌκ³ λ λΆλ¦½λλ€)
νλμ νλ‘μΈμ€λ μ¬λ¬ κ°μ μ€λ λλ₯Ό κ°μ§ μ μμΌλ©°(μ΅μ νλλ κ°μ§), μ€λ λλ₯Ό μ΄μ©νλ©΄ νλμ νλ‘μΈμ€μμ μ¬λ¬ λΆλΆμ λμμ μ€νν μ μμ΅λλ€.
μ€λ λμ ꡬμ±
- Threadμ ꡬμ±: CPU μνκ³Ό κ΄λ ¨λ μ 보(곡μ νμ§ μλ λΆλΆ)
- Program Counter
- Register set
- Stack space
- Threadκ° κ³΅μ νλ μμ (= task)
- λ©λͺ¨λ¦¬ λ΄ Code, Data μμ (= λ©λͺ¨λ¦¬ μ£Όμ 곡κ°)
- OS resources
κ° CPU μν λ¨μλ§λ€ νμ¬ registerμ μ΄λ€ κ°μ λ£κ³ program counterκ° μ½λμ μ΄λ€ λΆλΆμ μ€ννκ³ μμλκ°λ₯Ό λ³λλ‘ μ μ§νκ³ μμ΅λλ€. μ€λ λ νλκ° code μμμ μ΄λ λΆλΆμ μ€ννλ€κ° ν¨μ νΈμΆμ νκ² λλ©΄ νΈμΆ λ° λ¦¬ν΄κ³Ό κ΄λ ¨λ μ 보λ₯Ό μ€νμ μκ² λλλ°, CPU μν λ¨μλ§λ€ μ΄λ¬ν μ 보λ₯Ό λ΄λ μ€νμ λ³λλ‘ λ‘λλ€.
μ€λ λμ μ₯μ
1. λΉ λ₯Έ μλ΅μ±
λ€μ€ μ€λ λλ‘ κ΅¬μ±λ task ꡬ쑰μμλ νλμ μ€λ λκ° blocked(waiting) μνμΈ λμμλ λμΌν task λ΄μ λ€λ₯Έ μ€λ λκ° μ€ν(running)μ΄ λμ΄ λΉ λ₯Έ μ²λ¦¬κ° κ°λ₯ν΄μ§λλ€. μ΄λ κ² νλμ μ€λ λκ° μ΄λ€ μμ μ μν νλλμ λ€λ₯Έ μ€λ λκ° λ³λμ μμ μ ν¨μΌλ‘μ¨ μ¬μ©μμκ² λΉ λ₯Έ μλ΅μ±μ μ 곡ν μ μκ² λ©λλ€.
2. λ€μ€ μ€λ λλ₯Ό ν΅ν μ±λ₯ ν₯μ
λμΌν μΌμ μννλ λ€μ€ μ€λ λκ° νλ ₯νμ¬ λμ μ²λ¦¬μ¨κ³Ό μ±λ₯ ν₯μμ μ»μ μ μμ΅λλ€.
νλ‘μΈμ€κ° νλ λ§λ€μ΄μ§λ©΄ λ μμ μΈ μ£Όμ 곡κ°μ΄ λ§λ€μ΄μ ΈμΌ νλλ°, μ΄λ λ©λͺ¨λ¦¬λ₯Ό μ°¨μ§νλ κ²μ΄κΈ° λλ¬Έμ κ°μ μΌμ νλ νλ‘μΈμ€λ₯Ό μ¬λ¬ κ° λμλκ² λλ€λ©΄ λ©λͺ¨λ¦¬ λλΉκ° μ¬ν΄μ§κ² λ©λλ€. λ€μ€ μ€λ λλ₯Ό μ΄μ©νλ€λ©΄ μ¬λ¬ νλ‘μΈμ€λ₯Ό μμ±νμ§ μμ μ μκΈ° λλ¬Έμ μ±λ₯μ ν₯μ μν¬ μ μμ΅λλ€.
3. λ³λ ¬μ±μ λμΌ μ μλ€.
CPUκ° μ¬λ¬ κ°μΈ μ»΄ν¨ν°μμ μ€λ λ μ¬μ© μ λ³λ ¬μ±μ λμΌ μ μμ΅λλ€.
μ€λ λμ ꡬν
- Kernel Threads
- OSμμ μ§μνλ μ€λ λ
- μ€λ λκ° μ¬λ¬ κ° μλ€λ κ²μ OS 컀λμ΄ μκ³ μκΈ° λλ¬Έμ CPUκ° thread μ¬μ΄μμ μ΄λν λλ OSκ° κ°μ ν¨
- User Threads
- μ¬μ©μ μμ€μμ μ€λ λλ₯Ό μμ±νλ κ²
- λΌμ΄λΈλ¬λ¦¬λ₯Ό ν΅ν΄ μ§μλ¨
- OS 컀λμ΄ μ€λ λκ° μ¬λ¬ κ° μλ€λ κ²μ λͺ¨λ¦
- μ μ νλ‘κ·Έλ¨μ΄ μ€μ€λ‘ κ΄λ¦¬
'π₯ CS > μ΄μ체μ ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μ΄μ체μ ] νλ‘μΈμ€ λκΈ°ν (1/2) (0) | 2023.06.08 |
---|---|
[μ΄μ체μ ] CPU μ€μΌμ€λ§ (0) | 2023.03.09 |
[μ΄μ체μ ] νλ‘μΈμ€ κ΄λ¦¬ (0) | 2023.02.16 |
[μ΄μ체μ ] νλ‘μΈμ€ μν (0) | 2023.02.13 |
[μ΄μ체μ ] νλ‘μΈμ€ (0) | 2023.02.12 |