I do understand that logical address space/memory is generated by the CPU for the program and physical memory is the one on-to which the logical address space is mapped and which is on the physical memory. Plus, physical memory is not directly accessible to the user. Now, my question is (I don't know whether this makes sense or not): 1- How is the logical address space generated by the CPU? And is this randomly generated? 2- Why do we need a "relocation register" to map it on the physical memory? Why can't it be directly mapped on the physical memory? Thanks.