Сл. ЛК
Классификация событий
ЛК по СРВ от 18.10.12
Тема: «Задачи. Потоки. Процессы в системе реального времени»
Задача – это набор инструкций, предназначенных для выполнения логически законченной функции системы.
Процесс – это программный модуль (файл), который во время исполнения имеет в памяти свои независимые области для входа и выхода данных.
Поток – более узкое понятие, которое может использовать общие участки кода или данных в рамках единого программного модуля.
Основное свойство процессов – это установка приоритетов
Приоритет – это некое целое число, присвоенное задачи и характеризующее ее важность по сравнению с другими задачами, выполняемыми в системе.
Приоритет бывает:
1. статический
2. динамический
Состояние задачи (статус):
1. активная (выполняемая)
2. готовая (подготовлена и ожидает очереди на исполнение)
3. блокированная (отложенная). Действие приостановлено до выполнеиния каких-то событий. Может начать выполняться заново или с места остановки.
|
|
4. нулевая задача (пустая). Запускается, когда нет других задач, и система не должна простаивать.
5. реентерабельность (повторная входимость). Возможность без негативных последствий временно прервать выполнение какой-либо функции или подпрограммы. А затем вызвать эту функцию или эту подпрограмму снова.
Контекстная задача - это набор данных, необходимых для выполнения задачи.
По типу наст. события\По времени | Периодические | Спорадические | Апериодические |
Внешнее изменяет состояние внешней среды | Периодическое поступление сетевого сообщения | Аппаратная защита от частого или неправильного нажатия клавиш | Сбой аппаратной части, хакерская атака |
Внутреннее (изменяет состояние внутри системы) | Программная защита от зацикливания, периодическое тестирование состояний задач | Коррекция параметров в результате сбоя с помощью математических вычислений | Чисто программная ошибка. Вмешательство программиста. |
Временное | Системный таймер | Программируемый интервальный таймер | Тайм-аут передачи сетевого сообщения |
Семафоры – число, которое позволяет распределить доступ к ресурсам системы. Для того чтобы семафоры могли использоваться во встроенных приложениях СРВ должны удовлетворять следующим требованиям:
1. Предотвращение тупиков.
2. Предотвращение затяжных приоритетов
3. Минимальное влияние на задачи, не разделяющие критическую секцию.
4. Минимальное потребление ресурсов.
Стандарты в области программного обеспечения и аппаратной поддержки.
1. Стандарт POSIX отвечает за переносимый интерфейс ОС на уровни исходных текстов.
|
|
IEEE 1003.1
2. Unix. В этом стандарте отсутствует механизм приоритетности времени.
3. VMEbus – стандартная наращиваемая аппаратно и программно независимая многопроцессорная архитектура сопряжения различных устройств и принятая в качестве стандартов IEC, ANSI.
4. TIPC – стандарт для обеспечения взаимодействия между ОС в сетевых средах с другими многопроцессорными системами связи.
5. MPI – спецификация, разработана специально для языка С и Fortrun. Включает в себя около 200 функций. MPICH –библиотека. Позволяет установить очередность выполнения задач.
6. Стандарты по спецификации и безопасности ОС РВ
7. DO-178 Определяет процедуру сертификации программного обеспечения на основе установленного уровня качества системы.
8. Рассматривает 5 уровней отказа задач. Для каждого уровня определен набор требований ПО.
9. ARINC – 653
10. Стандарт по оценке безопасности СРВ. Одобрен агентством национальной безопасности и национальным институтом стандартизации США. CCITSE 1996 года.
11. MILS/ Требования к ядру ОС, его функциональности.
12. RSC – Стандарт для повторного использования компонентов ОС. Определяет критерии возможности многократно использовать ПО без повторной сертификации.
Российские документы, определяющие требования к ПО:
1. ГОСТ ИСО/МЭК 51904 – 2002. Программное обеспечение встроенных систем. Общие требования к разработке и документированию.
2. ГОСТ ИСО/МЭК 12207 – 99 IT рассматриваются процессы жизненного цикла программных средств.
3. ГОСТ ИСО/МЭК 15408 – 2002. Методы и средства обеспечения безопасности. Критерии оценки безопасности ИС.
SmallTalk
Assembler имеет возможности для создания ОС РВ. Позволяет гибко и полно использовать программное и аппаратное обеспечение компьютера. Программы, записанные на этом языке, занимают мало памяти. Машинно-зависимый язык.
Pascal разработан 1968 году в Швейцарии Николасом Виртом.
Особенность. В нем заложено структурное программирование. Простота использования. Не используется для СРВ.
C разработан в 1972 году для реализации ОС UNIX. Язык используется для создания СРВ.
Особенности: Структурированный, мобильный, программирование на этом языке отличается компактностью и быстротой исполнения.
С++ Разработан Бьерном Страуструпом. Язык высокого уровня. Отвечает всем требованиям современного программирования. Работает как с данными так и с функциями. С++ язык объектно-ориентированного программирования, используется при разработке СРВ.
ADA – язык, специально созданный для СРВ. Специально как единый язык СРВ.
RTL/2 - Набор библиотек или модулей, той или системы программирования, поставляемых вместе с компилятором, ОС или средой разработки программы.
Спецификации:
1. VPM
2. RSL
3. Lotos
4. TLC
Общие требования к языкам программирования систем реального времени:
1. Получение наивысшей производительности приложений реального времени, т.е. язык должен быть компилируемого типа
2. Получение доступа к ресурсам оборудования с помощью языка, либо с помощью выбранных библиотечных функций этого языка.
3. Возможность вызова процедур написанных на другом языке, а также возможность последовательности вызова подпрограмм.
4. Переносимость приложений, т.е. возможность скомпилировать его другим компилятором, который может быть на той же платформе либо в той же ОС, или в другой ОС.
Возможности языка реального времени:
1. Описание параллельных процессов
2. Переключение процессов
3. Синхронизация процессов
4. Обмен данными между процессами
5. Функции, связанные со временем, с таймерами, с абсолютным и относительным временем ожидания
6. Прямой доступ к внешним аппаратным портам
7. Обработка прерываний
8. Обработка исключений
VxWorks
Микроядро