Вопросы разбиения на параллельные задачи



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

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

 

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

Критерии разбиения на задачи можно отнести к нескольким категориям по признаку участия в процессе структурирования:

– критерии выделения задач ввода/вывода. Касаются отображения объектов интерфейса устройств на задачи ввода/вывода и вопроса о моменте активи­зации таких задач;

– критерии выделения внутренних задач. Связаны с тем, как внутренние объек­ты отображаются на внутренние задачи и как эти задачи активизируются;

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

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

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

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

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

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

 Характеристики устройств ввода/вывода. Информация, относящаяся к аппаратным особенностям устройств ввода/выво­да, обычно не отражается в аналитической модели.

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

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

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

характеристики устройств ввода/вывода. Важно понять, является устрой­ство асинхронным (активным) или пассивным. Вот три основных класса устройств ввода/вывода:

• асинхронные устройства ввода/вывода (иногда их называют также актив­ными), работающие по прерываниям. Когда асинхронное устройство вво­да получает данные для обработки, оно генерирует прерывание. Асин­хронное же устройство вывода генерирует прерывание, когда заканчивает операцию вывода и готово к приему новых данных;

• пассивные устройства ввода/вывода. Пассивное устройство не генериру­ет прерываний при завершении операции. Чтобы узнать, есть ли инфор­мация у пассивного устройства ввода, его надо периодически опрашивать. Соответственно перед отправкой данных пассивному устройству вывода надо убедиться, что оно готово принять их;

• канал связи. Некоторые управляемые микропроцессорами устройства ввода/вывода и внешние системы подключаются с помощью канала свя­зи. Порядок обмена данными между системами определяется коммуни­кационным протоколом (например, TCP/IP). На прикладном уровне за­дачи, принадлежащие разным системам, обмениваются сообщениями.


Дата добавления: 2018-08-06; просмотров: 222; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!