Process model
The QNX Neutrino OS architecture consists of the microkernel and some number of cooperating processes. These processes communicate
with each other via various forms of interprocess communication (IPC). Message passing is the primary form of IPC in Neutrino.
Some definitions
Different operating systems often have different meanings for terms such as "process,""thread,""task,""program," and so on.
Priorities and scheduling
Although there's a good discussion of priorities and scheduling policies in the System Architecture manual, it will help to go over that topic here in the context of a programmer's guide.
Scheduling policies
To meet the needs of various applications, Neutrino provides these scheduling policies:
Why threads?
Now that we know more about priorities, we can talk about why you might want to use threads. We saw many good reasons for
breaking things up into separate processes, but what's the purpose of a multithreaded process?
Summary
The modular architecture is apparent throughout the entire system: the Neutrino OS itself consists of a set of cooperating
processes, as does an application. And each individual process can comprise several cooperating threads. What "keeps everything together" is the priority-based preemptive scheduling in Neutrino, which ensures that time-critical tasks are dealt with by the right
thread or process at the right time.