Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология Образование Политология Производство Психология Стандартизация Технологии |
Асинхронные задачи интерфейса с устройствами ввода/вывода.
. Если в системе имеются асинхронные устройства ввода/вывода, то для интерфейса с каждым из них нужна отдельная задача, которая будет активизироваться при поступлении прерывания от устройства. В процессе разбиения на задачи все объекты интерфейса асинхронных устройств, представленные в аналитической модели, отображаются на соответствующие задачи. Асинхронная задача интерфейса с устройством обязана работать с той же скоростью, что и само устройство. Асинхронная задача интерфейса с устройством ввода/вывода – это задача драйвера устройства. Как правило, она активизируется низкоуровневым обработчиком прерывания, а иногда непосредственно устройством. Периодические задачи интерфейса с устройством ввода/вывода. Если асинхронная задача интерфейса с устройством ввода/вывода работает с асинхронным устройством, то периодическая задача имеет дело с пассивным устройством, которое необходимо время от времени опрашивать. В этой ситуации задача активизируется периодически, но ее функции связаны с вводом/выводом. Такая задача запускается событием таймера, выполняет операцию ввода/вывода, после чего ждет следующего события таймера. Период задачи – это промежуток времени между последовательными запусками. О выборе временных интервалов для периодических задач ввода/ вывода Частота, с которой задача опрашивает датчик, зависит от ожидаемой частоты изменения его показаний, а также от приемлемой величины задержки извещения о модификациях. Пассивные задачи интерфейса с устройствами ввода/вывода. Такие задачи используются для работы с пассивными устройствами ввода/ вывода, которые не надо опрашивать. В частности, они применяются в случае, когда желательно совместить вычисления с вводом/выводом. Обратите внимание, что слово «пассивное» относится к устройству, а не к объекту. Объект остается активным, поскольку представляет собой задачу. Рассмотрим следующие случаи: – необходимо обеспечить совмещение ввода от пассивного устройства с вычислительной задачей, которая получает и обрабатывает данные. Это достигается с помощью пассивной задачи интерфейса с устройством, которая считывает данные по запросу. Отделение пассивной задачи ввода от вычислительной задачи полезно только в тех случаях, когда последняя должна произвести некоторые вычисления за время, пока задача ввода читает данные. Если же вычислительная задача должна дожидаться входных данных, то ввод допустимо выполнять в том же потоке управления; – требуется совместить вывод на устройство с вычислениями, нужными для получения выходных данных. Это делается с помощью пассивной задачи интерфейса с устройством вывода, которая вызывается по запросу, обычно путем посылки ей сообщения. Пассивные задачи интерфейса с устройствами обычно применяются для работы с устройствами вывода, а не ввода, поскольку совмещение вывода с вычислениями требуется чаще (см. следующий пример). Как правило, для совмещения ввода с вычислениями используются периодические задачи ввода. Задачи-мониторы ресурсов. Задача-монитор ресурса – это частный случай пассивной задачи ввода/вывода, рассмотренной выше. С устройством ввода/вывода, которое получает запросы из разных источников, должна быть ассоциирована задача-монитор для координации запросов, даже если устройство является пассивным. Ее цель – упорядочить запросы, чтобы гарантировать целостность данных и избежать их искажения или потери. Критерии выделения внутренних задач критерии выделения внутренних задач помогут выявить внутренние задачи, не связанные с вводом/выводом. Периодические задачи. Во многих параллельных системах и системах реального времени встречаются работы, которые надо выполнять периодически, например вычисление пройденного машиной расстояния или ее текущей скорости. Обычно для этой цели используются периодические задачи. Периодом задачи называется промежуток времени между последовательными активизациями. Асинхронные задачи. Во многих параллельных системах и системах реального времени встречаются работы, выполняемые по требованию. Обычно для них применяются асинхронные задачи. Если асинхронные задачи ввода/вывода активизируются прерываниями, то асинхронные внутренние задачи (их еще называют апериодическими) активизируются по требованию, когда приходит внутреннее сообщение или событие. Управляющие задачи. В аналитической модели зависящий от состояния управляющий объект исполняет диаграмму состояний. Так как используется ограниченная форма диаграммы состояний, в которой параллелизм внутри объекта не допускается, то ее выполнение оказывается строго последовательным. Поэтому последовательно исполняемая задача может осуществлять управляющую деятельность. Задача, реализующая последовательную диаграмму состояний (обычно изображаемая в виде таблицы переходов состояний), называется управляющей. Задачи интерфейса пользователя. Пользователь, как правило, выполняет операции последовательно. Поскольку его взаимодействие с системой носит последовательный характер, оно реализуется в виде задачи интерфейса пользователя. Быстродействие такой задачи часто ограничено скоростью работы человека. Как и следовало ожидать, на нее отображается объект интерфейса пользователя из аналитической модели. Критерии назначения приоритетов задачам Эти критерии помогают выявить высоко- и низкоприоритетные задачи. Часто приоритетности задач уделяется внимание только на поздних стадиях цикла разработки. Критической по времени называется задача, которая обязана завершиться к точно установленному сроку. Такая задача должна выполняться с высоким приоритетом. Высокоприоритетные критические по времени задачи необходимы в большинстве приложений реального времени. Некритическая по времени расчетная задача требует значительных ресурсов процессора, но может выполняться с низким приоритетом. Идея о низкоприоритетных задачах со сложными вычислениями, которые способны действовать в фоновом режиме и вытесняться высокоприоритетными задачами, появилась еще в ранних системах мультипрограммирования и обычно поддерживается современными ОС. Критерии группировки задач Критерии группировки задач, или критерии слияния задач (task cohesion criteria), помогают установить, какие из задач, выявленных на первой стадии процесса разбиения на задачи, удобно объединить для уменьшения общего числа задач. Задачи, определенные на первой стадии (с помощью критериев выделения задач ввода/вывода, внутренних задач и критериев назначения приоритетов), называются задачами-кандидатами. Критерии группировки предлагают средства для анализа природы параллелизма в задачах-кандидатах, что дает возможность решить, следует ли объединять кандидатов в одну физическую задачу и как именно. Так, если две задачи-кандидата должны исполняться строго последовательно, объединение их в одну физическую задачу обычно упрощает проект. Темпоральная группировка. Некоторые задачи-кандидаты могут активизироваться одним и тем же событием, например событием таймера. При каждой активизации задача выполняет некоторую деятельность. Если между последовательными задачами-кандидатами нет никакой зависимости, то есть порядок выполнения не имеет значения, их можно объединить в одну задачу, применив критерий темпоральной группировки. Когда такая задача активизируется, по очереди выполняются все сгруппированные деятельности. Поскольку никакой зависимости между ними не существует, проектировщик вправе выбрать любой порядок выполнения. Темпоральная группировка обычно применяется к кандидатам, которые активизируются периодически. Например, удобно объединить те задачи-кандидаты, которые активизируются одним и тем же периодическим событием с одной и той же частотой. В темпоральную группу рекомендуется объединять взаимосвязанные задачи. Группировать периодические задачи, которые функционально никак не связаны с точки зрения проектирования нежелательно, хотя иногда это допустимо в целях оптимизации, если накладные расходы на организацию многозадачности становятся слишком высокими. Популярное:
|
Последнее изменение этой страницы: 2016-03-17; Просмотров: 1596; Нарушение авторского права страницы