- •Тема 1. Основные понятия
- •Тема 2. История операционных систем
- •Тема 3. Основные принципы построения операционных систем
- •Тема 4. Микроядерные операционные системы
- •Тема 5. Макроядерные операционные системы
- •Тема 6. Монолитные системы
- •Тема 7. Многоуровневые системы
- •Структура операционной системы the
- •Тема 1. Мультипрограммность и мультизадачность
- •Тема 2. Приоритеты задач
- •Тема 3. Наследование приоритетов
- •Тема 4. Синхронизация процессов и задач
- •Тема 5. Предсказуемость
- •Тема 6. Интерфейсы операционных систем
- •Тема 7. Средства активной отладки операционных систем реального времени
- •Тема 1. Семейство операционных систем unix
- •Тема 2. Сетевая операционная система реального времени qnx
- •Тема 3. Семейство операционныхсистем os/2 warp компании ibm
- •Тема 4. Средства мониторинга операционных систем реального времени
- •Тема 5. Особенности отладки многоплатформенных распределенных систем
- •Тема 1. Историческая справка
- •Тема 2. Основные особенности архитектуры
- •Тема 3. Модель безопасности
- •Тема 4. Распределение оперативной памяти
- •Тема 5. Виртуальные машины
- •Тема 6. Модель «клиент-сервер
Литература
1. Операционные системы: разработка и реализация (+CD). Классика CS / Э. Таненбаум, А. Вудхалл. — СПб.: Питер, 2006. — С. 59–60.
2. Операционные системы: учебник для вузов / А.В. Гордеев. — 2-е издание. — СПб.: Питер, 2004. — С. 279–289.
3. Операционные системы реального времени: методическое пособие / Л.В. Калинин. — Ульяновск: «Инфофонд», 2009. — П.1.1.–1.3.
Модуль 1. АРХИТЕКТУРА ОПЕРАЦИОННЫХ СИСТЕМ
Тема 1. Основные понятия
Основные определения
Предметом настоящего обзора является отладка систем реального времени.
Под системой реального времени (СРВ) мы понимаем систему, в которой корректность функционирования зависит от соблюдения временных ограничений.
Система реального времени (СРВ) — это система, которая должна реагировать на события во внешней по отношению к системе среде или воздействовать на среду в рамках требуемых временных ограничений. Оксфордский словарь английского языка говорит о СРВ как о системе, для которой важно время получения результата. Другими словами, обработка информации системой должна производиться за определённый конечный период времени, чтобы поддерживать постоянное и своевременное взаимодействие со средой
Естественно, что масштаб времени контролирующей системы и контролируемой ей среды должен совпадать.
Под реальным временем понимается количественная характеристика, которая может быть измерена реальными физическими часами, в отличие от логического времени, определяющего лишь качественную характеристику, выражаемую относительным порядком следования событий. Говорят, что система работает в режиме реального времени, если для описания работы этой системы требуются количественные временны́е характеристики.
Характеристики систем реального времени
Процессы (задачи) систем реального времени могут иметь следующие характеристики и связанные с ними ограничения:
дедлайн (англ. deadline) — критический срок обслуживания, предельный срок завершения какой-либо работы;
латентность (англ. latency) — время отклика (время задержки) системы на внешние события;
джиттер (англ. jitter) — разброс значений времени отклика. Можно различить джиттер запуска (англ. releasejitter) — период времени от готовности к исполнению до начала собственно исполнения задачи и джиттер вывода (англ. outputjitter) — задержка по окончании выполнения задачи. Джиттер может возникать под влиянием других, одновременно исполняемых задач.
В моделях систем реального времени могут фигурировать и другие параметры, например, период и количество итераций (для периодических процессов), нагрузка (англ. load) — количество команд процессора в худшем случае.
В зависимости от допустимых нарушений временных ограничений системы реального времени можно поделить на системы жёсткого реального времени, для которых нарушения равнозначны отказу системы, и системы мягкого реального времени, нарушения характеристик которых приводят лишь к снижению качества работы системы .
Следует заметить, что определение жёсткого реального времени ничего не говорит об абсолютном значении времени отклика: это могут быть как миллисекунды, так и недели. Требования к системам мягкого реального времени можно задать только в вероятностных терминах, например, как процент откликов, выданных в установленные временны́е рамки. Интересно, что при проектировании предварительные расчёты легче выполнить для системы жёсткого реального времени, чем получить, например, долю выполняемых в срок задач в системе мягкого реального времени, поэтому разработчики таких систем часто пользуются инструментами и методиками для проектирования систем жёсткого реального времени.
События реального времени
События реального времени могут относится к одной из трёх категорий:
Асинхронные события — полностью непредсказуемые события. Например, вызов абонента телефонной станции.
Синхронные события — предсказуемые события, случающиеся с определённой регулярностью. Например, вывод аудио и видео.
Изохронные события — регулярные события (разновидность асинхронных), случающиеся в течение интервала времени. Например, в мультимедийном приложении данные аудиопотока должны прийти за время прихода соответствующей части потока видео.
Применение систем реального времени
С развитием технологий системы реального времени нашли применения в самых различных областях. Особенно широко СРВ применяются в промышленности, включая системы управления технологическими процессами, системы промышленной автоматики, SCADA-системы, испытательное и измерительное оборудование, робототехнике. Применения в медицине включают в себя томографию, оборудование для радиотерапии, прикроватный мониторинг. СРВ встроены в периферийные устройства компьютеров, телекоммуникационное оборудование и бытовую технику, такую как лазерные принтеры, сканеры, цифровые камеры, кабельные модемы, маршрутизаторы, системы для видеоконференций и интернет-телефонии, мобильные телефоны, микроволновые печи, музыкальные центры, кондиционеры, системы безопасности. На транспорте СРВ применяются в бортовых компьютерах, системах регулирования уличного движения, управлении воздушного движения, аэрокосмической технике, системе бронирования билетов и т. п. СРВ находят применения и в военной технике: системах наведения ракет, противоракетных системах, системах спутникового слежения.
Существующие СРВ являются многозадачными. Многозадачность реализуется через многопроцессность и многопоточность.
Многопроцессность в СРВ имеет существенные недостатки, поскольку требует поддержки времени выполнения для доступа к памяти, и, следовательно, при переключении контекстов системе нужно выполнить дополнительные действия.
Многопоточность — это наиболее распространенный подход при проектировании систем реального времени, при котором СРВ представляет собой один процесс, в рамках которого запущено несколько потоков.
Недостатком многопоточности является возможность модификации чужих данных какой-либо задачей (из-за отсутствия защиты). В связи с этим в СРВ представлены средства синхронизации, то есть средства, обеспечивающие задачам доступ к разделяемым ресурсам. К таким средствам относятся семафоры (бинарные и счетчики), мьютексы, очереди сообщений.
Структура СРВ приведена на рис. , где прикладной код — это совокупность пользовательских потоков управления, ОСРВ — операционная система реального времени, обеспечивающая планирование, синхронизацию и взаимодействие пользовательских потоков управления.
Рис. 1. Структура системы реального времени
Будем называть распределенную систему распределенной системой реального времени (РСРВ), если корректность ее функционирования зависит также и от ограничений, накладываемых на время обмена между компонентами системы.
Особенности отладки в системах реального времени
Отладка в СРВ направлена на обнаружение и исправление ошибок в прикладном коде. Она является одним из этапов кросс-разработки, схему которой можно представить следующим образом. Разработка приложения ведется как минимум на двух машинах: инструментальной и целевой. На инструментальной платформе происходит написание исходного текста, компиляция и сборка. На целевой — загрузка приложения, его тестирование и отладка.
Ввиду того, что целевая платформа, как правило, обладает более ограниченными ресурсами, чем инструментальная, отладка распределенных систем реального времени может быть двух видов.
Первый из них — имитация архитектуры целевой платформы, то есть возможность отладки целевых программных средств без использования самой платформы. Подобная имитация, как правило, не дает возможности провести подробное и полное тестирование ПО. Поэтому, такой тип отладки применяется только в случае отсутствия целевой платформы.
Второй способ — удаленная отладка (кросс-отладка). Кросс-отладка позволяет использовать ресурсы инструментальной системы при изучении поведения некоторого процесса в целевой системе.
Эффективность удаленной отладки зависит от типа связи инструментальной и целевой машин, а также от поддержки средств отладки со стороны целевой архитектуры.
Ключевым требованием к средствам отладки является возможность наблюдать и анализировать весь процесс выполнения отлаживаемых задач, а также системы в целом. В данной работе рассматриваются два метода отладки: активная отладка и мониторинг.
Суть активной отладки состоит в том, что отладчик имеет право останавливать выполнение задачи или всей системы, начинать или продолжать выполнение с некоторого адреса, отличного от точки останова, изменять значения переменных и регистров, и т.д. Недостаток этого метода заключается в том, что отладчик может вносить серьезные сбои в нормальную работу системы в связи с устанавливаемыми временными ограничениями. Этого можно избежать, остановив некоторую группу задач или всю систему целиком. Преимущество метода состоит в возможности корректировать поведение задачи в процессе ее выполнения.
Под мониторингом понимается сбор данных о задаче (значения регистров, переменных, и т. д.) или о системе в целом (стадии выполнения задач, происходящие события, и т. д.).
В процессе мониторинга отладчик практически не вмешивается в работу системы, обеспечивая нормальное ее функционирование, но вместе с тем не имеет возможности влиять на ход выполнения отлаживаемого приложения.
Ошибки в системах реального времени
Отмеченные выше методы отладки позволяют выявлять и устранять ошибки следующего характера:
1. Ошибки в программном обеспечении, влекущие неправильное выполнение задачи (безотносительно времени). Обычные ошибки, обнаруживаемые средствами активной отладки.
2. Ошибки в ОСРВ: ошибки планирования, синхронизации и связи. Для отладки, в этом случае, надо использовать один из способов мониторинга.
3. Логические ошибки, связанные с асинхронностью.
4. Ошибки, связанные с тем, что данные задачи были изменены другой задачей. Локализацию ошибок лучше проводить, используя мониторинг, а именно: осуществлять периодический контроль целостности данных, временно запрещать другим задачам доступ к некоторым участкам кода или данных.
