Sat, 29 Mar, 2025
My students, A student writes, and I am forwarding my answer to everyone since there may be others in class who need the clarification. A student writes: > I'm confused on what exact the layout of VAX VMem is. Is the System Space > in VMem or PMem? What's the system space for? Where are the PTEs for P0 > and P1 space stored? In the System Space? > > Name withheld to protect the student who is at the moment confused. My answer: The VAX, like all ISAs, specifies a number (usually two) of Virtual Address Spaces. The VAX has three, P0, P1, and System. Each has 1GB of address sapce. P0 is what we have been calling Process Virtual Space. It belongs to the process and does not require privilege to access its locations. System Virtual Space is the set of addresses each process shares with all the other processes, and contains the operating system. It requires privilege to access addresses in System Virtual space. The 3rd Virtual Space is P1 Space, which is mostly used for the User Stack. Like P0 Virtual Space, it belongs to the process. I mentioned P1 in class, but also told you that other than mentioning it, we will ignore it for purposes of 460N. I did not want to tell you there were two virtual address spaces and have you read somewhere there are really three, and be confused. So, for our purposes, we will deal with two virtual address spaces, P0 space and System Space. Both Process Virtual Space and System Virtual Space are virtual in the sense that they exist on the disk and not in memory UNLESS the operating system copies them into Physical Memory. Since we can only access memory locations if they are in Physical Memory, if we try to access one of these virtual addresses and it is not in memory, a page fault occurs and the operating system has to bring the contents of that virtual location into physical memory. To make it easier for the operating sytem to bring the contents of a virtual location into physical memory, a virtual address space is partitioned into slices called pages, and physical memory is partitioned into slices called frames. Pages and frames are the same size. One does not need all the pages in physical memory at the same time, only the pages that the program is accessing now. To access a location, we check the PTE of the virtual page containing that location. The valid bit tells if the page is in physical memory, and also which frame of physical memory is housing it. The valid bit also tells if the page is not in physical memory, in which case a page fault occurs and control goes to the operating system. The o/s puts the page in a frame, puts the frame number in the PTE and tells the program to try again. This time it works since the o/s has copied the contents of the virtual location from the disk to a frame of Physical Memory. I hope the above helps. If not, ask again. Good luck with the rest of the course. Yale Patt