\documentclass{article}
\input{6828-preamble}

\begin{document}
\psetnum{9}
\date{2004/10/06}

\begin{pset}
  \begin{problem}
    \texttt{rp->p\_addr} points to the physical address of the u-area
    of the process to switch to (here, process 1). This physical
    address is loaded into a PAR register in order to map \texttt{u}
    to the process's u-area. In this case, the value is
    \texttt{001215}:

\begin{verbatim}
sim> s

Step expired, PC: PC=002536  (BIS #340,177776)
R0=000000 R1=015604 R2=063116 R3=000000 R4=000000 R5=141724
KSP=141712 USP=177510 PSW=030000 (CM=0,PM=3,IPL=0,tnzvc)

sim> e -v 141712-141714
141712: 015744
141714: 001215
\end{verbatim}
  \end{problem}

  \begin{problem}
    \texttt{KIPAR6} is changed from \texttt{001175} to
    \texttt{001215}, the argument to \texttt{retu}. 
  \end{problem}

  \begin{problem}
    The global symbol \texttt{\_u} refers to a fixed virtual address
    that represents information about the user process currently
    executing. The virtual address pointed to by \texttt{\_u} is fixed,
    but changing the segmentation registers (specifically,
    \texttt{KIPAR6}) causes it to point to a different area in
    physical memory for each process.
  \end{problem}
\end{pset}
\end{document}