Reference no: EM13347212
Simulating the CPU scheduling for a computer architecture with 64K of memory and 3 I/O devices. Simulate the long-term scheduler, the short-term scheduler and the I/O scheduler of the computer using the First-Come-First-Serve algorithm.
The data will be a list of processes. For each process, you will be given the job number, the amount of memory required to run the process, the time the process arrives into the long-term scheduling queue, the number of the I/O device to be used and the CPU and I/O bursts for the process. All values will be integer values. The first line of data will contain the job number, the memory requirements, the arrival time and the I/O device number. After those values, the CPU and I/O bursts will be given and will be terminated by a value of -1.
Note the bursts will be alternating between CPU and I/O bursts, and the first and last bursts will always be CPU bursts. The following is an example of data for a single process:
2 18 4 2
5 16 6 9 2 12 4 8 2 15 6 -1
The above process has job number 2, requires 18K of memory, arrives at time 4, uses I/O device number 2, has 6 CPU bursts (of length 5, 6, 2, 4, 2 and 6) and 5 I/O bursts (of length 16, 9, 12, 8 and 15). You may assume that any process will have fewer than 100 total bursts (CPU and I/O bursts combined). The times are in milliseconds. The data will be given so the processes are sorted by arrival time.
Your program must directly read the data from the file "mp1.data" that will be in the same directory as the program. While the program is running, you are to print information about the system on the screen. This information must include your name, the current time of the simulation, the amount of available memory, a list of processes that have been submitted but have not been selected by the long term scheduler (call this the job pool), the processes currently using the CPU and each of the I/O devices and the processes waiting for the CPU and each of the I/O devices. After all processes have completed, you are to print out the following information for each process: the arrival time of the process, the time the process is selected by the long-term scheduler, the time the process terminates, the turnaround time for the process and the wait time for the process. After this has been printed, you are to print the average wait time for all processes. This information is to be directly printed to the file "mp1.report" that will be in the same directory as your program.
Your simulation is to assume that no time is spent to execute the various scheduling algorithms and no time is spent switching to a wait queue. The assignment is expected to be the result of team work.
Your program must be able to run in two modes: automatic mode and step mode. Automatic mode will allow your program to continuously run through the simulation without any interference/interaction from the user. When the program starts, ask the user If they wish to enter automatic mode of step mode.