4.6. Строение систем реального времени
память и тем самым работает быстрее (так как исключаются задержки на трансляцию виртуального адреса в
физический).
Поскольку все приложения и сами микроядра работают в одном адресном пространстве, то они
загружаются в память, начиная с неизвестного на момент компиляции адреса. Следовательно, приложения и
микроядра не должны зависеть от начального адреса (как по коду, так и по данным (последнее обеспечить
значительно сложнее)). Это свойство автоматически обеспечивает возможность записи приложений и
модулей в ПЗУ, с последующим их исполнением как в самом ПЗУ, так и в оперативной памяти.
Микроядра по своим характеристикам напоминают структуры, используемые в других операционных
системах, однако есть и свои различия.
• Микроядра и модули. Многие ОС поддерживают динамическую загрузку компонент системы,
называемых модулями. Однако, модули не поддерживают объектно-ориентированный подход
(напомним, микроядро является фактически представителем некоторого класса). Далее, обмен
информацией с модулями происходит посредством системных вызовов, что достаточно дорого.
• Микроядра и драйверы. Многие ОС поддерживают возможность своего расширения посредством
драйверов (специальных модулей, обычно служащих для поддержки оборудования). Однако,
драйверы часто должны быть статически связаны с ядром (т.е. образовывать с ним связанный
загрузочный образ еще до загрузки) и должны работать в привилегированном
(суперпользовательском) режиме. Далее, как и модули они не поддерживают объектно-
ориентированный подход и доступны приложениям только посредством системных вызовов.
• Микроядра и DLL (Dynamically Linked Libraries, динамически связываемые библиотеки). Многие
системы оформляют библиотеки, из которых берутся функции при динамическом связывании, в виде
специальных модулей, называемых DLL. DLL обеспечивает разделение своего кода и данных для всех
работающих приложений, в то время, как для микроядер можно управлять доступом для каждого
конкретного приложения. DLL не поддерживает объектно-ориентированный подход, код DLL не
является позиционно-независимым, и потому не может быть записан в ПЗУ.
4.6. Строение систем реального времени
Систему реального времени можно разделить как бы на три слоя:
1. Ядро - содержит только строгий минимум, необходимый для работы системы: управление
задачами, их синхронизация и взаимодействие, управление памятью и устройствами ввода/вывода;
размер ядра очень ограничен: часто несколько килобайтов.
2. Система управления - содержит ядро и ряд дополнительных сервисов, расширяющих его
возможности: расширенное управление памятью, вводом/выводом, задачами, файлами и т.д.,
обеспечивает также взаимодействие системы и управляющего/управляемого оборудования.
3. Система реального времени - содержит систему управления и набор утилит: средства разработки
(компиляторы, отладчики и т.д.), средства визуализации (взаимодействия человека и операционной
системы).
Критерии выбора ОСРВ:
• производительность,
• надежность, круглосуточная готовность,
• поддержка различных типов процессоров,
• поддержка многопроцессорности,
• наличие средств разработки на требуемом языке,
• наличие механизмов реального времени,
25