CMSC 421, Principles of Operating Systems. Fall 2004
Computer Science & Electrical Engineering Department
University of Maryland Baltimore County


Homework 1.

Due by 11:59pm EST on September 30, 2004.

PART A: (50 points)

1.   (5x3 = 15 points)

Log into the linuxserver linux1@gl.umbc.edu.

a) What operating system does it run? What is the kernel version it runs?
b) Is this a Batched system?
c) Is this a Multiprogrammed system?
d) Is this a Time-sharing system?
e) Is this a Multiprocessor system?
Briefly justify your answers.

2. What are system calls? What is their purpose? How are they handled?    (15 points)

3. Problems 2.5 on pages 52-53 in the text book.    (10 points)

4. Problem 4.6 on page 127 from your text book.   (10 points)

PART B: (50 points) 

Familiarize yourself with the /proc filesystem in the Linux OS (eg at a minimum look at the man pages for proc). Log on to linux.gl.umbc.edu and explore the /proc directory. This directory provides an easy way to get a lot of information about the current system.

The file /proc/meminfo contains information about the free and used memory in the system. The unix command "free" uses this file to generate its output. Write your own version of the command "free" in C. Run the command "free" at your promt to see the sample of what the output should look like.

What to submit

Homework should be submited via Blackboard. Follow the link for Homework 1.
 

Part A of an assignment must be a PDF file. See Creating PDF files in Unix and Windows Environments for some options to that.
The file should be called "hw1partA.pdf". (case is important).
 

For Part B you need to submit the following: source code, Makefile, README, and sample output.

Everything (Part A and Part B) needs to be submitted as a single compressed tar.gz file named "hw1.tar.gz".