Non-Blocking

Non-Blocking

    [네트워크] Blocking과 Non-Blocking I/O

    I/O 작업 I/O 작업은 User level에서 직접 수행할 수 없고, Kernel level에서만 수행할 수 있다. 따라서, 유저 프로세스(스레드)는 커널에게 I/O 작업을 요청하고 작업 완료 후 커널이 반환하는 결과를 기다릴 뿐이다. 네트워크에서의 I/O 작업은 소켓의 read/send를 생각하자. Blocking I/O I/O 작업이 진행되는 동안 유저 프로세스는 자신의 작업을 중단한 채 대기하는 방식 진행 순서 유저가 커널에게 read 작업 요청 데이터가 입력될 때까지 대기 데이터가 입력되면 커널 모드에서 유저 모드로 데이터 복사 특징 I/O 작업이 진행되는 동안 유저 프로세스는 자신의 작업을 중단한 채 대기 어플리케이션에서 다른 작업을 수행하지 못하고 대기하므로 자원 낭비 Non-Blockin..