Lines Matching +full:memory +full:- +full:region
29 Motivations for a New Virtual Memory System
31 The virtual memory system distributed with Berkeley UNIX has served
38 be taken into account in a new virtual memory design.
40 Implementation of 4.3BSD virtual memory
43 have used the same virtual memory design.
53 Thus, the limit to available virtual memory is established by the
56 Memory pages are used in a sort of shell game to contain the
68 Design assumptions for 4.3BSD virtual memory
70 The design criteria for the current virtual memory implementation
72 At that time the cost of memory was about a thousand times greater per
75 These machines had far more disk storage than they had memory
76 and given the cost tradeoff between memory and disk storage,
77 wanted to make maximal use of the memory even at the cost of
80 The primary motivation for virtual memory was to allow the
82 the memory capacity of the machine.
83 Thus the virtual memory capability allowed programs to be run that
86 was the ability to allow the sum of the memory requirements of
87 all active processes to exceed the amount of physical memory on
90 was to have the sum of active virtual memory be one and a half
91 to two times the physical memory on the machine.
93 At the time that the virtual memory system was designed,
102 Given the high cost of memory there was little incentive to have
109 In the ten years since the current virtual memory system was designed,
112 micro-processor has become powerful enough to allow users to have their
119 The workstations tend to have a large quantity of memory,
130 In this same period of time the cost per byte of memory has dropped
132 Thus the cost per byte of memory compared to the cost per byte of disk is
136 As the amount of physical memory on machines increases and the number of
139 memory than physical memory to that of having a surplus of memory that can
142 Because many machines will have more physical memory than they do swap
144 it is no longer reasonable to limit the maximum virtual memory
146 Consequently, the new design will allow the maximum virtual memory
147 to be the sum of physical memory plus swap space.
148 For machines with no swap space, the maximum virtual memory will
149 be governed by the amount of physical memory.
154 rather than to a locally-attached disk.
155 One use of the surplus memory would be to
160 while the free memory is maintained in a separate pool.
161 The new design should have only a single memory pool so that any
162 free memory can be used to cache recently accessed files.
164 Another portion of the memory will be used to keep track of the contents
165 of the blocks on any locally-attached swap space analogously
166 to the way that memory pages are handled.
167 Thus inactive swap blocks can also be used to cache less-recently-used
183 This section outlines our new virtual memory interface as it is
189 The virtual memory interface is designed to support both large,
190 sparse address spaces as well as small, densely-used address spaces.
192 size of the physical memory on the machine,
196 a shared read-only fill-on-demand region with its text,
197 a private fill-on-demand region for its initialized data,
198 a private zero-fill-on-demand region for its uninitialized data and heap,
199 and a private zero-fill-on-demand region for its stack.
202 constraint, but the size of the region should not be limited
205 Each new region may be mapped either as private or shared.
206 When it is privately mapped, changes to the contents of the region
207 are not reflected to any other process that map the same region.
208 Regions may be mapped read-only or read-write.
210 a shared read-only region for the text, and a private read-write
211 region for the global variables associated with the library.
213 A region may be allocated with one of several allocation strategies.
214 It may map some memory hardware on the machine such as a frame buffer.
218 A region can map all or part of a file.
219 As the pages are first accessed, the region is filled in with the
221 If the region is mapped read-write and shared, changes to the
222 contents of the region are reflected back into the contents of the file.
223 If the region is read-write but private,
224 changes to the region are copied to a private page that is not
228 The final type of region is ``anonymous memory''.
229 Uninitialed data uses such a region, privately mapped;
230 it is zero-fill-on-demand and its contents are abandoned
232 Unlike a region that is mapped from a file,
233 the contents of an anonymous region will never be read from or
234 written to a disk unless memory is short and part of the region
237 then all processes see the changes in the region.
240 is much higher than simply zeroing memory.
242 If several processes wish to share a region,
248 For anonymous memory they must use some other rendezvous point.
250 descriptor with a region, which it may then pass to other
251 processes that wish to attach to the region.
256 Shared memory as high speed interprocess communication
258 The primary use envisioned for shared memory is to
266 to avoid a memory to memory copy, the overhead of doing the system
268 Shared memory, by contrast, allows processes to share data at any
280 The net effect is that the shared memory model provides little if
296 In the typical case, a process executes an atomic test-and-set instruction
308 atomic interprocessor test-and-set.
345 on the physical byte of memory that is being used for the semaphore.
348 the kernel, the kernel can repeat the test-and-set.
351 did the test-and-set and eventually got into the sleep request system call,
362 ``Data Structures Added in the Berkeley Virtual Memory Extensions
371 Codenummer 051560-44(1984)01, February 1984.