Пользователь
0,0
рейтинг
18 октября 2011 в 12:02

30 лет с QNX: Первая ОСРВ поддерживающая многоядерность перевод

Эта история началась в 1997 году. Но, чтобы задать нужную атмосферу, давайте быстро перенесемся в 2010 год и посмотрим снимок загруженности ЦПУ моего компьютера с четырёхядерным процессором:



При рассмотрении этого снимка бросаются в глаза две вещи. Первое, по-видимому у моего компьютера 8 ядер, а не 4. Это потому что каждое яро поддерживает одновременную мультипоточность; т.е. оно может выполнять две задачи одновременно. В результате операционная система видит каждое ядро не как один, а как два процессора.

Второе, каждое ядро показывает краткие, но интенсивные всплески загрузки процессора. Здесь это явление может иметь два объяснения:

  1. несколько программных приложений неожиданно одновременно запросили много процессорного времени, или
  2. одно приложение породило несколько выполняющихся потоков, разделяющих рабочую нагрузку между различными ядрами.

В этом примере второй вариант: приложение многопоточной обработки изображения использует вычислительную способность каждого ядра при обработке 18-мегапиксельного фото на самой большой скорости — получается намного быстрее, чем если бы приложение использовало одно ядро.

Чтобы такое волшебство получилось, компьютеру необходим не только многоядерный процессор. Также необходима операционная система поддерживающая симметричную многопроцессорность или SMP.

SMP для встраиваемых систем?


Вернёмся в 1997 год. В то время SMP — это всё ещё — область операционных систем для крупных серверов и других ресурсоёмких приложений. Эти системы не имели многоядерных процессоров, конечно, но у них было несколько процессоров, работающих на одной плате.

Размер, стоимость и энергопотребление этих многопроцессорных систем сделали их недосягаемыми для большинства встраиваемых систем, где доминировала проектная мантра не «делать больше с большими затратами», но «делать больше с меньшими затратами». Таким образом, идея добавления SMP операционной системе для встраиваемых систем, казалась в лучшем случае экзотической. Тем не менее, именно это и сделала компания QSS еще в 1997 году.

Эти действия оказались пророческими. Прежде всего, компании производители сетевого оборудования начали понимать, что SMP может помочь решить некоторые вычислительные проблемы, такие как обслуживание таблиц маршрутизации, содержащих сотни тысяч записей. В результате, эти компании стали использовать QNX SMP, как важную часть для их высокопроизводительных маршрутизаторов. И когда многоядерные микропроцессоры начали становиться доступными, те же производители обнаружили, что процесс миграции очень естественен — они просто продолжали использовать тот же код и ту же операционную систему, что и раньше.

SMP в автомобиле?


ОСРВ QNX одна из первых поддержала SMP, что позволило ей стать совершенной к тому времени, как многоядерные микропроцессоры стали перемещаться в нижний сегмент рынка, с понижением цены и производительности устройств. Например, Audi использует QNX SMP для управления многоядерным процессором ARM Cortex-A9 для следующего поколения автомобильных информационно-развлекательных систем.

SMP в автомобиле. Кто бы мог подумать?

Взрыв из прошлого


А вот то, что не видело дневного света с конца 1990-х: пресс-релиз (перевод) представляющий поддержку ОС QNX для SMP.
Перевод: Paul N. Leroux
Олег Большаков @ob1
карма
95,2
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Реклама

Самое читаемое

Комментарии (10)

  • +12
    И? Вывод из топика какой? Мысль его основная какая? К чему он должен побудить читателя?
    • +4
      И что Вы ожидали увидеть в разделе «История ИТ»? Призывы строить баррикады?

      Мысль довольно очевидная, странно, что Вы её не поняли. Её уже неоднократно подтверждали в IT. А именно: то что сейчас кажется незначительным или невозможным, в будущем может стать очевидным и основным. Примеров масса: Интернет, социальные сети и т.п. Вот и SMP во встраиваемых системах тоже такой пример.
      • +2
        Видимо не я один не понял эту мысль. В чём вообще заключается достижение разработчиков QNX? Что значит поддержка SMP? В любом ядре где есть планировщик процессов возможна поддержка SMP. А QNX представляет собой ядро ОС, по сути планировщик процессов и средства межпроцессного взамодействия, понятно, что там есть поддержка многозадачности, и, когда появились многоядерные встраиваемые системы, QNX способна использовать их потенциал.
        • +1
          Во-первых, QNX это не ядро ОС, а сама ОС. Во-вторых, в QNX используется микроядро, а не монолитное ядро, которое включает в себя всё то, что Вы перечислили. Ну и самое главное, если бы всё было так просто, то не было бы в том же Linux немаленького куска кода для поддержки SMP. Процессы и потоки это ещё пол беды. Есть ещё обработчики прерывания, кеш и т.п.

          До чего дошёл прогресс, кстати. ;-} Поддержку SMP уже считают чем-то самим собой разумеющимся. Что для SMP даже делать ничего не надо. Как и для поддержки жёстких дисков, и сети. А ведь совсем недавно не каждая ОС поддерживала самые привычные нам теперь устройства и протоколы.
          • 0
            Я согласен, что поддержка SMP не нечто само собой разумеющееся, однако, из заголовка топика кажется будто SMP там есть уже 30 лет, а на самом деле в два раза меньше, и если прочитать пресс-релиз, окажется что там использовалось отличное «встраиваемое железо» двухпроцессорная система на pentium pro. И в наше время (когда реально появилась необходимость использовать многоядерность) все основные системы поддерживают её — vxworks, lynxos, Nucleus RTOS, все linux-based системы, и некоторые уже давно.

            Я не умаляю достоинств QNX, но мысль из топика «мы такие крутые, предсказали важность SMP когда ещё и систем таких небыло» как-то не впечатляет.
            • +1
              Ох, простите, Вас ввёл в заблуждение заголовок. Это общий заголовок для цикла заметное по QNX. В этом цикле рассказывалось, например, о том, что QNX это первая ОС, которая поддержала жёсткий диск на PC. Ещё о том, что первый сетевой школьный компьютер был тоже на QNX. Ещё рассказывалось о первом компьютере с QNX, а выглядел он занятно.

              Да, сейчас уже многие ОС имеют поддержку SMP, но когда-то во встраиваемых системах об этом не задумывались, и QNX первые реализовали поддержку SMP.

              Вы верно сослались на пресс-релиз. Действительно, тогда это не был многоядерный процессор. Но их тогда вообще, наверное, не было. Похоже, что Вы невнимательно прочитали.
  • 0
    > Эти действия оказались пророческими.

    а еще было бы лучше, если бы QSSL пораньше прозрела, что x86 это не самая лучшая архитектура для ОСРВ, и что на watcom'е свет клином не сошелся
    • +1
      По всей видимости, Вы имеете в виду QNX4. Да, в начале 90-хх Watcom был самым прогрессивным компилятором языка C. Не зря он шёл в стандартной поставке с QNX4. Помимо этого, существовали сборки GCC для QNX4.

      Уже в середине 90-хх в QSS начали работать над новой версией ОСРВ. Это был проект QNX Neutrino. Одной из целей проекта являлась поддержка различных процессорных архитектур. В результате, проект вылился в новую версию — QNX6. В QNX6 используется штатный компилятор GCC, но есть возможность использовать ICC от Intel. Помимо этого, штатная среда разработки QNX Momentics основана на небезызвестной Eclipse. Кстати, фирма QSS является одним из разработчиков Eclipse, в том числе, и расширения CDT, которое позволяет разрабатывать на C и C++. Так что фирма QSS достаточно прозорлива и прогрессивна.

      О дальнозоркости QSS, в том числе, говорит и тот факт, что хотя много новых проектов делают на QNX6, но и QNX4 всё ещё популярен в наше время. Отчасти потому, что очень много систем основано на QNX4. И многие разработчики не хотят менять прикладное ПО и ОС в своих изделиях, это просто невыгодно, когда всё отлично работает.
  • 0
    > По всей видимости, Вы имеете в виду QNX4.

    о да, потрясающая была штука в свое время. С Neutrino, увы, опоздали. Народ активно уходил на M68K, PPC а еще больше на «прогрессивные» ARM/MIPS и не хотел менять прикладное ПО и ОС в своих изделиях, когда VxWorks отлично работает ;)

    > Кстати, фирма QSS является одним из разработчиков Eclipse

    точно также как WindRiver или Montavista

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.