0% found this document useful (0 votes)
9 views8 pages

Experiment 4

The document describes code to simulate four CPU scheduling algorithms: round robin, first come first serve (FCFS), shortest job first (SJF), and priority. For each algorithm, it provides the code, sample input/output, and a description. The algorithms are simulated by taking in processes with different burst times, calculating their waiting times and turnaround times, and outputting the results.

Uploaded by

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

Experiment 4

The document describes code to simulate four CPU scheduling algorithms: round robin, first come first serve (FCFS), shortest job first (SJF), and priority. For each algorithm, it provides the code, sample input/output, and a description. The algorithms are simulated by taking in processes with different burst times, calculating their waiting times and turnaround times, and outputting the results.

Uploaded by

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

4.

Simulate the following CPU scheduling algorithms

a) Round Robin b) SJF c) FCFS d) Priority

a) Round Robin :

#include<stdio.h>

void main ()

int i, j, n, bu[10], wa[10], tat[10], t, ct[10], max;

float awt = 0, att = 0, temp = 0;

printf ("Enter the no of processes -- ");

scanf ("%d", &n);

for (i = 0; i < n; i++)

printf ("\nEnter Burst Time for process %d -- ", i + 1);

scanf ("%d", &bu[i]);

ct[i] = bu[i];

printf ("\nEnter the size of time slice -- ");

scanf ("%d", &t);

max = bu[0];

for (i = 1; i < n; i++)

if (max < bu[i])

max = bu[i];

for (j = 0; j < (max / t) + 1; j++)

for (i = 0; i < n; i++)

if (bu[i] != 0)

if (bu[i] <= t)

tat[i] = temp + bu[i];

temp = temp + bu[i];

bu[i] = 0;

}
else

bu[i] = bu[i] - t;

temp = temp + t;

for (i = 0; i < n; i++)

wa[i] = tat[i] - ct[i];

att += tat[i];

awt += wa[i];

printf ("\nThe Average Turnaround time is -- %f", att / n);

printf ("\nThe Average Waiting time is -- %f ", awt / n);

printf ("\n\tPROCESS\t BURST TIME \t WAITING TIME\tTURNAROUND TIME\n");

for (i = 0; i < n; i++)

printf ("\t%d \t %d \t\t %d \t\t %d \n", i + 1, ct[i], wa[i], tat[i]);

OUTPUT :

Enter the no of processes – 4

Enter Burst Time for process 1 – 24

Enter Burst Time for process 2 -- 3

Enter Burst Time for process 3 – 6

Enter Burst Time for process 4--2

Enter the size of time slice – 5

The Average Turnaround time is – 19.000000

The Average Waiting time is – 11.000000

PROCESS BURST TIME WAITING TIME TURNAROUND TIME

1 21 11 32

2 3 5 8

3 6 15 21

4 2 13 15
FCFS CPU SCHEDULING ALGORITHM

#include<stdio.h>

#include<conio.h>

main()

int bt[20], wt[20], tat[20], i, n;

float wtavg, tatavg;

clrscr();

printf("\nEnter the number of processes -- ");

scanf("%d", &n);

for(i=0;i<n;i++)

printf("\nEnter Burst Time for Process %d -- ", i);

scanf("%d", &bt[i]);

wt[0] = wtavg = 0;

tat[0] = tatavg = bt[0];

for(i=1;i<n;i++)

wt[i] = wt[i-1] +bt[i-1];

tat[i] = tat[i-1] +bt[i];

wtavg = wtavg + wt[i];

tatavg = tatavg + tat[i];

printf("\t PROCESS \tBURST TIME \t WAITING TIME\t TURNAROUND TIME\n");

for(i=0;i<n;i++)

printf("\n\t P%d \t\t %d \t\t %d \t\t %d", i, bt[i], wt[i], tat[i]);

printf("\nAverage Waiting Time -- %f", wtavg/n);

printf("\nAverage Turnaround Time -- %f", tatavg/n);

getch();

}
INPUT

Enter the number of processes -- 3

Enter Burst Time for Process 0 -- 24

Enter Burst Time for Process 1 -- 3

Enter Burst Time for Process 2 -- 3

OUTPUT

PROCESS BURST TIME WAITING TIME TURNAROUND TIME

P0 24 0 24

P1 3 24 27

P2 3 27 30

Average Waiting Time-- 17.000000

Average Turnaround Time -- 27.000000

SJF CPU SCHEDULING ALGORITHM

#include<stdio.h>

#include<conio.h>

main()

int p[20], bt[20], wt[20], tat[20], i, k, n, temp;

float wtavg, tatavg;

clrscr();

printf("\nEnter the number of processes -- ");

scanf("%d", &n);

for(i=0;i<n;i++)

p[i]=i;

printf("Enter Burst Time for Process %d -- ", i);

scanf("%d", &bt[i]);

for(i=0;i<n;i++)

for(k=i+1;k<n;k++)
if(bt[i]>bt[k])

temp=bt[i];

bt[i]=bt[k];

bt[k]=temp;

temp=p[i];

p[i]=p[k];

p[k]=temp;

wt[0] = wtavg = 0;

tat[0] = tatavg = bt[0];

for(i=1;i<n;i++)

wt[i] = wt[i-1] +bt[i-1];

tat[i] = tat[i-1] +bt[i];

wtavg = wtavg + wt[i];

tatavg = tatavg + tat[i];

printf("\n\t PROCESS \tBURST TIME \t WAITING TIME\t TURNAROUND TIME\n");

for(i=0;i<n;i++)

printf("\n\t P%d \t\t %d \t\t %d \t\t %d", p[i], bt[i], wt[i], tat[i]);

printf("\nAverage Waiting Time -- %f", wtavg/n);

printf("\nAverage Turnaround Time -- %f", tatavg/n);

getch();

INPUT

Enter the number of processes -- 4

Enter Burst Time for Process 0 -- 6

Enter Burst Time for Process 1 -- 8

Enter Burst Time for Process 2 -- 7

Enter Burst Time for Process 3 -- 3


OUTPUT

PROCESS BURST TIME WAITING TIME TURNAROUND TIME

P3 3 0 3

P0 6 3 9

P2 7 9 16

P1 8 16 24

Average Waiting Time -- 7.000000

Average Turnaround Time -- 13.000000

PRIORITY CPU SCHEDULING ALGORITHM

#include<stdio.h>

main()

int p[20],bt[20],pri[20], wt[20],tat[20],i, k, n, temp;

float wtavg, tatavg;

clrscr();

printf("Enter the number of processes --- ");

scanf("%d",&n);

for(i=0;i<n;i++)

p[i] = i;

printf("Enter the Burst Time & Priority of Process %d --- ",i);

scanf("%d %d",&bt[i], &pri[i]);

for(i=0;i<n;i++)

for(k=i+1;k<n;k++)

if(pri[i] > pri[k])

temp=p[i];

p[i]=p[k];

p[k]=temp;

temp=bt[i];
bt[i]=bt[k];

bt[k]=temp;

temp=pri[i];

pri[i]=pri[k];

pri[k]=temp;

wtavg = wt[0] = 0;

tatavg = tat[0] = bt[0];

for(i=1;i<n;i++)

wt[i] = wt[i-1] + bt[i-1];

tat[i] = tat[i-1] + bt[i];

wtavg = wtavg + wt[i];

tatavg = tatavg + tat[i];

printf("\nPROCESS\t\tPRIORITY\tBURST TIME\tWAITING TIME\tTURNAROUND TIME");

for(i=0;i<n;i++)

printf("\n%d \t\t %d \t\t %d \t\t %d \t\t %d ",p[i],pri[i],bt[i],wt[i],tat[i]);

printf("\nAverage Waiting Time is --- %f",wtavg/n);

printf("\nAverage Turnaround Time is --- %f",tatavg/n);

getch();

INPUT

Enter the number of processes -- 5

Enter the Burst Time & Priority of Process 0 --- 10 3

Enter the Burst Time & Priority of Process 1 --- 1 1

Enter the Burst Time & Priority of Process 2 --- 2 4

Enter the Burst Time & Priority of Process 3 --- 1 5

Enter the Burst Time & Priority of Process 4 --- 5 2

OUTPUT

PROCESS PRIORITY BURST TIME WAITING TIME TURNAROUND TIME


11101

42516

0 3 10 6 16

2 4 2 16 18

3 5 1 18 19

Average Waiting Time is --- 8.200000

Average Turnaround Time is --- 12.000000

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy