Skip to main content

Dead Lock Prevention

Bankers algorithm -Deadlock prevention


#include<stdio.h>
#include<conio.h>
int main()
{
int m,p,s,p1;
int m1[4],i,f,f1=0,f2=0,fra1,fra2,s1,pos;
clrscr();
printf("Enter the memory size:");
scanf("%d",&m);
printf("Enter the no of partitions:");
scanf("%d",&p);
s=m/p;
printf("Each partn size is:%d",s);
printf("\nEnter the no of processes:");
scanf("%d",&p1);
pos=m;
for(i=0;i<p1;i++)
{
if(pos<s)
{
printf("\nThere is no further memory for process%d",i+1);
m1[i]=0;
break;
}
else
{
printf("\nEnter the memory req for process%d:",i+1);
scanf("%d",&m1[i]);
if(m1[i]<=s)
{
printf("\nProcess is allocated in partition%d",i+1);
fra1=s-m1[i];
printf("\nInternal fragmentation for process is:%d",fra1);
f1=f1+fra1;
pos=pos-s;
}
else
{
printf("\nProcess not allocated in partition%d",i+1);
s1=m1[i];
while(s1>s)
{
s1=s1-s;
pos=pos-s;
}
pos=pos-s;
fra2=s-s1;
f2=f2+fra2;
printf("\nExternal Fragmentation for this process is:%d",fra2);
}
}
}
printf("\nProcess\tallocatedmemory");
for(i=0;i<p1;i++)
printf("\n%5d\t%5d",i+1,m1[i]);
f=f1+f2;
printf("\nThe tot no of fragmentation is:%d",f);
}

Comments

Popular posts from this blog

RSA Algorithm For Encryption and Decryption

#include<stdio.h> #include<conio.h> #include<stdlib.h> #include<math.h> #include<string.h> long int p,q,n,t,flag,e[100],d[100],temp[100],j,m[100],en[100],i; char msg[100]; int prime(long int); void ce(); long int cd(long int); void encrypt(); void decrypt(); void main() { printf("\nENTER FIRST PRIME NUMBER\n"); scanf("%d",&p); flag=prime(p); if(flag==0) { printf("\nWRONG INPUT\n"); getch(); exit(1); } printf("\nENTER ANOTHER PRIME NUMBER\n"); scanf("%d",&q); flag=prime(q); if(flag==0||p==q) { printf("\nWRONG INPUT\n"); getch(); exit(1); } printf("\nENTER MESSAGE\n"); fflush(stdin); scanf("%s",msg); for (i=0;msg[i]!=NULL;i++) m[i]=msg[i]; n=p*q; t=(p-1)*(q-1); ce(); printf("\nPOSSIBLE VALUES OF e AND d ARE\n"); for (i=0;i<j-1;i++) printf("\n%ld\t%ld",e[i],d[i]); encrypt(); decrypt(); getch(); } int prime(long i...

CRC-Cyclic Redundancy Check Program

#include <stdio.h>  #include <conio.h>  #include <string.h>  void main() { int i,j,keylen,msglen; char input[100], key[30],temp[30],quot[100],rem[30],key1[30]; printf("Enter Data: "); gets(input); printf("Enter Key: "); gets(key); keylen=strlen(key); msglen=strlen(input); strcpy(key1,key); for (i=0;i<keylen-1;i++) { input[msglen+i]='0'; } for (i=0;i<keylen;i++) temp[i]=input[i]; for (i=0;i<msglen;i++) { quot[i]=temp[0]; if(quot[i]=='0') for (j=0;j<keylen;j++) key[j]='0'; else for (j=0;j<keylen;j++) key[j]=key1[j]; for (j=keylen-1;j>0;j--) { if(temp[j]==key[j]) rem[j-1]='0'; else rem[j-1]='1'; } rem[keylen-1]=input[i+keylen]; strcpy(temp,rem); } strcpy(rem,temp); printf("\nQuotient is "); for (i=0;i<msglen;i++) printf("%c",quot[i]); printf("\nRemainder is "); for...

Dijkstra Algorithm

Program to find the shortest path #include<stdio.h> #include<string.h> #include<math.h> #define IN 99 #define N 6 int dijkstra(int cost[][N], int source, int target); int dijsktra(int cost[][N],int source,int target) {     int dist[N],prev[N],selected[N]={0},i,m,min,start,d,j;     char path[N];     for(i=1;i< N;i++)     {         dist[i] = IN;         prev[i] = -1;     }     start = source;     selected[start]=1;     dist[start] = 0;     while(selected[target] ==0)     {         min = IN;         m = 0;         for(i=1;i< N;i++)         {             d = dist[start] +cost[start][i];             if(d< dist[i]&&selected[i]==0)       ...