The purpose of this project is to gain experience using the Unix fork() and pipe() functions. In this project you will compare the results of using one process to do some processing versus using multiple processes. A data file contains log records. A record contains a request that has a date, an operation and a resource. Your program should read these records and determine the average number of requests per day, the average number of each operation per day, and the average number of requests per resource per day. Your program should determine the time it takes to produce a result. Sample output: Log File Statistics Report Average number of requests per day: ###.# Average number of each operation per day: XXX ###.# XXX ###.# … XXX ###.# Average number of requests per resource per day. Resource # ###.# Resource # ###.# … Resource # ###.# Time required: #.## seconds --------------------------------------- System Description When one process is used, the file is read sequentially and each part of the report is generated sequentially. When multiple processes are used, there are two ways you should employ parallelism: 1) The file can be read by multiple processes at a time. For example, if two child processes read the file, one child could read the first half, and at the same time the second child could read the second half. The second child should use the seekg() function to position at the beginning of the second half. 2) The computations can be processed in parallel by child processes. Once a child has completed its computations, the results can be sent to the parent processes via a pipe. ------------------------------------ Execution run your project first using one process to do all activities and record the time. should then let the user input how many parallel processes to use for reading in the file, and whether or not to use parallel processes for the computations.
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Deliverables must be in ready-to-run condition, as follows (depending on the nature of the deliverables):
a) For web sites or other server-side deliverables intended to only ever exist in one place in the Buyer's environment--Deliverables must be installed by the Seller in ready-to-run condition in the Buyer's environment.
b) For all others including desktop software or software the buyer intends to distribute: A software installation package that will install the software in ready-to-run condition on the platform(s) specified in this bid request.
3) All deliverables will be considered "work made for hire" under U.S. Copyright law. Buyer will receive exclusive and complete copyrights to all work purchased. (No GPL, GNU, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site per the coder's Seller Legal Agreement).
* * *This broadcast message was sent to all bidders on Tuesday Jun 20, 2006 3:21:56 PM:
I have attached the logfile that should be used. Please respond if you can complete this by 12am cst tonight.