Skip to content

Latest commit

 

History

History
9 lines (8 loc) · 863 Bytes

IO-multiplexing.md

File metadata and controls

9 lines (8 loc) · 863 Bytes

I/O Multiplexing

네트워크 프로그램을 아무 생각없이 구현하면..
I/O blocking이 발생해서 여러개의 다른 클라이언트 접속을 허용하지 않거나 성능 저하를 겪는 경우가 발생한다.

  • Fork: 프로세스를 새로 만드는 방법으로 클라이언트 요청이 있을때마다 프로세스를 복사하여 여러 사용자에게 제공.
  • Threads: 프로세스 방법이 아닌 쓰레드를 생성해서 여러 사용자들에게 제공.
  • I/O Multiplexing: 여러 소켓에 대해 I/O를 병향적으로 하는 기법 다수 프로세스 혹은 스레드를 만들지 않고 여러 파일을 처리할 수 있다.
  • 비동기 I/O: 비동기적으로 처리하는 기법. 시그널이 병행되어 존재함.
  • Event Driven I/O: multiplexing을 추상화 함 libev, pyev, libevent 라이브러리가 있음.