P0 space and P1 space and multiple processes ...on the VAX
And now a question relevant to virtual memory.
A student writes:
Dear Dr. Patt,
I'm hoping you can clarify my understanding of multiple
processes in the VM management system. For example, in the
VAX, do P0 space and P1 space together define the process
space, in that each process has its own version of P0 space
and P1 space?
Yes. Each process in the VAX has its own P0 space and P1 space, and
therefore two page tables, which means two base registers and two
length registers.
Since I believe the system space holds *each*
process' page table,
You believe correctly.
will this be sequentially represented
in system virtual space as couplets of P0 and P1 page tables?
Up to the operating system where it stores them, but a simple way would
be as you suggest: store them as two-tuples of P0 and P1 for each process.
If this is the case, how does one process index into its
unique page table using only the same P0BR or P1BR registers
as the other processes (or do they each have their own)?
Each has its own. Recall my comment in class: Each process has its own
context, which includes the PC, PSR, GPRs, AND memory mapping registers
(like P0BR, P0LR, P1BR, P1LR).
Since there are multiple process page tables, it seems like
we need multiple starting addresses.
Indeed we do. and multiple length registers since he process has its own
size (not always the maximum).
Good luck on the final exam.
Yale Patt
thanks,
<<name withheld to protect the student trying to figure out how to
put multiple starting addresses into a single Base Register.
...without a very large shoehorn.>>