Проектирование КПСВВ ядра ОСЖРВ и зачем оно такое чудо...
Posted: Fri Sep 14, 2007 12:03 pm
Всем кому интересно + стимуляция собственного анализа своих ядер и разбор их недостатков под этим углом зрения, рекомендую на "нейтральной" территории свою темку-статейку в виде собственных анализов, рассуждений и проектирования
Буду рад вашим веским аргументам и умным вопросам! Спасибо за внимание!http://www.xlevel.ru/forum/YaBB.cgi?board=is;action=display;num=1189758782;start=0 wrote: Гм, Гм... Всем кому не страшны такие матюки - привет!
Для начала пара-тройка вводных определений.
Итак, здесь, рубрика концепций ОС, значит ноу хау, как впрочем и хау ноу обязаны быть здесь.
Тем, кому "ОСЖРВ", даже после расшифровки как Операционная Система Жёсткого Реального Времени ничего не говорит по существу - можно не тужиться и дальше не читать, кликать далее по просторам инета. Мне интересны/нужны собеседники "чувствующие на собственном опыте" необходимость и суть ЖРВ.
Итак, введение, так сазать .
КПСВВ... хе-х! Напоминает былое КПСС!? - но это пожалуй только для тех, кто это знал, поэтому особо меня не умущает. Расшифровочка: Командный Процессор Синхронного Ввода-Вывода.
Долго "мутил" название и всеже остановочка на этом. Думаю меня поймут, конечно после ознакомления с сутью.
1. Я не отталкивался ни в теории ни в концепции ни тем более в практике от чего либо постулированного, стандартизованного, изученного мною или даже знакомого, поэтому ОСБОЗНАЮЩИХ в ОСРВ прошу сразу "макнуть носом" в доки и проинформировать меня об "изобретании велосипеда", если это так!
2. Хотелось бы слышать не повальную критику, а понимание сути и я бы сказал НЕОБХОДИМОСТИ этого КПСВВ, с точки зрения автора, как я её понимаю.
3. Наличие дельных вопросов и предложений.
Для начала скажу вещь буквально выстраданную. Железячные LowLevel проблемы и собственно программирование (об этом и речь далее) гораздо лучше знают люди хотябы частично знакомые с: радиоэлектроникой, циклограммами, осциллограммами, тактами, стробированием, защёлкиванием данных, затягиванием фронтов и их дребезгом... Все непонимающие эти тонкости обычно являются программистами высокого уровня (в плане архитектурных слоёв ПО и взвимодействия) и соответственно "летают" где-то высоко и, как правило, сразу скажут - а нафига, зачем?
Истоки проблем.
Не берусь сказать про ВСЕ ОСи на свете, глобально, но, как правило "железячникам" составляет массу хлопот состыковать многозадачную ОСь плохо ориентированную на СИНХРОННОЕ взаимодействие с периферийными устройствами и самое важное ДОСТИЧЬ ТРЕБУЕМОГО РЕЗУЛЬТАТА в виде четкой и НАДЁЖНОЙ работы этого стыка! Поясню на бытовом примере с бытовой ОС очень массового применения, которой сегодня де-факто является винда. Да и не только она, а и все ей подобные, по архитектурно-концептуальному построению попадают сюда, они ведь друг на друга смотрят и изучают. Соответственно и копируют недостатки друг друга наследование однако!
Задачка для наглядности следующая.
Исходные условия: есть РС, винда, есть прога управления периферийным устройством, пусть через самый быстрый ВНЕШНИЙ порт РС - LPT, который прямым выходным кодом может осуществлять воздействие и осуществлять ответное чтение состояние железки. Ну и сама железка....., пусть это будет некий шаговый двигатель, как исполнительный механизм...э-э-э-э... Оооо! пусть это стабилизатора центра тяжести самодельного робота! Классно! Между прочим, масса энтуЗаЗистов во всём мире мается подобными творениями, устраивают соревнования, состязания...
А что? "Оглянитесь", да почитайте про тех, кто хотел подняться в небо! Сколько попыток, сколько заблуждений и неудач! А МЫ ТЕПЕРЬ вполне сносно летаем ведь! Вполне возможно и серьёзное роботостроение в недалеком будущем... Но ОС ЖРВ ему очччччень необходима! Уверен, УБЕЖДЁН!
Ага, дальше значит. Состояние железки. Пусть это некий позиционерный код. Типа угломер перемещения реального положения центра тяжести влево-вправо от идеальной стабилизационной точки "нашего" робота . Итак, считаем, что постановка задачи есть и железка у нас чудесная, т.к. она при правильном, дозированном компенсационном воздействии шагового двигателя способна обеспечить равновесие агрегата, т.е. робота по существу. Обратная связь, как фактический замер отклонения(!) КОДОМ в "+" или "-" от устойчивого положения обеспечивается угломером, значения которого КАК МОЖНО БЫСТРЕЕ ДОЛЖНЫ попасть через порт LPT в нашу виндовую программу-стабилизатор. Да, вот еще что. Для полноты красок, сказу, что промедление компенсирующего воздействия свыше 1 мс - НЕДОПУСТИМО, т.к. грозит аварией, взрывом, техногенной катастрофой... что угодно себе для нагнеталова ответственности РЕШЕНИЯ этой комплексной задачи придумайте
На мой взгляд, такой абсурдный пример вполне даже реален как по существу требований, так и по существу того или иного результата. Ну что, интересно что дальше? Продолжение следует, как говорится. Или будет следовать.