Hello all,
One thing I want to ask you: can anyone explain (an "idiot-like" explanation...) what is the difference between logical addressing and physical addressing?
Thanks!
It's more usual to consider the other way around. The program is using a logical/virtual address and the memory management unit in the processor converts that to a physical address to be used by the memory system. The exact way in which that is done depends upon the system, but usually there will be some kind of page tables in external memory and those page tables will give the translations from virtual to physical address. Part of the OS function is to create and maintain the page table entries. Depending upon the processor, the hardware may do page table walks to read those entries and store them in a cache of address translations (called a TLB).
I have some basic details on how this works on the ARM family (and why it is sometimes necessary to use logical addressing when running a complex operating system like Linux) here