= Requirements = * A container must have some limit on the amount of memory it may use. * The overhead in storage, processing time, and dedicated lines of code to the greater kernel should be minimized * Memory which is private to the container (say, anonymous memory) must be strictly accounted to it * Memory for files may be accounted to either the container or a shared pool * Some care should be taken to ensure that a container may not abuse this shared pool * It is preferable to actually determine when sharing is "acually" occurring, but approximate metrics should be OK. * == Software Zones == Use the existing Linux zone model to create sets of contiguous memory. Each of these is a subset of the current 'struct zone'. Each container gets one or more of these zones from which to allocate its pages. Pages shared between containers will be placed in centralized, "shared" zones. == Static Page Ownership == || || Software Zones || Static Page Ownership || Partial Page Ownership || || enforces memory limits ||