NetWare also provides a virtual memory system that moves little-used data to disk, thereby freeing memory for more frequently used data. Virtual memory provides more efficient use of memory and lessens the likelihood that low memory conditions will cause problems with the server.
Applications that run in protected address spaces use virtual memory, as does Java*. Applications running in protected space can allocate more memory than if they were not in protected space. Running in protected space keeps an application from corrupting other applications or the kernel; the application is also protected from other applications.
Keep in mind that while virtual memory can be safer for applications and increases the amount of memory that can be used on the server, it also runs slightly slower.
The following illustration shows the amount memory the server can recognize and what portions the virtual memory system uses.
Figure 1-3 Server Memory Recognition and Usage
Server operating system modules do not use virtual memory because of the nonpre-emptive nature of the NetWare kernel.
NOTE:If an NLM program were designed to use virtual memory and it implemented the needed locking schemes, a NetWare kernel NLM program could be written to use virtual memory.
A periodic aging process assesses available memory to see which data has been used less recently than the rest. Data that has not been used for some time can be moved from memory to disk, thereby freeing memory for other uses.
When the data on disk is needed again, it is moved back into available memory. Because data is swapped in and out of the disk, the available memory can be used for a larger amount of data than its actual physical capacity would allow.
The memory management subsystem assesses the memory needs of all server and NLM processes and determines where the freed memory should be used.
The Java Virtual Machine and any modules that are loaded into protected address spaces use virtual memory. Both the modules and the data they access are subject to being swapped to disk.
When data is moved from memory to disk, it is stored in a swap file. A swap file is created for volume sys: by default.
To create a swap file, delete a swap file, change swap file parameters, or view information about the swap file, you can use Novell Remote Manager or the swap command at the System Console prompt. See Using Virtual Memory.
Swapping the data between memory and disk requires additional system resources or CPU time, but it increases the memory available for use. The availability of the additional memory allows more NLM programs to run in the same amount of memory but they will probably run more slowly. Overall server performance might improve, but probably won't.