8.4 Mutual Exclusion

On most systems, some devices such as disks and printers are shared resources. The I/O subsystem must ensure that only one process can use a device at any one time, thus excluding other requesting processes and forcing them to wait.

In the Nintendo 64 environment, each device can process only one I/O transaction at any given time. For example, if there is a DMA transfer in progress between ROM and RDRAM, you cannot issue an I/O read from a different ROM location. If such a read is issued, the current DMA transaction will probably fail. Therefore, protection (or mutual exclusion) should be provided for devices that support both DMA operation and I/O read/write.

In this system, mutual exclusion is not implemented as a general scheme for all devices, but rather as a specific scheme for each identified shared device.