State Changes
 
 
Each buffer has an associated state
- Null, Empty, Data, Data-Time-Out, Hold
 
Read returns when state transitions occur
- Not all transitions awaken read
 - Ioctl’s control some of the read-wakeups
 - Ioctl’s manage user process release of buffers