📜 ⬆️ ⬇️

30 years with QNX: First RTOS supporting multicore

This story began in 1997. But, in order to set the right atmosphere, let's fast forward to 2010 and see a snapshot of the CPU utilization of my computer with a quad core processor:



When considering this picture two things are striking. The first, apparently, my computer has 8 cores, not 4. This is because each force supports simultaneous multi-threading; those. It can perform two tasks simultaneously. As a result, the operating system sees each core not as one, but as two processors.
')
Second, each core shows brief but intense bursts of CPU usage. Here this phenomenon can have two explanations:

  1. several software applications unexpectedly simultaneously requested a lot of CPU time, or
  2. one application spawned several threads running, sharing the workload between different cores.

In this example, the second option: the application of multi-threaded image processing uses the computational capacity of each core when processing an 18-megapixel photo at the highest speed - it turns out much faster than if the application used one core.

To make this magic happen, a computer needs not only a multi-core processor. An operating system that supports symmetric multiprocessing or SMP is also required.

SMP for embedded systems?


Let's go back to 1997. At that time, SMP is still - an area of ​​operating systems for large servers and other resource-intensive applications. These systems did not have multi-core processors, of course, but they had several processors running on the same board.

The size, cost, and power consumption of these multiprocessor systems made them unattainable for most embedded systems, where the design mantra was dominant not to “do more with big expenses”, but “do more with less costs”. Thus, the idea of ​​adding an SMP to an operating system for embedded systems seemed at best exotic. However, this is exactly what QSS did back in 1997.

These actions were prophetic. First of all, network equipment manufacturers began to realize that SMP can help solve some computational problems, such as maintaining routing tables containing hundreds of thousands of entries. As a result, these companies began to use QNX SMP as an important part for their high-performance routers. And when multi-core microprocessors began to become available, the same manufacturers found that the migration process was very natural - they just continued to use the same code and the same operating system as before.

SMP in the car?


The QNX RTOS was one of the first to support SMP, which allowed it to become perfect by the time multi-core microprocessors began to move to the lower market segment, with lower prices and device performance. For example, Audi uses the QNX SMP to control the ARM Cortex-A9 multi-core processor for the next generation of car infotainment systems .

SMP in the car. Who would have thought?

Blast from the past


But what hasn't seen daylight since the late 1990s: a press release ( translation ) representing QNX OS support for SMP.

Source: https://habr.com/ru/post/130641/


All Articles