SuperTinyKernel (STK) ОСРВ ⇐ Васина Википедия
-
Автор темыwiki_en
- Всего сообщений: 108491
- Зарегистрирован: 16.01.2024
SuperTinyKernel (STK) ОСРВ
'''SuperTinyKernel™''' ('''STK''') — это легкая, высокопроизводительная, детерминированная операционная система реального времени (RTOS) для встраиваемых систем с ограниченными ресурсами.
STK не требует динамического выделения памяти, не зависит от стандартной библиотеки C++|Стандартной библиотеки шаблонов C++ и предоставляет полнофункциональный интерфейс C (язык программирования)|C, что делает его подходящим для разработки, критически важной для безопасности. Отсутствие выделения кучи удовлетворяет правилу 18-4-1 MISRA C++:2008.
==Расписание==
СТК работает в двух основных режимах. В режиме мягкого реального времени задачи взаимодействуют посредством вызовов Sleep() и Yield(), при этом ядро применяет упреждающее планирование, чтобы одна задача не истощала другие. В режиме жесткого реального времени (HRT) задачи являются периодическими с гарантированными окнами выполнения и строгими сроками, установленными ядром; любое нарушение крайнего срока вызывает детерминированный обратный вызов при ошибке.
Задачи могут следовать либо статической модели (создаваемой один раз при запуске), либо динамической модели (создаваемой и закрывающейся во время выполнения).
STK поддерживает все основные стратегии планирования, в том числе циклическое планирование | Круговой перебор, плавный взвешенный циклический перебор, циклический перебор с фиксированным приоритетом, монотонное по скорости планирование | Монотонное по скорости, монотонное по сроку и планирование по первому сроку | Сначала самый ранний срок. Пользовательские стратегии могут быть предоставлены путем реализации интерфейса ITaskSwitchStrategy.
==Синхронизация==
STK предоставляет богатый API синхронизации, включающий мьютексы (включая вариант чтения-записи), семафор (программирование) | подсчет семафоров, переменные условия, флаги событий, критические секции, спин-блокировки и потокобезопасный канал FIFO для передачи данных между задачами. Поддержка синхронизации является необязательной и может быть опущена во время компиляции, чтобы уменьшить использование флэш-памяти|Флэш-памяти и оперативной памяти|ОЗУ.
==Разделение привилегий задач==
На ядрах ARM Cortex-M, реализующих блок защиты памяти (MPU) — Cortex-M3 и новее — STK поддерживает аппаратное разделение привилегий между задачами. Задачи доверенного драйвера выполняются в режиме привилегированного потока с полным доступом к периферийным устройствам, тогда как задачи приложения или недоверенные задачи выполняются в непривилегированном режиме, где любой прямой доступ к периферийным устройствам вызывает аппаратный сбой. Это изолирует потенциально контролируемые злоумышленником пути кода от критически важного для безопасности состояния оборудования.
==Поддержка многоядерности==
STK поддерживает многоядерные встроенные микроконтроллеры посредством модели асимметричной многопроцессорной обработки | асимметричной многопроцессорной обработки (AMP) с одним независимым экземпляром ядра на каждое физическое ядро. Такая конструкция устраняет накладные расходы на межъядерную синхронизацию внутри ядра и позволяет каждому ядру работать со своей собственной политикой планирования и временной областью.
==Аппаратная поддержка==
STK предназначен для процессоров ARM Cortex-M, охватывающих ядра от ARMv6-M до ARMv8.1-M (от Cortex-M0 до M55) и RISC-V RV32I и RV32E. Поддерживаются как мягкие, так и жесткие числа с плавающей запятой. Ядро было проверено на платах разработки, включая STM32F0DISCOVERY (Cortex-M0), NUCLEO-F103RB (Cortex-M3), STM32F4DISCOVERY (Cortex-M4F), NXP FRDM-K66F (Cortex-M4F), NXP MIMXRT1050 (Cortex-M7) и Raspberry Pi Pico 2 W. (Cortex-M33 и RISC-V).
==Разработка и тестирование==
STK включает в себя эмулятор планирования x86 для Microsoft Windows|Windows, позволяющий создавать, отлаживать и модульно тестировать один и тот же код приложения на настольном ПК без физического оборудования. Логика планировщика обеспечивает 100% покрытие модульными тестами, а все фиксации проверяются на соответствие целям QEMU для каждой поддерживаемой архитектуры. Планирование можно визуализировать с помощью SEGGER SystemView.
==Производительность==
Тесты, проведенные на STM32F407VG (Cortex-M4 с частотой 168 МГц) в феврале 2026 года и сравнивающие STK v1.04.2 с FreeRTOS V10.3.1, показали, что STK обеспечивает повышение пропускной способности задач на 31 %, снижение использования оперативной памяти на 25–55 % (~ 7 КБ против ~ 9–11 КБ) и снижение джиттера планирования примерно на 17 % в сценарии с большим количеством задач. Компромиссом является больший объем Flash-памяти (~25 КБ против ~13 КБ), что является следствием архитектуры шаблонов C++.
==Лицензия==
SuperTinyKernel выпускается под лицензией MIT, разрешающей бесплатное использование в коммерческих проектах, проектах с закрытым, открытым исходным кодом и академических проектах. Neutron Code Limited предлагает профессиональные услуги, включая помощь в сертификации безопасности (IEC 61508, IEC 62304, ISO 26262, DO-178C) и коммерческую поддержку на основе SLA.
==См. также==
* FreeRTOS
* embOS
* Сравнение операционных систем реального времени
* *[https://github.com/SuperTinyKernel-RTOS/stk SuperTinyKernel на GitHub]
Операционные системы реального времени
Встроенные операционные системы
Свободные операционные системы
Операционные системы ARM
Операционные системы RISC-V
Программное обеспечение C++
Лицензионное программное обеспечение MIT
Подробнее: https://en.wikipedia.org/wiki/SuperTiny ... (STK)_RTOS
'''SuperTinyKernel™''' ('''STK''') — это легкая, высокопроизводительная, детерминированная операционная система реального времени (RTOS) для встраиваемых систем с ограниченными ресурсами.
STK не требует динамического выделения памяти, не зависит от стандартной библиотеки C++|Стандартной библиотеки шаблонов C++ и предоставляет полнофункциональный интерфейс C (язык программирования)|C, что делает его подходящим для разработки, критически важной для безопасности. Отсутствие выделения кучи удовлетворяет правилу 18-4-1 MISRA C++:2008.
==Расписание==
СТК работает в двух основных режимах. В режиме мягкого реального времени задачи взаимодействуют посредством вызовов Sleep() и Yield(), при этом ядро применяет упреждающее планирование, чтобы одна задача не истощала другие. В режиме жесткого реального времени (HRT) задачи являются периодическими с гарантированными окнами выполнения и строгими сроками, установленными ядром; любое нарушение крайнего срока вызывает детерминированный обратный вызов при ошибке.
Задачи могут следовать либо статической модели (создаваемой один раз при запуске), либо динамической модели (создаваемой и закрывающейся во время выполнения).
STK поддерживает все основные стратегии планирования, в том числе циклическое планирование | Круговой перебор, плавный взвешенный циклический перебор, циклический перебор с фиксированным приоритетом, монотонное по скорости планирование | Монотонное по скорости, монотонное по сроку и планирование по первому сроку | Сначала самый ранний срок. Пользовательские стратегии могут быть предоставлены путем реализации интерфейса ITaskSwitchStrategy.
==Синхронизация==
STK предоставляет богатый API синхронизации, включающий мьютексы (включая вариант чтения-записи), семафор (программирование) | подсчет семафоров, переменные условия, флаги событий, критические секции, спин-блокировки и потокобезопасный канал FIFO для передачи данных между задачами. Поддержка синхронизации является необязательной и может быть опущена во время компиляции, чтобы уменьшить использование флэш-памяти|Флэш-памяти и оперативной памяти|ОЗУ.
==Разделение привилегий задач==
На ядрах ARM Cortex-M, реализующих блок защиты памяти (MPU) — Cortex-M3 и новее — STK поддерживает аппаратное разделение привилегий между задачами. Задачи доверенного драйвера выполняются в режиме привилегированного потока с полным доступом к периферийным устройствам, тогда как задачи приложения или недоверенные задачи выполняются в непривилегированном режиме, где любой прямой доступ к периферийным устройствам вызывает аппаратный сбой. Это изолирует потенциально контролируемые злоумышленником пути кода от критически важного для безопасности состояния оборудования.
==Поддержка многоядерности==
STK поддерживает многоядерные встроенные микроконтроллеры посредством модели асимметричной многопроцессорной обработки | асимметричной многопроцессорной обработки (AMP) с одним независимым экземпляром ядра на каждое физическое ядро. Такая конструкция устраняет накладные расходы на межъядерную синхронизацию внутри ядра и позволяет каждому ядру работать со своей собственной политикой планирования и временной областью.
==Аппаратная поддержка==
STK предназначен для процессоров ARM Cortex-M, охватывающих ядра от ARMv6-M до ARMv8.1-M (от Cortex-M0 до M55) и RISC-V RV32I и RV32E. Поддерживаются как мягкие, так и жесткие числа с плавающей запятой. Ядро было проверено на платах разработки, включая STM32F0DISCOVERY (Cortex-M0), NUCLEO-F103RB (Cortex-M3), STM32F4DISCOVERY (Cortex-M4F), NXP FRDM-K66F (Cortex-M4F), NXP MIMXRT1050 (Cortex-M7) и Raspberry Pi Pico 2 W. (Cortex-M33 и RISC-V).
==Разработка и тестирование==
STK включает в себя эмулятор планирования x86 для Microsoft Windows|Windows, позволяющий создавать, отлаживать и модульно тестировать один и тот же код приложения на настольном ПК без физического оборудования. Логика планировщика обеспечивает 100% покрытие модульными тестами, а все фиксации проверяются на соответствие целям QEMU для каждой поддерживаемой архитектуры. Планирование можно визуализировать с помощью SEGGER SystemView.
==Производительность==
Тесты, проведенные на STM32F407VG (Cortex-M4 с частотой 168 МГц) в феврале 2026 года и сравнивающие STK v1.04.2 с FreeRTOS V10.3.1, показали, что STK обеспечивает повышение пропускной способности задач на 31 %, снижение использования оперативной памяти на 25–55 % (~ 7 КБ против ~ 9–11 КБ) и снижение джиттера планирования примерно на 17 % в сценарии с большим количеством задач. Компромиссом является больший объем Flash-памяти (~25 КБ против ~13 КБ), что является следствием архитектуры шаблонов C++.
==Лицензия==
SuperTinyKernel выпускается под лицензией MIT, разрешающей бесплатное использование в коммерческих проектах, проектах с закрытым, открытым исходным кодом и академических проектах. Neutron Code Limited предлагает профессиональные услуги, включая помощь в сертификации безопасности (IEC 61508, IEC 62304, ISO 26262, DO-178C) и коммерческую поддержку на основе SLA.
==См. также==
* FreeRTOS
* embOS
* Сравнение операционных систем реального времени
* *[https://github.com/SuperTinyKernel-RTOS/stk SuperTinyKernel на GitHub]
Операционные системы реального времени
Встроенные операционные системы
Свободные операционные системы
Операционные системы ARM
Операционные системы RISC-V
Программное обеспечение C++
Лицензионное программное обеспечение MIT
Подробнее: https://en.wikipedia.org/wiki/SuperTiny ... (STK)_RTOS
Мобильная версия