Re: Virtual Address Space
- Posted by Robert Craig <r..craig at SYMPATICO.CA> Nov 10, 2000
- 421 views
Al Getz writes: > The strange thing is, peek(addr) doesnt generate an error > even though another program had allocated that 'space', No. Another program did not allocate that space. The other program allocated space in *its own* virtual address space. peek(addr) refers to a different *physical* memory location in every program that's running, so it's not surprising that a different value will be returned in each case. system() starts up a new program. Two active programs can both be using virtual memory location 1000 (say) at the same time, but it's a *different* physical location. This is the magic of virtual memory. In modern operating systems (WIN32, Linux etc.) programs deal with virtual addresses. The O/S with help from the hardware maps these virtual addresses into the physical addresses that access the memory chips. > Rob: > I still have to wonder why peek(addr) attemps to return a value though I guess addr was a legitimate (virtual) address for that program. Some other address might give you a segmentation violation. Regards, Rob Craig Rapid Deployment Software http://www.RapidEuphoria.com