Application I/O Interface
- Vectored I/O.
- So far, we touched on I/O operations that are done 1 at a time. Each I/O-related system call will carry the data needed for a single I/O operation.
- Recall that every system call will incur some overhead, since we need to switch activity from the user mode to the kernel mode, and since we might need to switch several programs on the CPU.
- With vectored I/O, several I/O requests can be issued at once.
- A good analogy is the route of some school bus in the morning. Having the school bus pick up the kids from their homes, and, only after all the kids are on the bus, driving to the school is going to be considerably faster than picking up one kid, driving to the school and letting the kid off at the school, picking up the next kid, and then driving to the school again, etc.
- The data of all the I/O requests will be provided within some form of array (= vector), and will be handled by the kernel sequentially.