6. Типы систем
Общие встраиваемые архитектуры программного обеспечения есть несколько различных основных типов.
Цикл управления
В этой конструкции, программное обеспечение имеет простой цикл, который вызывает различные подпрограммы, часть каждого аппаратного или программного обеспечения для управления подпрограмма. Прерывания часто используется, чтобы установить знак или обновить другие части программного обеспечения блокнота можете прочитать.
Система использует простой API для включения и отключения прерываний полный комплект. При правильном обращении, он может обрабатывать вложенные вызовы подпрограмм во вложенных, внешний позволяет вложенные прерывания восстановить предыдущее состояние прерывания. Этот метод является самым простым способом для достижения экзоядро из.
Обычно есть некоторые рутинные периодические прерывания контроль в режиме реального времени, используя программный таймер цикла, когда таймер истекает, когда он будет работать соответствующий подпрограмму или установить соответствующий флаг.
Любые аппаратные события, которые могут произойти должно иметь поддержку программного таймера, метизы событие происходит примерно раз в триллион ошибка, для современного оборудования, это, вероятно, происходит один раз в год, для миллионов крупномасштабной производственного оборудования это упущение программное обеспечение таймера в коммерческом программном обеспечении могут быть катастрофическими.
Иногда тестирования программного обеспечения работает программное обеспечение безопасности на основе таймера, который периодически аппаратного сброса программного обеспечения сторожевой пес. Если программное обеспечение не пропустите событие, программное обеспечение безопасности таймер захватить его. Если ошибки таймера безопасности, аппаратный сторожевой сброс системы.
Вы можете использовать указатель на каждом осуществлении государственной машины государственной функции машины, эта функция может быть использована C ++, C или ассемблере, или как. Изменения состояния в различных указателях на функции, каждый цикл будет работать выполнения указатель на функцию.
Многие дизайнеры рекомендуют читать каждый раз цикл устройств ввода и вывода, и сохранить полученные результаты, которые могут обеспечить функционирование процесса логического от тех же параметров.
Многие дизайнеры, как государственной машины предназначены для проверки состояния каждого лишь один-два содержания, как правило, проверить аппаратные и программные события таймеры.
Дизайнеры предложили государственная машина состояние многоуровневая должны позволить государственном уровне машина работает меньше, чем раньше этого уровня смогут работать в соответствии с правильной информацией.
Такие, как внутреннего сгорания контрольного такие сложные функции, как правило обрабатываются в соответствии с многомерной таблицы, просмотровых лечение кодовая таблица обычно осуществляется без выполнения сложных расчетов, с тем чтобы уменьшить размер и стоимость таблицы программного обеспечения может быть разница между операцией записи.
В маленьких микроконтроллерах, особенно стек только 128 групп в 8051, контроль кольцо позволяет хорошо использует разъем статически выделенные данные, охватывающие локальные переменные. В этом механизме, адрес памяти, ион вызов программы дерева ближе к концу переменной, чтобы получить выше. При запуске нового филиала, его переменные могут быть перераспределены в предыдущем филиала отказались пространстве.
Одним из основных недостатков простой контур управления является то, что она не может гарантировать, чтобы ответить на конкретное событие аппаратных средств.
Прочная конструкция может легко гарантировать прерывание не будет долго запрет, так что код прерывания может работать в очень точное время.
Цикл управления Другим важным недостатком является время, чтобы добавить новую функцию усложнится. Это занимает много времени, чтобы разложить алгоритм должен быть осторожным, чтобы только небольшая часть пробега в главном цикле.
Преимущество этой системы заключается в ее простоте, и в небольшом цикле программного обеспечения, чтобы быстро запустить почти никто не заботится об этом непредсказуем.
Это еще одно преимущество этой системы заключается в обеспечении качества работы программного обеспечения, бедные операционные результаты не могут быть отнесены к другим операционным системам.
Невытесняющее задача
Невытесняющее система задача очень похожа на вышеописанной системе, однако этот цикл скрыт в API. Определим ряд задач, каждая задача получает свой собственный стек подпрограмм, а затем, когда задача находится в режиме ожидания, он вызывает простоя рутины (обычно называют "пауза", "отложенный", "сдача (выход)" и т.д.).
Архитектура с аналогичными свойствами оснащены очереди событий, есть время цикла удаления и вызова подпрограммы в соответствии с перечнем очереди домена OK.
Преимущества и недостатки этой архитектуры очень похожи на контур управления, но этот метод проще добавить новое программное обеспечение, просто напишите новую задачу, или добавить его в интерпретатор очереди.
Преимущественного таймеры
Используйте любой из выше системы, но добавил перспективе в соответствии с таймером прерывания подпрограммы системного таймера, который дает системе возможность добавить новый, поэтому первый раз процедура таймер может работать в гарантированное время.
Кроме того, код впервые имеет возможность доступа к своим собственным структурам данных в незапланированном времени. Таймер подпрограммы должны быть обработаны так же, как подпрограммы прерывания.
Преимущественное задача
Использование выше невытесняющее систему многозадачности с преимущественного таймеру или другие прерывания запуска.
Такие системы вдруг стал очень разные. Любой код задачи, скорее всего, вред другие задачи данных & emdash; они должны быть зубчатый сегментации. Для доступа к общим данным должен использовать некоторую стратегию для синхронизации, чтобы контролировать, как очереди сообщений, семафоры, или без блокировки механизма синхронизации.
На этом этапе развития организации часто будет купить операционную систему реального времени. Если отсутствие таланта в организации может написать операционную систему или операционная система будет на несколько продуктов, которые могут быть мудрым выбором. Это, как правило, для разработки планов по увеличению шести до восьми недель, и навсегда после программисты могут обвинить задержки на нем.
Микроядро и внешнее ядро
Этот подход пытается организовать систему проще настроить, чем монолитная, обеспечивая схожие черты.
Микроядро является логическим развитием операционной системы реального времени, обычный способ организовать ядро операционной системы, чтобы выделить память и процессор между потоками для переключения. Пользовательский процесс для достижения основной функции в качестве файловой системы, интерфейса пользователя.
Микроядро в 1950 году, начал первую попытку, а потому, что компьютер, чтобы переключиться между задачами и обмен данными между задачами очень медленно, поэтому люди отказались от микроядра и любовные MULTICS и UNIX-стиле большое ядро. В целом, микроядра в переключения задач и быстро связи между задачами является более успешным, когда в медленном времени провал.
Внешнее ядро, используя обычный подпрограмму называет, чтобы получить высокую эффективность связи, программно-аппаратный комплекс предназначен для программистов, он также может быть продлен. Ядро ресурсов (который может быть частью библиотеки) выделяют процессорного времени, памяти и других ресурсов. Такие, как многозадачность, большие возможности ядра, такие как сети и файловой системы обеспечивается кода. Подключения к базам данных могут быть динамически расширены или совместно. Различные библиотеки могут даже использовать различные приложения, но все ресурсы приходят из ядра ресурсов.
Виртуальная машина
Некоторые системы авионики, которые используют несколько коммерческих компьютер. Таким образом Кроме того, каждый компьютер в своих нескольких экземплярах аналоговых важные программы работают и голосование контроль (голосов) на нескольких компьютерах.
Преимущества искусственной среды, что, даже если компьютер имеет другое дня не удается, программа может мигрировать в разбиении рабочего программного обеспечения, голоса не должны быть затронуты.
Обычно виртуализация программное обеспечение работает в режиме пользователя компьютера, он захватывает, инструкции для запуска смоделированный доступ к оборудованию и не в режиме пользователя.
Контрольно-пропускной пункт вычислений
Другим часто используемым механизмом является двух компьютеров для расчета для немного, а затем сообщить их результаты на этой точке. Если расчет компьютер орех, он будет закрыт.
Управление (монолитные) операционной системы
Такие системы обычно отсутствует система финансирования народного встроенного проекта, но из нескольких авторов этой статьи точки зрения, это, как правило, не соответствует действительности, и их логика:
Операционная система специально упакованный библиотека повторно используемого кода. Если код является полезным, дизайнеры не будете терять время и деньги, в противном случае они бесполезны.
Операционная Система бизнес не встроен аппаратный интерфейс. Например, если вы используете Linux, чтобы написать контроллер двигателя или телефонную станцию, большинство из фактических операций управления являются IOCTL вызова, в то время как нормальная чтения, записи и интерфейс запроса бесполезно. Таким образом, операционная система, чтобы предотвратить развитие большое практическое.
Большинство встраиваемых систем не справиться с офисными задачами, так что большую часть кода операционных систем офисных впустую. Например, подавляющее большинство встраиваемых систем никогда не использовать файловую систему или экран, поэтому файловая система и интерфейс часть графического пользовательского тратится впустую, эти коды не только влияет на надежность системы.
ОС защита офис аппаратные средства не позволяют работу программы пользователи, которые серьезно мешает встроенный развития.
Операционная система должна быть портирована на встраиваемых системах, то есть, драйверы устройств должны быть переписаны в любом случае, это самая трудная часть операционной системы, так что используйте это операционная система практически не эффект.
Операционная система действительно полезная функция портативные маленькие кусочки кода. Например, основной интерфейс TCP / IP до 3000 строк кода, другой примерно такого же размера, как пример простого файловой системы. Если конструкция требует этот код, можно использовать менее чем на 10% от вложенной финансирования развития системы может быть сделано без необходимости платить гонорары авторского права, просто переписать его. Если код имеет достаточно универсальность, обложку журнала за встроенных систем, как правило, не имеют сбыта роялти кода на языке С.
Тем не менее, инженеры многих задач не согласны с тем, Embedded Linux более и более популярным, особенно в такой мощной беспроводной маршрутизатор и систем глобального позиционирования встраиваемых систем. Некоторые из этих причин ниже:
Есть готовые портативный здравому встроенного кода реализации чип.
Они позволяют повторное использование драйвера общедоступных веб-серверов, межсетевых экранов, или другой код.
Разработка системы можно начать с сочетанием многих функций, освобождение времени может ликвидации ненужных функций, тем самым экономя потребляемой памяти.
Многие инженеры считают задача запускать приложения в режиме пользователя является более надежным, легче отлаживать, так что процесс развития проще и код более переносимым.
Многие встроенные системы не контролируют системы, как строгим требованиям в режиме реального времени, для многих приложений, таких как время отклика для встраиваемых систем Linux было бы достаточно.
Это требует более быстрый отклик, чем характеристики надежности обычно помещают на аппаратные средства.
Многие операционные системы реального времени взимается для каждого продукта, когда продукт является потребителем продукции, стоимость огромна.
Экзотические пользовательских операционных систем
Некоторые системы требуют безопасных, своевременных, надежных и эффективных возможностей, но не может достичь вершины архитектуры, строительства такая система имеет ряд хорошо известных методов:
1. Нанять реального программиста системы. Их стоимость очень мала, но может спасти отладки и связанные потери доходов в течение нескольких лет.
2.RMA (скорость монотонно анализ), могут быть использованы для оценки, является ли набор задач для выполнения на определенном аппаратной системе, в своей простейшей форме, конструкция персонал, чтобы обеспечить быстрый, чтобы завершить задачу с наивысшим приоритетом, в среднем, По крайней мере, 30% от процессора время простоя.
3. Гармония миссия эффективно оптимизировать процессор. В принципе, дизайн персонал, чтобы каждый кусок работы является работа с таймером пульса. На реальном времени операционная система трудно сделать, потому что они ждут устройств ввода и вывода, часто в состоянии переключаться с одной задачи, когда.
4. Ровно два приоритета (как правило, работают и запретить прерывания) систем с высоких приоритетных задач не могут дождаться релиза низким приоритетом огней групп или приоритетных проблемных инверсия других ресурсов,
5. Имейте монитор (монитор) системы не тупик. Монитор заблокированной части кода, чтобы отключить прерывания и другие превентивные задачи. Если монитор только на короткое код быстро бегать, система может не работать должным образом. Если вы можете доказать, что API-монитор может завершить работу во всех случаях, например, только отключить прерывания, то он не будет производить зависание системы условий.
Это означает, что два приоритеты и контролировать система является безопасным и надежным, потому что они не имеют никакого тупика и приоритет задачи инверсии. Если монитор способен выполнять до конца, то это никогда не будет висеть. Если вы используете гармонию задач, вы можете также довольно эффективным. Тем не менее, RMA не могу описать эти системы, приоритет лучше не везде, в том числе операционной системы и аппаратного обеспечения
