Homework #1: OS Basics & Processes
CMSC 421, Section 0101 (Fall 1999)
Assigned: 14 September 1999
Due: Tuesday, 21 September 1999 at 2:30 PM
Late homeworks will not be accepted.
Remember: your homework must be turned in online via submit.
- Why do computers need operating systems? Why not simply allow programs to use the hardware directly as they see fit? Give two distinct reasons for this.
- Why are system calls necessary?
- The project assignments in this class will use a simulator of the DLX architecture rather than running directly on the underlying hardware. Give two different reasons for using such a virtual machine instead of running your experimental operating system code directly on the system CPU. Are there any disadvantages to using a virtual machine? If so, what?
- Give one or more examples of a command interpreter that you've used. What does the command interpreter do, and why is it usually implemented as a user program rather than as a part of the kernel?
- Explain the difference between threads and processes, including
- Which is likely to be easier (faster) to create?
- How do the kernel actions to switch among threads differ from switching among processes?
- What is the difference between user-level and kernel-level threads?
- Problem 4.8 in the course text.