- •Общесистемное программное обеспечение компьютерных систем управления реального времени
- •Требования к ос рв (минимальные):
- •1. Понятие потока (нити)
- •2. Многопоточность (многопроцессность) и вытеснение задач по приоритетам.
- •3. Операционная система должна поддерживать механизм синхронизации потоков с предсказуемыми характеристиками
- •4. Механизм наследования приоритетов
- •Основные характеристики ос рв
- •Размер системы и возможность исполнения, системы из пзу (rom)
- •Механизмы реального времени.
Общесистемное программное обеспечение компьютерных систем управления реального времени
Операционной системой реального времени называется такая система, которая может быть использована для построения систем жесткого реального времени.
Напомним, что системой «жесткого» реального времени называется система, где неспособность обеспечить реакцию на какие-либо события в заданное время является отказом и ведет к невозможности решения поставленной задачи.
Одно из коренных внешних отличий ОС реального времени от ОС общего назначения — четкое разграничение систем разработки и систем исполнения.
Система исполнения ОС РВ — это набор инструментов (ядро, драйверы, исполняемые модули), обеспечивающих функционирование приложения реального времени.
Система исполнения ОСРВ и компьютер, на котором она выполняется, называют целевой системой.
Система разработки – это набор средств, обеспечивающих создание и отладку приложения реального времени.
Большинство современных ведущих ОСРВ поддерживают целый спектр аппаратных архитектур, на которых работают системы исполнения (Intel, Motorola, PowerPC, RISC, MIPS и другие).
Это объясняется тем, что набор аппаратных средств — часть комплекса реального времени и аппаратура должна быть также адекватна решаемой задаче, поэтому ведущие ОСРВ перекрывают целый ряд наиболее популярных архитектур, чтобы удовлетворить самым разным требованиям по части аппаратуры.
Системы разработки (компиляторы, отладчики и всевозможный вспомогательный инструментарий) работают, как правило, в популярных и распространенных ОС, таких как UNIX и Windows.
Большинство ОС РВ имеют резидентные средства разработки, исполняющиеся в среде самой операционной системы реального времени, — особенно это относится к ОС РВ класса «ядра». Средства разработки ОС РВ как правило содержат средства удаленной отладки, средства профилирования (измерение времен выполнения отдельных участков кода), средства эмуляции целевого процессора, специальные средства отладки взаимодействующих задач, а иногда и средства моделирования.
Требования к ос рв (минимальные):
в операционной системе должно существовать понятие потока (нити);
операционная система должна поддерживать многопоточность (многопроцессность) и вытеснение задач по приоритетам;
операционная система должна поддерживать механизм синхронизации потоков с предсказуемыми характеристиками;
должен иметь механизм наследования приоритетов;
поведение операционной системы должно быть известным и предсказуемым (внутренние задержки прерываний, переключения задач, драйверов и т.д.).
Рассмотрим каждое из данных требований.
1. Понятие потока (нити)
Потоком называется непрерывная последовательность команд, которые выполняются непосредственно процессором (CPU).
Таким образом, любая программа, исполняемая процессором в текущее время, является потоком.
Введение понятие потока в операционную систему означает возможность параллельного выполнения нескольких программ.
По сути, поток является функцией, вызываемой из программы, однако в отличие от обычных функций, ее вызов не прерывает выполнение вызвавшей ее программы.
В POCIX – совместимых системах (к ним относятся большинство ОС РВ) для создания потоков используется функция pthread_create() в которую передается в качестве аргумента имя подпрограммы-потока.
Подпрограмма, вызываемая данной функцией, создается внутри текущего процесса.
Поток может создаваться также как отдельный процесс.
Процессом называется окружение (среда выполнения) программы вместе с ее выполняемым кодом.
Окружением или средой выполнения задачи относятся ресурсы памяти, возможности доступа к устройствам ввода/вывода и различным системным ресурсом, которые операционная система создает для выполнения программы при ее вызове.
Программа включает главный поток процесса, т.е. тот, с которого начинается его выполнение. Он оформляется как функция main, а остальные потоки – как функции с параметром – указателем типа void и возвращаемым результатом – указателем типа void которые, компонуются в единый исполнимый модуль. Данный модуль содержит коды как главного потока (функции main()) так и остальных потоков.
Процесс всегда включает в себя как минимум один поток.
Для создания процесса в POCIX – совместимых системах используются следующие основные функции system() – запускает процесс с использованием механизма командного интерпретатора для запуска программы, spawn() – при использовании данной функции ОС создает для процесса окружение (выделяет адресное пространство и т.д.) и загружает в него программу, указанную в аргументах функции, ехес() – закрывает текущий процесс и в его окружение загружает программу указанную в аргументах функции, fork() – создает для процесса окружение (выделяет адресное пространство и т.д.) и загружает в него копию программы, вызвавшей данную функцию. Выполнение копии программы начинается с команды, следующей за вызовом функции fork() процесса-родителя
