Program binaries in many systems are typically structured as follows. Code is stored starting with a small fixed virtual address such as 0. The
code segment is followed by the data segment that is used for storing the program variables. When the program starts executing, the stack is
allocated at the other end of the virtual address space and is allowed to grow towards lower virtual addresses. What is the significance of the
above structure on the following schemes:
a. contiguous-memory allocation
b. pure segmentation
c. pure paging