MAHARISHI MARKENDESHWOR DEEMED TO BE UNIVERSITY ,MULLANA,AMBALA
Name: Ajay Dangoriya Tharu Section: D1
Roll no: 11222780 Course Code : BCSE-507L
PRATICAL -03
Aim - Implementation of First Come First Serve (FCFS) CPU scheduling.
#include <iostream>
using namespace std;
void findWaitingTime(int processes[], int n,
int bt[], int wt[])
{
wt[0] = 0;
for (int i = 1; i < n; i++)
wt[i] = bt[i - 1] + wt[i - 1];
}
void findTurnAroundTime(int processes[], int n,
int bt[], int wt[], int tat[])
{
for (int i = 0; i < n; i++)
tat[i] = bt[i] + wt[i];
}
void findavgTime(int processes[], int n, int bt[])
{
int wt[n], tat[n], total_wt = 0, total_tat = 0;
findWaitingTime(processes, n, bt, wt);
findTurnAroundTime(processes, n, bt, wt, tat);
cout << "Processes "
<< " Burst time "
<< " Waiting time "
<< " Turn around time\n";
for (int i = 0; i < n; i++)
{
total_wt = total_wt + wt[i];
total_tat = total_tat + tat[i];
cout << " " << i + 1 << "\t\t" << bt[i] << "\t "
<< wt[i] << "\t\t " << tat[i] << endl;
}
cout << "Average waiting time = "
<< (float)total_wt / (float)n;
cout << "\nAverage turn around time = "
<< (float)total_tat / (float)n;
}
int main()
{
int processes[] = {1, 2, 3};
int n = sizeof processes / sizeof processes[0];
MAHARISHI MARKENDESHWOR DEEMED TO BE UNIVERSITY ,MULLANA,AMBALA
Name: Ajay Dangoriya Tharu Section: D1
Roll no: 11222780 Course Code : BCSE-507L
int burst_time[] = {10, 5, 8};
findavgTime(processes, n, burst_time);
return 0;
}
Output:
MAHARISHI MARKENDESHWOR DEEMED TO BE UNIVERSITY ,MULLANA,AMBALA
Name: Ajay Dangoriya Tharu Section: D1
Roll no: 11222780 Course Code : BCSE-507L
PRATICAL-04
Aim – Implementation of Shortest Job First (SJF) CPU Scheduling.
#include <iostream>
using namespace std;
int main()
{
int A[100][4];
int i, j, n, total = 0, index, temp;
float avg_wt, avg_tat;
cout << "Enter number of process: ";
cin >> n;
cout << "Enter Burst Time:" << endl;
for (i = 0; i < n; i++)
{
cout << "P" << i + 1 << ": ";
cin >> A[i][1];
A[i][0] = i + 1;
}
for (i = 0; i < n; i++)
{
index = i;
for (j = i + 1; j < n; j++)
if (A[j][1] < A[index][1])
index = j;
temp = A[i][1];
A[i][1] = A[index][1];
A[index][1] = temp;
temp = A[i][0];
A[i][0] = A[index][0];
A[index][0] = temp;
}
A[0][2] = 0;
for (i = 1; i < n; i++)
{
A[i][2] = 0;
for (j = 0; j < i; j++)
A[i][2] += A[j][1];
total += A[i][2];
}
avg_wt = (float)total / n;
MAHARISHI MARKENDESHWOR DEEMED TO BE UNIVERSITY ,MULLANA,AMBALA
Name: Ajay Dangoriya Tharu Section: D1
Roll no: 11222780 Course Code : BCSE-507L
total = 0;
cout << "P BT WT TAT" << endl;
for (i = 0; i < n; i++)
{
A[i][3] = A[i][1] + A[i][2];
total += A[i][3];
cout << "P" << A[i][0] << " " << A[i][1] << " " << A[i][2] << " " << A[i][3] << endl;
}
avg_tat = (float)total / n;
cout << "Average Waiting Time= " << avg_wt << endl;
cout << "Average Turnaround Time= " << avg_tat << endl;
}
OUTPUT: