March 2003
Intermediate to advanced
912 pages
27h 17m
English
In Section 3.5 we saw the need for synchronization and data exchange between user-level processes requesting I/O and device handlers taking output or delivering input. A user-level process should be able to make a request for an arbitrary amount of data to be output or input. The device takes or delivers a fixed amount. A data buffer allows these device-dependent characteristics to be hidden from the user level. It also allows irregular bursts of user-level processing or device activity to be smoothed out. A process engaging in a burst of activity can continue until the buffer is full.
The synchronization conditions on accesses to the buffer are as follows. If a user-level ...