Implementing the Extended Memory Under UNIX

Extended memory is implemented under UNIX using a memory mapped file with memory protection (protect/unprotect).

Here, a roll-in corresponds to removing the protection for a context in the extended memory, and a roll-out corresponds to protecting a context.

All user contexts are always mapped in the virtual address space for each work process. At the beginning, all the contexts are protected.

The following graphic displays two work processes that are accessing a common resource:

Work process 1 removes the protection for the context from user x, mode y. To do this, this context is locked for all other work processes. After processing, the protection is restored. Now, work process 2 can process this context.

For more information on memory mapped files under UNIX, refer to the man page of the mmap command.