Я только поступил в апирантуру. Сразу оговорюсь что волею судьбы научные интересы моего научного руководителя и моей работы (читать - практической базы) оказались разные, хоть и в одной сфере. В связи с этим разбираться в выбранной теме приходится самостоятельно.
В этом году я защитил магистерскую по теме проектирования ПО для микроконтроллеров без ОС, но с планировщиком, применительно к системам автоматического управления (САУ). Скажу честно, хоть было и новое в этой работе, по большей части я просто изучал и приглядывался к принципам построения ОС.
В своей кандидатской работе я собираюсь объединить практику и теорию. На работе стоит задача переписать ПО для САУ на новый МК. Не возбраняется введение ОСРВ (раньше подзадачи тупо выполнялись в цикле определенной длительности). Естественно, целой ОСРВ там и не надо, ПО объемом <256 Кб. Но надо:
-многозадачность (многопоточность);
-защита программ друг от друга (виртуализация, МК без MMU), скорее всего аппаратными средствами;
-по возможности оптимизация.
Я не претендую на звание разработчика полноценной ОСРВ. Во избежание споров, возникающих даже из-за трактовок определения ОСРВ, и из-за использования в работе аппаратных средств назову её просто исполнительной средой (ИС).
Итак, моя работа будет состоять:
-Определение критериев надежности ПО (основные источник - статьи Шеремета В.П., кники Липаева В.В. и стандарты типа КТ178) и описание того, как ИС позволит их увеличить для задач моего класса.
-Выбор оптимального алгоритма планирования для специфических задач САУ (всегда есть циклические процессы ввод-обработка-вывод вместе с обычными процессами). Источники пока - Таненбаум, Курниц и интернеты, википедии.
-Определение специфики моего класса задач в необходимости абстракций (файловой системы не нужно, проецирования файлов в память не нужно, работы с сетью не нужно и т.п.). Написание ИС.
-Пример использования ИС на конкретном примере (надеюсь еще и получить внедрение).
Вопросы:
Какие еще материалы посоветуете по надежности ПО?
Какие материалы посоветуете по распространенным ОСРВ (RTX Keil, FreeRTOS, scmRTOS (на форуме не нашел, каюсь), MicroC/OS-II, uClinux, QNX, VxWorks, LynxOS) и их основным принципам? Именно основным, так как не хочу нарваться на уже изобретенный велосипед, а большинство статей носят обзорный характер (например, Курниц про FreeRTOS) и не рассказывают как устроен алгоритм виртуализации для МК без MMU, есть ли он вообще и прочие тонкости.
Ну и, собственно, ваше мнение по описанной проблеме. Что добавить/убавить, на чем заостриться, как облагородить тему для обретения значимости уровня кандидатской.