1.Exercise 1.22 on page 44 (Exercise 1.10 on page 36 for version 7). 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?
2.Exercise 1.25 on page 45 (Exercise 1.13 on page 37 for version 7). 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?
3.Exercise 2.21 on page 95 (Exercise 2.12 on page 76 for version 7). What is the main advantage of the microkernel approach to system design? How do user programs and system services interact in a microkernel architecture? What are the disadvantages of using the microkernel approach?
4.Exercise 2.26 on page 95 (Exercise 2.17 on page 77 for version 7). The experimental Synthesis operating system has an assembler incorporated within the kernel. To optimize system-call performance, the kernel assembles routines with in kernel space to minimize the path that the system call must take through the kernel. This approach is the antithesis of the layered approach, in which the path through the kernel is extended to make building the operating system easier. Discuss the pros and cons of the Synthesis approach to kernel design and to system-performance optimization.