Scheduling Implementation 1. You should implement a console-based menu which shows the implemented scheduling algorithms for the user to choose from. Extra choice is to run all scheduling algorithms and compare their performance. The menu should contain also the option to show process set. 2. The selected scheduling algorithm/s should execute the process set created by the user (described in Section Process set creation). 3. The program should show the order of execution for all processes based on the selected scheduling algorithm in a clear way of your choice. 4. Finally, you should print a table with statistics of performance metrics for all selected scheduling algorithms. The metrics should be the maximum / minimum / average values of: a. Response time b. Waiting time c. Turnaround time d. The throughput of the algorithm (the number of processes executed by the CPU in a given amount of time defined in your code). Interface design The project should provide the user with a console-based interface. 1. Start the program by asking the user to create the process set (as defined in Section Process set creation). 2. Show an infinite-loop menu with the following options: a. Show process set b. Schedule by using FCFS c. Schedule by using SFJ d. Schedule by using Priority scheduling e. Schedule by using RR scheduling f. Schedule by using Priority scheduling with RR. g. Run all scheduling algorithms.

Computer Networking: A Top-Down Approach (7th Edition)
7th Edition
ISBN:9780133594140
Author:James Kurose, Keith Ross
Publisher:James Kurose, Keith Ross
Chapter1: Computer Networks And The Internet
Section: Chapter Questions
Problem R1RQ: What is the difference between a host and an end system? List several different types of end...
icon
Related questions
Question
Scheduling Implementation
1. You should implement a console-based menu which shows the implemented scheduling
algorithms for the user to choose from. Extra choice is to run all scheduling algorithms and
compare their performance. The menu should contain also the option to show process set.
2. The selected scheduling algorithm/s should execute the process set created by the user
(described in Section Process set creation).
3. The program should show the order of execution for all processes based on the selected
scheduling algorithm in a clear way of your choice.
4. Finally, you should print a table with statistics of performance metrics for all selected scheduling
algorithms. The metrics should be the maximum / minimum / average values of:
a. Response time
b. Waiting time
c. Turnaround time
d. The throughput of the algorithm (the number of processes executed by the CPU in a
given amount of time defined in your code).
Interface design
The project should provide the user with a console-based interface.
1. Start the program by asking the user to create the process set (as defined in Section Process set
creation).
2. Show an infinite-loop menu with the following options:
a. Show process set
b. Schedule by using FCFS
c. Schedule by using SFJ
d. Schedule by using Priority scheduling
e. Schedule by using RR scheduling
f. Schedule by using Priority scheduling with RR.
g. Run all scheduling algorithms.
Transcribed Image Text:Scheduling Implementation 1. You should implement a console-based menu which shows the implemented scheduling algorithms for the user to choose from. Extra choice is to run all scheduling algorithms and compare their performance. The menu should contain also the option to show process set. 2. The selected scheduling algorithm/s should execute the process set created by the user (described in Section Process set creation). 3. The program should show the order of execution for all processes based on the selected scheduling algorithm in a clear way of your choice. 4. Finally, you should print a table with statistics of performance metrics for all selected scheduling algorithms. The metrics should be the maximum / minimum / average values of: a. Response time b. Waiting time c. Turnaround time d. The throughput of the algorithm (the number of processes executed by the CPU in a given amount of time defined in your code). Interface design The project should provide the user with a console-based interface. 1. Start the program by asking the user to create the process set (as defined in Section Process set creation). 2. Show an infinite-loop menu with the following options: a. Show process set b. Schedule by using FCFS c. Schedule by using SFJ d. Schedule by using Priority scheduling e. Schedule by using RR scheduling f. Schedule by using Priority scheduling with RR. g. Run all scheduling algorithms.
Project description
You are required to implement a fully functional platform to test the performance of various scheduling
algorithms. The scheduler will create a random set of processes (specifications will be defined below) and
schedule them based on the implemented scheduling algorithms. The result should be a comparison
table of various performance metrics such as average, minimum, and maximum values of turnaround
time, waiting time, and response time.
Minimum required scheduling algorithms:
First-come, first-served (FCFS)
Shortest-job-first (SJF)
Priority scheduling
Round-robin scheduling (assume time quantum is 4ms)
Priority scheduling with round-robin scheduling.
Process set creation
The project should start by creating the process set to be scheduled according to the following steps:
1. Ask the user to enter a number of processes (n) (strictly positive and not greater than
MAX_NUM_PROC which can be defined as a constant at the header of the code).
2. Create (n) processes which random specifications. Each process should have:
a. an ID which is a unique order number
b. CPU Burst time which is a positive integer whose value is chosen randomly within the
range 1ms to 15ms.
c. Arrival time which is a positive integer whose value is chosen randomly within the range
Oms to 10ms.
d. Static priority which is a positive integer whose value is chosen randomly within the range
1 to 5, where higher number means higher priority.
e. For preemptive scheduling algorithms, a field called the remaining CPU burst
(RemExecTime) which keeps the remaining execution time of each process
3. You can choose the best programming form for implementing the process set such as arrays or
lists (ordered or unordered).
Transcribed Image Text:Project description You are required to implement a fully functional platform to test the performance of various scheduling algorithms. The scheduler will create a random set of processes (specifications will be defined below) and schedule them based on the implemented scheduling algorithms. The result should be a comparison table of various performance metrics such as average, minimum, and maximum values of turnaround time, waiting time, and response time. Minimum required scheduling algorithms: First-come, first-served (FCFS) Shortest-job-first (SJF) Priority scheduling Round-robin scheduling (assume time quantum is 4ms) Priority scheduling with round-robin scheduling. Process set creation The project should start by creating the process set to be scheduled according to the following steps: 1. Ask the user to enter a number of processes (n) (strictly positive and not greater than MAX_NUM_PROC which can be defined as a constant at the header of the code). 2. Create (n) processes which random specifications. Each process should have: a. an ID which is a unique order number b. CPU Burst time which is a positive integer whose value is chosen randomly within the range 1ms to 15ms. c. Arrival time which is a positive integer whose value is chosen randomly within the range Oms to 10ms. d. Static priority which is a positive integer whose value is chosen randomly within the range 1 to 5, where higher number means higher priority. e. For preemptive scheduling algorithms, a field called the remaining CPU burst (RemExecTime) which keeps the remaining execution time of each process 3. You can choose the best programming form for implementing the process set such as arrays or lists (ordered or unordered).
Expert Solution
steps

Step by step

Solved in 2 steps

Blurred answer
Recommended textbooks for you
Computer Networking: A Top-Down Approach (7th Edi…
Computer Networking: A Top-Down Approach (7th Edi…
Computer Engineering
ISBN:
9780133594140
Author:
James Kurose, Keith Ross
Publisher:
PEARSON
Computer Organization and Design MIPS Edition, Fi…
Computer Organization and Design MIPS Edition, Fi…
Computer Engineering
ISBN:
9780124077263
Author:
David A. Patterson, John L. Hennessy
Publisher:
Elsevier Science
Network+ Guide to Networks (MindTap Course List)
Network+ Guide to Networks (MindTap Course List)
Computer Engineering
ISBN:
9781337569330
Author:
Jill West, Tamara Dean, Jean Andrews
Publisher:
Cengage Learning
Concepts of Database Management
Concepts of Database Management
Computer Engineering
ISBN:
9781337093422
Author:
Joy L. Starks, Philip J. Pratt, Mary Z. Last
Publisher:
Cengage Learning
Prelude to Programming
Prelude to Programming
Computer Engineering
ISBN:
9780133750423
Author:
VENIT, Stewart
Publisher:
Pearson Education
Sc Business Data Communications and Networking, T…
Sc Business Data Communications and Networking, T…
Computer Engineering
ISBN:
9781119368830
Author:
FITZGERALD
Publisher:
WILEY