π κ΅μ°© μνλ ?
λ€μ€ νλ‘μΈμ€ νκ²½μμ λ°μν μ μλ μνΈ λ°°μ λ¬Έμ .
2κ° μ΄μμ νλ‘μΈμ€κ° μλ‘μ μμμ κΈ°λ€λ¦¬λ©° 무νμ λκΈ° μνμ λΉ μ§λ νμ.
νλ‘μΈμ€ Aλ μκ³ κ΅¬μ μ§μ μ lock1 μ μ κ·Έκ³ (lock1 = true)
νλ‘μΈμ€ Bλ μκ³ κ΅¬μ μ§μ μ lock2 λ₯Ό μ κΆλ€. (lock2 = true)
λ§μ½ νλ‘μΈμ€ Aκ° lock2 κ° false κ° λκΈΈ κΈ°λ€λ¦¬κ³ ,
νλ‘μΈμ€ Bκ° lock1 μ΄ false κ° λκΈΈ κΈ°λ€λ¦°λ€λ©΄ κ΅μ°© μνκ° λ°μνκ² λλ€.
π κ΅μ°© μν λ°μ 쑰건
κ΅μ°© μνλ 4κ°μ§ μ‘°κ±΄μ΄ λͺ¨λ μΆ©μ‘±λλ©΄ λ°μν κ°λ₯μ±μ΄ λμμ§λ€.
1οΈβ£ μνΈ λ°°μ Mutual Exclusion
ν νλ‘μΈμ€κ° μ¬μ©νλ μμμ, λ€λ₯Έ νλ‘μΈμ€κ° μ¬μ©ν μ μλ κ²½μ°
νλμ νλ‘μΈμ€κ° νλμ μμμ λ μ ν κ²½μ°
2οΈβ£ μ μ μ λκΈ° Hold and Wait
μμμ ν λΉλ°μ μνμμ λ€λ₯Έ μμμ ν λΉλ°κΈ°λ₯Ό κΈ°λ€λ¦¬λ μν
3οΈβ£ λΉμ μ Nonpreemption
λ€λ₯Έ νλ‘μΈμ€κ° μ μ νκ³ μλ μμμ κ°μ λ‘ λΉΌμμ μ μλ μν
(μμμ μ μ ν νλ‘μΈμ€κ° μ€μ€λ‘ μμμ ν΄μ ν λκΉμ§ κΈ°λ€λ €μΌ ν¨)
4οΈβ£ μν(μν) λκΈ° Circular Wait
2κ° μ΄μμ νλ‘μΈμ€κ° μλ‘κ° μ μ ν μμμ μꡬνλ©΄μ μνμ μΌλ‘ λκΈ°νλ μν
(κ΅μ°© μν μμμ μΌμΉνλ μν©)
νλ‘μΈμ€ (Process) λ ?
μ΄μ 체μ μμ μ€νμ€μΈ νλ‘κ·Έλ¨. (1:1 맀μΉ)
νλμ νλ‘κ·Έλ¨μ νλμ νλ‘μΈμ€λ‘ κ΄λ¦¬λλ€.
νλ‘κ·Έλ¨μ ννλ λ€μνλ€. (λΈλΌμ°μ κ°λ³ ν, ν μ€νΈ νΈμ§κΈ°...)
μ΄μ 체μ λ μ¬λ¬ νλ‘μΈμ€λ₯Ό κ΄λ¦¬νκΈ° μν΄
PCB (Process Control Block) ꡬ쑰λ₯Ό μ¬μ©νλ€.
μ€λ λ (Thread) λ ?
νλ‘μΈμ€ λ΄μμ μ€νλλ μμ μ λ¨μ
ν νλ‘μΈμ€λ νλ μ΄μμ μ€λ λλ₯Ό κ°μ§ μ μλλ°,
μ΄λ₯Ό λ©ν°μ€λ λ νλ‘μΈμ€ λΌκ³ λΆλ₯Έλ€.
π κ΅μ°© μν ν΄κ²° λ°©λ²
1οΈβ£ μλ°©
μμμ λ§ν κ΅μ°© μν νμ 쑰건 4κ°μ§ μ€ ν κ°μ§λ₯Ό μΆ©μ‘±νμ§ λͺ»νκ² νλ λ°©λ²
β μνΈ λ°°μ (Mutual Exclusion) λ₯Ό λ§λλ€λ©΄ ?
π μ¦, ν νλ‘μΈμ€κ° μ¬μ©νλ μμμ λ€λ₯Έ νλ‘μΈμ€λ λμ μ¬μ©κ°λ₯νκ² νλ€λ©΄ ?
νμ€μ μΌλ‘ λͺ¨λ μμμ μνΈ λ°°μ λ₯Ό μμ κΈ°λ μ΄λ ΅λ€.
β μ μ μ λκΈ° (Hold and Wait) λ₯Ό λ§λλ€λ©΄ ?
π μ¦, νΉμ νλ‘μΈμ€μ μμμ λͺ¨λ ν λΉνκ±°λ,
μμ ν λΉνμ§ μλ λ°©μμΌλ‘ μ΄μνλ€λ©΄ ?
λΉμ₯ μμμ΄ νμν΄λ κΈ°λ€λ¦΄ μλ°μ μλ νλ‘μΈμ€μ,
μ¬μ©λμ§ μμΌλ©΄μ μ€λ«λμ ν λΉλλ μμμ λ€μ μμ°νκΈ° λλ¬Έμ μ΄μμ΄ μ΄λ ΅λ€.
λν λ§μ μμμ μ¬μ©νλ νλ‘μΈμ€κ° λ§€μ° λΆλ¦¬ν΄μ§λ€.
μμμ μ κ² μ¬μ©νλ νλ‘μΈμ€μ λΉν΄ λμμ μμμ μ¬μ©ν νμ΄λ°μ μ‘κΈ° μ΄λ ΅κΈ° λλ¬Έ.
β λΉμ μ (Nonpreemption) μ λ§λλ€λ©΄ ?
π λ€λ₯Έ νλ‘μΈμ€κ° μ μ νκ³ μλ μμμ κ°μ λ‘ λΊμ μ μλ€λ©΄ ?
μ μ νμ¬ μ¬μ©ν μ μλ μΌλΆ μμμ λν΄μλ ν¨κ³Όμ μ΄λ€.
κ·Έλ¬λ μ μ μ΄ μμ λΆκ°λ₯ν μμλ μμ. (ex. νλ¦°ν°κΈ°)
μ΄λ° κ²½μ°λ₯Ό λͺ¨λ λλΉν μ μκΈ°μ μ΄λ ΅λ€.
β μν(μν) λκΈ° Circular Wait λ₯Ό μμ€λ€λ©΄ ?
π μλ‘ μ μ ν μμμ μλ‘ λκΈ°νμ§ μκ² μμλ₯Ό μ ν΄ μμ°¨μ μΌλ‘ ν΄κ²°νλ€λ©΄ ?
μμ λ°©λ² μ€ μ μΌ νμ€μ μ΄μ§λ§
κ° μμμ μ΄λ»κ² ν¨κ³Όμ μΌλ‘ μ λ ¬ν΄μ μ¬μ©ν κ²μΈκ°λ ν΄κ²°νκΈ° μ¬μ΄ λ¬Έμ κ° μλ.
2οΈβ£ ννΌ
κ΅μ°© μνκ° λ°μνμ§ μμ μ λλ‘λ§ μ‘°μ¬ μ‘°μ¬ μμμ ν λΉνλ λ°©λ².
νλ‘μΈμ€λ€μ λ°°λΆν μ μλ μμμ μμ κ³ λ €νμ¬
κ΅μ°© μνκ° λ°μνμ§ μμ μ λμ μλ§νΌλ§ μμμ λ°°λΆνλ λ°©λ².
μμ μν safe state
λͺ¨λ νλ‘μΈμ€κ° μ μμ μΌλ‘ μμμ ν λΉλ°κ³ μ’ λ£λ μ μλ μν
λΆμμ μν unsafe state
κ΅μ°© μνκ° λ°μν μλ μλ μν
μμ μμμ΄ safe sequence
κ΅μ°© μν μμ΄ νλ‘μΈμ€λ€μκ² μμ νκ² μμμ ν λΉν μ μλ μμ
μμ μμμ΄μ΄ μλ μν π μμ μν
μμ μμμ΄μ΄ μλ μν π λΆμμ μν
κ΅μ°© μνλ₯Ό ννΌνκΈ° μν΄μλ μμ€ν μνκ°
μμ μνμμ μμ μνλ‘ μμ§μ΄λ κ²½μ°μλ§ μμμ ν λΉνλ©΄ λλ€.
3οΈβ£ κ²μΆ ν ν볡
κ΅μ°© μν λ°μμ μΈμ νκ³ μ¬νμ μ‘°μΉνλ λ°©μ
μ΄μ 체μ λ νλ‘μΈμ€λ€μ΄ μμμ μꡬν λλ§λ€ κ·Έλ κ·Έλ λͺ¨λ ν λΉνλ©°,
κ΅μ°© μν λ°μ μ¬λΆλ₯Ό μ£ΌκΈ°μ μΌλ‘ κ²μ¬νλ€.
κ΅μ°© μνκ° κ²μΆλλ©΄ κ·Έλ ν볡 νλ‘μΈμ€λ₯Ό λμμν¨λ€.
β μ μ μ ν΅ν ν볡
κ΅μ°© μνκ° ν΄κ²°λ λκΉμ§ ν νλ‘μΈμ€μ© μμμ λͺ°μμ£Όλ λ°©μ.
λ€λ₯Έ νλ‘μΈμ€λ‘λΆν° μμμ κ°μ λ‘ λΉΌμμ ν νλ‘μΈμ€μ κ³μ ν λΉν΄μ€λ€.
β νλ‘μΈμ€ κ°μ μ’ λ£λ₯Ό ν΅ν ν볡
κ°μ₯ λ¨μνμ§λ§ νμ€ν λ°©λ².
μ΄μ 체μ λ κ΅μ°© μνμ λμΈ νλ‘μΈμ€λ₯Ό λͺ¨λ κ°μ μ’ λ£ν μλ μκ³ ,
( ν λ°©μ κ΅μ°© μνλ₯Ό ν΄κ²°νμ§λ§
κ·Έλ§νΌ λ§μ νλ‘μΈμ€λ€μ΄ μμ λ΄μμ μκ² λ μ μμ )
κ΅μ°© μνκ° μμ΄μ§ λκΉμ§ ν νλ‘μΈμ€μ© κ°μ μ’ λ£ν μλ μλ€.
( μμ λ΄μμ μλ νλ‘μΈμ€λ μ΅λν μ€μΌ μ μμ§λ§
κ΅μ°© μνκ° μμ΄μ‘λμ§ μ¬λΆλ₯Ό νμΈνλ κ³Όμ μμ μ€λ²ν€λ μΌκΈ° κ°λ₯ )
λ²μΈ - νμ‘° μκ³ λ¦¬μ¦
κ΅μ°© μνλ₯Ό μμ 무μνλ λ°©λ²λ μλ€.
λλ¬Όκ² λ°μνλ μ μ¬μ λ¬Έμ λ₯Ό 무μλ‘ λμ² ... μ€νΈ
( μλ²½μ μΆκ΅¬νλ κ³Όνμλ μνμ μ μ₯μμλ λ©λν μ μλ λ°©μμΌμ§ λͺ¨λ₯΄λ,
λ¬Έμ λ°μμ λΉλλ μ¬κ°μ±μ λ°λΌ μ΅λ ν¨μ¨μ μΆκ΅¬νλ μμ§λμ΄ μ μ₯μμλ μ ν©ν λ°©λ²μΌμ§λ )
'the others > CS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
cs.. (0) | 2024.11.13 |
---|---|
cs (0) | 2024.11.11 |
λκΈ