ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Четверг
21 ноября
947183
Dingo (20.09.2019 05:40 - 06:42, просмотров: 46036)
Навеяно топиком -> Собственно, что для вас значит [embedded OS] в контексте МК? Почему вы используете/не используете (вытесняющую, кооперативную, main loop)? http://caxapa.ru/940414.html
Самому использовать доводилось очень мало, примерно полтора раза. Какие мысли есть: 1) предоставление абстракции "задачи", что позволяет упорядочить функционал и уменьшить связанность программы; 2) задачи тянут за собой средства взаимодействия - управление ресурсами и обмен данными ака мьютексы, семафоры, сообщения; 3) предоставление готового функционала: п. №1 позволяет нарабатывать библиотеки за счёт уменьшенной связанности исходников, п. №2 - за счёт предоставления унифицированного взаимодействия. Именно предоставление готового функционала уменьшает человеко-часы на достижение результата; 4) уровнем выше уже встаёт вопрос изоляции задач - тут уже управление памятью (MPU приветствуется); Собственно, ради чего писал пост: вытесняющие ОС ограничивают время реакции задачи и тратят часть времени на переключение стеков, а память - на их хранение (с запасом); кооперативные имеют меньшие накладные расходы, но не умеют принудительно остановить задачу при появлении более приоритетной. Это так? Или я просто не знаю о такой ОС, которая "и умная, и красивая"? Или же я их не умею готовить? По п. №2 - какие минимальные возможности делают ОС именно ОС в ваших глазах? Хотелось бы почитать ваше понимание и видение ситуации.