The following is a brief description of the memory requirements for every
process running under the Berkeley virtual memory UNIX system.  Note that
this is not complete since the inode and file descriptors as well as other
data structures needed by a process are not accounted for.


		All sizes and numbers are as of 1/12/84


Memory which is allocated to each process consists of the following:

	proc table entry
	page table page(s)
	u page
	text pages
	data pages
	stack pages

Proc Table Entry

	Every process must have an entry in the proc table.  These entries
	are currently 146 bytes in length.  The limit on number of entries
	in the table is NPROC which is currently 50.

Page Table Page(s)

	Every process has page tables associates with it.  These must be
	in memory as long as the process is not swapped out on disk.
	There is one page of page tables needed for approximately every 4Mb of
	process space in the text, data, stack, and u page regions whether
	they are paged in or not.

	There is a fixed length area in kernel virtual memory reserved for
	page table pages, although no physical memory is specifically
	reserved for them.  This space, called usrpt is USRPTSIZE pages
	in length (currently 50).

U Page

	Every process has information about it that the kernel needs while
	the process is not swapped out.  This is called the U page and is
	a single page in length (on our system).

	One page of physical memory is required for the U page of every
	process which is not swapped out.

Text, Data, and Stack Pages

	Text, data, and stack pages make up the portion of the memory that
	a process actually sees.  Most of these pages can be paged to and
	from disk on demand so that the entire process does not have to be
	resident in memory in order for it to run.

	The amount of space available for the combined text, data, and stack
	regions is 15Mb (total 16Mb address space - 1Mb of kernel address
	space).
