Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
СРВ_04_21_01_Монопольные__приложения.ppt
Скачиваний:
5
Добавлен:
20.06.2023
Размер:
931.33 Кб
Скачать

Монопольные (standalone) приложения

Библиотека

 

Монопольное приложение

 

Управляющая

драйверов

 

 

программа

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Целевая платформа

 

 

 

 

 

 

 

Пример функций типового приложения

Часы

Прикладные задачи (Управление температурой, Контроль работоспособности,

Диспетчеризация)

Управление прикладными задачами (циклический исполнитель, обработка асинхронных событий)

Особенности

монопольно используют ресурсы целевой платформы;

поддерживаются библиотекой драйверов устройств

могут включать в себя самостоятельные процедуры обработки прерываний и действия по вводу/выводу;

сильно зависят от платформы

4. Standalone приложения

2015 v.01

1

Периодические прикладные задачи

 

 

Задачи

flag1

flag2

«не реального

 

 

времени»

Управление

Отображение

«Циклический

температурой

информации

Исполнитель»

«Управляющая

 

 

 

 

 

 

 

 

Периоды (Т1, Т 2)

 

программа»

 

 

 

 

 

 

 

 

 

Прерывание

 

 

 

 

 

 

 

 

Часы

 

 

Возврат

от таймера

 

 

 

 

 

 

 

 

 

 

 

 

 

Заданы периоды активизации прикладных задач (T)

Программа «Часы» обрабатывает прерывания от аппаратного таймера и ведет отсчет временных интервалов

При совпадении временного интервала с периодом активизации прикладной задачи flag этой задачи устанавливается в значение true

«Исполнитель» циклически анализирует состояния флагов задач, активизируя их при flag=true устанавливая flag=false после выполнения задачи

4. Standalone приложения

2015 v.01

2

Таймер запросы на прерывания от таймера Управляющая программа реализует «Часы», отслеживает временные

интервалы и активизирует прикладные задачи Управление температурой период активизации 2 такта Отображение информации период активизации 3 такта

Таймер

Управляющая

программа

Управление

температурой

Отображение

информации

t t

Задержка периода активизации

Сигнал запроса на прерывание от таймера имеет наивысший приоритет среди других запросов на прерывание

4. Standalone приложения

2015 v.01

3

Асинхронные (спорадические) задачи

«Управляющая

 

 

 

 

 

 

 

 

 

 

 

 

 

 

программа»

 

 

Периоды (Т1,

Т 2)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Прерывание

 

 

 

 

 

 

 

 

 

Часы

 

 

 

Возврат

от таймера

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Событие

Контроль

Возврат

работоспособности

(ДД)

компрессора

 

 

 

Событие

Ввод команд

Возврат

(клавиатура)

 

 

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

5. Standalone приложения

2015 v.01

4

События

Контроль

работоспособности

Ввод команды ооператора

Задача «Часы»

T 1

2

T

T

1

1

1

2

T

T

T

События:

Т –Запрос на прерывание от таймера 1 - Сигнал от датчика давления 2 - Ввод команды с клавиатуры

4. Standalone приложения

2015 v.01

5

УСО

ОУ Печать

Управление:Период = 1 s

WCET < 0.3 ms

Функции

Измерение

Принятие решения

Вывод воздействия

 

Пример

Таймер

Управление

Запрос на печать

Запрос на печатьПериод = 180 sWCET < 0,05 msФункции

Запуск печати:

ВыводНаПечать(Данное: X)

4. Standalone приложения

2015 v.01

6

Приложение – обработчик прерывания

 

 

Приложение.

«Циклический

 

 

Исполнитель»

Генератор

(Фактически

 

1.1931816 МГц

является ISR

T==t1

 

 

таймера)

 

 

 

 

 

Задача_1

Аппаратный

 

 

 

 

таймер,

Прерывание

 

 

делитель на 11931

 

 

T==tn

 

 

 

ti

 

 

Часы

 

 

 

 

 

Задача_n

 

 

Возврат

 

 

Таймер

ti+1= ti+10мс

 

 

 

 

 

 

 

4. Standalone приложения

2015 v.01

 

7

 

 

Монопольное приложение

Версия 0.1

Таймер

ОУ

Печать

Прерывание

Таймер:

Запрос на прерывание каждую секунду

Часы;

if (flag_1){ Управление; flag_1:= false;}

if (flag_2) { ВыводНаПечать(X);

flag_2:= false;} while(true)do end;

Часы:

 

Часы

 

реализует два счетчика, значения которых

 

 

увеличиваются на 1 при каждом обращении;

 

 

 

когда

 

 

 

 

 

 

Управление

 

счетчик_1

= 1 flag_1:= true

 

 

 

счетчик_2

= 180 flag_2:= true

 

 

 

 

Драйвер

 

Драйвер печати:

 

печати

 

 

 

 

Библиотечная программа

 

 

 

4. Standalone приложения

2015 v.01

8

Проблема:

Вывод на печать время от времени “зависает”. Версия 0.1 – что-то не так!

Необходимо более детальное рассмотрение работы системы

4. Standalone приложения

2015 v.01

9

Работа печати

 

X1 X2

Xn

«Исполнитель»

 

Запрос на

1

Драйвер

печать

печати

 

2

Секция

 

запуска

 

 

3

4

Прерывание

 

 

 

 

Передача Xi

 

5

 

7

6

Возврат

 

1.Запрос: ВыводНаПечать(Данное: X)

2.Секция запуска считывает Х в буфер вывода, пересылает порцию Х1 на устройство и возвращает управление

3.«Исполнитель» и устройство работают параллельно

4.Устройство закончило печать Х1,и формирует запрос на прерывание

5.Обработчик прерывания драйвера пересылает Х2 на устройство

6.Возврат в точку прерывания

7.«Исполнитель» и устройство работают параллельно

8.И так далее для Х2 Х3 Х4 ...

5. Standalone приложения

2015 v.01

10