Private virtual memory

In the full-protection model, each process is given its own private virtual memory. This is accomplished by using the CPU's MMU. The performance cost for a process switch and a message pass will increase due to the increased complexity of obtaining addressability between two completely private address spaces.

Private memory space starts at 0 on x86 and ARM processors. The size depends on the CPU and is 2 or 3.5 gigabytes on 32-bit architectures, and 512 GB on 64-bit architectures; see Platform-specific limits in the Understanding System Limits chapter of the QNX Neutrino User's Guide.

Figure 1. Full protection VM (on an x86).

The memory cost per process may increase by 4 KB to 8 KB for each process's page tables. Note that this memory model supports the POSIX fork() call.