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.

Principles of Information Systems (MindTap Course List)
13th Edition
ISBN:9781305971776
Author:Ralph Stair, George Reynolds
Publisher:Ralph Stair, George Reynolds
Chapter3: Hardware And Mobile Devices
Section: Chapter Questions
Problem 1WE
icon
Related questions
Topic Video
Question

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

Initial space allocation
Hole e : e
Hole 1 : 0
Hole 2 : 0
-754973744
35544
41222336
41227488
Hole 3 : 0
Hole 4 : 0
Enter data block size: 3 €
-771750959
Allocated hole e
Enter data block size: 4
Allocated hole 1
Enter data block size: 3
Allocated hole 2
Enter data block size: 5
Allocated hole 3
Enter data block size:/3
Allocated hole 4
All holes occupied?
true
true
true
true
true
Final space allocation
Hole e : 0
-771750959
Hole 1 : 0
-771750959
35545
Hole 2 : 0
Hole 3 : 0
Hole 4 : 0
-771750959
-771750959
35545
-754973744
-771750959
35545
-754973744
Transcribed Image Text:Initial space allocation Hole e : e Hole 1 : 0 Hole 2 : 0 -754973744 35544 41222336 41227488 Hole 3 : 0 Hole 4 : 0 Enter data block size: 3 € -771750959 Allocated hole e Enter data block size: 4 Allocated hole 1 Enter data block size: 3 Allocated hole 2 Enter data block size: 5 Allocated hole 3 Enter data block size:/3 Allocated hole 4 All holes occupied? true true true true true Final space allocation Hole e : 0 -771750959 Hole 1 : 0 -771750959 35545 Hole 2 : 0 Hole 3 : 0 Hole 4 : 0 -771750959 -771750959 35545 -754973744 -771750959 35545 -754973744
Expert Solution
steps

Step by step

Solved in 4 steps with 1 images

Blurred answer
Knowledge Booster
Instruction Format
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Recommended textbooks for you
Principles of Information Systems (MindTap Course…
Principles of Information Systems (MindTap Course…
Computer Science
ISBN:
9781305971776
Author:
Ralph Stair, George Reynolds
Publisher:
Cengage Learning
Principles of Information Systems (MindTap Course…
Principles of Information Systems (MindTap Course…
Computer Science
ISBN:
9781285867168
Author:
Ralph Stair, George Reynolds
Publisher:
Cengage Learning