Thursday, August 27, 2009

Deadlock Handling



#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