#include<stdio.h>
#include<conio.h>
void
main()
{
int r[10]={0},al[10]={0},ar,t=0,nr[10],n,i,p[10],a[10];
char ch;
clrscr();
printf("\n\n\t\tDeadlock
Handling");
printf("\n\t\t~~~~~~~~
~~~~~~~~");
do
{
printf("\nEnter
the No. of Process:");
scanf("%d",&n);
for(i=1;i<=n;i++)
{
printf("\n\tProcess
P%d:",i);
printf("\nEnter
the No. of Maximum resources:");
scanf("%d",&r[i]);
do
{
printf("\nEnter
the No. of Allocation:(<=%d):",r[i]);
scanf("%d",&al[i]);
}while(al[i]>r[i]);
}
printf("\n\nEnter
the number of Resource Available:");
scanf("%d",&ar);
printf("\n\tProcess\t\tMax\tAllocation\t\tAvailable");
for(i=1;i<=n;i++)
{
printf("\n\tP%d\t\t",i);
printf("%d\t%d",r[i],al[i]);
if(i==1)
printf("\t\t\t%d
",ar);
}
printf("\n\t\tOUTPUT");
printf("\n\t\t~~~~~~");
printf("\n\n\tProcess\t\tNo.
of Resource Need");
printf("\n\t~~~~~~~\t\t~~~~~~~~~~~~~~~~~~~~");
for(i=1;i<=n;i++)
{
nr[i]=r[i]-al[i];
printf("\n\tP%d\t\t%d",i,nr[i]);
}
t=0;
printf("\n\nProcess
Execution Order is =>\n\t<");
i=1;
while(i<=n)
{
if((nr[i]<=ar)&&(nr[i]!=1000))
{
printf(" P%d",i);
nr[i]=1000;
ar=ar+al[i];
t++;
i=1;
}
else
if(nr[i]==0)
{
printf(" P%d",i);
nr[i]=1000;
ar=ar+al[i];
t++;
i=1;
}
else
i++;
}
printf("
>");
if(t<n)
printf("\n\n\t\tDeadlock
is Occured");
fflush(stdin);
printf("\n\tDo
you want continue(Y/N):");
scanf("%c",&ch);
}while((ch=='y')(ch=='Y'));
getch();
}
Click to Download Source Code
or
Copy and past in browser address bar
http://sites.google.com/site/senthilmcan/software-programs
No comments:
Post a Comment