Process Manager
The Process Manager can create and manage multiple POSIX processes, each of which may contain multiple POSIX threads.
In the QNX OS, the microkernel is paired with the Process Manager in a single module, procnto. This module is required for all runtime systems. Its main areas of responsibility include:
- process management—manages process creation, destruction, and process attributes such as user ID (uid) and group ID (gid).
- memory management—manages a range of memory-protection capabilities, shared libraries, and interprocess POSIX shared-memory primitives.
- pathname management—manages the pathname space into which resource managers may attach.
User processes can access microkernel functions directly via kernel calls and process manager functions by sending messages to procnto. Note that a user process sends a message by invoking the MsgSend*() kernel call.
It's important to note that threads executing within
procnto invoke the microkernel in exactly the
same way as threads in other processes. The fact that
the process manager code and the microkernel share the same
process address space doesn't imply a special
or private
interface. All threads in the
system share the same consistent kernel interface and all
perform a privilege switch when invoking the microkernel.