Как стать автором
Обновить

Комментарии 11

задаётся при помощи константы MAKS_TICK_RATE_HZ

Именно MAKS, не MAX?
«ОСРВ МАКС» — Операционная Система Реального Времени для Мультиагентных Когерентных Систем.

Так что именно MAKS. Такая политика руководства применительно к данному конкретному продукту. Там даже комментарии все на русском. Тоже не от незнания английского.
Прошу прощения, не сразу переключился со своего контекста и не сообразил, что MAKS — не от слова МАКСИМУМ.
Это вторая статья из цикла, а я так и не понял, зачем я это читал, смогу ли я (как инженер-программист) использовать вашу ОС в своих проектах?
Как вы планируете распространять свою ОС, какая будет лицензия?
Извините, но пока это выглядит как пиар ход для привлечения внимания к какому-то коммерческому продукту, который вы, возможно, выкатите в следующих статьях.
Начну издалека, но это важно. Давным-давно, в прошлом тысячелетии, сдавал я курсовик преподавательнице, которая осуществляла на нашей кафедре нормоконтроль дипломов. И поэтому в её требованиях к отчёту было, что всё должно соответствовать ЕСПД. А я, работая на заводе, имел личный томик ЕСПДшных ГОСТов и, так получилось, что выучил его почти наизусть.

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

— Давайте выйдем в коридор, покажем десяти первым встречным Ваш отчёт и спросим, понятен ли он им?
— Хорошо, но ещё покажем ворох документов на ДВК и спросим, понятен ли им и этот ворох
— Думаете, это хорошо?
— Зато по ЕСПД

Тогда всё кончилось хорошо, мы сошлись на написании небольшого приложения в свободной форме…

Переходим к нашим дням. Я участвовал в проектировании идеологии ОС, я делал прототип. Затем – с ядром работала группа разработчиков, а я был отвлечён другими делами, и только иногда помогал идеологически. Шло время. Ядро обрело полную функциональность и массу детских болезней. Затем эти болезни оттуда изъяли, встал вопрос об опытной эксплуатации…

Но там такое дело. Для сертификации ОС, документация на неё должна соответствовать ЕСПД. И для большинства серьёзных Заказчиков – тоже. Поэтому… В общем, смотрите начало комментария. Итак. Передо мной лежат ЕСПД-шные документы, передо мной лежит ядро… И я задаю один простой вопрос: «Как это работает?». При том, что я знаю всю идеологию. И при том, что я – лицо заинтересованное в начале работы. При этом я ничего не понимаю. А если это будет сторонний человек, который просто обязан быть настроен скептически?

Собственно, тогда и родилась идея в дополнение к официальной документации, от которой не отвертеться, сделать художественное руководство. Эта задача легла на меня. Я изучил текущий вариант ОС, и попутно – описал её так, чтобы было понятно простому программисту, сделав акцент именно на отличия работы под нашей ОС от стандартных общепринятых подходов программирования под ту же Windows. Это руководство долго пылилось в запасниках, ни разу не попадая в открытый доступ… И вот, наконец, было решено его опубликовать здесь.

Правда, есть в команде и противоположное мнение, что ЕСПДшная документация вполне красива, и некоторые сторонние разработчики (именно программисты, а не бюрократы) её хвалили. И даже по ней начинали программировать под ОС. Но это никак не противоречит моей идеологии «Больше документов, хороших и разных». Кто лучше читает ЕСПД – прочтёт ту документацию, кто там ничего не поймёт (вроде меня) – тому лучше художественный текст. И при чтении художественного текста, всё равно точные прототипы следует смотреть в ЕСПДшном документе (или в заголовочных файлах, кому как нравится).

Теперь про доступность ОС. Скачать демо версию ядра можно хоть сейчас с нашего сайта. Там же, кстати, лежит документация ЕСПДшная. Но лицензия там – чисто для ознакомления. В коммерческих целях – надо покупать. Можно было бы написать, что программисты могут убедить руководство сделать это. Но понятно, что никто этим никогда заниматься не будет, чудес не бывает.

Тем не менее, среди наших Заказчиков есть производители отечественных микроконтроллеров. Так что может оказаться, что на стол простому программисту ляжет плата на базе микроконтроллера и предписание использовать именно нашу ОС. И та самая документация, полностью соответствующая ЕСПД… Надо бы противоикотное средство заранее закупить, так как боюсь, вспоминать нас будут многие непривычные к тому стилю, и делать это будут вдумчиво. А вот те, кто сейчас прочёл этот цикл статей – хмыкнут, скажут: «Где-то что-то я такое видел», отыщут его и найдут сначала сухое теоретическое описание (эти два поста), а также более практический следующий, и уже совсем практический, который будет через один. Ну, и более, более следующие. И поймут, что не так страшен чёрт, как его малюют.

P.S. про лицензию возможны обновления. Сейчас идёт согласование с высшим руководством, чтобы ничего лишнего не наобещать. Если всё будет утверждено — будет ещё один комментарий.
Согласование дополнения про лицензии «на верхах» прошло. Давайте я вставлю комментарий руководителя по поводу лицензий в виде прямой речи. Пересказывая, могу что-то утерять или исказить. Поэтому лучше прямую речь.

Текущая лицензия – лежит на сайте вместе с демкой. Бесплатно – только изучение.

Думаю можно озвучить, что мы планируем сделать ядро полностью бесплатным. Для начала – для некоммерческого использования, и это случится, по всей вероятности, уже до конца года. Также всерьез рассматриваем возможность сделать бесплатным и коммерческое применение. Не потому, что нет спроса – спрос уже сейчас гораздо выше ожидаемого. Но для более быстрого распространения. Платными же останутся отдельные модули (например, Mesh), сертифицированные дистрибутивы и т.п. То есть массовый пользователь не будет в чем-то ограничен, оплата потребуется только в случае применения в особо крупных и специализированных промышленных проектах.

Почему не сделали бесплатной сразу – чтобы быть в состоянии поддерживать наших клиентов. В случае взрывного роста популярности наша служба поддержки моментально бы захлебнулась. А так – постепенно наращиваем свои возможности, аккуратно регулируя величину спроса лицензионной политикой.
в общем мне не понятно, как у молодого автора процесс/поток (в общем — единица планирования) может переходить из состояния «заблокирован» сразу в состояние «выполняется»
Допустим, все потоки почему-то заснули с целью ожидания тех или иных ресурсов. Например, взводимых по прерыванию. И вот прерывание пришло, один из ресурсов освободился. Работающих потоков — нет, все ждут. Само собой, один из них начнёт выполняться.
Кстати, более реальный случай. Освободился ресурс, которого ждал поток с более высоким приоритетом. Тоже начнётся его исполнение.
переключение задач происходит по таймеру, который работает с фиксированной частотой.…. Допустим, задача А исполняется за 700 мкс, после чего передаёт управление функцией Yield(). Планировщик поставит на исполнение задачу Б. Но через 300 мкс придёт прерывание от таймера, и планировщик передаст управление дальше.

Почему бы не давать задаче Б 1000 + 300 мкс? Тогда задача Б не ущемляется, а, наоборот, поощрается. Остальным задачам от этого, как минимум, не хуже, а если и задача Б завершится раньше, то и следующей задаче перепадёт больше машинного времени.
На первый взгляд, такой подход выглядит адекватнее и воплощаться должен просто.
В целом — согласен. Там так было — до написания этого документа, никто и не обращал внимания на данный факт. Потом разработчики ядра прочли и сказали: «А точно!». И задумались о том, как переделать. Но рутина засосала. Ведь на самом деле — этот третий режим используется настолько редко… А разработчиков — настолько мало (сколько бы ни было — всегда не хватает)… А более срочных задач — горы. Поэтому пока будет красной рамкой в документе.

Тем не менее, я разработчикам ссылку на этот комментарий сейчас перешлю.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории