The Nintendo 64 I/O software subsystem consists of the following major components: system exception handler, device manager for shared device and device-dependent system interface. Figure 8-2 below shows the interaction between some of these components to service an I/O request. This interaction assumes that the device is not shared, and therefore, requires no mutual exclusion.