Question: Design and implement a program in c++ using unix/linux machine that uses fork and pipe to create processes to add all numbers in a file.

Design and implement a program in c++ using unix/linux machine that uses fork and pipe to create processes to add all numbers in a file. The user will enter a number (1, 2, or 4) of parallel processes to create for processing the numbers. The system will then create this many processes, evenly dividing the file contents between the processes. For example, if the file has 1000 numbers and the user wants 4 processes, then each process would process 250 numbers in the file.

Parent process. This process allows user to input the number of processes to create (1, 2, or 4). It determines what portion of the file each process must work on and informs the process via a pipe. More specifically, the first child process handles the first block in the file, and the second child process handles the second one and so on. The parent then waits for each child to report its result. Once each result is received, it combines the results prints the overall result.

Child process. Receive which part of the file to calculate from the parent process through pipe. Process the file and send the result back to the parent process through pipe.

There are 4 given files named file1.dat, file2.dat, file3.dat, file4.dat

this program should output the result and record the run time for each process 1,2, and 4

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!