Разделы презентаций


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

4. Standalone приложения 2002 v.0.3ОУПечатьУСОПримерУправление:Период = 1 sWCET < 0.3 msФункцииИзмерение Принятие решенияВывод воздействияЗапрос на печатьПериод = 180 sWCET < 0,05 msФункцииЗапуск печати:ВыводНаПечать(Данное: X)

Слайды и текст этой презентации

Слайд 14. Standalone приложения 2002 v.0.3
4. Монопольные (Standalone) приложения
Standalone приложение:
монопольно используюет ресурсы

целевой платформы;
поддерживается платформо-ориентированной (native) библиотекой драйверов устройств (драйвер осуществляет управление

устройством, реализует процедуры ввода/вывода);

Библиотека
драйверов

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

Standalone приложение

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

4. Standalone приложения		2002 v.0.34. Монопольные (Standalone) приложенияStandalone приложение:монопольно используюет ресурсы целевой платформы;поддерживается платформо-ориентированной (native) библиотекой драйверов устройств

Слайд 24. Standalone приложения 2002 v.0.3
ОУ
Печать
УСО



Пример
Управление:
Период = 1 s
WCET < 0.3 ms
Функции
Измерение


Принятие решения
Вывод воздействия
Запрос на печать
Период = 180 s
WCET < 0,05

ms
Функции
Запуск печати:
ВыводНаПечать(Данное: X)
4. Standalone приложения		2002 v.0.3ОУПечатьУСОПримерУправление:Период = 1 sWCET < 0.3 msФункцииИзмерение Принятие решенияВывод воздействияЗапрос на печатьПериод = 180

Слайд 34. Standalone приложения 2002 v.0.3

Прерывание
“Внешняя среда”
Пример (2) Возможная реализация
Печать
Таймер
ОУ
Часы;
if flag_1

then
Управление;
flag_1:= false;
if flag_2 then
ВыводНаПечать(X);
flag_2:= false;
while(true)do end;



Часы:
реализует два счетчика,

значения которых увеличиваются на 1 при каждом обращении; когда
счетчик_1 = 1 flag_1:= true
счетчик_2 = 180 flag_2:= true

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

Драйвер печати:
Библиотечная программа

Управляющая программа

4. Standalone приложения		2002 v.0.3Прерывание“Внешняя среда”Пример (2)  Возможная реализацияПечатьТаймерОУЧасы;if flag_1 then	Управление;	flag_1:= false;if flag_2 then	ВыводНаПечать(X);	flag_2:= false;while(true)do end; Часы:

Слайд 44. Standalone приложения 2002 v.0.3
Пример (3) Возможная реализация
Предлагаемая реализация некорректна

- вывод на печать время от времени “зависает”

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

рассмотрение работы системы

4. Standalone приложения		2002 v.0.3Пример (3)  Возможная реализацияПредлагаемая реализация некорректна - вывод на печать время от времени

Слайд 54. Standalone приложения 2002 v.0.3
Пример (4) Работа печати
Секция
запуска
Передача Xi

Прерывание
Возврат
Запрос на
печать



Драйвер

печати
Буфер печати
Запрос: ВыводНаПечать(Данное: X)
Секция запуска считывает Х в буфер вывода,

пересылает порцию Х1 на устройство и возвращает управление
Программа и устройство работают параллельно
Устройство закончило печать Х1,и формирует запрос на прерывание
Обработчик прерывания драйвера пересылает Х2 на устройство
Возврат в точку прерывания
Программа и устройство работают параллельно
И так далее для Х2 Х3 Х4 ...

Программа

1

2

3

4

5

7

6

4. Standalone приложения		2002 v.0.3Пример (4)  Работа печатиСекциязапускаПередача XiПрерываниеВозвратЗапрос напечатьДрайвер печатиБуфер печатиЗапрос: ВыводНаПечать(Данное: X)Секция запуска считывает Х

Слайд 64. Standalone приложения 2002 v.0.3


Пример (5) Работа печати
Драйвер печати
Управляющая программа
Секция

запуска


3
Управление


4
5
1




2
2
1
2
6
6
6
3
7
7
8
Прерывания от таймера
Прерывания печати
Часы
Секция запуска драйвера печати
Управление
Занятое ожидание while(true) do

end
Обработка прерывания печати
Драйвер прерывается таймером (!)


Некорректно реализован возврат из процедуры обработки прерывания таймера (Управляющая программа). Вследствие этого зависает драйвер печати


5


6

4. Standalone приложения		2002 v.0.3Пример (5)  Работа печатиДрайвер печатиУправляющая программаСекция запуска3Управление45122126663778Прерывания от таймераПрерывания печатиЧасыСекция запуска драйвера печатиУправлениеЗанятое

Слайд 74. Standalone приложения 2002 v.0.3
Пример (5) Корректная реализация
Прерывание
“Внешняя среда”
Печать
Таймер
ОУ
Часы
Передача Xi



Возврат
Прерывание
Возврат

while(true)do
if

flag_1 then
Управление;
flag_1:= false;
if flag_2 then

ВыводНаПечать(Данное: X);
flag_2:= false;
end;



Секция
запуска

Управляющая программа

4. Standalone приложения		2002 v.0.3Пример (5)  Корректная реализацияПрерывание“Внешняя среда”ПечатьТаймерОУЧасыПередача XiВозвратПрерываниеВозвратwhile(true)do	if flag_1 then	  Управление;	  flag_1:= false;	if

Слайд 84. Standalone приложения 2002 v.0.3
Проблемы
Критическая секция
КС - участок программы, выполнение которого

не должено прерываться

Синхронизация
согласование во времени выполнения заданных участков программы

4. Standalone приложения		2002 v.0.3ПроблемыКритическая секцияКС - участок программы, выполнение которого не должено прерыватьсяСинхронизациясогласование во времени выполнения заданных

Слайд 94. Standalone приложения 2002 v.0.3
Критическая секция

R:= A;
R:= R+1;
A:= R;



R:= A;
R:= R+1;
A:=

R;
Возврат
Прерывание
b
A = 5; R = 5; R

= 5; R = 6; A = 6; R = 7; A = 7;
A = 5; R = 5; R = 6; R = 5; R = 6; A = 6; A = 6;

Возможное средство:
маскировать прерывания (CLI …… STI). Однако, КС не должна быть длинной – увеличение latancy (В предыдущем примере недопустимо целиком маскировать обработку прерывания печати)

a

4. Standalone приложения		2002 v.0.3Критическая секцияR:= A;R:= R+1;A:= R;R:= A;R:= R+1;A:= R;ВозвратПрерываниеbA = 5; R = 5;

Слайд 104. Standalone приложения 2002 v.0.3
Синхронизация

Работа
с данным

Ввод
данного
Возврат
Прерывание
a
b
c
Идея:

Программа X
Программа Y
Программа X:
flag :=

false;
repeat until flag;
Работа с данным;
flag := false;
Программа Y:
Ввод данного;
flag :=

true;

Возможное средство: механизм флагов

4. Standalone приложения		2002 v.0.3СинхронизацияРабота с даннымВводданногоВозвратПрерываниеabcИдея:Программа XПрограмма YПрограмма X:flag := false;repeat until flag;Работа с данным;flag := false;Программа

Слайд 114. Standalone приложения 2002 v.0.3
Механизм флагов - реализация
class Flag {
boolean flag;

void

setFlag(boolean value){
установить_маску;
flag := value;
сбросить_маску;
}

boolean getFlag(){
return flag;
}
}
Флаги реализуются на системном (аппаратном)

уровне и поддерживаются неделимыми примитивами доступа
4. Standalone приложения		2002 v.0.3Механизм флагов - реализацияclass Flag {	boolean flag;	void setFlag(boolean value){		установить_маску;		flag := value;		сбросить_маску;	}	boolean getFlag(){		return flag;	}}Флаги реализуются

Слайд 124. Standalone приложения 2002 v.0.3
Особенности Standalone приложений
Разработка Standalone приложений требует:
написания последовательно

выполняющихся процедур, обрабатывающих события от параллельно развивающихся физических процессов и

отслеживать возможные конфликты, возникающие в процессе их выполнения
написания собственных обработчиков прерываний
решений вопросов синхронизации и обеспечения неделимости
программирования ввода/вывода
4. Standalone приложения		2002 v.0.3Особенности Standalone приложенийРазработка Standalone приложений требует:написания последовательно выполняющихся процедур, обрабатывающих события от параллельно развивающихся

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика