In most multiprogrammed systems, user programs access memory
through virtual addresses, while the operating system uses raw physical
addresses to access memory. What are the implications of this
design for the initiation of I/O operations by the user program and
their execution by the operating system?