This assignment is about concurrent (non-cooperating) processes and threads and it makes use of the files contained in this zip file.
In the zip file there are the outlines of five C programs, The C programs are meant to simulate the workload that a server program might have. The "workload" that these programs are supposed to handle is copying input files to output files (I/O bound tasks) and doing long calculations (CPU bound tasks). The goal of the assignment is to implement and study three different strategies for doing a lot tasks as quickly as possible.
The first program is
The second program is made up of the three files
The last program, Follow the directions in each of the five C files and implement these three task strategies. When your programs are completed, try them on small, medium, and large runs of tasks. A medium run of tasks should have about 100 tasks. Try to have large runs with several hundred tasks (but don't run such large numbers of tasks with the serial strategy). How do the strategies perform? Which strategy is fastest? How do processes and threads scale to large numbers of tasks (does one scale better than the other)? Does the data you collect from doing several runs of these programs agree with what you were expecting? Turn in a zip file containing your versions of the five C programs and an explanation of what you found when you ran the three different strategies. (Please do not send back to me the output files generated by the programs or the data files created by the batch file.) This assignment is due Friday, March 9. |