Question: I need helps on memory allocating through first fit, best fit, worst fit. I understand how the fits work but not sure when there are

I need helps on memory allocating through first fit, best fit, worst fit. I understand how the fits work but not sure when there are same sizes of

addresses.

For question 1, I think the heap allocator allocates from higher addresses(at the end) to lower addresses(at the beginning).

and for question 2 and 3, I chose best fit for question 2 and none of the above for question 3, but not sure.

Need clear explanation for this kind of cases.

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

sizes between addresses = 1024, 64, 1024, 512, 1024, 128, 1024, 64, 1024 

Question #1

If invoking the program as

memory 480,0,0,0 

produced this output:

0 | 1024 | 1088 | 2112 | 2624 | 3648 | 3776 | 4800 | 4864 | -------------- The 480-byte chunk was allocated at address 2144 

would you conclude that the heap allocator allocates new chunks of RAM at the beginning (i.e., lower addresses) or at the end (i.e., higher addresses) of holes in memory? Why? To explain why just use a contraposition argument (e.g., if the heap allocator did X then Y would have happened, but instead Z happened).

Whatever the heap allocator does, this is what we assume it does for all subsequent questions.

Question #2

If invoking the program as

./memory 100,200,100,80 

produces this output:

0 | 1024 | 1088 | 2112 | 2624 | 3648 | 3776 | 4800 | 4864 | -------------- The 100-byte chunk was allocated at address 2524 The 200-byte chunk was allocated at address 2324 The 100-byte chunk was allocated at address 2224 The 80-byte chunk was allocated at address 3696 

would you say that the heap allocator uses

first fit

best fit

worst fit

none of the above?

Question #3

If invoking the program as

./memory 40, 400, 80, 60 

produces this output:

0 | 1024 | 1088 | 2112 | 2624 | 3648 | 3776 | 4800 | 4864 | -------------- The 40-byte chunk was allocated at address 3736 The 400-byte chunk was allocated at address 2224 The 80-byte chunk was allocated at address 2144 The 60-byte chunk was allocated at address 4804 

would you say that the heap allocator uses

first fit

best fit

worst fit

none of the above?

Question #4

After looking up some documentation, you find out that the heap allocator uses worst fit! What would the output of the memory program be when invoked as follows:

./memory 400, 100, 10, 10 

Step by Step Solution

There are 3 Steps involved in it

1 Expert Approved Answer
Step: 1 Unlock blur-text-image
Question Has Been Solved by an Expert!

Get step-by-step solutions from verified subject matter experts

Step: 2 Unlock
Step: 3 Unlock

Students Have Also Explored These Related Databases Questions!