| Non Virtual Memory systems main advantage | | | | same place and a map kept of where they |
| over Virtual Memory systems are their | | | | are.Virtual memory removes the problem of |
| simplicity. Sharing memory temporally by | | | | fragmentation by allowing processors to be |
| swapping each process to a hard disk or means | | | | allocated any where and to have different |
| memory references within a process need only | | | | pages or segments of a process to be in |
| be modified once upon loading of the | | | | different locations. The translation of the |
| process.The drawback of this means that | | | | memory allocation automatically accesses the |
| context switching is slow as each process | | | | correct memory allowing for more efficient |
| needs to be written to disk before reading | | | | use of memory for multiprocessors. This is |
| back the next processes. By using | | | | more complex than not virtual memory as |
| partitioning where each process is loaded | | | | translation is done as and when required not |
| into a separate area of memory removes this | | | | when loading a process. Although virtual |
| problem. Over time of processes starting and | | | | memory systems often use features built into |
| stopping memory becomes fragmented leaving | | | | the processor to achieve this there is still |
| useable space harder to find.Some of the ways | | | | an over head upon memory access. NVM systems |
| NVM has tried to control the problem of | | | | can only support the size of real memory in |
| fragmentation is with code folding where the | | | | the system where as because a translation |
| compiler is needed to define areas of a | | | | virtual memory provides it can support |
| process which may not be needed after | | | | virtual memory many times large then the |
| initialisation or section than can be | | | | actual memory available. It can be as large |
| overlaid as they will not be used in | | | | as the address space available to the |
| conjunction. Another method used is | | | | processor. Virtual memory really shows |
| segmentation where a process is split into | | | | performance increase over NVM when multiple |
| several segments when compiled so that each | | | | processes are used.Non virtual memory systems |
| segment can be allocated different memory | | | | are far simpler than virtual memory but do |
| areas. The references in these areas are | | | | not scale well as larger size processes and |
| changed at the start of the process to point | | | | multiple processing is required. It is best |
| to the correct areas of memory. Both methods | | | | suited to either one static process of a very |
| require the compiler to make decision about | | | | low number of continually running processes. |
| the program to be able to place the process | | | | The over head of using virtual memory has |
| in segments. Using segments lead towards non | | | | gone as CPU`s support translation on the |
| virtual memory becoming more like virtual | | | | fly.Simon Loader is a UNIX and email |
| memory. As segments can be paged out to disk | | | | specialist who runs Surf, a free IT resource |
| and paged back into different memory | | | | and downloads website, in his spare time. |
| location. Although this is a slower process | | | | Many of the downloads and articles on Surf |
| as the memory references with in the segment | | | | created by Simon are featured in technical |
| need to be updated if it is not placed in the | | | | websites all over the world. |