- •Предисловие
- •Системы реального времени
- •1.1. Особенности систем реального времени
- •2.Аппаратурная среда систем реального времени летательных аппаратов.
- •1.3. Требования к срв ла
- •1.4. Передача данных
- •1.4.1. Синхронная передача данных
- •1.4.2. Асинхронная передача данных
- •1.5. Концепция процесса, потока
- •3.Архитектуры ос рв и ядро ос рв
- •1.6.1. Ядро ос рв
- •1.6.2. Планирование заданий и загрузки процессоров
- •4.Механизмы синхронизации и взаимодействия процессов, потоков
- •1.7.1. Средства синхронизации с помощью таймеров.
- •1.7.2. Синхронизация процессов в Windows 2000, Windows xp с использованием событий
- •1.7.3. Использование семафора для синхронизации работы потоков
- •1.8. Программирование синхронной и асинхронной обработки данных
- •1.8.1. Асинхронная обработка данных
- •1.8.2. Синхронная обработка данных
- •2.1.3. Контрольные вопросы
- •6.Синхронизация потоков с использованием методов «Присоединение», «Барьер», «Мьютекс» и «Блокировки чтения - записи»
- •2.2.1. Порядок выполнения работы
- •2.2.2. Методические указания
- •2.2.3. Задание 1
- •2.2.4. Задание 2
- •2.2.5. Задание 3
- •2.2.6. Синхронизация потоков с использованием мьютексов
- •2.2.7. Задание 4
- •2.2.8. Синхронизация с применением блокировки чтения‑записи.
- •2.2.9. Задание 5
- •2.2.10. Задание 6
- •2.2.11. Контрольные вопросы
- •7.Взаимодействие между процессами с помощью сообщений. Модель «клиент/сервер». Таймеры
- •2.3.1. Порядок выполнения работы
- •2.3.2. Методические указания
- •2.3.3. Задание 7
- •2.3.4. Задание 8
- •2.3.5. Задание 9
- •2.3.6. Задание 10
- •2.4.2. Методические указания
- •2.4.3. Задание 16
- •2.4.4. Задание 17
- •2.4.5. Задание 18
- •2.4.6. Задание 19
- •2.4.7. Задание 20
- •2.4.8. Задание 21
- •2.4.9. Задание 22
- •2.4.15. Контрольные вопросы
- •Библиографический список
- •Оглавление
- •5. Установка ос qnx 48
- •6. Синхронизация потоков с использованием методов «Присоединение», «Барьер», «Мьютекс» и «Блокировки чтения - записи» 59
- •7. Взаимодействие между процессами с помощью сообщений. Модель «клиент/сервер». Таймеры 70
3.Архитектуры ос рв и ядро ос рв
СРВ могут быть представленными состоящими из трех компонентов: программное обеспечения, ОС РВ и аппаратное обеспечение. От выбора типа используемой ОС РВ зависит процесс разработки СРВ. Ниже приводятся основные архитектуры ОС1, которые существуют на сегодняшний день.
ОС РВ могут иметь различные структуры, которое оказывают влияние на разрабатываемое ПО.
В настоящее время можно выделить ОС с двумя принципиально различными архитектурами:
ОС РВ с жесткой структурой;
ОС РВ с архитектурой клиент – сервер.
Примеры ОС с жесткой структурой: Windows Embedded, LynxOS, WxWorks, VenturCom (расширение реально времени для ОС Windows 2000) и т.д.
Проблема при использовании таких ОС состоит в следующем. СРВ используют специализированные аппаратные средства, для работы с которыми необходимо разрабатывать драйверы устройств. Они работают на уровне ядра ОС, т.е. встраиваются в код ядра ОС. Поэтому любая ошибка (например, при обращении к ячейкам памяти) может привести к сбою свей системы. Кроме того, в уровень ядра входят диспетчер ввода/вывода, диспетчер процессов, диспетчер виртуальной памяти и т.д.. Все это приводит к увеличению размеров ядра и уменьшению надежности такой ОС. Если произойдет сбой хотя бы одной службы, находящейся на уровне ядра, то это повлечет к сбою всей системы в целом.
Более эффективная с точки зрения надежности является архитектура ОС организованной по принципу клиент–сервер, например QNX, рис.1.6.1.
|
Рис. 1.6.1 Модульная архитектура QNX |
В процессе работы такой системы возможно менять ее состав. Можно динамически удалять любые компоненты из работающей системы или добавлять их по мере необходимости. Драйверы устройств, в отличие от уровневых ОС, являются обычной программой, которая на входит в состав ядра. В результате повышается надежность и отказоустойчивость СРВ, т.к. каждый сервис является самостоятельным и его проще отладить. И в случае сбоя он может быть перезапущен без перезапуска всей системы. Она лучше масштабируется, поскольку ненужные службы или программы могут быть исключены без ущерба ее работоспособности.
Преимуществом ОС с жесткой структурой является то, что не ядру такой ОС не надо производит дополнительных переключений контекстов процессов и потоков при работе драйверов. ОС с архитектурой клиент – сервер затрачивают дополнительной время на их переключения. Например, QNX осуществляет четыре переключения контекстов потоков.
1.6.1. Ядро ос рв
Типовой состав ОС может варьироваться в очень широких пределах в зависимости от конкретной ЭВМ, назначения ОС и т.д. Самую главную часть ОС называют ядром. Для ОС РВ используется микрояда. Размеры микроядра, которое кроме программ содержит и необходимые для работы ОС управляющие данные могут варьироваться в широких диапазонах и масштабироваться (дополняться) дополнительными компонентами.
Практически все основные функции, выполняемые ОС и ОС РВ, реализуются управляющей программой (ядром – для ОС, микроядром – для ОС РВ).
Ядро ОС, как правило, содержит программы для реализации следующих функций:
обработка прерываний;
создание и уничтожение процессов;
переключение процессов и потоков из состояния в состояние;
осуществление механизмов диспетчирезации;
приостановка и активизация процессов, потоков;
синхронизация потоков, процессов;
организация взаимодействия между процессами, потоками;
манипулирование блоками управления процессами;
поддержка операций ввода-вывода;
поддержка распределения и перераспределения памяти;
поддержка работы файловой системы;
поддержка механизма вызова-возврата при обращении к функциям;
поддержка определенных функций по ведению учета работы машины (загрузка процессора, интенсивность использования памяти).
