Walk through the steps from the time the page fault occurs to the resumption of this application.
Make any reasonable assumptions to complete this exercise (stating the assumptions).
[Hint: Assume address space A0 magically exists that exposes the physical memory. Assume the device registers are memory mapped at some well known physical addresses in high memory.]
fd = fopen("bar");
Upon resumption, foo executes another blocking system call
fwrite(fd, bufsize, buffer);
Don't worry about the exact syntax of the above calls.
XenoLinux itself is a protection domain on top of Xen and contains all the processes that run on top of it.
Given this how does XenoLinux provide protection of processes from one another? [Hint: Work out the details of how the virtual address spaces of the processes are mapped by XenoLinux via Xen.]