0% found this document useful (0 votes)
19 views4 pages

Os1 To 4-1-4

The document contains code implementing the Shortest Job First (SJF) CPU scheduling algorithm. It takes user input for the number of processes and their burst times. It then sorts the processes in order of increasing burst time. It calculates the waiting time and turnaround time for each process and prints the results. It also calculates and prints the average waiting time and average turnaround time.

Uploaded by

Hariom
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views4 pages

Os1 To 4-1-4

The document contains code implementing the Shortest Job First (SJF) CPU scheduling algorithm. It takes user input for the number of processes and their burst times. It then sorts the processes in order of increasing burst time. It calculates the waiting time and turnaround time for each process and prints the results. It also calculates and prints the average waiting time and average turnaround time.

Uploaded by

Hariom
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

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:

You might also like