Reputation: 13
I'm currently reading a book on .Net 4.0 with C# and I read a statement I do not fully understand...
It states: "In general, any process is able to access memory only by specifying an address in Virtual Memory - processes do not have direct access to physical memory. Hence, it is simply impossible for one process to access the memory allocated to another process"
how do we form this distinction.. that because I specify my addresses to virtual memory and not to physical memory that I cannot access the memory of another process? or does it lie in what they mean my access?
Upvotes: 0
Views: 136
Reputation: 39797
What it means is the addresses given to you are all virtual (also known as logical)... they do not directly indicate which physical memory you will access. Instead, there's a map (in the hardware, controlled by the system) to translate between your virtual addresses and the actual physical memory used.
Put another way, your process might have address 0x1000, and my process might also have this same address. Since our addresses are both virtual it's not possible for you to access mine (and at the physical layer, they will be at different places in hardware).
Upvotes: 2