CS 3733 Operating Systems, Fall 1998 Assignment 2


Parts 0 and 1 Due Thursday, September 24
Parts 2 and 3 Due Thursday, October 1


In this assignment you will explore the topic of CPU scheduling by using the scheduling simulator described in class. You can find out more about the simulator at the web site: /nsf/process_scheduling.html.
A copy of the simulator user's guide can be found at /nsf/ps_doc/psdoc.html.

You might want to read about the experiences students had with the simulator last semester in a paper available at /nsf/pubs/process.html.

Part 0

If you have not already done so, create a web page for yourself.
The address of your web page should be http://www.cs.utsa.edu/~username. Create a course web page with web address http://www.cs.utsa.edu/~username/cs3733/index.html. This should be globally accessible. Your course web page should be very simple without much graphics so that it will load quickly over a phone line.

Part 1

Make a directory for this assignment called assign2. Make a subdirectory called part1. Copy all of the files from /usr/local/courses/cs3733/fall98/assign2 into your part1 directory. Edit the psconfig file and replace my name with yours. Run the single experiment from the downloaded files by executing the command runit which should be in your part1 directory.

Create a log containing the tabular data and a graph of the waiting times. Insert a comment at the bottom of the log file explaining what you think this experiment tests and why you think the results came out as they did.

Copy your log file to a subdirectory of your course web page and put a link in your course web page to the log file. Make sure you also copy the required image files and make sure that the permissions are set so that everything can be read from outside of your account. Have a friend try to access your web page to make sure the permissions have been properly set. Print out the log file from the browser and hand it in.

Part 2

Create a part2directory under your assign2 directory and copy the runit file from part1 into part2. In this directory create an experiment of 3 runs which compares the following algorithms on the same processes: There will be 20 processes all with the same priority. The first 10 processes all arrive at time 0 and all have duration 200, cpu burst 100, and I/O burst 1000. The rest of the processes all arrive at time 1, have duration 20, CPU bursts of 2, and IO bursts of 30.

Produce a log file with the tabular data and a graph of waiting times.

Discuss what the statistics tell you about how well the three algorithms perform with these processes. Explain what the various statistics tell you about the performance.

Describe in 100 words or less why you think the main results occurred. Put your discussion and description into the log file. Print out the html file from a browser and hand it in.

Part 3

Make a part3 directory and in this directory design an experiment to compare SJF and SJF approximation (SJFA). Choose a collection of parameters for which SJF performs significantly better than FCFS and show the comparison.

Now compare SJFA with several values of the parameter with these other two algorithms using the same collection of processes. Write about 100 words describing your results.

Discuss what type of processes would work well with SJFA and which would not. Prepare a log file with your runs and your description, print it out and hand it in.