Create a memory allocation program to show the how the First Fit strategy would allocate memory and move the spaces in memory. Given the memory block size is 20 and initially there are 5 holes with the sizes { 4, 3, 8, 2, 3} After each allocation, if there are leftover space, the space can be given to the next hole. If there are 5 blocks of data with sizes {3,4,3,5,3}. Try to fit them in the block of memory. How are the hole sizes changed as you allocate and shuffle the memory.
Create a memory allocation program to show the how the First Fit strategy would allocate memory and move the spaces in memory.
Given the memory block size is 20 and initially
there are 5 holes with the sizes { 4, 3, 8, 2, 3}
After each allocation, if there are leftover space, the space can be given to the next hole.
If there are 5 blocks of data with sizes {3,4,3,5,3}. Try to fit them in the block of memory. How are the hole sizes changed as you allocate and shuffle the memory.
Pseudocode:
int n[5]={4,3,8,2,3};
int* arr = (int*) calloc(3, sizeof(int));
for (5 holes)
{
realloc(arr size to current hole size);
for(arr size)
print arr[];
}
int n[5]={4,3,8,2,3};
bool full[5] = {false, false, false, false, false}; // keep track of hole occupied
input data block size;
for(all holes)
{ if((found current hole size >= data size) && not occupied )
{ if (current hole size > data size && next hole not occupied && not last hole)
{ next hole += (current hole size – data size); // give extra space to next hole
}
if (not last && next hole not occupied)
{ current hole size = data size; //allocate
full[current] = true;
}
else
{ full[current] = true;
}
break;
}
}
*using C language
*the picture attach is the sample output
Step by step
Solved in 4 steps with 1 images