If system calls were the only way to change memory allocation, one
could probably keep a strict accounting of pages allocated and fail
system calls that require more VM than is available.  But neither Plan
9 nor Unix works that way.  The big exception is stack growth.  The
kernel automatically extends a process's stack segment as needed.  On
the pc, Plan 9 currently limits user-mode stacks to 16MB.  On a CPU
server with 200 processes (fairly typical), that's 3.2GB of VM one
would have to commit just for stacks.  With 2,000 processes, that
would rise to 32GB just for stacks.

Reply via email to