Reference no: EM13317097
Create a server process that acts as a multiple client CPU scheduler that handles CPU bursts. Clients represent processes that are already in the Ready state and are contending with each other for the CPU. The CPU scheduler determines the next process to get the CPU. The server will manipulate the Ready state using a Round-Robin scheduler.
Clients send a private FIFO name, a CPU burst, and an arrival time to the server's FIFO.
Each client sends the server a request consisting of a CPU burst, an arrival time that the client inputs from the keyboard, and the private FIFO name. This information is sent to the server through the common FIFO, and the server responds to each client using that client's private FIFO. (At this point, it does not matter whether the client or the server creates the private FIFO.)
Prepare your own test data. On paper, work through your data showing Gantt charts, CPU utilization, and turnaround times. Use these same values for testing your program.
After the server has received data from all of the clients, it will start the CPU scheduler that assigns the various client processes to the CPU. The server begins at time zero and can be asked for the number of clients before the process begins. The server prints out CPU utilization, average turnaround time, and average waiting time (how long the process is in the Ready state) for the set of data.
The client programs receive a CPU burst and arrival time as integer values from the keyboard (or you may send them via command line, if you wish) and send them to the server. After the server has processed the client data, clients will read their individual time spent in the Ready Queue and turnaround time from the server. Each client will only run once. Upon completion, clients will disconnect.
What to turn in:
-Your .c files, zipped and submitted through Blackboard.
-A hardcopy of your documented source code listing that follows the Programming Guidelines.
-Gantt charts which show results of your data. These may be hand-drawn, or computer-generated.
-Input values and Output values with recorded sessions for running the programs once with a time quantum greater than or equal to the maximum CPU burst size, and once with a time quantum less than the maximum CPU burst size.
-An estimate and an actual time spent in each of the following phases: design, implementation and testing.
-Include a ReadMe that clearly shows the steps for executing your programs.
Late Programs: Programs are due at the beginning of class on the due date. They are considered late when class begins. They will be accepted up to two days late and will have 20 points deducted per day. A day is 24 hours. Turn the late programs in to me.