RTOS, Embedded Linux, Real-Time Operating System and DO-178B: LynuxWorks

Processes, Name Spaces and Virtual Memory
Processes and the POSIX.1 standard

PARENT-CHILD PROCESSES

To be conformant with the POSIX®.1 standard, processes must be kept separate, and this is achieved through the use of memory protection and name spaces.

POSIX assumes that each process in a system resides in a different name space and has its own symbols tables. The Memory Management Unit (MMU) is used to physically isolate processes from each another so that they cannot trample on each other's memory.

Also commonly referred to as "multiprocessing," a process as defined by POSIX.1 will have its own name space. Two symbols defined globally will not conflict if they are located in two different processes, since they are in two different links.

Three processes mapped by the MMU into separate physical memory pages. Each process is virtually isolated from other processes and it is therefore impossible for one process to write over another process' address space (unless the programmer intentionally performs address mappings).
This diagram shows three processes mapped by the MMU into separate physical memory pages.  Each process is virtually isolated from other processes and it is therefore impossible (unless programmer intentionally perrtforms address mappings) for one process to write over another process' address space.

Processes and virtual memory

The set of virtual addresses that a process can access are called the process's virtual address space. A process virtual address space is composed of segments:

The MMU translates the virtual addresses into physical addresses. If a process attempts to address a page that is not currently mapped to it, the MMU generates an exception. The exception sends a signal to the offending thread in which the default action is to terminate the process. Alteratively, the thread may catch the signal for user-defined actions, if desired.

For further information on MMUs, please read our technical white paper, "Using the Microprocessor MMU for Software Protection in Real-Time Systems." For information about partition operating systems, visit our white paper, "Partitioning Operating Systems Versus Process-based Operating Systems."

"But is it POSIX-conformant?"
LynuxWorksPOSIX for
embedded developers
O'REILLY PROGRAMMING GUIDES
for LynuxWorks operating systems

PARENT-CHILD PROCESSES


RTOS and embedded operating systems

Embedded operating systems and development tools

Corporate

Industry solutions

OS Support

OS Training

SynergyWorks: LynuxWorks partners

contact us
ISO9001:2000 Copyright © LynuxWorks™, Inc. All rights reserved. Reproduction in whole or in part in any form or medium without express written permission of LynuxWorks is prohibited. 20 years of embedded excellence