1. Give two reasons why caches are useful. What problems do they solve? What problems do they cause? If a cache can be made as large as the device for which it is caching (for instance, a cache as large as a disk), why not make it that large and eliminate the device? 2. What Is the purpose of interrupts? What are the differences between a trap and an interrupt? Can traps be generated intentionally by a user program? If so, for what purpose? 3. Please tell the functional differences between CPU and device controller. Is there any similarity between them? 4. Please discuss, in your own words, the cycle of the handling of an interrupt. 1. a. Fast and efficient b. Reduce cpu wait,because they can find instruction from caches. c. expensive d. Because caches can't always save data,so we need a device to keep our data consistent. 2. a. It reads commands from data and executes them to turn them into several system calls. b. Interrupt is generated by hardware