Suppose we have a system that implements virtual memory as a two-level page table. The processor is single core (i.e. single CPU). When a process wants to access the memory,
the MMU takes the address from the CPU and divides the bits of that address into several fields, as we saw in class.
a) [2 points] Is the address generated by the CPU a physical address or virtual address?
b) [8 points] How many fields does the MMU need to divide the address into? What are these fields?
c) [4 points] Which field(s) is/are used to access the TLB?
d) [4 points] If we have eight cores in the system instead of one, which of your answers in a, b, and c above will change, if any, and why?
e) [2 points] If we have a system with eight cores, how many MMUs dowe have?
Problem 2
Answer the following questions about virtual memory.
a) [5 points] Can a page fault in one process result in a page fault in another process in the future? Explain.
b) [5 points] What is/are the piece(s) of hardware that must exist for a system to support virtual memory using pages? For each piece you cite, explain what happens if it this piece did not exist.