Для создания эффективных систем управления реального времени программные средства (software) так же важны, как и аппаратные (hardware).
Технические средства и программы являются логически эквивалентными. Аппаратные средства должны обладать достаточными ресурсами, а программные – эффективно их использовать.
Программное обеспечение может свести на нет все достоинства вычислительного оборудования.
Наиболее распространенный способ написания программ – это последовательное программирование Оно подразумевает, что операторы (команды) программы выполняются в определённой, заранее известной последовательности.
Целью последовательной программы (ПП) является преобразование входных данных, заданных в определенной форме, в выходные данные, имеющие другую форму, в соответствии с некоторым алгоритмом – методом решения.
Рис.1. Обработка данных последовательной программой
ПП работает как фильтр для исходных данных. Результат полностью определяются входными данными и алгоритмом их обработки. Временные показатели играют второстепенную роль.
Результат не зависит ни от инструментальных (определяют усилия и время, затраченные на разработку и характеристики исполняемого кода) ни аппаратных средств (определяют скорость выполнения программы). В любом случае результаты (выходные данные) будут одинаковыми.
Параллельное программирование
Программирование в реальном времени сильно отличается от последовательного программирования. Необходимо постоянно иметь в виду условия (среду), в которой работает программа.
В системах реального времени (СРВ) внешние сигналы, как правило, требуют немедленной (или фиксированной по времени) реакции процессора.
Одна из наиболее важных особенностей СРВ является время реакции на входные сигналы, которое должно удовлетворять заданным ограничениям.
Специальные требования к программированию в реальном времени, в частности необходимость быстро реагировать на внешние запросы, нельзя адекватно реализовать с помощью обычных приемов последовательного программирования.
области кода, т.е. инструкций программы;
области данных, в которой хранятся переменные и константы;
область свободной, динамически распределяемой рабочей памяти (heap – куча);
область стека, который примыкает к куче и расширяется за ее счёт
Рис.2. Организация внутренней памяти процесса
Параллельное программирование,
мультипрограммирование и многозадачность
Рис. 3. Граф очерёдности исполнения процессов
Понятие параллельное программирование отличается по смыслу от понятия мультипрограммирование.
Параллельное программирование – это абстрактный процесс разработки программ, которые потенциально могут исполняться параллельно, вне зависимости от программно-аппаратной среды, т.е. каждая задача реализуется на собственном виртуальном процессоре.
Мультипрограммирование — это практический способ исполнения нескольких программ на одном центральном процессоре или в распределенной вычислительной системе.
Параллельное программирование более трудоемко, чем последовательное, поскольку способности человека следить за развитием связанных процессов и исследовать их взаимодействие ограничены.
Управление системными ресурсами.
Однопроцессорная и распределенная архитектуры
экономичность;
надежность (при отказе одного или нескольких процессоров остальные продолжают работать);
возможность подобрать аппаратные средства в соответствии с конкретными требованиями.
Методы достижения распределения вычислительных ресурсов:
Единственным общим ресурсом является вычислительная сеть, соединяющая ЭВМ, каждая из которых работает независимо и лишь обменивается сообщениями с остальными.
Реально распределенная сетевая операционная система, предоставляет пользователю гомогенную среду, не зависящую от аппаратной платформы. Пользователь может вводить произвольные команды, а операционная система находит наиболее подходящий способ и место их выполнения.
Процесс либо запрашивает услуги – он клиент, либо предоставляет их – он сервер. Очевидно, что один и тот же процесс может быть как клиентом, так и сервером.
"Услуга" – это некоторая законченная (замкнутая) операция, например, выполнение расчетов, приём внешних данных, операция с устройством ввода-вывода, вывод изображения на экран и т.д.
В базовой модели клиент-сервер все процессы в распределенных системах делятся на две возможно перекрывающиеся группы.
уровень пользовательского интерфейса;
уровень обработки;
уровень данных.
Уровни приложений в модели клиент-сервер:
Взаимодействие клиента и сервера, известно также под названием режим работы запрос-ответ (request-reply behavior)
Рис. 4. Взаимодействие клиента и сервера
Уровень данных
Уровень данных в модели клиент-сервер содержит программы, которые предоставляют данные обрабатывающим их приложениям. Специфическим свойством этого уровня является требование сохранности (persistence). Это означает, что когда приложение не работает, данные должны сохраняться в определенном месте в расчете на дальнейшее использование.
Уровень данных обычно также отвечает за поддержание целостности данных для различных приложений.
части, которая занимается взаимодействием с пользователем,
части, которая отвечает за работу с базой данных или файловой системой, и
средней части, реализующей основную функциональность приложения. Эта средняя часть логически располагается на уровне обработки.
Функции операционных систем в среде реального времени
В обычных системах система разделения времени (многозадачность) имеет целью обеспечить одновременный доступ нескольких пользователей к дорогим вычислительным ресурсам и, соответственно, разделить между ними эксплуатационные расходы, т. е. повысить экономическую эффективность оборудования.
В системах реального времени целью многозадачного режима является изоляция друг от друга разных операций и распределение рабочей нагрузки между отдельными программными модулями. Единственным "пользователем" в этом случае является управляемая система.
В распределенной среде операционная система дополнительно выполняет функции сопряжения программ с вычислительной сетью и управления обменом данными и сообщениями между ЭВМ.
В сетевых операционных системах каждая ЭВМ имеет высокую степень автономности. Общесистемные требования к обмену информацией позволяют взаимодействовать процессам, даже если они работают под управлением разных операционных систем, при условии, что каждая из них обладает необходимыми сетевыми возможностями.
Рис. 5. Операция копирования файла
Рис. 6. Страницы единого (сетевого) адресного пространства
Управление процессором и состояния процесса
Рис. 7. Принцип организации многозадачного режима.
Внешний эффект одновременного исполнения нескольких процессов , с точки зрения пользователя
Реальное распределение времени процессора
Процесс исполняется до тех пор, пока не произойдет одно из следующих событий:
истек выделенный ему квант времени;
процесс заблокирован, например, ждет завершения операции ввода/вывода;
процесс завершился;
вытеснен другим процессом, имеющим более высокий приоритет, например, обработчиком прерываний.
Рис. 8. Состояния процессов
Отсюда Стратегии выбора процесса
Циклический метод. Наиболее простая стратегия. Процессы выбираются последовательно один за другим в фиксированном порядке и через равные интервалы времени. Основное достоинство метода − простота реализации. Недостаток, поскольку процессы имеют различные требования к выделяемым ресурсам вычислительной системы, то некоторые из них обслуживаются неадекватно своим потребностям.
2. Метод приоритетов. Более сложная стратегия. При каждом переключении планировщик передает управление готовому процессу с наивысшим приоритетом. Приоритет присваивается процессу в момент его создания и остается постоянным в течение всего времени – статический приоритет. Планирование на основе статических приоритетов может привести к неприятным ситуациям. Процесс с наивысшим приоритетом, если он не находится в состоянии ожидания, будет всегда выбираться для исполнения и практически полностью занимать процессор.
Нетривиальным является также выбор между процессами с одинаковым приоритетом. Для исключения подобной ситуации применяется какой-либо алгоритм динамического назначения приоритетов
При поступлении запроса на обслуживание прерывания с более высоким уровнем приоритета процесс обработки прерывания с более низким уровнем приостанавливается, и процессор начинает обрабатывать более значимый запрос.
Обслуживание прерываний может быть организовано в статическом или динамическом порядке.
В микроконтроллерах XMEGA немаскируемые прерывания, а также прерывания уровня High и Medium имеют только статический порядок обслуживания. Для прерываний с уровнем Low программисту доступна статическая и динамическая организация очередности обслуживания.
Контроллер прерываний контроллера Atmel XMEGA поддерживает 4-х уровневый процесс обслуживания – всем запросам на прерывание могут быть присвоены определенные уровни приоритета для обработки.
Многоуровневый контроллер прерываний
Процедура Round Robin эффективно работает в тех случаях, когда в очереди находятся несколько разрешенных прерываний из уровня Low, которые будут обслуживался в фиксированном циклическом порядке.
Рис. 9.. Процедура «карусельной диспетчеризации» Round Robin
Время отклика CPU на поступивший запрос на прерывание
Рис. 10. Блок-схема Event System
Если не удалось найти и скачать презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:
Email: Нажмите что бы посмотреть