Final Answer:
Correct statements regarding memory allocation are that an allocator should pad heap blocks for alignment (Option 2), create larger free blocks by coalescing adjacent allocated blocks (Option 3) and cannot use the stack segment to satisfy heap requests (Option 5).
Step-by-step explanation:
Option 1 is incorrect because moving allocated blocks to the start of the heap doesn't necessarily improve memory utilization; it may result in fragmentation.
Option 2 is correct; padding a heap block ensures memory alignment, meeting system requirements.
Option 3 is also correct; allocators commonly coalesce adjacent allocated blocks to create larger free blocks, reducing fragmentation.
Option 4 is incorrect; reordering free requests can lead to inefficiencies and does not necessarily maximize throughput.
Option 5 is correct; allocators generally avoid using the stack segment for heap requests due to differences in memory characteristics.
Options 2, 3 and 5 are the answers.
"
Complete Question
Which of the following statements regarding memory allocation and management by allocators are correct?
1.) An allocator should move allocated blocks to the start of the heap to improve memory utilization.
2.) An allocator should pad a heap block to meet memory alignment requirements.
3.) An allocator should create a larger free block by coalescing adjacent allocated blocks when needed.
4.) An allocator can reorder free requests to maximize throughput.
5.) An allocator cannot use the stack segment to satisfy heap requests.
"