SJF & Round Robin
SJF & Round Robin
SJF
Round Rbbin
#include <stdio.h>
typedef struct {
int pid;
int arrival_time;
int burst_time;
int waiting_time;
int turnaround_time;
} Process;
*a = *b;
*b = temp;
int current_time = 0;
current_time = processes[i].arrival_time;
current_time += processes[i].burst_time;
printf("---------------------------------------------------------------\n");
for (int i = 0; i < n; i++) {
processes[i].waiting_time, processes[i].turnaround_time);
avg_waiting_time += processes[i].waiting_time;
avg_turnaround_time += processes[i].turnaround_time;
int main() {
int n;
scanf("%d", &n);
Process processes[n];
processes[i].pid = i + 1;
scanf("%d", &processes[i].arrival_time);
scanf("%d", &processes[i].burst_time);
}
// Sorting processes by arrival time, then by burst time
sort_by_burst_time(processes, n);
calculate_times(processes, n);
// Display results
display(processes, n);
return 0;
Sample Input.
-------------------------------------------------------------------------
1 | 0 | 5 | 0 | 5
2 | 1 | 3 | 4 | 7
4 | 3 | 6 | 5 | 11
3 | 2 | 8 | 12 | 20
#include <stdio.h>
typedef struct {
int pid;
int arrival_time;
int burst_time;
int remaining_time;
int waiting_time;
int turnaround_time;
} Process;
int in_queue[n];
in_queue[i] = 0;
processes[i].remaining_time = processes[i].burst_time;
in_queue[0] = 1;
time += time_quantum;
processes[index].remaining_time -= time_quantum;
} else {
time += processes[index].remaining_time;
processes[index].remaining_time = 0;
processes[index].waiting_time = processes[index].turnaround_time -
processes[index].burst_time;
completed++;
}
// Add newly arrived processes to queue
queue[rear++] = i;
in_queue[i] = 1;
if (processes[index].remaining_time > 0) {
queue[rear++] = index;
printf("---------------------------------------------------------------\n");
processes[i].waiting_time, processes[i].turnaround_time);
avg_waiting_time += processes[i].waiting_time;
avg_turnaround_time += processes[i].turnaround_time;
int main() {
int n, time_quantum;
scanf("%d", &n);
Process processes[n];
processes[i].pid = i + 1;
scanf("%d", &processes[i].arrival_time);
scanf("%d", &processes[i].burst_time);
scanf("%d", &time_quantum);
round_robin(processes, n, time_quantum);
display_results(processes, n);
return 0;
Input:
Output:
-------------------------------------------------------------------------
1 | 0 | 8 | 9 | 17
2 | 1 | 4 | 6 | 10
3 | 2 | 9 | 12 | 21
4 | 3 | 5 | 9 | 14
Average Waiting Time: 9.00