Blocking vs Non-blocking
Blockingκ³Ό Non-blocking
β μ μ΄μ κ΄μ
Blocking
I/Oκ° λλ λκΉμ§ κΈ°λ€λ¦¬λ κ²
why?
λλκΈ° μ μλ ν¨μκ° return λμ§ μκΈ° λλ¬Έμ΄λ€
컀λμ΄ μμ μ μλ£νκΈ° μ κΉμ§ μ μ νλ‘μΈμ€λ
μμ μ μ€λ¨ν μ± λκΈ°
ννλ€I/O μμ μ΄ CPU μμμ κ±°μ μ°μ§ μκΈ° λλ¬Έμ blocking λ°©λ²μ
CPU μμ λλΉκ° μ¬νλ€
λκΈ°νλ₯Ό μν΄ blockingμ νλ€
Blocking vs Synchronous
μμ€ν μ λ°νμ κΈ°λ€λ¦¬λ λμ
λκΈ° νμ 머무λ κ²μ΄ νμκ° μλλ©΄
synchronousμμ€ν μ λ°νμ κΈ°λ€λ¦¬λ
λμ λκΈ° νμ 머무λ κ²μ΄ νμμ΄λ©΄
blocking
Non-blocking
Blocking λ°©μμ λΉν¨μ¨μ±μ 극볡νκ³ μ λ§λ€μ΄μ§ κ²
I/O μμ μ μ§ννλ λμ μ μ νλ‘μΈμ€μ μμ μ μ€λ¨μν€μ§ μλλ€
μ μ νλ‘μΈμ€κ° I/Oλ₯Ό μ²λ¦¬νκΈ° μν΄ μ»€λμ ν¨μλ₯Ό νΈμΆ (
system call
) νλ©΄, 컀λμμ ν¨μμ μ§ν μν©κ³Ό μκ΄ μμ΄ λ°λ‘ κ²°κ³Όλ₯Ό λ°ννλ€μ΄ λ λ°νλλ κ²°κ³Όλ λ°ννλ μκ°μ κ°μ Έμ¬ μ μλ
λ°μ΄ν°
μ ν΄λΉνλ€μ²μμλ κ°μ Έμ¬ μ μλ λ°μ΄ν°κ° μκ² μ§λ§, μκ°μ΄ μ§λλ©΄μ κ°μ Έμ¬ μ μλ λ°μ΄ν°κ° μ겨λλ€
λ¬Έμ μ
ν΄λΌμ΄μΈνΈκ° λ°λ‘ λ°νλλ κ°μ΄ μνλ μ¬μ΄μ¦κ° λμλμ§ κ³μν΄μ
νμΈν΄μ€μΌ νλ€
λ κ²μ΄λ€ (polling
)λ°νλλ λ°μ΄ν°κ° μ€λΉλμλμ§ (μνλ κ°μ΄ λμλμ§) νμΈνλ κ³Όμ μμ μλ§μ ν΄λΌμ΄μΈνΈμ μμ²μ΄ λμ λ€λ°μ μΌλ‘ μΌμ΄λ κ²½μ°,
CPUμ μ μ§ μμ λΆλ΄
μ΄ λ μ μλ€
Non-blocking vs Asynchronous
system callμ΄ λ°νλ λ
μ€νλ κ²°κ³Ό (λ°μ΄ν°)μ ν¨κ» λ°ν
λ κ²½μ° non-blockingsystem callμ΄ λ°ν λ λ
μ€νλ κ²°κ³Ό (λ°μ΄ν°)μ ν¨κ» λ°νλμ§ μλ
κ²½μ° asynchronousμ 리
λΉλκΈ° λ°©μμ λ°μ΄ν°λ₯Ό μ½λ°± ν¨μ λλ μ΄λ²€νΈ, signalλ‘ μ λ¬νκ² λλ κ²
Non-blocking λ°©μμ 맀 system call returnμ λ°μ΄ν°κ° ν¬ν¨λμ΄, return λλ λ°μ΄ν°κ° μμ²ν λ°μ΄ν°κ° μ λΆ λλ¬νλμ§λ₯Ό νμ νκ² λλ€
Blocking vs Non-blocking
μ ν리μΌμ΄μ μ€ν μ μ΄μ체μ
λκΈ° νμ λ€μ΄κ°
λ©΄μ μμ²μ λνsystem callμ΄ μλ£λ ν
μ μλ΅μ λ³΄λΌ κ²½μ°blocking
μ ν리μΌμ΄μ μ€ν μ μ΄μ체μ
λκΈ° νμ λ€μ΄κ°μ§ μκ³
μ€ν μ¬λΆμ κ΄κ³ μμ΄λ°λ‘ μλ΅
μ λ³΄λΌ κ²½μ°non-blocking
μ 리
Blocking vs Non-Blocking β
μ μ΄μ κ΄μ
Sync vs Async β
μμμ κ²°κ³Ό(μ²λ¦¬)μ κ΄μ
Last updated