Kernel/user mode switches
- Starting with A, switch to kernel
- switch to user mode B
- Interrupt from device
- Switch back to B
- Switch to kernel
- Switch to A
- Switch to kernel for read
- Switch back to A
Note: Second read() just gets data from top half (doesn't need to contact device)
Context switches
- Switch to B
- Switch back to A