1

Reading online there seems to be some confusion over the term 'Virtual Memory'. It seems to describe either two concepts, one being each process having its own virtual address space, and the other being the idea of being able to page to a secondary drive. I assume in nearly all new OSs they implement 'both'.

My question is, do these two concepts have to be implemented together? When looking online for information they seem to be always mentioned together, but is it possible to have one without the other?

For example, I know I can disable having a swap file on my system, therefore each process still has it's own virtual address space and is still implementing virtual memory, but isn't paging to a secondary drive.

In theory, not that this would happen, but could you implement a system that uses paging but not virtual address spaces for each process, technically would this still be using virtual memory?

When we talk about 'virtual memory', which concept are we specifically talking about, or is it both?

Any help clearing up my confusion would be appreciated, thanks.

RJSmith92
  • 373
  • 1
  • 3
  • 9

1 Answers1

0

The terms logical memory and virtual memory have usually been conflated.In ye olde days that was not much of a problem because the two came hand-in-hand. Now, with large memory system, we are likely to see logical memory stay and virtual memory go away.

Logical memory is the remapping of physical memory to a linear address space. Virtual memory is the simulation of physical memory by using disk storage.

It is entirely possible to have a system implement logical memory without having virtual memory. However, nearly every major operating system (including Linux and Windoze) are disk-based, virtual memory systems. It would not be possible to convert them to non-virtual memory simply by switching off page fault handling and getting rid of the page files.

If I were running M$ I would be developing a Windoze replacement that is designed for large memory without disk backing.

user3344003
  • 20,574
  • 3
  • 26
  • 62
  • Thanks. As you say the two seem to go hand-in-hand, but if you were to design a new system from scratch, both don't have implemented? You say we are likely to see a system that still uses logical memory and virtual memory go away, but if someone wanted to (not that this would ever happen), they could implement a system that doesn't use logical memory but does use virtual memory? There isn't a 'rule' that means both have to be used, you can use either one on its own if the system designer wants? – RJSmith92 Oct 16 '15 at 22:56
  • 1
    I was saying that I think we will see systems using logical memory but not virtual memory in the future. Virtual memory without logical memory makes no sense. – user3344003 Oct 17 '15 at 04:13
  • I appreciate that and know it would never happen, but the 'simulation of physical memory by using disk storage.' doesn't sound like it requires logical memory. It seems like a completely different concept that just happens to work well with logical memory and that's why they go hand-in-hand. My question is, in theory, the idea of simulating RAM with disk storage could be implemented without the system using logical memory, there's no 'rule' that says this concept needs the system to be using logical memory to work? – RJSmith92 Oct 17 '15 at 04:20
  • 1
    If there is no underlying logical revectoring of memory, there is no point in having (and no reasonable way of doing) virtual memory. – user3344003 Oct 18 '15 at 00:02