Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Itogi_Shpory

.pdf
Скачиваний:
41
Добавлен:
18.03.2015
Размер:
2.33 Mб
Скачать

47. Категории критериев разбиения на задачи

Категории по признаку участия в процессе структурирования:

критерии выделения задач ввода/вывода. 1) Отображение объектов интерфейса устройств на задачи ввода/вывода, 2) Момент активизации таких задач;

критерии выделения внутренних задач. Связаны с тем, как внутренние объек-

ты отображаются на внутренние задачи и как эти задачи активизируются;

критерии назначения приоритетов задачам. Позволяют определить отно-

сительную важность каждой задачи;

критерии группировки задач. Позволяют решить, какие объекты следует группировать в параллельные задачи и как именно;

критерии инверсии задач. Применяются для решения вопроса о том, какие задачи стоит объединить для уменьшения накладных расходов. Это можно делать при исходном разбиении или при пересмотре первоначального проекта.

Задачи активизируются периодически или апериодически. При определении задачи может использоваться сразу несколько критериев.

Критерии разбиения применяются поэтапно:

1)сначала критерии выделения задач ввода/вывода, критерии выделения внутренних задач и назначения приоритетов. В результате мы получаем взаимно-однозначное соответствие между объектами из аналитической модели и задачами из проектной модели.

2)Затем с целью уменьшения числа задач используются критерии группировки.

3)После того как задачи выявлены, определяются их интерфейсы.

Для изображения различных видов задач задействуются стереотипы. Стереотипами также обозначаются разные виды устройств, с которыми общаются задачи. Если в процессе разбиения на задачи некоторый объект определяется как активный, то для него уточняются характеристики соответствующей задачи.

Например, активный объект «интерфейс устройства ввода/вывода» считается задачей и характеризуется следующим образом:

«асинхронный интерфейс устройства ввода/вывода», «синхронный интерфейс устройства ввода/вывода», «периодический интерфейс устройства ввода/ вывода», «пассивный интерфейс устройства ввода/вывода» или «монитор ресурсов».

Точно так же «внешнее устройство ввода» в зависимости от характеристик классифицируется как «асинхронное устройство ввода» или «пассивное устройство ввода».

48. Критерии выделения задач ввода/вывода

Существуют следующие критерии выделения задач ввода/вывода:

Характеристики устройств ввода/вывода.

Асинхронные задачи интерфейса с устройствами ввода/вывода.

Периодические задачи интерфейса с устройством ввода/вывода.

Пассивные задачи интерфейса с устройствами ввода/вывода.

Задачи-мониторы ресурсов.

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

Асинхронные задачи интерфейса с устройствами ввода/вывода. Если в системе имеются асинхронные устройства ввода/вывода, то для интерфейса с каждым из них нужна отдельная задача, которая будет активизироваться при поступлении прерывания от устройства. В процессе разбиения на задачи все объекты интерфейса асинхронных устройств, представленные в аналитической модели, отображаются на соответствующие задачи.

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

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

Задачи-мониторы ресурсов. Задача-монитор ресурса – это частный случай пассивной задачи ввода/вывода, рассмотренной выше. С устройством ввода/вывода, которое получает запросы из разных источников, должна быть ассоциирована задачамонитор для координации запросов, даже если устройство является пассивным. Ее цель – упорядочить запросы, чтобы гарантировать целостность данных и избежать их искажения или потери.

49. Характеристики устройств ввода/вывода.

Для определения типа задач, с которыми могут работать устройства необходимо определить их характеристики (устройств ввода-вывода)

1)Характеристики самих устройств: определение класса устройства

Асинхронные устройства ввода/вывода(активные) – работают по прерываниям Устройство ввода генерирует прерывание при получении данных для обработки Устройство вывода генерирует прерывание при завершении операции вывода, показывает готовность к приему новых данных

Пассивные устройства – без прерываний.

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

• Канал связи Служит для подключения некоторых устройств ввода/вывода.

Порядок обмена данных определяется протоколом (TCP/IP, например)

(Я совсем не понимаю, как это связано с характеристиками, в интернете нет такого)

2)Характеристики данных: дискретные или аналоговые

Дискретные – булевые, принимают значения из конечного множества

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

3)Дополнительные данные для пассивного устройства ввода-вывода а) Выбрать тип опрашивания: по мере необходимости или периодический

б) Определить частоту опроса, зависящую от:

критичности входных данных

интенсивности изменений данных

устройства вывода (нужно определить такую частоту, чтобы не было потерь)

50. Асинхронные задачи интерфейса с устройствами ввода/вывода.

Для интерфейса с каждым из асинхронных устройств ввода/вывода нужна задача.

В процессе разбиения на задачи все объекты интерфейса асинхронных устройств, представленные в аналитической модели, отображаются на соответствующие задачи.

Каждая задача активизируется низкоуровневым обработчиком прерывания или самим устройством. Чаще всего при поступлении прерывания от устройства.

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

Пример асинхронной задачи интерфейса с устройствами ввода/вывода

Рисунок А (диаграмма кооперации – входит в состав аналитической модели). Примеробъект Интерфейс Ручки Круиз-Контроля. Последовательность:

Получает входные данные от внешнего устройства ввода «ручки круиз-контроля».

Преобразует их во внутренний формат и посылает запрос объекту Круиз-Контроль.

Рисунок Б (диаграмма параллельной кооперации в составе проектной модели). Объекту соответствует одноименная асинхронная задача интерфейса с устр-вом ввода. Когда задача активизируется в результате прихода прерывания Круиз-Контроля, она:

читает данные Круиз-Контроля,

преобразует их во внутренний формат

посылает сообщение запрос Круиз-Контроля задаче Круиз-Контроль.

Генерирует прерывание при изменении положения ручки.

51. Периодические задачи интерфейса с устройством ввода/вывода.

Периодические задачи необходимы при работе с пассивными устройствами, которые по своей логике работы необходимо опрашивать. Например: пассивные датчики.

Период задачи – промежуток времени между последовательными запусками.

Данный тип задач активизируется периодически, в соответствии с временем, установленным на таймере.

Ход выполнения задачи:

запускается событием таймера,

выполняет операцию ввода/вывода,

ждет следующего события таймера

Частота опрашивания датчика зависит от:

ожидаемой частоты изменения его показаний,

от приемлемой величины задержки извещения о модификациях.

Например, для работы с данными о температуре воздуха можно опрашивать датчики достаточно редко, т.к. температура меняется плавно.

Чего не скажешь про педаль тормоза, где необходима быстрая реакция механизмов, а значит, в случае предположения, что педаль-пассивное устройство, данный датчик стоит опрашивать очень часто, например, каждые 50 милисекунд.

Пример. Объект Интерфейс Двигателя.

Рисунок А (диаграмма кооперации – входит в состав аналитической модели).

Объект получает входные данные от внешнего устройства ввода «Двигатель». Рисунок Б (диаграмма параллельной кооперации в составе проектной модели).

Объект получает входные данные от пассивного устройства ввода «Двигатель».

Двигатель не генерирует прерываний, поэтому применяется периодическая задача интерфейса с устройством ввода, которая регулярно (по событию таймера) опрашивает датчик двигателя. Для активизации этой есть объект Тактовый Генератор со стереотипом «внешний таймер».

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

СМОТРИ РИСУНКИ НА СЛЕДУЮЩЕй СТРАНИЦЕ )

52. Пассивные задачи интерфейса с устройствами ввода/вывода.

Используются для:

работы с пассивными устройствами ввода/ вывода, которые не надо опрашивать.

когда желательно совместить вычисления с вводом/выводом.

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

В этом случае используют два вида выполнения:

• отделение задачи Ввода от вычислений.

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

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

Используют, когда вычислительная задача должна дожидаться входных данных.

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

Пассивные задачи интерфейса с устройствами чаще применяются для работы с устройствами Вывода, а не Ввода.

Пример. Интерфейс Дисплея Статистики Датчика.

Совмещение вычислений с выводом заключается в том, что Одновременно:

Интерфейс Дисплея Статистики Датчика принимает сообщение, которое нужно вывести, от задачи Алгоритм Статистики Датчика и показывает содержащиеся в нем данные (выводит на устройство вывода - дисплей)

Алгоритм Статистики Датчика вычисляет следующее значение

(готовит новое сообщение)

а

б

Рисунок А (диаграмма кооперации – входит в состав аналитической модели). Рисунок Б (диаграмма параллельной кооперации в составе проектной модели).

53. Задачи-мониторы ресурсов.

Задача-монитор ресурса – это частный случай пассивной задачи ввода/вывода.

Основная цель задачи-монитора ресурса – упорядочить запросы, чтобы гарантировать целостность данных и избежать их искажения или потери.

Для корректной работы необходимо координировать запросы, которые получает устройство ввода/вывода из разных источников. Поэтому вместе с устройством ввода/вывода, должна быть ассоциирована задача-монитор для координации запросов. Выполняется даже если устройство является пассивным.

Пример задачи – монитора ресурса.

Основной интерфейс – Интерфейс лампочки этажа.

Объект получает запросы от нескольких экземпляров объекта Управление Лифтом.

Указание объекта: погасить лампочку на данном этаже.

Сама Лампочка является пассивным устройством вывода.

Интерфейс Лампочки Этажа устроен как задача-монитор ресурса, которая координирует все поступающие запросы

Рисунок А (диаграмма кооперации – входит в состав аналитической модели). Рисунок Б (диаграмма параллельной кооперации в составе проектной модели).

54. Критерии выделения внутренних задач

Для того чтобы выявить внутренние задачи, не связанные с вводом/выводом используют критерии выделения внутренних задач.

Внутренние задачи делятся на:

Периодические задачи.

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

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

Асинхронные задачи.

Это задачи, которые необходимо выполнять по требованию.

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

Пример: Определение местоположения по запросу. Объект запускается только тогда, когда этого захотел человек.

Управляющие задачи.

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

Выполнение диаграммы состояний является строго последовательным, т.к. используется ограниченная форма диаграммы состояний, в которой параллелизм внутри объекта не допускается.

Координирующиеся задачи – в их функцию входит управление другими задачами, хотя зависимости от состояния здесь нет.

Задачи интерфейса пользователя.

Т.к. чаще всего взаимодействие пользователя с системой носит последовательный характер, оно реализуется в виде задачи интерфейса пользователя.

Быстродействие ограничено скоростью работы человека.

Задача интерфейса устройства работает с различными стандартными устройствами ввода/вывода: клавиатура, мышь, дисплей.

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

Множественные однотипные задачи.

Используется по одной управляющей задаче для каждого управляющего объекта. Применяется при использовании нескольких объектов одного типа. Для каждого из

них будут выполняться идентичные задачи, однако состояния каждого из них могут быть разными.

55. Критерии назначения приоритетов задачам

Различают задачи: высокоприоритетные и низкоприоритетные. Различают объекты: критические по времени и некритические.

Приоритеты для большинства задач определяются методом планирования в реальном времени.

Критические по времени задачи.

Это задача, которая обязана завершиться к точно установленному сроку. Такая задача должна выполняться с высоким приоритетом.

Высокоприоритетные критические по времени задачи необходимы в большинстве приложений реального времени.

Пример: Контроль температуры в каком-либо объекте. Если температура превышает определенную границу, то аппарат требуется выключить. Данная задача требует быстрого реагирования, а, значит, должна завершиться в жестко установленное критическое время, иначе аппарат может сгореть. Данная задача является высокоприоритетной.

Некритические по времени расчетные задачи Задача, у которой нет обязанности завершиться к установленному сроку. Требует

значительных ресурсов процессора. Способна действовать в фоновом режиме.

Чаще всего это низкоприоритетные задачи со сложными вычислениями. Способны вытесняться высокоприоритетными задачами

Обычно поддерживается современными ОС.

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

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]