Consider a system that uses pure demand paging:
a. When a process first start execution, how would you characterize the page fault rate?
b. Once the working set for a process is loaded into memory, how would you characterize the page fault rate?
c. Assume a process changes its locality and the size of the new working set is too large to be stored into available free memory. What are some options system designers could choose from to handle this situation?
When a page fault occurs, the process requesting the page must block while waiting for the page to be brought from disk into physical memory. Assume there exists a process with five user-level threads where the mapping of user threads to kernel threads is many to one. If one user thread incurs a page fault while accessing its stack, would the other user user threads belonging to the same process also be affected by the page fault (i.e., would they also have to wait for the faulting page to be brought into memory?) Explain.