Warning: This is not for the current semester.
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 in a previous semester in a paper available at /nsf/pubs/process.html.
Make cs3733/assign2/part1, cs3733/assign2/part2 and cs3733/assign2/part3 under your public_html directory. The permissions of the public_html, cs3733, assign2, and part1 directories should be drwxr-xr-x but the permissions of the part2 and part3 directories should be drwx------.
If you are not familiar with creating HTML files, you may want to use the template available in /usr/local/courses/cs3733/spring99/webtemplate. Put the file index.html in your ~username/public_html/cs3733 directory. Edit this file and replace my name with yours in two places.
Create a log file containing the tabular data, a graph of the waiting times, and two Gantt charts. Insert a comment at the bottom of the log file explaining what you think this experiment tests and what it shows. Refer to the graphs, tables, and Gantt charts as necessary. Explain how in this case you can tell which run had a shorter average waiting time by either looking at the graph or by comparing the Gantt charts.
Copy your log file into your public_html/cs3733/assign/part1 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 these files are world readable 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.
When you have completed this part of the assignment, send me email with the subject CS 3733 Assignment 2 Parts 0 and 1 Complete indicating that you have completed these parts of the assignment. Print out the log file and turn it in with Parts 2 and 3. Clearly label it is being Part 1 of this assignment.
Here are the steps that will produce a basic log file (without comments) for Part 1:
You should do two experiments, each with two runs. In the first experiment, perform two runs on the same collection of processes using FCFS and SJF. In this experiment the average waiting time of these two runs should be about the same. In the second experiment, again make two runs with the same collection of processes, but choose the processes so that the average waiting time for SJF is at least 20 percent smaller than FCFS.
Create a log file containing 2 graphs comparing the average waiting times for the runs of each experiment, and Gantt charts for each run. Each graph should show two runs. Make sure everything is labeled appropriately. At the end of your log file insert your paragraph from Part 2a followed by a short description of the experiment you did and how the data supports (or refutes) what you stated in the paragraph. If your data does not support your hypothesis, try to explain where you went wrong.
Each run should have a moderate number of processes (between 10 and 100) and a duration which causes each process to execute a moderate (between 10 and 100) number of CPU bursts. If possible, try to choose the IO of the processes so that the CPU is sometimes idle, but usually busy.
Copy your log file into your public_html/cs3733/assign2/part2 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 these files are world readable. These files will still not be available outside your account because of the permissions you set on your public_html/cs3733/assign2/part2 subdirectory, but you should be about to access them from a browser running on your account by using the File, Open Page, Choose File option.
Print out your log file and turn it in. Clearly label it is being Part 2 of this assignment.
You should do two experiments, each with three runs. In the first experiment, perform three runs on the same collection of processes using FCFS, SJF and SJFA with alpha equals 0.5. In this experiment the average waiting time for SJF should be at least 20 percent less than for FCFS and SJFA should be a good approximation to SJF.
In the second experiment, again make three runs. Each run these runs will use the same set of processes. Choose the processes so that although the average waiting time for SJF is at least 20 percent smaller than FCFS, SJFA with alpha = 0.5 will perform more like FCFS than SJF.
Each run should have a moderate number of processes (between 10 and 100) and a duration which causes each process to execute a moderate (between 10 and 100) number of CPU bursts. If possible, try to choose the IO of the processes so that the CPU is sometimes idle, but usually busy.
Create a log file containing tables, graphs and Gantt charts as in Part 2. Each of the two graphs should show three runs. The log file should also contain your paragraph from part 3a. Put a short paragraph at the end of your log file describing the experiment and the results. Show how the tables, graph, and Gantt charts support your conclusions. By referring to the tables, graphs, or Gantt chart try to explain why SJFA performs as it does in each experiment. Copy your log file into your public_html/cs3733/assign2/part3 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 these files are world readable. These files will still not be available outside your account because of the permissions you set on your public_html/cs3733/assign2/part3 subdirectory.
Print out your log file and turn it in. Clearly label it is being Part 2 of this assignment.
Change the permissions of your public_html/cs3733/assign2/part2 and public_html/cs3733/assign2/part3 directories to be drwxr-xr-x.
Have a friend try to access your web pages to make sure the permissions have been properly set.