Context Switching(λ¬Έλ§₯ κ΅ν) μ΄λ?
λ¬Έλ§₯κ΅ν(Context Switching)μ μ»΄ν¨ν° μμ€ν μμ μ¬λ¬ μμ (νΉμ νλ‘μΈμ€ λλ μ€λ λ)μ΄ λμμ μ€νλλ κ²½μ°, ν μμ μμ λ€λ₯Έ μμ μΌλ‘ μ ννλ κ³Όμ μ μλ―Έν©λλ€. μ΄λ λ€μ€ μμ (multitasking) νκ²½μμ λ°μνλ μ€μν κ°λ μΌλ‘, μ΄μ체μ κ° κ° μμ μ CPU μκ°μ ν λΉνκ³ λ²κ°μκ°λ©° μ€νλλλ‘ κ΄λ¦¬νλ κ²μ μλ―Έν©λλ€.
λ¬Έλ§₯κ΅νμ΄ λ°μνλ μν©μ λ€μκ³Ό κ°μ΅λλ€.
1. μΈν°λ½νΈ(Interrupts): νλμ¨μ΄λ μννΈμ¨μ΄ μΈν°λ½νΈκ° λ°μνμ¬ νμ¬ μ€ν μ€μΈ μμ
μ λ©μΆκ³ λ€λ₯Έ μμ
μ μ€νν΄μΌ ν λκ° μμ΅λλ€. μλ₯Ό λ€μ΄, μ
μΆλ ₯ μμ
μ΄ μλ£λμμ λ νλμ¨μ΄κ° CPUμ μ리λ κ²½μ°κ° μ΄μ ν΄λΉν©λλ€.
2. μ€μΌμ€λ§: μ΄μ체μ λ CPU μκ°μ μ¬λ¬ μμ
μ λλμ΄ μ£Όμ΄μΌ νλ―λ‘, κ° μμ
μκ² ν λΉλ μκ°μ΄ μ§λλ©΄ λ€μ μμ
μΌλ‘ μ νν©λλ€. μ΄λ₯Ό μ€μΌμ€λ§μ΄λΌκ³ νλ©°, μμ
κ°μ λ¬Έλ§₯κ΅νμ΄ νμν©λλ€.
λ¬Έλ§₯κ΅ν κ³Όμ μ λ€μκ³Ό κ°μ΅λλ€.
1. νμ¬ μμ
μ μν μ μ₯: μ€ν μ€μΈ μμ
μ μν(λ μ§μ€ν° κ°, νλ‘κ·Έλ¨ μΉ΄μ΄ν° λ±)κ° μ μ₯λ©λλ€. μ΄ μνλ λμ€μ ν΄λΉ μμ
μ λ€μ μ€νν λ νμν©λλ€.
2. λ€μ μμ
μ μν 볡μ: μ€νν λ€μ μμ
μ μνκ° μ΄μ μ μ μ₯λ μνμμ 볡μλ©λλ€. μ΄λ‘μ¨ λ€μ μμ
μ μ€λ¨λμλ μ§μ λΆν° μ€νλ μ μμ΅λλ€.
λ¬Έλ§₯κ΅νμ μμ€ν
μ±λ₯μ μν₯μ λ―ΈμΉ μ μλλ°, λ¬Έλ§₯κ΅νμ΄ λΉλ²νκ² λ°μνλ©΄ μ€λ²ν€λ(overhead)κ° λ°μνμ¬ μμ€ν
μ±λ₯μ΄ μ νλ μ μμ΅λλ€. λ°λΌμ ν¨μ¨μ μΈ μ€μΌμ€λ§ μκ³ λ¦¬μ¦κ³Ό κ΄λ¦¬κ° νμν©λλ€. λν, λ¬Έλ§₯κ΅νμ λ€μ€ μμ
νκ²½μμ 곡μ μμμ λν λκΈ°ν λ¬Έμ λ₯Ό μΌκΈ°ν μ μκΈ° λλ¬Έμ μ΄λ¬ν λΆλΆλ κ³ λ €λμ΄μΌ ν©λλ€.
Context Switching μ₯λ¨μ
λ¬Έλ§₯κ΅νμ λ€μ€ μμ νκ²½μμ μμ λ€ κ°μ CPU μκ°μ λλμ΄ μ£ΌκΈ° μν΄ νμν νλ‘μΈμ€μ΄μ§λ§, μ΄μλ μ₯λ¨μ μ΄ μμ΅λλ€.
μ₯μ
1. 곡μ ν μμ ν λΉ: λ¬Έλ§₯κ΅νμ ν΅ν΄ μ¬λ¬ μμ
μκ² CPU μκ°μ 곡μ νκ² λλμ΄ μ€ μ μμ΅λλ€. μ΄λ λ€μ€ μμ
μμ€ν
μμ κ° μμ
μ΄ μ μ ν μκ°μ λ°μ μμμ 곡ννκ² μ¬μ©ν μ μλλ‘ λμμ€λλ€.
2. μλ΅μ± ν₯μ: λ€μ€ μμ
νκ²½μμ μ¬λ¬ μμ
μ΄ λμμ μ€νλλ―λ‘, ν μμ
μ΄ μ
μΆλ ₯ μμ
λ±μ λκΈ° μνμ λ€μ΄κ°λλΌλ λ€λ₯Έ μμ
μ΄ μ€νλλ©΄μ μμ€ν
μ 체μ μΈ μλ΅μ±μ΄ ν₯μλ μ μμ΅λλ€.
λ¨μ
1. μ€λ²ν€λ: λ¬Έλ§₯κ΅νμ μμ
κ°μ μνλ₯Ό μ μ₯νκ³ λ³΅μνλ κ³Όμ μ΄λ―λ‘ μ€λ²ν€λκ° λ°μν©λλ€. CPU μκ°μ μλͺ¨νλ μ΄ κ³Όμ μ μμ
κ°μ μ νμ λλ¦¬κ² λ§λ€ μ μμ΅λλ€.
2. μμ μλͺ¨: λ¬Έλ§₯κ΅νμ μμ€ν
리μμ€λ₯Ό μλͺ¨νλλ°, μ΄λ CPU μκ°κ³Ό λ©λͺ¨λ¦¬ λ±μ μμμ μ¬μ©ν©λλ€. λΉλ²ν λ¬Έλ§₯κ΅νμ΄ μΌμ΄λ κ²½μ° μμ€ν
μ±λ₯ μ νλ₯Ό μ΄λν μ μμ΅λλ€.
3. λκΈ°ν λ¬Έμ : λ¬Έλ§₯κ΅νμ λ€μ€ μμ
μμ€ν
μμ 곡μ μμμ μ¬μ©νλ μμ
λ€ κ°μ λκΈ°ν λ¬Έμ λ₯Ό μΌκΈ°ν μ μμ΅λλ€. λμμ μ¬λ¬ μμ
μ΄ κ³΅μ μμμ μ κ·Όνλ €κ³ ν λ, μ¬λ°λ₯Έ λκΈ°ν λ©μ»€λμ¦μ΄ νμν©λλ€.
4. μΊμ ν¨μ¨ μ ν: λ¬Έλ§₯κ΅νμ μμ
μ μνλ₯Ό μ μ₯νκ³ λ³΅μνλ κ³Όμ μμ μΊμ λ©λͺ¨λ¦¬μ ν¨μ¨μ±μ κ°μμν¬ μ μμ΅λλ€. μ΄λ‘ μΈν΄ CPU μΊμμ λ―Έμ€(miss)κ° λμ΄λ μ±λ₯μ΄ μ νλ μ μμ΅λλ€.
λ¬Έλ§₯κ΅νμ λ€μ€ μμ
μμ€ν
μμ νμμ μΈ λμμ΄μ§λ§, μ€λ²ν€λμ μ±λ₯ μ ν λ±μ λ¨μ λ κ³ λ €ν΄μΌ ν©λλ€. λ°λΌμ ν¨μ¨μ μΈ μ€μΌμ€λ§ μκ³ λ¦¬μ¦κ³Ό 리μμ€ κ΄λ¦¬ λ°©λ²μ μ¬μ©νμ¬ λ¬Έλ§₯κ΅νμ λΆμ μ μΈ μν₯μ μ΅μννλ κ²μ΄ μ€μν©λλ€.
'μ΄μ체μ ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
νλ‘μΈμ€ μ μ΄ λΈλ‘(PCB, Process Control Block) (0) | 2023.08.30 |
---|---|
IPC(Inter-Process Communication, νλ‘μΈμ€ κ° ν΅μ ) (0) | 2023.08.29 |
OSκ° κ΄λ¦¬νλ λ©λͺ¨λ¦¬ μμ (0) | 2023.08.27 |
κ°μλ©λͺ¨λ¦¬(Virtual Memory)λ 무μμΌκΉ? (0) | 2023.08.23 |
Vimμμ Auto Indent μ¬μ© (0) | 2023.05.30 |
λκΈ