UMBC CMSC421 UMBC | CSEE | CMSC421 | Fall 1999 (Section 0101)


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.

  1. 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.
  2. Why are system calls necessary?
  3. 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?
  4. 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?
  5. Explain the difference between threads and processes, including
    1. Which is likely to be easier (faster) to create?
    2. How do the kernel actions to switch among threads differ from switching among processes?
    3. What is the difference between user-level and kernel-level threads?
  6. Problem 4.8 in the course text.

Syllabus | Schedule | News & Notes | Grades | Feedback
Submit | Homework: 1 2 3 4 5 6 | Project: 1 2 3 4

Last updated 3 Dec 1999 by Ethan Miller (