Нормы ESSE консорциума VITA (VMEbus International Trade Association) находятся в стадии разработки, но уже оказывают влияние на разработчиков ОСРВ в силу весомости организации VITA (напомним, тина VME занимает лидирующее положение среди шин для промышленных компьютеров и встраиваемых систем). Нормы, прежде всего, ориентированы на унификацию приложений для встраиваемых систем в области телекоммуникаций, автомобилестроения и промышленности. Основной целью норм ESSE также является стандартизация ОСРВ (ядра и подсистемы ввода/вывода).
13.7
Стандарт SCEPTRE
Стандарт SCEPTRE (Standartization du Cceur des Produits Temps Reel Europeens) (европейский стандарт на основы систем реального времени, здесь игра слов: sceptre по-французски означает "скипетр") разрабатывался в 1980-90 годы. За время его создания появились новые концепции в ОСРВ, не все из которых успели найти отражение в стандарте. В стандарте
— объединены усилия инженеров и исследователей в разработке групп спецификаций для промышленных приложений;
— даны определения и описания набора методов и подходов, используемых в ОСРВ;
— определены семь основных целей, которые должна преследовать ОСРВ; это:
1. адекватность поставленной задаче,
2. безопасность (система должна быть максимально устойчивой к аппаратным и программным сбоям),
3. минимальная стоимость,
4. максимальная производительность,
5. переносимость (возможность реализовать систему на другом типе процессора, адекватном поставленной задаче),
6. адаптивность (способность системы приспосабливаться к новому управляемому ею оборудованию и/или задачам),
7. модульность (система должна состоять из достаточно независимых компонент, из которых можно построить систему, достаточную для решения поставленной задачи на имеющемся оборудовании).
|
Весь сервис, предоставляемый операционной системой, разделен в стандарте на следующие группы:
• коммуникации (межпроцессорное взаимодействие),
• синхронизация (синхронизация процессов),
• контроль и планирование задач,
• управление памятью,
• управление прерываниями и оборудованием ввода/вывода,
• высокоуровневый интерфейс ввода/вывода и управления периферийными устройствами,
• управление файлами,
• управление транзакциями (сообщениями и передачами данных),
• обработка ошибок и исключений,
• обмен сигналами,
• взаимное исключение.
Стандарт определяет основные виды состояния задач.
• Не существует: нет связанного с задачей дескриптора (структуры: данных, характеризующей задачу с точки зрения операционной системы).
• Существует: задача обладает определенным дескриптором.
• Не исполнима: задача существует, но не может ни активизироваться, ни продолжиться.
• Исполнима: задача существует и её можно исполнить.
• Не обслуживается: задача исполнима, но требует активизации или успешно завершена.
• Обслуживается: задача исполнима, начинает исполнение и не терминирована.
• Ожидает: задача обслуживается и ожидает выполнения определенного условия для продолжения своего исполнения.
• Активна: задача обслуживается и не ожидает выполнения какого-либо условия, а только ожидает когда освободится процессор от других задач.
• Готова: задача активна и ожидает процессора.
• Выполняется: задача использует процессор.
|
Стандарт определяет основные виды межзадачного взаимодействия:
• Обмен сигналами (событиями). Хотя событие предполагает наличие хотя бы двух задач, стандарт SCEPTRE асcоциирует событие с единственной задачей. Сделано это по следующим причинам:
— хотя событие может ожидаться несколькими задачами, с ним необходимо связана единственная очередь ожидания;
— ассоциация события только с одной задачей минимизирует расходы на адресацию при обмене событиями (вся необходимая информация, которой обмениваются задачи должна быть "заложена" в самом событии).
Хотя событие связано с одной задачей, обмен событиями между двумя задачами является операцией, в которой участвуют обе задачи: одна задача ждет сигнала, а вторая его посылает. Событие с точки зрения SCEPTRE - это объект, принимающий два состояния: "прибыл" или "не прибыл". Над событиями определены элементарные операции:
— послать.
— ожидать,
— очистить (удалить поступившее событие),
— проверить (поступление).
• Коммуникация. Стратегии коммуникации между задачами, работающими на одном компьютере, реализованы в виде одной структуры очереди:
— очереди ожидающих задач,
— очереди сообщений.
Над очередями (организованными по принципу FIFO, First In - First Out) определены следующие элементарные операции:
— положить элемент (задачу, сообщение) в очередь,
— взять элемент (задачу, сообщение) из очереди,
— очистить очередь,
— проверить наличие элемента (задачи, сообщения).
• Исключения - это неожиданная ситуация, в результате которой задача не может далее исполнятся. Детектирование исключений может быть программным или аппаратным. Типы исключений:
|
— синхронные (например, при подсчете времени),
— асинхронные (все остальные, например, ситуация деления на 0).
Для обслуживания исключения необходимы
— обслуживающая программа,
— соответствующая задача (в состоянии ожидания исключения),
— механизм переключения от текущей задачи к задаче обработки исключения,
— механизм возврата из задачи обработки исключения к текущей задаче.
• Семафоры - это высокоуровневый механизм синхронизации задач.
Различают:
Двоичные (булевские) семафоры— это механизм взаимного исключения для защиты критичного разделяемого ресурса; определены следующие элементарные операции:
* взять (если семафор уже "взят" другой задачей, то эта операция переводит задачу в состояние ожидания освобождения семафора),
* вернуть (если семафор ожидается другой задачей, то она может быть активизирована и может вытеснить текущую задачу, например, если ее приоритет выше),
* попробовать взять (если семафор свободен, то взять его, иначе вернуть признак занятости семафора без перевода задачи в состояние ожидания; используется, если задача может продолжить работу без затребованною ресурса, например, если можно использовать другой ресурс).
Один семафор может ожидаться несколькими задачами, поэтому система организует очередь задач, ожидающих семафор. В этой очереди могут быть задачи с разным приоритетом, поэтому должна быть возможность управления порядком активизации задач из очереди (в порядке поступления (FIFO) или в порядке поступления, начиная с самых приоритетных (такая очередь называется приоритетной)).
Счетные семафоры — это механизм взаимного исключения для защиты ресурса, который может быть одновременно использован не более, чем ограниченным фиксированным числом задач (например, 4-х канальный порт ввода/вывода может быть использован не более чем четырьмя задачами, требующими по одному каналу каждая). Семафор представляет собой счетчик, уменьшаемый при каждой выдаче ресурса и увеличиваемый при каждом ею возвращении. Если счетчик не находится в заданном диапазоне (ресурса больше нет), то при затребовании ресурса задача перейдет в состояние ожидания. Над семафором определены следующие элементарные операции:
* взять k единиц из семафора, т.е. уменьшить счетчик на k (если в счетчике нет k единиц, то эта операция переводит задачу в состояние ожидания наличия как минимум k единиц в семафоре),
* вернуть k единиц в семафор, т.е. увеличить счетчик на k (если семафор ожидается другой задачей и ей требуется не более k единиц, то она может быть активизирована и может вытеснить текущую задачу, например, если ее приоритет выше),
* попробовать взять k единиц из семафора (если семафор свободен, то взять k единиц из его, иначе вернуть признак занятости семафора без перевода задачи в состояние ожидания).
Как и для двоичных семафоров система организует приоритетную очередь задач, ожидающих семафор.
• Модель клиент — сервер - это высокоуровневый комбинированный механизм коммуникации задач. Состоит из очереди передаваемой информации (сообщений) и события, посылаемого в случае, если очередь не пуста.
В настоящий момент стандарт развивается для поддержания:
• требований "жесткого" реального времени,
• независимости от окружения (типа процессора, вида компьютера, языка разработки приложений),
• распределенных и многопроцессорных вычислений,
• требований повышенной надежности.
Заключение
Основной особенностью операционных систем реального времени (ОСРВ) является обеспечение обработки поступающих заданий в течение заданных интервалов времени, которые нельзя превышать. Поток заданий в общем случае не является планомерным и не может регулироваться оператором (характер следования событий можно предсказать лишь в редких случаях), то есть задания поступают в непредсказуемые моменты времени и без всякой очередности. В то время как в ОС, не предназначенных для решения задач реального времени, имеются некоторые накладные расходы процессорного времени на этапе инициирования задач (в ходе которого ОС распознает все пожелания пользователей относительно решения своих задач, загружает в оперативную память нужную программу и выделяет другие необходимые для ее выполнения ресурсы), в ОСРВ подобные затраты могут отсутствовать, так как набор задач обычно фиксирован, и вся информация о задачах известна еще до поступления запросов. Для подлинной реализации режима реального времени необходима (хотя этого и недостаточно) организация мультипрограммирования. Мультипрограммирование является основным средством повышения производительности вычислительной системы, а для решения задач реального времени производительность становится важнейшим фактором. Лучшие характеристики по производительности для систем реального времени обеспечиваются однотерминальными ОСРВ. Средства организации мультитерминального режима всегда замедляют работу системы в целом, но расширяют функциональные возможности системы. Одной из наиболее известных ОСРВ для персональных компьютеров является ОС QNX.
Мартин Тиммерман сформулировал следующие необходимые требования для ОСРВ [DEDSYS]:
- ОС должна быть многозадачной и допускающей вытеснение (preemptable),
- ОС должна обладать понятием приоритета для потоков,
- ОС должна поддерживать предсказуемые механизмы синхронизации,
- ОС должна обеспечивать механизм наследования приоритетов,
- поведение ОС должно быть известным и предсказуемым (задержки обработки прерываний, задержки переключения задач, задержки драйверов и т.д.); это значит, что во всех сценариях рабочей нагрузки системы должно быть определено максимальное время отклика.
Литература
1. Часть 1 «Программируемые контроллеры». 40 стр.
2. Часть 2 «Операционные системы реального времени. OS-9. Промышленные сети». 156 стр.
3. Часть 3 «Инструментальная система программирования логических контроллеров ISaGRAF». 228 стр.
4. Часть 4 «Средства организации верхнего уровня систем автоматизации. SCADA – система InTouch». 248 стр.
5. Приложение «Практические работы». 100 стр.
6. Журнал "СТА" (Современные Технологии Автоматизации), 96, 97 г.
7. Журнал "Открытые системы", 97 г. (https://www.osp.ru/os/index)