곡λΆν κ²
μ½λ£¨ν΄
νλ‘κ·Έλλ¨Έμ€ 1λ¬Έμ
μκ²λ κ²
1. μ½λ£¨ν΄
μ½λ£¨ν΄
μ λΉλκΈ° μ²λ¦¬
λ₯Ό μν΄ μ½νλ¦°
μμ μ§μνλ λΌμ΄λΈλ¬λ¦¬
μ΄λ€. μ°μ λκΈ°
μ λΉλκΈ°
μ λν΄μ μμ보μ. λκΈ°λ μλ΅μ μμ²νμ λ λ°ν κ°μ μ»κΈ° μ κΉμ§ λκΈ°νλ κ²μ λ»νκ³ , λΉλκΈ°λ λκΈ°μκ° λ³λμ Taskλ₯Ό μννλ κ²μ λ»νλ€.
λμμ± μ²λ¦¬
μλ
OS
μμ
μ λ€μ λ λμμ± μ²λ¦¬
μ λν΄μ λ°°μ μλ€. κ·Έλ°λ° κ°μκΈ° λμμ± μ²λ¦¬λ₯Ό μ μκΈ°νλλ, λμμ± μ²λ¦¬κ° λΉλκΈ°μ κ°λ
μ΄ μ μ©λμ΄ μκΈ° λλ¬Έμ΄λ€. λμμ± μ²λ¦¬λ λ§ κ·Έλλ‘ λμμ μ¬λ¬ κ°μ νλ‘μΈμ€κ° λμμ μ€νλλ κ²μ²λΌ 보μ΄λ κ²μ΄λ€. (Context Switching
μ΄ λ°μνλ€.) μ±κΈ μ½μ΄
μμ λ©ν° μ°λ λ
λ₯Ό ν΅ν΄μ μ΄λ₯Ό ꡬννκ³ μλ€.
μ°λ λ
λμμ± μ²λ¦¬λ₯Ό μν΄μ μ°λ λ
μ κ°λ
μ΄ λ±μ₯νλλ° μ°λ λλ νλ‘μΈμ€
λ΄μμ μ€ν νλ¦μ λ¨μλ₯Ό μλ―Ένλ€. μ¬λ¬ κ°μ μ°λ λμμ Context Switching
μ ν΅ν΄ λ²κ°μκ°λ©΄μ μμ
μ μννλ€.
μ°λ λ VS μ½λ£¨ν΄
μ°λ λ
μ μ½λ£¨ν΄
λͺ¨λ λμμ± μ²λ¦¬
λ₯Ό μν΄ λ±μ₯ν κ°λ
μ΄λ€. μ°λ λμ κ²½μ° κ° μμ
μ ν΄λΉνλ λ
립μ μΈ λ©λͺ¨λ¦¬ μμ(Stack)μ ν λΉλ°λλ° μ°λ λκ° μΆκ°λ λλ§λ€ κ·Έ μλ§νΌ Stackμ΄ μΆκ°λλ€. λν μ΄λ€ μ°λ λ μμ
μ λ¨Όμ μνν μ§μ μ΄λ€ μ°λ λλ₯Ό λ§μ΄ μνν μ§μ λν Preempting Scehduling
μ μ§ννλ€. μ΄μ λ€λ₯΄κ² μ½λ£¨ν΄μ κ° μμ
μ λν΄ μ°λ λλ₯Ό ν λΉλ°μ§ μκ³ μ΄λ³΄λ€ λ μμ λ¨μμΈ Object
λ₯Ό ν λΉλ°κ³ μ΄λ€μ Programmer Switching
ν¨μΌλ‘μ Context Switching
μμ λ°μνλ λΉμ©μ μ€μ΄κ³ λμμ± μ²λ¦¬λ₯Ό μ§μνλ€.
μμ λ μ¬μ§μ 보면 μ°¨μ΄μ λν΄μ λλ ·νκ² μ μ μμ κ²μ΄λ€. μ°λ λλ Context Switching
μ ν΅ν΄μ Block
λ μ°λ λμμ λ€λ₯Έ μ°λ λλ‘ μ νμ΄ μ§νλκ³ Taskλ₯Ό μ΄μ΄ λκ°λ€. μ½λ£¨ν΄μ κ²½μ° νλμ μ°λ λμμ Programmer Switching
μ ν΅ν΄μ Object
λ₯Ό μ ννμ¬ Taskλ₯Ό μ΄μ΄ λκ°λ€. νμ§λ§ λ§μ§λ§ μΈ λ²μ§Έ κ·Έλ¦Όμ 2κ°μ μ°λ λμμ Taskλ₯Ό μ§ννκ³ μμΌλ―λ‘ Context Switching
μ΄ λΆκ°νΌνλ€. μ½λ£¨ν΄μ μ¬μ©ν λλ No Context Switching
λ₯Ό μ₯μ μ νμ©νκΈ° μν΄ λ¨μΌ μ°λ λμμ μ¬λ¬ μ½λ£¨ν΄
μ μ€ννλ κ²μ΄ μ’λ€.
1. μ½λ£¨ν΄μ μ°λ λμ λμμ΄ μλ κΈ°μ‘΄ μ°λ λλ₯Ό λ μκ² μͺΌκ°μ΄ μ¬μ©νκΈ° μν κ°λ μ΄λ€.
2. μ½λ£¨ν΄μ μμ μ λ¨μλ₯Ό Threadμμ Objectλ‘ μΆμνλ©΄μ Context Switch λΉμ©μ μ΅μννλ€.
μ°Έκ³ μλ£
Coroutine, Thread μμ μ°¨μ΄μ κ·Έ νΉμ§
μ½λ£¨ν΄ κ°μ΄λ
곡λΆν κ²
μ½λ£¨ν΄
λλ μ
π
'π» κ°λ° > iOS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[TIL] 22.04.17 (0) | 2022.04.17 |
---|---|
[TIL] 22.03.23 (0) | 2022.03.23 |
[TIL] 22.03.20 (0) | 2022.03.20 |
[TIL] 22.03.19 (0) | 2022.03.19 |
[TIL] 22.03.17 (0) | 2022.03.17 |