Study Subject: DreadcOS is an operating system designed for use on any machine with a paged MMU. The access rights associated with each page of the virtual address space are:
Each virtual address space is itself represented by a capability list, where each page of the virtual address space is represented by one capability. The operations on a virtual address space are:
Recall that the CPU state is completely loaded from page 0 of the new domain as a side effect of enter, so registers cannot be used to pass parameters. Recall that the complete load of the CPU state on entry to a new domain erases any record of a stack pointer, and that the stack, if any, would have existed in pages of the address space of the old domain.
This question is fully specified! The 4 gigabyte byte-addressable address space sets the number of bits in the memory address. The fact that capabilities are exactly 8 bytes each determines, for any given page size, the number of capabilities that will fit in the page. If all entries in the C-list describing the address space point to pages, there must be a total of 4 gigabytes. Therefore, the product of the page size times the number of capabilities in a C-list must be 4 gigabytes. Finally, the fact that each C-list is constrained to occupy exactly one page sets the final constraint.
In the event that the exact solution has a page size that is not a power of two bytes long, obviously, you'll have to round things in such a direction that it allows addressing at least 4 gigabytes but no more than 8 gigabytes.
Recall that, on entry to a domain, the CPU state is loaded from page 0 of the new domain, and recall that, whenever a process is suspended, its process state is saved in page 0 of the domain.
Passing familiarity with this set of operations may be useful during the exam.