When showing the state of the page table in the subroutines, show it after the subroutine is fully running (may at the end just before the transition back to the calling routine). This guarantees all memory access in the routine to have occurred.

Treat the transition from main to a subroutine (and visa versa) as immediate and a perfect fit. In other words, if you find that main is the most likely candidate to be paged out to make room for the subroutine, assume the system can remember what it is doing and let it page main out.

When the arrays are passed to a subroutine, assume that only their address is passed. The actual array does not have to be in physical memory until a command accesses it. This means in the add function, for the equation

TArray[i] = Array1[i] + Array[2]

Array1[i] is referenced first, then Array2[2] and then, after they are added, then TArray is referenced in order to store the result. So, if they are not already in physical memory, they will be paged in in that order.

Again all answers must be hand written. A printout will not be accepted.