Each process will be assigned the following attributes:
- PID (Process ID)
- Arrival Time
- CPU burst time (randomly generated)
- I/O burst time (randomly generated)
- Priority (randomly generated)
Following attributes will be used for scheduling algorithms:
- State (Ready, Running, Waiting etc.)
- Consumed/remaining CPU burst time
- Consumed/remaining I/O burst time
- Time spent in various queues
Config() may be used to specify the following:
- Number of processes to be created
- Ready/waiting queue implementation/selection
Scheduling algorithms to be implemented:
- FCFS (First Come First Served)
- SJF (Shortest Job First)
- SJF with preemption
- Priority Scheduling (w/ preemption)
- Priority Scheduling (w/o preemption)
- RR (Round Robin)
Following metrics will be used to evaluate the performance of scheduling algorithms:
- Average waiting time
- Average turnaround time
-
method for data creation (-5)
PID, arrival time, CPU burst time, I/O burst time, priority
-
implementation of I/O operation (-5)
I/O interrupt may be dynamic (random) or static 1 or more I/O burst
-
Scheduling Algorithms Implementation (-5 each)
FCFS, SJF (preemptive/non-preemptive), Priority (preemptive/non-preemptive), Round Robin
-
Gantt Chart (-5)
for successful display of Gantt chart
-
Evaluation (-5)
successful evaluation of waiting/turnaround time
-
Additional Functions
2-4 points per additional function/functionality
-
QnA
Must be able to demonstrate/explain the workings of the written codes
-
Report (-20)
refer to "3.Report"