EXPERIMENT
1
AIM: Write a program for FCFS(first come first serve)
TABLE:
PROCESS
|
BURST TIME
|
WAITING TIME
|
TURN AROUND TIME
|
P1
|
24
|
0
|
24
|
P2
|
3
|
24
|
24
|
P3
|
3
|
27
|
30
|
GRANTT
CHART:
P1
|
P2
|
P3
|
0 24 27 30
PROGRAM:
#include<iostream.h>
#include<conio.h>
class fcfs
{
int b_time[10];
int w_time[10];
int n_jobs[10];
float avg;
public:
fcfs()
{
n_jobs=0;
avg=0;
}
void job_entry(int n)
{
n_jobs=n;
cout<<"\n enter the burst time of each job:";
cout<<"\n";
for(int i=0;i<n_jobs;i++)
{
cout<<"\n job"<<i+1<<":";
cin>>b_time[i];
}
}
void wait_time(void)
{
for(int i=0;i<n_jobs;i++)
{
id_time[i]=0;
for(int j=0;j<1;j++)
{
w_time[i]=w_time[i]+t_time[j];
}
avg=avg+w_time[i];
}
avg=avg/n_jobs;
cout<<"\n\t grant chart";
for(i=0;i<n_jobs;i++)
{
cout<<b_time<<" ";
cout<<"\n waiting time \t";
for(i=0;i<n_jobs;i++)
{
cout<<w_time[i]<<" ";
cout<<"\n\n avg wait time is:
"<<avg<<"mfs":
}
};
int main()
{
fcfs f;
int n;
cout<<"\n\n\t fcfs";
cout<<"how many job you entered";
cin>>n;
f.job_entry(n);
f.waist_time();
getch();
}
INPUT/OUTPUT:
Fcfs show how many job you can enter: 3
Enter the burst time of each the job:
Job 1: 20
Job2: 25
Job3: 30
Group t chart-4096::-30745
Avg wait time is: -1365.333374mfs-28807
Avg wait time is:-1365.333374mfs925
Avg wait time is:-1365.333347mfs
RESULT: Thus
the program for FCFS has been successfully executed.
EXPERIMENT 02
AIM: To write a program for shortest
job fist(SJF)
PROGRAM:
#include<stdio.h>
#include<iostream.h>
#include<conio.h>
class sjf
{
int b_time[10];
int w_time[10];
int n_jobs;
float avg;
public:
sjf()
{
int n_jobs=0;
avg=0;
}
void job_entry(int n)
{
n_jobs=n;
cout<<"enter the burst time for each job";
cout<<"\n";
for(int i=0;i<n_jobs;i++)
{
cout<<"\n jobs"<<i+1<<":";
cin>>b_time[i];
}
sorting(b_time,n);
}
void sorting(int b_time[],int n)
{
for(int i=0;i<n;i++)
{
for(int j=i+1;j<n;j++)
{
if(b_time[j]<b_time[i])
{
int temp=b_time[i];
b_time[i]=b_time[j];
b_time[j]=temp;
}
}
}
void wait_time(void)
{
for(int i=0;i<n_jobs;i++)
{
w_time[i]=0;
for(int j=0;j<i;j++)
{
w_time[i]=w_time[i]+b_time[j]
}
avg=avg+w_time[i];
}
cout<<"\n\t\t grant chart";
cout<<"\n burst time\t\t";
for(i=0;i<n_jobs;i++)
cout<<" "<<b_time[i]<<" ";
cout<<"\n waiting time \t\t";
for(i=0;i<n_jobs;i++)
cout<<"\n\n the averag waiting time is:
"<<avg<<"ms";
}
};
int main()
{
sjf s;
int n;
clrscr();
cout<<"\n\n\t shortest job first";
cout<<"\n\n how many jobs going to be executed";
cin>>n;
s.job_entry();
s.wait_time();
getch();
}
INPUT/OUTPUT:
Shortest job first
How many jobs you enter 3
Job1: 6
Job2: 4
Job3: 8
Grant chart
Burst time
6:4:8
Waiting time
0:4:10
The average waiting time is 4.66666667ms
RESULT: Thus the program for SJF can be executed
successfully.
EXPERIMENT 03
AIM: Write the program for priority
scheduling
Table:
PROCESS
|
BURST TIME
|
PRIORITY
|
P1
|
10
|
3
|
P2
|
1
|
1
|
P3
|
2
|
4
|
P4
|
1
|
5
|
P5
|
5
|
2
|
PROCESS
|
BURST TIME
|
WAIT TIME
|
TURN AROUND TIME
|
P1
|
10
|
6
|
16
|
P2
|
1
|
0
|
1
|
P3
|
2
|
16
|
18
|
P4
|
1
|
18
|
19
|
P5
|
5
|
1
|
6
|
PROGRAM:
#include<iostream.h>
#include<conio.h>
class priority
{
public:
int
p[25],ser[25],pri[25],pri1[25],wait[25],i,j,j,n;
double awt,fat,s;
void get()
{
cout<<"\n enter job:";
cin>>n;
for(i=0;i<n;i++)
{
cout<<"\n enter the burst
time for process"; p["<<i+1<<"];
cin>>ser[i];
cout<<"\n enter the priority
level"; p["<<i+1<<"];
cin>>pri[i];
pri[i]=pri[i];
p[i]=i;
}
}
void calculate()
{
int temp;
for(i=0;i<n;i++)
{
for(j=0;j<=(n-i-1);j++)
{
if(pri[j]>=pri[j+1])
{
temp=pri[j];
pri[j]=pri[j+1];
pri[j+1]=temp;
}
}
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
if(pri[i]==pri[j])
{
if(i==0)
{
wait[i]=0;
awt=0;
tat=ser[i];
temp=ser[j];
}
else
{
wait[i]=wait[i+1]+temp;
temp=ser[i];
awt+=wait[i];
tat+=ser[i]+wait;
}
}
}
awt=awt/n;
tat=tat/n;
}
void put()
{
wait[0]=0;
cout<<"\n\n scheduling
order";
cout<<"\n
PID"<<"\t priority"<<"\t service
temp"<<"\t wait time";
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
if(pri[i]==pri[j])
cout<<"\n"<<p[j]+1<<"\t"<<pri[i]<<"\t\t"<<ser[j]<<"\t\t"<<wait[i];
}
}
cout<<"\n\n average waiting
time is: "<<awt<<"ms";
cout<<"\n average turn aound
time is: "<<tat<<"ms";
}
};
void main()
{
priority p;
clrscr();
p.get();
p.calculate();
p.put();
getch();
}
INPUT/OUTPUT:
Enter the no. of jobs=3
Enter
the burst time for the process p[1]=6
Enter the priority of process p[1]=3
Enter the burst time for process p[2]=6
Enter the priority of process p[2]=1
Enter the burst time for the process
p[3]=7
Enter the priority of process[3]=2
Scheduling order
PID priority service time
wait time
2 1 6 0
2 1 6
6
3 2
7
12
Average time: 8ms
Average time around time: 16.333333ms
RESULT: Thus the program for the priority scheduling
has been executed successfully.
EXPERIMENT
-04
AIM: Write a program for
robin scheduling
TABLE:
PROCESS
|
BURST
TIME
|
P1
|
24
|
P2
|
7
|
P3
|
3
|
GRANTT
CHART:
P1
|
P2
|
P3
|
P1
|
P2
|
P1
|
P1
|
P1
|
P1
|
P1
|
0
4 8 11 15 18 22 26 30 34
38
PROGRAM
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
class round
{
int wt,st[20],com[20],brust[20],executed[20];
int tq,n;
float avg;
public:
void getdata();
void calculate();
};
void round::getdata()
{
cout<<"\n ENTER THE
NUMBER OF PROCESS:";
cin>>n;
cout<<"\n ENTER THE BURST
TIME FOR EACH PROCESS:\n";
for(int i=1;i<=n;i++)
{
cout<<"\n
JOB"<<i<<":";
cin>>brust[i];
}
cout<<"\n
ENTER THE TIME QUANTUM:";
cin>>tq;
}
void round::calculate()
{
int flag,i;
avg=0,wt=0;
for(i=1;i<=n;i++)
executed[i]=0;
flag=1;
cout<<"\n PROCESS \tSTARTING TIME \tCOMPLETION TIME";
while(flag==1)
{
flag=0;
for(i=1;i<=n;i++)
{
if(brust[i]>tq)
{
st[i]=wt;
if(executed[i]==1)
avg=avg+st[i]-com[i];
else
avg=avg+st[i];
wt=wt+tq;
com[i]=wt;
brust[i]=brust[i]-tq;
flag=1;
executed[i]=1;
cout<<"\n
PROCESS"<<":"<<i<<"\t"<<st[i]<<"\t\t\t"<<com[i];
}
else if(brust[i]>0)
{
st[i]=wt;
if(executed[i]==1)
avg=avg+st[i]-com[i];
else
avg=avg+st[i];
wt=wt+brust[i];
com[i]=wt;
cout<<"\n
PROCESS"<<":"<<i<<"\t"<<st[i]<<"\t\t\t"<<com[i]<<"completed";
brust[i]=0;
executed[i]=1;
}
}
}
avg=avg/n;
cout<<"\n\n THE AVERAGE
WAITING TIME IS:"<<avg<<"\ms";
}
void main()
{
clrscr();
round r;
cout<<"\n\n\t\t\t ROUND
ROBIN SCHEDULING \t\t\t:";
r.getdata();
r.calculate();
getch();
}
INPUT:
Enter the no of
jobs=3
Enter the burst
time for process p[1]=3
Enter the
priority process p[1]: 3
Enter the burst
time for process p[2]=8
Enter the
priority process p[2]:1
Enter the burst
time for the process p[3]:6
Enter the
priority process p[3]:2
OUTPUT:
SCHEDULING
PID
|
PRIORITY
|
SERVICE TIME
|
WAIT TIME
|
2
|
1
|
8
|
0
|
3
|
2
|
6
|
8
|
1
|
3
|
10
|
16
|
Average
waiting time: 8ms
Average
turnaround time: 12.66667 ms
RESULT: Thus the program
for robin scheduling has been executed successfully
EXPERIMENT-05
Aim: To write a C++ program for
implementing Banker’s algorithm.
TABLE:
Available=3
PROCESS
|
MAX NEED
|
ALLOCATED
|
NEED
|
P0
|
10
|
5
|
5
|
P1
|
4
|
2
|
2
|
P2
|
9
|
2
|
7
|
Program:
#include<iostream.h>
#include<conio.h>
class
BankerAlgo
{
private:
int
allocated[50][50],max[50][50],available[50];
int need[50][50];
int flag[50];
int m,n;
int i,j;
public:
BankerAlgo()
{
cout<<"\n\a Enter the Row for
Allocation and Maximum Matrix , Please !! : ";
cin>>m;
cout<<"\n\a Enter the Column for
Allocation and Maximum Matrix , Please : ";
cin>>n;
/* Input the Allocation and Maximum matrix
by the user */
cout<<"\n\a Allocation Matrix
("<<m<<" x "<<n<<")\n";
for(i = 0;i < m;i++)
for(j = 0;j < n;j++)
cin>>allocated[i][j];
cout<<"\n\a Maximum Matrix
("<<m<<" x "<<n<<")\n";
for(i = 0;i < m;i++)
for(j = 0;j < n;j++)
cin>>max[i][j];
cout<<"\n\a Available\n";
for(i = 0;i < n;i++)
{
cin>>available[i];
}
}
void MakeNull()
{
for(i = 0;i < 50;i++)
flag[i] = 0;
}
/* Subtraction -
Allocating the resource (C-A) */
void Need()
{
cout<<"\nNeed
Matrix ["<<m<<" X "<<n<<"]\n";
for(i = 0;i < m;i++)
{
for(j = 0;j
< n;j++)
{
need[i][j] = max[i][j] - allocated[i][j];
cout<<need[i][j]<<"\t";
}
cout<<"\n";
}
}
/*
Validating the Resource Allocation */
int Check(int column)
{
for(i = 0;i < n;i++)
if(need[column][i]
> available[i])
return
0;
return
1;
}
/* Adding to the Available Matrix */
void AddResource(int column)
{
for(int i = 0;i <
n;i++)
available[i]
= available[i] + allocated[column][i];
}
void Process()
{
int t,k,l;
int temp = 0;
MakeNull();
cout<<"\nSafety
Sequence :";
for(k = 0;k < 3;k++)
{
temp = 0;
for(l = 0;l
< m;l++)
{
if(flag[l]
== 0)
{
temp
= 1;
if(Check(l)
== 1)
{
AddResource(l);
flag[l]
= 1;
cout<<"
P"<<l;
}
}
}
}
if(temp == 0)
cout<<"\n\nSystem
in Safe State";
else
cout<<"\n\nSystem
in UnSafe State";
}
};
int main()
{
clrscr();
BankerAlgo B;
B.Need();
B.Process();
getch();
}
INPUT/OUPUT
Enter the Row for Allocation and Maximum
Matrix , Please !! : 2
Enter the Column for Allocation and Maximum
Matrix , Please : 2
Allocation Matrix (2 x 2)
1
2
3
4
Maximum Matrix (2 x 2)
5
6
7
8
Available
5
4
Need Matrix [2
X 2]
4 4
4 4
Safety Sequence
: P0 P1
System in Safe
State
RESULT: Thus the program for bankers
algorithm has been successfully executed.
EXPERIMENT NO. 6
AIM: Write a
program for Best Fit Algorithm
TABLE:
|
|
|
|
|
|
|
|
|
|
|
|
|
6KB
14KB
19KB
11KB
10KB
PROGRAM:
#include<iostream.h>
#include<conio.h>
void main()
{
int
m[100],f,i,j,n,flag;
clrscr();
cout<<"enter
the size of the array";
cin>>n;
for(i=0;i<n;i++)
{
cin>>m[i];
}
cout<<"enter
the size of process";
cin>>f;
for(j=0;j<n;j++)
{
if(m[j]==f)
{
cout<<"process
is matched";
flag=0;
break;
else
flag=1;
}
if(flag==1)
cout<<"process
not matched";
}
getch();
}
INPUT/OUTPUT:
Enter the size
of the array 5
6
14
19
11
10
Enter the
process 19
Process is
matched
RESULT: Thus the
program for best fit algorithm has been executed successfully.
EXPERIMENT NO. 7
AIM: Write a program for paging algorithm
TABLE:
0
|
0
|
1
|
7
|
2
|
5
|
3
|
9
|
4
|
3
|
PROGRAM:
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
void main()
{
clrscr();
int page[5];
int
s,i,j,a,frame[10];
randomize();
for(i=0;i<10;i++)
{
asd:
a=random(5);
for(j=1;j<i;j++)
{
if(a==frame[j])
goto asd;
}
if((i%2)==1)
{
frame[i]=a;
page[a]=i;
}
else
{
frame[i]=111;
}
}
for(i=0;i<5;i++)
cout<<i<<"\n";
cout<<"\n
page table \n";
for(i=0;i<5;i++)
{
cout<<i<<"\t"<<page[i]<<"\n";
}
cout<<"\t
post page \n";
for(s=0;s<10;s++)
cout<<s<<"\t";
cout<<frame[s]<<"\n";
}
getch();
INPUT/OUTPUT:
0
2
1
111
2
3
3
111
4
0
5
111
6
1
7
111
8
1
9
111
RESULT:
Thus the program for paging has been successfully executed.
EXPERIMENT 08
AIM:
Write a program for page replacement
PROGRAM:
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
void main()
{
clrscr();
int
aa=0,frame[3],i,a[5],pt=0;
cout<<"enter
the element of the string";
for(i=0;i<3;i++)
frame[i]=-1;
for(i=0;i<5;i++)
cin>>a[i];
for(i=0;i<5;i++)
{
if(pt==3)
{
pt=0;
}
if(a[i]==frame[pt])
{
frame[pt]=a[i];
}
frame[pt]=a[i];
aa++;
{
pt++;
}
printf("\n
page fault is %d",aa);
getch();
}
INPUT/OUTPUT:
Enter
the elements in the string
1 2
3 2 1
Page
fault is 3
RESULT: Thus the
program for page replacement has been successfully executed.
EXPERIMENT – 9
AIM: Write a
program for producer consumer problem
PROGRAM:
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
class pcp
{
public:
int count;
int buffer[6];
pcp()
{
count=0;
}
~pcp()
{
count=0;
}
void insert();
void remove();
int full();
};
int pcp::full()
{
if (count==5)
{
return(1);
}
else
{
return(0);
}
}
void
pcp::insert()
{
if(full())
{
cout<<"no data can be
inserted";
}
else
{
cout<<"enter data to be
inserted";
cin>>buffer[count];
count++;
}
}
void pcp::remove()
{
int a;
if (full())
{
for(int i=0;i<5;i++)
{
a=buffer[count];
cout<<"element remove is:
"<<a<<endl;
count--;
}
}
else
{
cout<<"not pssible";
}
}
void main()
{
int n;
pcp z;
clrscr();
while(1)
{
cout<<"\n operation";
cout<<"\n 1. add data";
cout<<"\n 2. remove data";
cout<<"\n 3. exit";
cout<<"\n enter your
choice";
cin>>n;
switch(n)
{
case 1:
z.insert();
break;
case 2:
z.remove();
break;
case 3:
exit(1);
cout<<"choice is
invalid";
}
}
getch();
}
INPUT/OUTPUT:
Operations
1.add
2.remove
3.exit
Enter your
choice 1
Enter data to
be inserted 2
Enter your
choice 2
Not possible
RESULT: Thus the
program for producer consumer problem has been executed successfully
No comments:
Post a Comment