Answer each of the following questions with a few sentences.
1. How is a system call different from an ordinary function call in a program? Why are system calls important in an operating system?
2. Most operating systems differentiate between kernel mode and user mode. State whether each of the following actions require kernel mode and if so explain why kernel mode is necessary.
a) Executing a system call
b) Adding two integers stored in an application's memory
c) Writing the results of the addition to a temporary log file on disk
d) Rebooting the system
3. The features provided by an operating system can be dependent on the features of the underlying hardware. Describe two OS features which rely on hardware support.
4. What mechanism does the operating system use to detect special conditions or errors in a program (e.g. a system call function or a write to a read-only memory page)?
5. What is the difference between a process and a program?
6. What is a context switch? What must the operating system do as part of a context switch?
7. What are the benefits of using a layered architecture when building an operating system instead of the approach used for MS-DOS?
8. What are the benefits and draw backs of using asynchronous I/O instead of synchronous I/O?
9. Why do computers have a memory hierarchy? Why not build a system with only registers or only RAM?
10. What technique does the operating system use to provide the abstraction of infinite memory to user processes? Does this require any sort of hardware support?