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