Beruflich Dokumente
Kultur Dokumente
#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#define max 5
class que
int v[max],c[max];
int f,r,g,cc,pc,n;
public:
que()
f=r=-1;
n=0;
g=0;
pc=0;
cc=0;
void push()
int x,ch2;
while(1)
cin>>x;
if(f==-1)
f=0;
cc++;
https://labprograms.wordpress.com/category/operating-system/page/3/ 1/29
9/22/2017 Operating System | Lab Programs for Students of Anna University of Technology - Roy Brothers
v[++r]=x;
n++;
else if((f==0)&&(r==max-1)||f-r==1)
else if((r==max-1)&&(f!=0))
r=-1;v[++r]=x;
n++;
cc++;
else
cc++;
v[++r]=x;
n++;
cin>>ch2;
if(ch2==2)
break;
void pop()
int i=0;
int ch1=1;
while(1)
if(n==0)
break;
if((f==max)&&(r!=max-1))
https://labprograms.wordpress.com/category/operating-system/page/3/ 2/29
9/22/2017 Operating System | Lab Programs for Students of Anna University of Technology - Roy Brothers
f=-1;
else
pc++;
c[g++]=v[f++];
n;
cin>>ch1;
if(ch1==2)
break;
void dis()
int i=0;
if(n==0)
else
if(f<=r)
for(i=f;i<=r;i++)
cout<<v[i]<<\t;
else
for(i=0;i<=r;i++)
cout<<v[i]<<\t;
for(i=f;i<max;i++)
cout<<v[i]<<\t;
};
https://labprograms.wordpress.com/category/operating-system/page/3/ 3/29
9/22/2017 Operating System | Lab Programs for Students of Anna University of Technology - Roy Brothers
void main()
que d;
int ch1;
char o,ch;
clrscr();
do
cin>>ch1;
switch(ch1)
case 1:
d.push();
break;
case 2:
d.pop();
break;
case 3:
d.dis();
break;
default:
cout<<Exit.;
exit(0);
}while(ch1!=4);
getch();
https://labprograms.wordpress.com/category/operating-system/page/3/ 4/29
9/22/2017 Operating System | Lab Programs for Students of Anna University of Technology - Roy Brothers
//Dekkers Algorithm
# include <stdio.h>
# include<pthread.h>
# include<cursors.h>
void longdelay()
for(t1=0;t1<64000;t1++);
for(t2=0;t2<64000;t2++);
void shortdelay()
int t3,t4;
for(t3=0;t3<32000;t3++)
for(t4=0;t4<32000;t4++)
void test(int i)
int j,k,m,p,q,r,c;
j=1-i;
for(k=0;k<3;k++)
flag[i]=1;
while(flag[j])
if (turn==j)
flag[i]=0;
printf(Iam waiting:%d,i);
https://labprograms.wordpress.com/category/operating-system/page/3/ 5/29
9/22/2017 Operating System | Lab Programs for Students of Anna University of Technology - Roy Brothers
while(turn==j);
flag[i]=1;
longdelay();
c=bal;
/*critical section*/
printf(flag[%d]=%d, flag[%d]=%d,i,flag[i],j,flag[j]);
printf(turn=%d\n,turn);
bal=c+1000;
turn=j;
flag[i]=0;
shortdelay();
int main()
pthread_t t1,t2;
pthread_creat(&t,NULL,(void*)&test,(void*)0);
pthread_creat(&t2,NULL,(void*)&test,(void*)1);
pthread_join(t1,NULL);
pthread_join(t2,NULL);
sleep(s);
printf(Parent terminated:%d,bal);
return(0);
https://labprograms.wordpress.com/category/operating-system/page/3/ 6/29
9/22/2017 Operating System | Lab Programs for Students of Anna University of Technology - Roy Brothers
#include<stdio.h>
#include<conio.h>
struct process
int all[6],max[6],need[6],finished,request[6];
}p[10];
int avail[6],sseq[10],ss=0,check1=0,check2=0,n,pid,work[6];
int nor,nori;
void main()
int safeseq(void);
int ch,i=0,j=0,k,pid,ch1;
int violationcheck=0,waitcheck=0;
do
clrscr();
printf(\n\n\t 1. Input);
printf(\n\n\t 4. print);
printf(\n\n\t 5. Exit);
scanf(%d,&ch);
switch(ch)
case 1:
scanf(%d,&n);
https://labprograms.wordpress.com/category/operating-system/page/3/ 7/29
9/22/2017 Operating System | Lab Programs for Students of Anna University of Technology - Roy Brothers
scanf(%d,&nor);
for(j=0;j<n;j++)
for(k=0;k<nor;k++)
if(j==0)
scanf(%d,&avail[k]);
p[j].max[k]=0;
p[j].all[k]=0;
p[j].need[k]=0;
p[j].finished=0;
p[j].request[k]=0;
for(i=0;i<n;i++)
scanf(%d,&p[i].max[j]);
scanf(%d,&p[i].all[j]);
if(p[i].all[j]>p[i].max[j])
j;
else
p[i].need[j]=p[i].max[j]-p[i].all[j];
avail[j]=avail[j]-p[i].all[j];
https://labprograms.wordpress.com/category/operating-system/page/3/ 8/29
9/22/2017 Operating System | Lab Programs for Students of Anna University of Technology - Roy Brothers
break;
case 2:
violationcheck=0;
waitcheck=0;
scanf(%d,&pid);
for(j=0;j<nor;j++)
if(p[pid].request[j]>p[pid].need[j])
violationcheck=1;
if(p[pid].request[j]>avail[j])
waitcheck=1;
if (violationcheck==1)
else if(waitcheck==1)
else
for(j=0;j<nor;j++)
avail[j]=avail[j]-p[pid].request[j];
p[pid].all[j]=p[pid].all[j]+p[pid].request[j];
p[pid].need[j]=p[pid].need[j]-p[pid].request[j];
ch1=safeseq();
if(ch1==0)
for(j=0;j<nor;j++)
https://labprograms.wordpress.com/category/operating-system/page/3/ 9/29
9/22/2017 Operating System | Lab Programs for Students of Anna University of Technology - Roy Brothers
avail[j]=avail[j]+p[pid].request[j];
p[pid].all[j]=p[pid].all[j]-p[pid].request[j];
p[pid].need[j]=p[pid].need[j]+p[pid].request[j];
else if(ch1==1)
break;
case 3:
if(safeseq()==1)
else
break;
case 4:
for(i=0;i<n;i++)
for(j=0;j<nor;j++)
printf( %d ,p[i].max[j]);
printf(\t);
for(j=0;j<nor;j++)
printf( %d ,p[i].all[j]);
printf(\t);
for(j=0;j<nor;j++)
printf( %d ,p[i].need[j]);
printf(\n\n\t Available : );
for(i=0;i<nor;i++)
printf( %d ,avail[i]);
https://labprograms.wordpress.com/category/operating-system/page/3/ 10/29
9/22/2017 Operating System | Lab Programs for Students of Anna University of Technology - Roy Brothers
break;
case 5:
break;
getch();
}while(ch!=5);
int safeseq()
int i,j,k;
ss=0;
for(j=0;j<nor;j++)
work[j]=avail[j];
for(j=0;j<n;j++)
p[j].finished=0;
for(int tk=0;tk<nor;tk++)
for(j=0;j<n;j++)
if(p[j].finished==0)
check1=0;
for(k=0;k<nor;k++)
if(p[j].need[k]<=work[k])
check1++;
if(check1==nor)
for(k=0;k<nor;k++)
work[k]=work[k]+p[j].all[k];
p[j].finished=1;
sseq[ss]=j;
ss++;
}
https://labprograms.wordpress.com/category/operating-system/page/3/ 11/29
9/22/2017 Operating System | Lab Programs for Students of Anna University of Technology - Roy Brothers
check2=0;
for(i=0;i<n;i++)
if(p[i].finished==1)
check2++;
printf(\n\n\t);
if(check2>=n)
for(int tj=0;tj<n;tj++)
printf(P%d, ,sseq[tj]);
return 1;
else
return 0;
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
class cpuschedule
int n,bu[20];
https://labprograms.wordpress.com/category/operating-system/page/3/ 12/29
9/22/2017 Operating System | Lab Programs for Students of Anna University of Technology - Roy Brothers
float twt,awt,wt[20],tat[20];
public:
void Getdata();
void fcfs();
void sjf();
void roundrobin();
};
void cpuschedule::Getdata()
int i;
cin>>n;
for(i=1;i<=n;i++)
cin>>bu[i];
void cpuschedule::fcfs()
int i,b[10];
float sum=0.0;
twt=0.0;
for(i=1;i<=n;i++)
b[i]=bu[i];
cout<<b[i];
wt[1]=0;
for(i=2;i<=n;i++)
wt[i]=b[i-1]+wt[i-1];
https://labprograms.wordpress.com/category/operating-system/page/3/ 13/29
9/22/2017 Operating System | Lab Programs for Students of Anna University of Technology - Roy Brothers
for(i=1;i<=n;i++)
twt=twt+wt[i];
tat[i]=b[i]+wt[i];
sum+=tat[i];
awt=twt/n;
sum=sum/n;
void cpuschedule::sjf()
int i,j,temp,b[10];
float sum=0.0;
twt=0.0;
for(i=1;i<=n;i++)
b[i]=bu[i];
cout<<b[i];
for(i=n;i>=1;i)
for(j=2;j<=n;j++)
if(b[j-1]>b[j])
temp=b[j-1];
b[j-1]=b[j];
b[j]=temp;
}
https://labprograms.wordpress.com/category/operating-system/page/3/ 14/29
9/22/2017 Operating System | Lab Programs for Students of Anna University of Technology - Roy Brothers
wt[1]=0;
for(i=2;i<=n;i++)
wt[i]=b[i-1]+wt[i-1];
for(i=1;i<=n;i++)
twt=twt+wt[i];
tat[i]=b[i]+wt[i];
sum+=tat[i];
awt=twt/n;
sum=sum/n;
void cpuschedule::roundrobin()
int i,j,tq,k,b[10],Rrobin[10][10],count[10];
int max=0;
int m;
float sum=0.0;
twt=0.0;
for(i=1;i<=n;i++)
b[i]=bu[i];
cout<<b[i];
if(max<b[i])
max=b[i];
wt[i]=0;
https://labprograms.wordpress.com/category/operating-system/page/3/ 15/29
9/22/2017 Operating System | Lab Programs for Students of Anna University of Technology - Roy Brothers
cin>>tq;
m=max/tq+1;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
Rrobin[i][j]=0;
i=1;
while(i<=n)
j=1;
while(b[i]>0)
if(b[i]>=tq)
b[i]=b[i]-tq;
Rrobin[i][j]=tq;
j++;
else
Rrobin[i][j]=b[i];
b[i]=0;
j++;
count[i]=j-1;
i++;
https://labprograms.wordpress.com/category/operating-system/page/3/ 16/29
9/22/2017 Operating System | Lab Programs for Students of Anna University of Technology - Roy Brothers
cout<<Display;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
cout<<\nRr[<<i<<,<<j<<]=<<Rrobin[i][j];
cout<< ;
cout<<\ncount=<<count[i];
for(j=1;j<=n;j++)
for(i=1;i<=count[j];i++)
if(i==count[j])
for(k=1;k<j;k++)
if(k!=j)
wt[j]+=Rrobin[k][i];
else
for(k=1;k<=n;k++)
if(k!=j)
wt[j]+=Rrobin[k][i];
for(i=1;i<=n;i++)
for(i=1;i<=n;i++)
https://labprograms.wordpress.com/category/operating-system/page/3/ 17/29
9/22/2017 Operating System | Lab Programs for Students of Anna University of Technology - Roy Brothers
twt=twt+wt[i];
tat[i]=b[i]+wt[i];
sum+=tat[i];
awt=twt/n;
sum=sum/n;
void main()
int ch=0,cho;
cpuschedule c;
clrscr();
do
switch(ch)
case 0:
cout<<\n0.MENU;
cout<<\n1.Getting BurstTime;
cout<<\n2.FirstComeFirstServed;
cout<<\n3.ShortestJobFirst;
cout<<\n4.RoundRobin;
cout<<\n5.EXIT;
break;
case 1:
c.Getdata();
break;
case 2:
c.fcfs();
break;
https://labprograms.wordpress.com/category/operating-system/page/3/ 18/29
9/22/2017 Operating System | Lab Programs for Students of Anna University of Technology - Roy Brothers
case 3:
c.sjf();
break;
case 4:
c.roundrobin();
break;
case 5:
break;
cin>>ch;
getch();
}while(ch<5);
CPU Scheduling
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
class cpuschedule
int n,Bu[20];
float Twt,Awt,Wt[20],Tat[20];
public:
https://labprograms.wordpress.com/category/operating-system/page/3/ 19/29
9/22/2017 Operating System | Lab Programs for Students of Anna University of Technology - Roy Brothers
void Getdata();
void Fcfs();
void Sjf();
void RoundRobin();
};
void cpuschedule::Getdata()
int i;
cin>>n;
for(i=1;i<=n;i++)
cin>>Bu[i];
void cpuschedule::Fcfs()
int i,B[10];
float sum=0.0;
Twt=0.0;
for(i=1;i<=n;i++)
B[i]=Bu[i];
cout<<B[i];
Wt[1]=0;
for(i=2;i<=n;i++)
Wt[i]=B[i-1]+Wt[i-1];
for(i=1;i<=n;i++)
https://labprograms.wordpress.com/category/operating-system/page/3/ 20/29
9/22/2017 Operating System | Lab Programs for Students of Anna University of Technology - Roy Brothers
Twt=Twt+Wt[i];
Tat[i]=B[i]+Wt[i];
sum+=Tat[i];
Awt=Twt/n;
sum=sum/n;
void cpuschedule::Sjf()
int i,j,temp,B[10];
float sum=0.0;
Twt=0.0;
for(i=1;i<=n;i++)
B[i]=Bu[i];
cout<<B[i];
for(i=n;i>=1;i)
for(j=2;j<=n;j++)
if(B[j-1]>B[j])
temp=B[j-1];
B[j-1]=B[j];
B[j]=temp;
}
https://labprograms.wordpress.com/category/operating-system/page/3/ 21/29
9/22/2017 Operating System | Lab Programs for Students of Anna University of Technology - Roy Brothers
Wt[1]=0;
for(i=2;i<=n;i++)
Wt[i]=B[i-1]+Wt[i-1];
for(i=1;i<=n;i++)
Twt=Twt+Wt[i];
Tat[i]=B[i]+Wt[i];
sum+=Tat[i];
Awt=Twt/n;
sum=sum/n;
void cpuschedule::RoundRobin()
int i,j,tq,k,B[10],Rrobin[10][10],count[10];
int max=0;
int m;
float sum=0.0;
Twt=0.0;
for(i=1;i<=n;i++)
B[i]=Bu[i];
cout<<B[i];
if(max<B[i])
max=B[i];
Wt[i]=0;
cin>>tq;
m=max/tq+1;
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
Rrobin[i][j]=0;
i=1;
while(i<=n)
j=1;
while(B[i]>0)
if(B[i]>=tq)
B[i]=B[i]-tq;
Rrobin[i][j]=tq;
j++;
else
Rrobin[i][j]=B[i];
B[i]=0;
j++;
count[i]=j-1;
i++;
cout<<Display;
https://labprograms.wordpress.com/category/operating-system/page/3/ 23/29
9/22/2017 Operating System | Lab Programs for Students of Anna University of Technology - Roy Brothers
for(i=1;i<=n;i++)
for(j=1;j<=m;j++)
cout<<\nRr[<<i<<,<<j<<]=<<Rrobin[i][j];
cout<< ;
cout<<\ncount=<<count[i];
for(j=1;j<=n;j++)
for(i=1;i<=count[j];i++)
if(i==count[j])
for(k=1;k<j;k++)
if(k!=j)
Wt[j]+=Rrobin[k][i];
else
for(k=1;k<=n;k++)
if(k!=j)
Wt[j]+=Rrobin[k][i];
for(i=1;i<=n;i++)
for(i=1;i<=n;i++)
Twt=Twt+Wt[i];
https://labprograms.wordpress.com/category/operating-system/page/3/ 24/29
9/22/2017 Operating System | Lab Programs for Students of Anna University of Technology - Roy Brothers
Tat[i]=B[i]+Wt[i];
sum+=Tat[i];
Awt=Twt/n;
sum=sum/n;
void main()
int ch=0,cho;
cpuschedule c;
clrscr();
do
switch(ch)
case 0:
cout<<\n0.MENU;
cout<<\n1.Getting BurstTime;
cout<<\n2.FirstComeFirstServed;
cout<<\n3.ShortestJobFirst;
cout<<\n4.RoundRobin;
cout<<\n5.EXIT;
break;
case 1:
c.Getdata();
break;
case 2:
c.Fcfs();
break;
case 3:
c.Sjf();
break;
case 4:
c.RoundRobin();
break;
case 5:
break;
cin>>ch;
getch();
}while(ch<5);
0.MENU
1.Getting BurstTime
2.FirstComeFirstServed
3.ShortestJobFirst
4.RoundRobin
5.EXIT
July 4, 2009
Categories: Operating System . Tags: C, OS . Author: Roy Antony Arnold .
Comments: Comments Off
https://labprograms.wordpress.com/category/operating-system/page/3/ 27/29
9/22/2017 Operating System | Lab Programs for Students of Anna University of Technology - Roy Brothers
8086ADCAlgorithmC
Use Mozilla, Flock or Google
Chrome Browser for better
view Recent Comments
Recent Posts
bhuvana on OOAD Unit
1 Notes
MOTOROLA SCHOLAR
PROGRAM : 2011-12
Working with Database in VB6.0 Shanthi on Working with
DDL Commands
without using Data Control
OOAD Unit 1 Notes B.E.
CSE (Anna University of ssmadhu on C Program
Technology, Tirunelveli) using UNIX System
https://labprograms.wordpress.com/category/operating-system/page/3/ 28/29
9/22/2017 Operating System | Lab Programs for Students of Anna University of Technology - Roy Brothers
Meta
Register
Log in
Entries RSS
Comments RSS
WordPress.com
https://labprograms.wordpress.com/category/operating-system/page/3/ 29/29