Programming Overview
Related links
- The QNX Neutrino Microkernel (System Architecture)
- Processes and Threads (Get Programming with the BlackBerry PlayBook OS)
- procnto
- pthread_setschedparam()
- pthread_setschedprio()
- sched_setparam()
- sched_setscheduler()
- sched_yield()
- SchedSet(), SchedSet_r()
- Process model
The BlackBerry PlayBook OS architecture consists of the QNX Neutrino 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.