Google Ads

Monday, July 27, 2009

Memory Management

MEMORY MANAGEMENT


Previous Next

#include”stdio.h”
#include”conio.h”
int i,n,p,bs[10],pro[10],mbs[10],blkno[10];
void getdata();
void ff();
void bf();
void wf();
void main()
{
int ch;
getdata();
clrscr();
do
{
clrscr();
//gotoxy(20,3);
printf("\t\tMEMORY MANAGEMENT\n");
printf("\t\t~~~~~~~~~~~~~~~~~\n\n");
printf("1.FirstFit\n2.BestFit\n3.WorstFit\nEnter your Choice: ");
scanf("%d",&ch);
getch();
clrscr();
switch (ch)
{
case 1: ff(); break;
case 2: bf(); break;
case 3: wf(); break;
}
getch();
}while(ch<4);>");;
scanf("%d",&n);
printf("\nEnter the block size of each partition\n");
for(i=1; i<=n; i++) { printf("\nEnter the Size of Block-%d : ",i); scanf("%d",&bs[i]); blkno[i] =i; } getch(); clrscr(); //gotoxy(25,5); printf("\t\tMEMORY ALLOCATION TECHNIQUES\n"); printf("\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n"); //gotoxy(20,7); printf("\tPROCESS INFORMATION\t"); printf("\nTotal Number of process--> ");
scanf("%d",&p);
printf("\nEnter the Size of each Process\n");
for(i=1;i<=n;i++) { printf("\nEnter the size of process-%d : ",i); scanf("%d",&pro[i]); } getch(); clrscr(); } void ff() { int flag,sum=0,j; //gotoxy(20,3); printf("\t\tFIRST FIT MEMORY ALLOCATION\n"); printf("\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n"); for (i=1; i<=n; i++) mbs[i] = bs[i]; printf("Pid SizeNeeded BlockSize BlockNo AllocatedSize RemainingSize \n\n"); for(i=1;i<=n;i++) { flag = 0; for(j=1;j<=n;j++) { if(mbs[j] >= pro[i] )
{
printf("%d\t %d\t%d\t\t%d\t\t%d\t %d\n\n",i,pro[i],mbs[j],j,pro[i],mbs[j]-pro[i]);
mbs[j]=mbs[j]-pro[i];
flag=1;
break;
}
}
if( !flag )
printf("\nProcess-%d is waiting\n\n",i);
}
for(i=1; i<= n; i++) sum = sum+mbs[i]; printf("\nTotal Number of Hole left: %d",sum); } void bf() { int flag,sum=0,j; //gotoxy(20,3); printf("\t\tBEST FIT MEMORY ALLOCATION\n"); printf("\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n"); for (i=1; i<=n; i++) mbs[i] = bs[i]; printf("Pid SizeNeeded BlockSize BlockNo AllocatedSize RemainingSize \n\n"); for(i=1;i= mbs[j])
{
int t=mbs[i]; mbs[i] = mbs[j]; mbs[j] = t;
t=blkno[i]; blkno[i] = blkno[j]; blkno[j] = t;
}
for(i=1;i<=p;i++) { flag =0; for (j=1;j<=n;j++) { if(mbs[j] >= pro[i] )
{
printf("%d\t %d\t%d\t\t%d\t\t%d\t %d\n\n",i,pro[i],mbs[j],blkno[j],pro[i],mbs[j]-pro[i]);
mbs[j] = mbs[j] - pro[i];
sum = sum + mbs[j];
flag =1;
break;
}
}
if (!flag)
{
printf("\n Process-%d is waiting\n\n",i);
sum = sum + mbs[i];
}
}
printf("\n Total Number of Hole left: %d ",sum);
}

void wf()
{
int flag,sum=0,j;
//gotoxy(20,3);
printf("\t\tWORST FIT MEMORY ALLOCATION\n\n");
printf("\t\t~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n");
for (i=1; i<=n; i++) mbs[i] = bs[i]; printf("Pid SizeNeeded BlockSize BlockNo. AlocatedSize RemaingSize\n\n"); for(i=1;i= pro[i] )
{
printf("%d\t %d\t%d\t\t%d\t\t%d\t %d\n\n",i,pro[i],mbs[j],blkno[j],pro[i],mbs[j]-pro[i]);
mbs[j] = mbs[j] - pro[i];
sum = sum + mbs[j];
flag =1;
break;
}
}
if (!flag)
{
printf("\n Process-%d is waiting\n\n",i);
sum = sum + mbs[i];
}
}
printf("\n Total Number of Hole left: %d ",sum);
}

OUTPUT

No comments:

Post a Comment