-
Support automatic growth of the stack part of the process
address space in the event that the stack fills the space
allocated to it.
You will need to decide on a way for your kernel to detect
that the stack needs to grow, and on a mechanism for expanding
the address space.
-
Support a general shared-memory facility using SharedMemOpen
and SharedMemClose (as defined in syscall.h).
For example, this allows two or
more processes to request a chunk of shared memory of a specified
size.
Note that this can also be used to implement dynamic memory allocation
by choosing a name that has a low probability of being guessed.
-
Provide support for automatic sharing of read-only code
pages between address spaces.
That is, if the same program is loaded into more than one
process' address space, any pages that hold program code
should not appear more than once in physical memory.
To simplify the problem, assume that programs with
the same name will use the same executable, and that
the executable will not change.