This assignment is a CPU Scheduling with I/O and Round Robin. (document is called "Assignment post") The .rar attachment has the server and client code from my last assignment that dealt with Round robin.
The expert is free to use this as to implement for the CPU scheduling assignment.
CPU Scheduling with I/O and Round Robin
Design and write the client and server programs necessary to provide a multiple client CPU scheduler that handles CPU bursts and I/O bursts. Clients represent processes that are requesting to be placed in the Ready state to contend for the CPU. The CPU scheduler determines the next process to get the CPU. An I/O scheduler determines the next process to do I/O. Your server will manipulate the Ready state using a Round Robin scheduler, and will manipulate the I/O queue using a FCFS scheduler.
Clients send a private FIFO name, an arrival time, and a sequence of CPU bursts and I/O bursts to the server's FIFO. The bursts will represent how long a client needs to use the CPU and how long a client needs to do I/O, respectively. A real client's program would consist of alternating CPU instructions and I/O instructions. So, now your clients will send an array of alternating CPU and I/O bursts in the form of (CPU burst, I/O burst, CPU burst, ... CPU burst). The array always consists of an odd number of values because it always ends in a CPU burst. You will want to enter information from the clients in increasing order of arrival times so that the processes will be enqueued to Ready in that same order.
Do not do memory management.
Each client requests multiple CPU and I/O bursts from the keyboard or the command line. This information, an arrival time, and the private FIFO are sent to the server through a common FIFO. The server responds to each client using private FIFOs. After the server has processed the client data, clients will read their Ready waiting time, I/O waiting time and turnaround time from the server. Each client will only run once. Upon completion, clients may disconnect.
The server begins at time zero and can be asked for the number of clients before the process begins. The server sends the process to the I/O queue when an I/O burst arrives. A process concludes when its final CPU burst is completed. The server prints out CPU utilization, average turnaround time, average Ready wait time (how long the process is in the Ready state), and average I/O wait time (how long the process is waiting in the I/O queue) for the set of data. Each time a process completes, show the contents of the Ready queue and the I/O queue.
Prepare your own test data. On paper, work through your data showing Gantt charts, CPU utilization, turnaround times and waiting times for both the Ready State and the I/O wait. Use these same values for testing your program. Your data should test the capabilities of your code.
Policy Decision: give precedence to a process that is returning from the Ready Queue over a process that is returning from I/O Wait Queue. Make sure that your program tests this condition.
• Read Me: A Read Me gives the user of your program directions for interacting with your program.
• Pseudocode
• A hardcopy of output with a recorded session using your input data and the given data.
• Gantt charts which show results of your data. These may be hand-drawn, or computer-generated.
• Your typed ReadMe that clearly shows the steps for executing your programs.
Attachment:- Last Program.rar