Студопедия

Главная страница Случайная страница

Разделы сайта

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторикаСоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника






Операционные системы реального времени






 

ПОСЛЕ ИЗУЧЕНИЯ ГЛАВЫ ВЫ СМОЖЕТЕ:

• Подробно описать понятия и термины, касающиеся операционных систем реального времени, ОСРВ (RTOS — Real Time Operating System).

• Понять принципы работы ОСРВ.

• Различать жесткие, твердые и мягкие ОСРВ.

• Описать основные свойства записи, списков связей, стеков и очередей.

• Дать определение динамическому распределению памяти и описать связанные с ним преимущества и недостатки.

• Описать методы управления задачами с помощью блока управления задачами.

• Объяснить важность системных таблиц, блоков управления устройствами и диспетчера при реализации ОСРВ.

• Объяснить различия между алгоритмами планирования ОСРВ.

• Рассказать о проблемах, связанных с ОСРВ.

Операционные системы реального времени достаточно давно и успешно используются в промышленных программируемых контроллерах и во встраиваемых приложениях на основе 32-разрядных МК. Однако в настоящее время, в связи со значительного роста функциональности и быстро действии 16-разрядных МК наблюдается тенденция внедрения ОСРВ в системы на основе этой элементной базы. Поэтому авторы предлагают читателю познакомится с основными идеями, на основе которого строится ОСРВ.

 

8.1. Рассказ: официант — «живая» операционная система реального времени

 

В этой главе мы представим вам понятия, связанные с операционными системами реального времени. Начнем с притчи, чтобы показать некоторые ключевые моменты и концепции ОСРВ.

Я (Стивен Ф.Барретт) испытываю глубокое и подлинное уважение к профессии официанта. Я восхищаюсь умениями, связанными с этим трудным, часто неблагодарным ремеслом. Я был непосредственным свидетелем всех сложностей этой профессии, когда был старшеклассником средней школы. По вечерам и выходным я подрабатывал в качестве уборщика/посудомойки/помощника повара в офицерском обеденном клубе на авиабазе Минот, в Северной Дакоте. Вот тогда я с трепетом наблюдал за работой официантов. Так или иначе они были способны с успехом запоминать и выполнять требования людей за множеством столиков одновременно. Порой казалось, что они способны делать все сразу. Если случалось что-то необычное, например на обеде появлялся генерал со своей свитой, или ребенок опрокидывал на стол свой стакан молока, они сходу реагировали на эти непредвиденные события. И снова, даже при этих дополнительных покушениях на свое драгоценное время, они умудрялись каким-то образом следить за всеми событиями сразу. Они должны были одновременно следить за состоянием множества заказов на различных столиках и наличием блюд на кухне (например, знать, сколько еще осталось ежедневных удешевленных обедов). Для этого они должны были постоянно держать тесную связь с поварами.

А когда случались небольшие паузы, официанты успевали готовиться к работе следующего дня, протирая серебро или сворачивая салфетки и т.д. Да, при такой интенсивной работе эти талантливые люди, должно быть, очень крепко спали по ночам.

Через несколько лет мне пришлось работать в пиццерии в Беллевю, штат Небраска, где мне была предоставлена возможность сменить мое умение в приготовлении пиццы, на работу официанта в ресторане. Я продержался официантом два дня. А потом попросил администратора, разрешить мне возвратиться к моей кулинарной деятельности. Мне было гораздо легче работать поваром, чем официантом.

Так вот, официант — это классический пример операционной системы, реального времени (ОСРВ) — системы, которая должна реагировать на множество событий, пользуясь ограниченными ресурсами. Во встроенной системе управления, основанной на ОСРВ, мы имеем только одно устройство, последовательный процессор, которое должно обнаруживать множество событий, сортировать их по приоритетам, и реагировать на них соответствующим образом. При этом процессор не может обслуживать до полного завершения только событие с самым высоким приоритетом, игнорируя все остальные. Он должен каким-то образом реагировать на событие с самым высоким приоритетом в течение некоторого времени, а затем перейти к обработке другого события со следующим уровнем приоритета. Нетрудно представить себе, что ждет официанта, который всю свою энергию и внимание будет уделять только одному столику, игнорируя все остальные.

Процессоры, переключаясь с одной задачи на другую, должны помнить такие ключевые детали происходящих событий, как значения основных регистров, программных счетчиков, и так далее. Назовем эту информацию контекстом задачи. Точно так же, как официант переключает свое внимание «от столика к столику», так и процессоры должны помнить состояние каждого своего «столика».

Как мы уже сказали, когда происходит незапланированное событие с более высоким приоритетом, процессор (или официант) должен своевременно ответить на это новое событие, не игнорируя при этом полностью все остальные. Кроме того, должна иметься связь между отдельными задачами, которая называется межзадачной связью.

Наша цель в этой главе состоит в том, чтобы познакомить вас с понятиями и сложностями разработки ОСРВ системы. Будем считать, что вы не имеете никакой предварительной подготовки в этой области. Мы не предлагаем вам написать собственную ОСРВ, отказавшись от покупки готовой версии. Наша цель состоит в том, чтобы рассказать о понятиях и проблемах ОСРВ. А выбор между разработкой собственной системы и покупкой коммерческой версии мы оставляем за вами.

 

8.2. Что является целью ОСРВ?

 

В этом разделе мы обсуждаем основные концепции ОСРВ. Как только вы получите общее представление о том, что же такое ОСРВ, мы начнем обзор основных концепций, касающихся их разработки.

Так что же такое операционная система реального времени? Согласно большинству фундаментальных определений, ОСРВ — это операционная система процессора, которая должна своевременно обрабатывать несколько событий при ограниченных ресурсах. Во встроенной системе управления целый ряд событий обрабатывается одним устройством — последовательным процессором. Операционная система должна обрабатывать многие, часто одновременные события, каждое из которых требует для своей для этого драгоценного времени. Так как мы используем одно устройство, последовательный процессор, он может выполнять в каждый момент только один шаг программы. Мы исследуем методы, которые позволяют так определить систему приоритетов событий, чтобы сначала были обработаны события с самым высоким приоритетом, но при этом другие события с более низким приоритетом не игнорировались.

Все события обрабатываются как бы одновременно (хотя мы должны снова подчеркнуть, что это не соответствует действительности, так как мы используем для обработки только одно устройство — последовательный процессор).

События, которыми управляет ОСРВ могут быть периодическими, асинхронными или возникающими в произвольное время. Например, если мы разрабатываем ОСРВ для управления всей вашей домашней работой, некоторые события, такие, например, как корректировка температуры в помещениях, будут происходить периодически, в то время как другие, такие как срабатывание охранной или пожарной сигнализации, не могут быть запланированы и происходят в любое время.

Мы исследуем здесь широкий диапазон систем ОСРВ — от простых систем опроса (поллинга) до сложных, с несколькими различными прерываниями и рассмотрим также смешанные системы, которые являются комбинацией обоих типов систем. При простом опросе, операционная система регулярно проходит через ряд задач. Например, операционная система, контролируя местную защиту, могла бы последовательно циклически опрашивать состояние каждого датчика защиты в помещениях вашей фирмы. При этом система защиты как бы задает каждому датчику вопрос «А здесь все в порядке?» Система же, использующая несколько прерываний, вместо этого реагировала бы на события в тот момент, когда они случаются. Например, при активации датчика защиты, он вызывал бы тревогу в операционной системе через прерывание, показывая, что произошло некоторое важное событие, требующее реакции. Различие между двумя операционными системами заключается в том, что при поллинге, операционная система постоянно опрашивает состояния, а система, управляемая прерыванием, приводится в готовность, когда происходит некоторое ключевое событие. Важно подчеркнуть, что ни одна методика не лучше другой. Каждая имеет собственные преимущества и недостатки. В действительности важно, чтобы особенности каждой операционной системы соответствовали ее конкретному применению.

Пример: Имеется пример, иллюстрирующий, что операционная система может выполнять критическую функцию, но при этом использовать метод поллинга. Первый автор книги работал в старших классах и во время обучения в колледже в электронной фирме. Фирма разрабатывала систему защиты от хищения телевизоров для мотелей или гостиниц. Эта система должна была опрашивать телевизоры в каждом номере, чтобы установить их наличие. Система непрерывно и последовательно опрашивала все телевизоры в гостинице или мотеле. Если телевизор не отвечал, в главном офисе гостиницы звучал сигнал тревоги и высвечивался номер помещения на семисегментном дисплее. И снова, продолжался опрос, поскольку все действия имели равный приоритет. Это была простая методика, которую к тому же довольно легко было реализовать.

А теперь вернемся к теории ОСРВ. Любое действие операционной системы в ОСРВ называется задачей. Так как система предназначена для обработки целого ряда задач, она называется многозадачной системой. Считается, что все задачи выполняются одновременно. То есть отдельная задача выполняется до определенной точки перехода внутри задачи или до определенного момента, связанного с функциями задачи. Затем операционная система передает управление другой задаче, ожидающей выполнения. Управление возвращается первой задаче спустя некоторое время, и она продолжает выполнять соответствующие действия с того места, где была прервана. Так как операционная система передает управление от задачи к задаче, важно, чтобы состояние всех ключевых регистров, связанных с задачей сохранялось во время выполнения других задач. Ключевые значения регистров называются контекстом задачи. Такая работа ничем не отличается от деятельности официанта в приведенном ранее рассказе. Когда официант переключает внимание с одного столика на другой, ему, или ей необходимо запомнить состояние предыдущего столика — его контекст.

Операционные системы реального времени могут быть классифицированы по степени риска, связанного с невыполнением задачи за установленное ограниченное время обработки. Если система не завершает назначенную задачу за ограниченное время, то происходит сбой в работе ОСРВ. Даже удачное завершение задачи с запаздыванием должно считаться сбоем. Например, если мы рассматриваем ОСРВ, корректирующую направление полета ракеты, то будет считаться сбоем, если вычисления не будут закончены достаточно быстро, чтобы воздействовать на ход ракеты. По критичности ограничений, налагаемых на время отклика, системы ОСРВ можно разделить на следующие категории [8]:

• Жесткая система реального времени: система, где выход момента окончания вычислений за установленные временные рамки ведет к сбою системы;

• Твердая система реального времени: система, в которой небольшой выход за установленный предельный интервала может допускаться;

• Мягкая система реального времени: система, эффективность которой ухудшается при выходе за пределы временных ограничений, но система продолжает функционировать.

ОСРВ выполняет все действия, связанные с задачей, включая следующее:

• Управление задачей, включая планирование и диспетчеризацию;

• Связь между задачами (межзадачная связь);

• Управление системой памяти;

• Управление системой ввода–вывода (I/O);

• Синхронизация;

• Управление обработкой ошибок;

• Управление cообщениями.

При рассмотрении встроенных систем ОСРВ, мы обычно касаемся только небольшой части операционной системы, которая называется ядром и обеспечивает ключевые функции планирования задачи, диспетчеризации и межзадачной связи.

Далее в настоящей главе мы рассмотрим эти понятия.

 

Вопросы для самопроверки

 

Вопрос: Что такое задача?

Ответ: Каждое действие ОСРВ определено как задача.

Вопрос: Что называется контекстом?

Ответ: Текущее значение ключевых регистров, связанных с задачей.

Вопрос: Что называется межзадачной связью?

Ответ: Связь между различными задачами.

Вопрос: Каково различие между жесткой, твердой и мягкой ОСРВ?

Ответ: В жесткой системе, выход времени выполнения задачи за установленный предел ведет к сбою системы; в твердой системе может допускаться незначительный выход за установленные временные рамки; в мягкой системе, выход за установленные временные рамки снижает эффективность системы, но приводит к сбоям.

Вопрос: Что такое ядро?

Ответ: Ядро — очень небольшая часть операционной системы, которая обеспечивает ключевые функции планирования задачи, диспетчеризации, и межзадачной связи.

Прежде чем перейти к дальнейшему изучению ОСРВ, мы должны сделать дать некоторых понятия, касающиеся ОСРВ.

 






© 2023 :: MyLektsii.ru :: Мои Лекции
Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав.
Копирование текстов разрешено только с указанием индексируемой ссылки на источник.