μνΈλ°°μ λ?
μμ μ€λ λ λκΈ°νμμ μΈκΈλ μκ³κ΅¬μκ³Ό μνΈλ°°μ λ μ€λ λ λκΈ°νλ₯Ό μν μ€μν κ°λ μ΄λ€.
λ¨Όμ , μκ³ κ΅¬μ(Critical Section)μ κ° μ€λ λλ€μ΄ λμμ μ κ·Όν μ μλ 곡μ λ°μ΄ν°λ₯Ό κ΄λ¦¬νλ ꡬμμ΄λ€.
μνΈ λ°°μ λ λ¨Όμ μκ³ κ΅¬μμ μ κ·Όν μ€λ λκ° μκ³ κ΅¬μμ λ μ μ μΌλ‘ μ¬μ©νμ¬ μ€λ λ κ°μ μμλ₯Ό 보μ₯ν μ μλ κ°λ μ΄λ€. μκ³ κ΅¬μκ³Ό μνΈ λ°°μ λ μ‘°κΈ λ μ½κ² μκ°ν΄λ³΄μ.
μ€λ λ Aλ νμ§, μ€λ λ Bλ λ§€μ΄ν μ§μ΄λ€. μ€λ λ Aμ Bλ μμ°λλ§€μμ μ±μ±ν μμ μ κ°μ ΈμμΌνλ€. μ€λ λ Aμ Bλ μλ‘ κ²½λ§€κ°λ₯Ό λΆλ₯΄κ³ μλλ° λλ§€μμ΄ "λ§μ§λ§μΌλ‘ νμ¬ κ²½λ§€κ° λ³΄λ€ λμ κ°κ²©μ λ¨Όμ μ μν μ¬λμκ² νλ§€νκ² μ΅λλ€."λΌκ³ νλ€. μ€λ λ Aμ Bλ λμμ "100λ§ μ!"μ μΈμ³€λ€. μ΄ λ, λλ§€μμ λκ° λ¨Όμ μ μ νλμ§ λͺ°λΌμ λκ°ν μν©μ λΉ μ§λ€.
λ§μ½, μμ λΆμ κ° μμκ³ λ¨Όμ λΆμ λ₯Ό λλ₯Έ μ¬λμ΄ μμ κ²½μ° λ€λ₯Έ λΆμ κ° λμνμ§ μλ μμ€ν μ΄ μλ€λ©΄ μμλ₯Ό μ νν μ μ μλ€. μ¬κΈ°μ μμ°λλ§€κ° μκ³ κ΅¬μ, λΆμ κ° μνΈ λ°°μ λ‘ λ³Ό μ μλ€.
μνΈλ°°μ
- μΌλ° μ½λ(non-critical code) : κ° μ€λ λμμ μ²λ¦¬νλ μ½λμ΄λ€.
- μκ³κ΅¬μ μ§μ μ½λ(entry code) : μκ³ κ΅¬μμ λ€λ₯Έ μ€λ λκ° μλμ§ νμΈνλ€. λ€λ₯Έ μ€λ λκ° μλ€λ©΄ νμ¬ μ€λ λκ° μκ³κ΅¬μμ μ§μ νκ² λκ³ λ€λ₯Έ μ€λ λκ° μ‘΄μ¬νλ€λ©΄ λκΈ°νλ€. μνΈλ°°μ μ μμμ΄λ€.
- μκ³κ΅¬μ μ½λ(critical code) : ν μ€λ λκ° μμλ₯Ό 보μ₯λ°κ³ 곡μ μμμ μ€μ μ μΌλ‘ μ κ·Όνλ μ½λμ΄λ€.
- μκ³κ΅¬μ μ§μΆ μ½λ(exit code) : μκ³κ΅¬μμμμ μ²λ¦¬κ° λλ¬λ€λ©΄ λ€λ₯Έ μ€λ λκ° μ§μ ν μ μλλ‘ μνΈλ°°μ λ₯Ό μ’ λ£νλ μ½λμ΄λ€.
μνΈλ°°μ λ₯Ό ꡬννλ λ°©λ²
SWμ , HWμ μΌλ‘ ꡬννλ λ°©λ²μ΄ μλλ° μ€λλ μλ μ£Όλ‘ HW μ루μ μ μ¬μ©νλ€κ³ νλ€.
μΈν°λ½νΈ μλΉμ€ κΈμ§ λ°©λ², μμ κΈ°κ³ λͺ λ Ή(atomic instruction) μ¬μ© λ°©λ²
'CS > μ΄μ체μ ' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
18. μνΈλ°°μ ꡬν λ°©λ² (0) | 2024.06.16 |
---|---|
16. μ€λ λ λκΈ°ν (Thread Synchronization) (0) | 2024.06.15 |
15. CPU Scheduling Algorithm (1) | 2024.04.22 |
14. CPU Scheduling (0) | 2024.04.22 |
13. λ©ν°μ€λ λ ꡬν (0) | 2024.04.22 |