Motivation
Consider a process that reads from multiple sources without knowing in advance which source will provide some input first
Three solutions:
- alternate non-blocking reads on input sources (wasteful of CPU)
- fork a process for each input source, and each child can block on one specific input source (can be hard to coordinate/synchronize)
- use the select() system call … (see next slide)