π§μκ·Έλ :
- μμ μμ€μ μμΈμ μ μ΄ νλ¦
- μννΈμ¨μ΄(μ κΈ°μ ) OS μννΈμ¨μ΄λ‘ ꡬν
-
- μμΈ μνκ³Ό μΈν°λ½νΈλ₯Ό 컀λμμ μΆμνν¨
- 컀λμ΄ νλ‘μΈμ€μκ² λ³΄λ΄μ€λ€
- μλ‘ λ€λ₯Έ μκ·Έλλ€μ μ μ μμ΄λλ‘ κ΅¬λΆνλ€
- μκ·Έλμ ν¬ν¨λ μ μΌν μ 보λ μκ·Έλ μμ΄λμ μκ·Έλμ΄ λμ°©νλ€λ μ¬μ€μ΄λ€μ΄λ€ μ΄λ²€νΈκ° μμ€ν μ λ°μνλ€λ κ²μ νλ‘μΈμ€μκ² μλ €μ£Όλ 짧μ λ©μμ§
<μκ·Έλμ μ‘μ > send
- μκ·Έλμ 보λΈλ€ :
- 컀λμ λͺ©μ μ§ νλ‘μΈμ€μ 컨ν μ€νΈ λ΄ μΌλΆ μνλ₯Ό κ°±μ νλ λ°©λ²μΌλ‘ μκ·Έλμ λͺ©μ μ§ νλ‘μΈμ€μ 보λΈλ€
- 컀λμ λ€μκ³Ό κ°μ κ²½μ°μ μκ·Έλμ 보λΈλ€
- 컀λμ΄ divide by zero (SIGFPE) λ μμ νλ‘μΈμ€μ μ’ λ£(SIGCHLD) μ κ°μ μμ€ν μ΄λ²€νΈλ₯Ό κ°μ§νμ λ
- ( 0μΌλ‘ λλκ±°λ μμ νλ‘μΈμ€μ μ’ λ£ κ°μ μμ€ν μ΄λ²€νΈ)
- λ€λ₯Έ νλ‘μΈμ€κ° kill μμ€ν μ½μ νΈμΆν΄μ 컀λμ΄ λͺ©μ μ§ νλ‘μΈμ€λ‘ μκ·Έλμ λ³΄λΌ κ²μ μμ²νμ λ
- (μ΄λ€ νλ‘μΈμ€κ° 컀λμ λͺ μμ μΌλ‘ μκ·Έλμ λͺ©μ νλ‘μΈμ€μ λ³΄λΌ κ²μ μꡬνκΈ° μν΄ killν¨μ νΈμΆ)
<μκ·Έλμ μμ > receive
- μκ·Έλμ λ°λλ€ :(μ μ‘λ μκ·Έλμ λν΄ νλμ΄ νμν λ, λͺ©μ μ§ νλ‘μΈμ€λ μκ·Έλμ λ°λλ€.)
- λͺ©μ μ§ νλ‘μΈμ€κ° μκ·Έλμ λ°μ λ, μ΄λ€ ννλ‘λ λ°μμ νλλ‘ μ»€λμ μν΄ μꡬλ λ
- 3κ°μ§ λ°μ
- 무μ ignore
- λμ νλ‘μΈμ€ μ’ λ£ terminate
- μκ·Έλ νΈλ€λ¬ : μ μ λ 벨 ν¨μλ₯Ό μ€ννμ¬ μκ·Έλμ μ‘λλ€ catch
- λΉλκΈ°ν μΈν°λ½νΈμ λν μλ΅μΌλ‘ νΈμΆλλ μΈν°λ½νΈ νΈλ€λ¬ λ°©μκ³Ό μ μ¬
- μΈν°λ½νΈ λ°μμ CPUκ° μ΄λ»κ² λμνλκ°? → μ΄κ±° λ΅μ΄ λμ
- 컀λμ΄ νλ‘μΈμ€ pλ₯Ό 컀λ λͺ¨λμμ μ¬μ©μ λͺ¨λλ‘ μ νν λ, 컀λμ νλ‘μΈμ€ pμ λν΄ λΈλ‘λμ§ μμ (pending & ~blocked)μ μκ·Έλ μ§ν©μ 체ν¬.
- μ΄ μ§ν©μ΄ λΉμλ€λ©΄ 컀λμ pλ₯Ό λ€μμΌλ‘ μ λ¬
<μκ·Έλ κ΄λ ¨ μ©μ΄>
- SIGKILLκ³Ό SIGSTOPμ νλνκ±°λ λΈλλκ±°λ 무μλ μ μλ€
- core : μ½λμ λ°μ΄ν° μ΄λ―Έμ§λ₯Ό λμ€ν¬μ κΈ°λ‘νλ κ²
1. pending : λκΈ° νκ³ μλ€
μ μ‘νμμ§λ§, μμ§ μμ λμ§ μμ μκ·Έλ
- μ΄λ νΉμ νμ μ μκ·Έλμ λν΄ μ΅λ ν κ°μ λκΈ° μκ·Έλμ΄ μ‘΄μ¬ν μ μλ€
- λμΌν μμ΄λμ μκ·Έλμ νλλ§ pendingκ°λ₯ (λ€μμ λ°μνλ κ°μ νμ μ μκ·Έλμ λ²λ €μ§)
- μκ·Έλμ νμ λ€μ΄κ°μ§ μλλ€. → 미리 λ°μνλ 건 λ²λ¦¬κ³ μ΄
2. νλ‘μΈμ€λ νΉμ μκ·Έλμ μμ μ λΈλ‘ν μ μλ€. → μκ·Έλμ κ±°μ
- λΈλ‘λ μκ·Έλλ€μ μ λ¬λ μ μμ§λ§, μ΄ μκ·Έλμ΄ ν릴 λκΉμ§λ μμ λ μ μλ€
- νλ‘μΈμ€μμ λΈλ‘λ μ μλ μ μΌν μκ·Έλμ SIGKILLμ΄λ€.
3. λκΈ°νλ μκ·Έλμ μ΅λ νλ²λ§ μμ κ°λ₯
- 컀λμ λκΈ° μκ·Έλλ€μ λνλ΄κΈ° μνμ¬ λΉνΈ 벑ν°λ₯Ό μ¬μ©νλ€.
<μκ·Έλ κ°λ >
컀λμ κ° νλ‘μΈμ€μ 컨ν μ€νΈ(μνμ 보)μ pendingκ³Ό blocked λΉνΈ 벑ν°λ₯Ό κ°μ§κ³ μμ
π§pending
λκΈ° μκ·Έλλ€μ νμ
- 컀λμ νμ k μκ·Έλμ΄ λμ°©ν λλ§λ€ pending κ°μ kλ²μ§Έ λΉνΈλ₯Ό 1λ‘ μ€μ
- 컀λμ νμ kμκ·Έλμ μμ ν λλ§λ€, pending μ kλ²μ§Έ λΉνΈλ₯Ό 0μΌλ‘ μ€μ
π§blocking
λΈλ‘λ μκ·Έλλ€μ νμ
- sigprocmask ν¨μλ₯Ό μ¬μ©νμ¬ μμ© νλ‘κ·Έλ¨μ΄ 1λλ 0μΌλ‘ μ€μ → λΉνΈλ²‘ν°μ΄λ€