Design two different versions of a dispatcher, one based on simple *round robin*, another based on two round robin queues with different priorities, where processes
from the queue with the higher priority get twice as much time as processes from the queue with the lower priority. Make the following assumptions:
a) the size of internal memory is 120K, and it is divided into 30 page frames;
b) the size of every process in the system is a number in the range from 4K to
c) when a process is generated, it is allocated 3 free page frames that can be filled on demand basis (that is, the dispatcher uses local policy, creating a separate page table for every process).
d) the lifetime of every process is a number in the range from 1 to 10.
Your driver program will run 100 times. On each of the first 10 runs, it randomly creates a process (randomly choosing the size and the lifetime) and places it into a queue (if the simple round robin is being used, it is the single queue; if two queues are being used, processes with the lifetime up to 5 get higher priority, and process with greater lifetime get lower priority). On the next runs of the loop, it creates a new process whenever some process has been completed. Every run of the loop is considered as one clock tick. If the simple round robin is being used, the dispatcher picks the next process to run on every next clock tick. If two queues are being used, the scheduler runs processes with higher priority for two clock ticks and processes with lower priority for one clock tick, alternating between the queues. The driver simulates running of a process by generating a random reference to a page (you can choose FIFO or LRU to manage page replacements; you may incorporate a program from the attachement!!!!)
Hand in the text of the programs and one run for each version. Your programs should print out:
a)sizes, b) lifetimes, c) the moments of creation, d) the moments of completion of generated processes, e) reference strings for both processes, indicating page faults.
Determine and submit the average turnaround time for each run.
1) Complete and fully-functional working program(s) in executable form as well as complete source code of all work done.
2) Installation package that will install the software (in ready-to-run condition) on the platform(s) specified in this bid request.
3) Exclusive and complete copyrights to all work purchased. (No GPL, 3rd party components, etc. unless all copyright ramifications are explained AND AGREED TO by the buyer on the site).