IMPLEMENTATION OF MEMORY MANAGEMENT SCHEME USING FIRST FIT
AIM:
To write a program to implement dynamic memory allocation first fit.
ALGORITHM:
1. Start the program.
2. Enter the number of blocks.
3. Enter the base address and size for each block.
4. Enter the size of process.
5. Compute and allocate the first block which is large enough to hold the process request.
6. Stop the program.
PROGRAM:
#include<stdio.h>
void line()
{
int i;
printf("\n");
for(i=0;i<80;i++)
printf("-");
}
void main()
{
int bsize[20],i,n,psize,baddr[20];
line();
printf("\n\t\tFIRST FIT PLACEMENT ALGORITHM\n");
line();
printf("\nEnter the number of blocks:");
scanf("%d",&n);
for(i=0;i<n;i++)
{
printf("\n Enter base address of block no %d:",i+1);
scanf("%d",&baddr[i]);
printf("\nEnter free block size no. %d:",i+1);
scanf("%d",&bsize[i]);
}
printf("\nEnter the size of the process to be fit:");
scanf("%d",&psize);
line();
printf("\nBEFORE ALLOCATION:\n");
printf("\nBlock No. \tBase Address \tBlock Size");
for(i=0;i<n;i++)
printf("\n%d\t\t%d\t\t%d",i+1,baddr[i],bsize[i]);
line();
for(i=0;i<n;i++)
if(bsize[i]<psize)
continue;
else
{
bsize[i]-=psize;
baddr[i]+=psize;
break;
}
if(i==n)
printf("\nThe process has not been fit");
else
{
printf("\nAFTER ALLOCATION:\n");
printf("\nBlock No. \tBase Address \t Block Size");
for(i=0;i<n;i++)
printf("\n%d\t\t%d\t\t%d",i+1,baddr[i],bsize[i]);
}
line();
printf("\n");
}
OUTPUT:
[root@localhost ~]# ./first
--------------------------------------------------------------------------------
FIRST FIT PLACEMENT ALGORITHM
--------------------------------------------------------------------------------
Enter the number of blocks:4
Enter base address of block no 1:10
Enter free block size no. 1:45
Enter base address of block no 2:60
Enter free block size no. 2:75
Enter base address of block no 3:150
Enter free block size no. 3:100
Enter base address of block no 4:300
Enter free block size no. 4:140
Enter the size of the process to be fit:50
--------------------------------------------------------------------------------
BEFORE ALLOCATION:
Block No. Base Address Block Size
1 10 45
2 60 75
3 150 100
4 300 140
--------------------------------------------------------------------------------
AFTER ALLOCATION:
Block No. Base Address Block Size
1 10 45
2 110 25
3 150 100
4 300 140
--------------------------------------------------------------------------------
RESULT:
Thus the program was executed and the output was verified.
0 comments:
Post a Comment