4.14: The total number of pages in the system is determined solely by the fourth field here, the offset within a page. The other three fields, together, are the page number. If there are D bits in the offset, there are 2^(32-D) pages in the system. (There is some overhead for the segment tables, of course, but that isn't in the address space of the process.) 4.16: The instructions are 1020 Load word 6144 into a register 1024 Push the register onto the stack 1028 Call a proc at 5120, stacking return addr 5120 Subtract 16 from the stack 5124 Compare the parameter on the stack to 4 5128 Jump if equal to 5152 Page references happen from the instruction counter, stack references, and memory references. The sequence, indexed by instruction address, is: 1020 1,12 1024 2,15 (Ambiguous; 16 is also ok; see below) 1028 2,15,10 5120 10 5124 10,15 5128 10,10 Both the next instruction and the jump target are on page 10 We are not told if the stack pointer points to the next location free (in which case it wouldn't be decremented before being used) or if it points to the last-used element. That latter is actually much more likely, but I'll accept page 16 here. 4.23: The contents of the page frame with FIFO are 0* 0,1* 0,1,7* 0,1,7,2* 3,1,7,2* 3,1,7,2 3,1,7,2 3,1,7,2 3,0,7,2* 3,0,7,2 for six page faults. With LRU, it's 0* 0,1* 0,1,7* 0,1,7,2* 3,1,7,2* 3,1,7,2 3,1,7,2 3,1,7,2 0,1,7,2* 0,1,7,3* for seven page faults. 4.32: A page can be in two working sets if two different processes share the page. This is quite common, in fact.