Wednesday, March 5, 2008

Multiplexed I/O

file read/write처럼 device I/O를 사용하는 경우 이로 인해 프로그램이 block될 수 있다. 그렇다고 nonblocking I/O를 사용하면 매번 리턴되는 에러들을 확인해야하니 polling 이나 다름 없다(비효율적이다). 여러개의 I/O를 사용하는데 이중 하나가 활성화 되지 전까지 sleep할 수 있다면, 그 사이에 다른 프로세스들이 작업을 진행할 수 있으니 좋을 것이다. 그래서 이때 사용하는 것이 multiplexed I/O이다. 즉, 간단하게

  1. 특정 fd가 준비되면 알려달라고 설정하고,
  2. 그전까지는 sleep하는 것

이다. 대표적인 함수로 select(), poll() 이 있다.

No comments:

Post a Comment