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




Скачать 463.96 Kb.
НазваниеОсновные концепции систем реального времени
страница1/3
Дата публикации17.04.2013
Размер463.96 Kb.
ТипДокументы
shkolnie.ru > Информатика > Документы
  1   2   3
Глава 2


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

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

Управление процессами:

 

Производство пищевых продуктов

 

Химические производства

Автотранспорт:

 

Системы управления двигателем

 

Антиблокировочные тормозные системы

Офисная автоматика

 

Факсимильные аппараты

 

Копиры

Компьютерная периферия

 

Принтеры

 

Терминалы

 

Сканеры

 

Модемы

Роботы

Аэрокосмические системы

 

системы управления полётом

 

системы управления вооружением

 

системы управления реактивными двигателями

Бытовая техника

 

Микроволновые печи

 

Посудомоечные машины

 

Стиральные машины

 

Термостаты

Приложения систем реального времени проектировать сложнее, чем обычные приложения. Данная глава описывает основные концепции систем реального времени.

2.00 Системы типа "суперпетля"

Малые системы небольшой сложности проектируются, в основном, как показано на рисунке 2-1. Такие системы называются системами типа "суперпетля". Приложение представляет собой бесконечный цикл, в котором для выполнения требуемых задач (на заднем плане, также называемом уровнем задач) вызываются необходимые модули (то есть функции). Асинхронные события обрабатываются при помощи подпрограмм обработки прерываний, ISR (на переднем плане, также называемом уровнем прерываний). Критичные операции должны выполняться в ISR, чтобы иметь гарантированное время выполнения. Из-за этого ISR имеют тенденцию становиться длиннее, чем должны быть. Также, информация для фоновых задач, становящаяся доступной в результате работы ISR, не может быть обработана, пока не закончится текущий оборот бесконечного цикла выполнения приложения. Это называется откликом уровня задач. Худший случай для времени отклика уровня задач зависит от того, насколько быстро выполняется этот бесконечный цикл. Так как время выполнения кода обычно не постоянно, то время успешного выполнения одного оборота суперпетли ничем не определено, недетерминировано. Более того, если код модифицируется, это тоже оказывает влияние на величину отклика уровня задач.



Рисунок 2-1, системы типа "суперпетля".

2.01 Критическая секция кода

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

2.02 Ресурс

Ресурс - это любая сущность, используемая задачей. Это, например, устройства ввода-вывода, такие как принтер, клавиатура, дисплей, и т.д., или переменная, структура, массив и т.п.

2.03 Разделяемый ресурс

Разделяемый ресурс - это ресурс, который может быть использован более чем одной задачей. Во избежание повреждения данных каждая задача должна получать исключительный доступ к разделяемому ресурсу. Такой подход называется взаимным исключением и обсуждается в разделе 2.19, "Взаимное исключение".

2.04 Многозадачность

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

2.05 Задача

Задача, или поток, - это просто программа, полагающая, что только она одна выполняется на процессоре. Процесс проектирования приложения реального времени предполагает разделение всей программы на части, каждая из которых ответственна за свою долю работы. Каждой задаче назначается приоритет, её собственный набор регистров процессора, и её область стека, как показано на рисунке 2-2.

Рис. 2-2, многозадачность.

Каждая задача может находиться в одном из пяти состояний: сна, готовности, выполнения, ожидания события, или прерывания (см. рис. 2-3). Состояние сна соответствует задаче, которая находится в памяти, но не сделана доступной многозадачному ядру. Задача находится в состоянии готовности, когда она может выполняться, но её приоритет меньше, чем у выполняющейся в данный момент задачи. Задача находится в состоянии выполнения, когда она управляет процессором. Задача находится в состоянии ожидания события, когда ей требуется появление события (такого как завершение операции ввода-вывода, освобождение разделяемого ресурса, появление тактирующего импульса, истечение времени, и т.п.). И, наконец, задача находится в состоянии прерывания, когда во время её выполнения возникло прерывание и процессор занят процедурой его обработки. Рисунок 2-3 также показывает функции переключения состояния задачи, обеспечиваемые микроСи/ОС-II

.

Рисунок 2-3, состояния задачи.

2.06 Переключение контекста (переключение между задачами)

Когда многозадачное ядро решает запустить следующую задачу, оно просто сохраняет контекст (содержимое регистров процессора) текущей задачи в её стеке - области хранения контекста задачи, см. рисунок 2-2. Затем контекст следующей задачи восстанавливается из области его хранения, после чего продолжается выполнение кода задачи, чей контекст загружен. Такая последовательность действий называется переключением контекста, или переключением между задачами. Переключение контекста приводит к дополнительным затратам процессорного времени, тем большим, чем больше регистров у процессора. Время, требуемое для переключения контекста, определяется количеством регистров, которые нужно сохранить и восстановить.

2.07 Ядро

Ядро - это часть многозадачной системы, ответственная за управление задачами (или за распределение времени процессора) и межзадачное взаимодействие. Основной сервис, предоставляемый ядром - это переключение контекста. Использование ядра реального времени упрощает проектирование систем, так как позволяет осуществить разделение приложения на несколько задач, управляемых ядром. Ядро повышает требования системы к аппаратному обеспечению, так как требуется дополнительное ПЗУ для его хранения, дополнительное ОЗУ для структур данных ядра, и, что более важно, каждая задача требует пространство для её собственного стека, который быстро поглощает ОЗУ. Ядро также требует процессорного времени (обычно 2-5%).
Однокристальные микроконтроллеры обычно не могут работать под управлением ядра реального времени, так как имеют очень маленькое ОЗУ.
Ядро позволяет улучшить использование процессора, предоставляя такие обычно необходимые службы, как управление семафорами, почтовые ящики, очереди, временные задержки и т.п. Если Вы уже разрабатывали проекты, используя ядро реального времени, вы уже не захотите возвращаться к системам типа "суперпетля".

2.08 Диспетчер задач

Диспетчер задач - это часть ядра, ответственная за определение того, какая задача будет запущена следующей. Большинство ядер реального времени используют для этого систему приоритетов. Каждой задаче в зависимости от её важности назначается свой приоритет. Таким образом, в случае ядра реального времени с системой приоритетов управление процессором всегда будет получать готовая к выполнению задача с наивысшим приоритетом. Когда именно задача с наивысшим приоритетом получит управление, будет, конечно, определяться типом используемого ядра. Ядра, управляемые системой приоритетов, бывают двух типов - невытесняющие и вытесняющие.

2.09 Ядро невытесняющего типа

Ядро невытесняющего типа подразумевает, что задача сама уступает управление процессором другой задаче. Чтобы обеспечить видимость параллельной работы задач этот процесс должен происходить достаточно часто. Невытесняющее управление также называется кооперативной многозадачностью, так как задачи взаимодействуют друг с другом в процессе разделения времени процессора. Асинхронные события всё так же обрабатываются подпрограммами обработки прерываний (ISR). Запустившаяся подпрограмма обработки прерывания может сделать задачу с высоким приоритетом готовой к выполнению, но по завершении ISR управление возвращается прерванной задаче. Новая высокоприоритетная задача запустится только тогда, когда текущая задача уступит ей процессор.
Одно из преимуществ невытесняющего ядра состоит в том, что время реакции на прерывания может быть достаточно малым (см. далее обсуждение прерываний). Также, невытесняющее ядро может использовать на уровне задач нереентерабельные функции (обсуждаются позже). Нереентерабельные функции могут использоваться любой задачей без опасности разрушения данных другой задачей. Это возможно благодаря тому, что каждая задача может работать до завершения, то есть пока она сама не уступит процессор другой задаче. И, конечно, нереентерабельная функция сама не должна уступать процессор.
Время отклика уровня задач в случае ядра невытесняющего типа может быть гораздо хуже, нежели в системе типа "суперпетля", так как оно определяется временем выполнения самой длинной задачи.
Другое преимущество ядра невытесняющего типа состоит в меньшей необходимости применять средства контроля целостности разделяемых данных вроде семафоров для слежения за сохранностью данных. Если задача обладает процессором, то Вам не нужно беспокоиться о том, что она может быть вытеснена. Хотя такое правило соблюдается не всегда и в некоторых случаях семафоры должны быть использованы. Разделяемые устройства ввода/вывода могут требовать семафоров взаимного исключения, например, задача может требовать исключительного доступа к принтеру.


Рисунок 2-4, невытесняющее ядро.

Профиль выполнения кода в случае невытесняющего ядра показан на рис. 2-4. Задача F2-4(1) выполнялась, но была прервана, так как, если прерывания разрешены, процессор переходит к выполнению подпрограммы обработки прерывания (ISR) F2-4(2). Подпрограмма обработки прерывания (ISR) подготавливает обслуживание поступившего события F2-4(3), делая задачу с высшим приоритетом готовой к выполнению. В конце ISR процессор выполняет инструкцию Возврат из прерывания, после чего процессор возвращается к выполнению прерванной задачи F2-4(4). Задача продолжает выполнение с той инструкции, на которой она была прервана F2-4(5). Когда задача завершает выполнение, она вызывает службу, предоставляемую ядром для того, чтобы передать процессор другой задаче F2-4(6). Задача с высшим приоритетом начинает выполняться и обслуживает событие, о котором сигнализировала ISR F2-4(7).
Самая важная отрицательная черта невытесняющего ядра - это плохое время отклика на события. Задача с высшим приоритетом может быть вынуждена ждать довольно долгое время, пока текущая задача отдаст ей управление процессором. Как и для фонового выполнения в системах типа "суперпетля", время отклика уровня задач в системах с невытесняющим ядром точно не определяемо. Вы никогда точно не знаете, когда задача с высшим приоритетом получит управление.
Подводя итог обзора свойств невытесняющего ядра, можно сказать следующее: невытесняющее ядро позволяет каждой задаче работать, пока она добровольно не отдаст управление другой задаче. Прерывание вытесняет задачу, но после его окончания она продолжает выполнение. Время отклика уровня задач лучше, чем в системах типа "суперпетля", но оно тоже точно неопределимо. Очень немногие коммерческие ядра являются невытесняющими.

2.10 Вытесняющее ядро

Ядро вытесняющего типа применяется, когда особенно важно время отклика системы на события. Поэтому микроСи/ОС и большинство коммерческих ядер реального времени - это ядра вытесняющие. Управление процессором всегда отдано задаче с наивысшим приоритетом. Когда появляется готовая к выполнению задача с высшим приоритетом, текущая задача вытесняется (приостанавливается), и управление немедленно получает задача с высшим приоритетом. Если задачу с высшим приоритетом подготавливает подпрограмма обработки прерывания (ISR), то когда ISR завершается, прерванная задача приостанавливается, а управление получает новая высокоприоритетная задача. Это показано на рисунке 2-5.



Рисунок 2-5, вытесняющее ядро.

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

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

  1   2   3

Похожие:

Основные концепции систем реального времени iconНом «модели представления времени и их применение в интеллектуальных системах»
Ии и вопросами создания математического и программного обеспечения интеллектуальных систем поддержки принятия решений реального времени...
Основные концепции систем реального времени iconПодготовка к экзамену по пос (2009 год)
Определение и функции ос. Классификация многозадачных ос. Принципиальные отличия требований к системам реального времени и к обычными...
Основные концепции систем реального времени iconНегосударственное Аккредитованное Частное Образовательное Учреждение...
Распределенные объектные архитектуры программных систем. Многоуровневые приложения. Основные понятия архитектуры распределенных систем....
Основные концепции систем реального времени iconЛекция: Основные понятия технологии проектирования информационных...
ИС, состав и назначение подсистем. Основные особенности современных проектов ис. Этапы создания ис: формирование требований, концептуальное...
Основные концепции систем реального времени iconКурсовая работа по дисциплине «Системы реального времени» на тему «Управление дамбой»
Специальность 230102 – Автоматизированные системы обработки информации и управления
Основные концепции систем реального времени icon1. Основные понятия теории систем
Термины теория систем и системный анализ, несмотря на период более 25 лет их использования, все еще не нашли общепринятого, стандартного...
Основные концепции систем реального времени icon1. Основные понятия теории систем
Термины теория систем и системный анализ, несмотря на период более 25 лет их использования, все еще не нашли общепринятого, стандартного...
Основные концепции систем реального времени iconЛекция: Шифрование: версия для печати и pda рассмотрены основные...
Рассмотрены основные концепции шифрования, различные виды шифрования (с закрытым и открытым ключом), вопросы управления ключами....
Основные концепции систем реального времени iconШестизонная контрольная панель Nord lan особенности
Встроенный Ethernet-контроллер обеспечивает надёжную связь с пультом, позволяет осуществлять контроль панели в режиме реального времени,...
Основные концепции систем реального времени iconЛекции по курсу «теория автоматического управления» теория цифровых систем автоматического
Дискретность сигналов в цифровых системах обусловлена их квантованием по уровню и по времени. В противоположность непрерывным сигналам,...
Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2014
shkolnie.ru
Главная страница