Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Write a C or C++ program that performs runs of the following process scheduling algorithms: *Shortest remaining time (SRT) [preemptive] *Round robin (RR) [preemptive] Run

Write a C or C++ program that performs runs of the following process scheduling algorithms:

*Shortest remaining time (SRT) [preemptive]

*Round robin (RR) [preemptive]

Run each scheduling algorithm for 100 quanta (time slices), labeled 0 through 99. Before each run of an algorithm, create 20 simulated processes. Each simulated process is simply a small data structure that stores information about the process that it represents.

For each simulated process, randomly generate: An arrival time: a float value from quanta 0 through 99. An expected total run time: a float value from 0.1 through 10 quanta. A priority: integer 1, 2, 3, or 4 (1 is highest) Include any other attributes that you may need

Tip: While debugging your program, you may want the same pseudo-random numbers each time. For this to happen, you should set the seed of the random number generator to a value, such as 0. Read about the rand() and srand() functions for C and C++:

Assume only one CPU and one ready queue. Sort the simulated processes in the ready queue by arrival time. Your process scheduler can do process switching only at the start of each time quantum. For this assignment, only consider CPU time for each process (no I/O wait times, no process switching overhead). For RR, use a time slice of 1 quantum.

Each simulation run should last until the completion of the last process, even if it goes beyond 100 quanta. No process should get the CPU for the first time after time quantum 99.

Run each algorithm 5 times to get averages for the statistics below. Before each run, clear the process queue and create a new set of simulated processes.

Your output should include:

The sorted contents of the ready queue before the start of the run.

-Each created processs name (such as A, B, C, ...), arrival time, expected run time, and priority.

A timeline of the 100+ quanta that shows which process ran during each quantum, such as ABCDABCD ...

- Show a processs name in a quantum even if it completed execution before the end of that quantum.

- The CPU can be idle during the last part of a quantum if a process completes before the end of the quantum. (No need to show the idle time within a quantum.) - Show a hyphen - if a quantum is completely unused.

Calculated statistics for each algorithm run:

- Average turnaround time for the processes that ran. o

-Average waiting time for the processes that ran.

-How many processes in the ready queue that never ran.

- Throughput of the algorithm per 100 quanta: 100 /

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image_2

Step: 3

blur-text-image_3

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Learning MySQL Get A Handle On Your Data

Authors: Seyed M M Tahaghoghi

1st Edition

0596529465, 9780596529468

Students also viewed these Databases questions