Вопросы разбиения на параллельные задачи
Задача – это активный объект, который называют также процессом или потоком. Слишком большое число задач может чрезмерно усложнить систему из-за необходимости заниматься межзадачными коммуникациями и синхронизацией, а также привести к неоправданным накладным расходам на контекстные переключения. Следовательно, проектировщик системы обязан включать задачи с целью упрощения проекта, не допуская появления слишком большого их числа. В процессе разбиения на задачи природа параллелизма формализуется путем определения параллельных задач и интерфейсов коммуникации и синхронизации между ними.
Объекты, вошедшие в аналитическую модель, рассматриваются с целью выяснить, какие из них могут выполняться параллельно, а какие – только последовательно. Объекты, способные работать параллельно, вычленяются в отдельные задачи. Объекты, которые должны выполняться строго последовательно, объединяются в задачу, которая может охватывать один или несколько объектов. Возможно также, что одна задача будет вызывать одну операцию некоторого объекта, а другая – другую операцию того же объекта.
Категории критериев разбиения на задачи
Критерии разбиения на задачи можно отнести к нескольким категориям по признаку участия в процессе структурирования:
– критерии выделения задач ввода/вывода. Касаются отображения объектов интерфейса устройств на задачи ввода/вывода и вопроса о моменте активизации таких задач;
|
|
– критерии выделения внутренних задач. Связаны с тем, как внутренние объекты отображаются на внутренние задачи и как эти задачи активизируются;
– критерии назначения приоритетов задачам. Позволяют определить относительную важность каждой задачи;
– критерии группировки задач. Позволяют решить, какие объекты следует группировать в параллельные задачи и как именно;
– критерии инверсии задач. Применяются для решения вопроса о том, какие задачи стоит объединить для уменьшения накладных расходов. Это можно делать при исходном разбиении или при пересмотре первоначального проекта.
Критерии разбиения применяются поэтапно; сначала критерии выделения задач ввода/вывода, критерии выделения внутренних задач и назначения приоритетов. В результате мы получаем взаимно-однозначное соответствие между объектами из аналитической модели и задачами из проектной модели. Затем с целью уменьшения числа задач используются критерии группировки. Опытный проектировщик может выполнять эти шаги одновременно. После того как задачи выявлены, определяются их интерфейсы.
Критерии выделения задач ввода/вывода
|
|
Ниже описываются различные критерии выделения задач ввода/вывода. Для этого в первую очередь необходимо определить характеристики устройства, интерфейс с которым должна реализовшвать задача.
Характеристики устройств ввода/вывода. Информация, относящаяся к аппаратным особенностям устройств ввода/вывода, обычно не отражается в аналитической модели.
Асинхронные задачи интерфейса с устройствами ввода/вывода. Если в системе имеются асинхронные устройства ввода/вывода, то для интерфейса с каждым из них нужна отдельная задача, которая будет активизироваться при поступлении прерывания от устройства. В процессе разбиения на задачи все объекты интерфейса асинхронных устройств, представленные в аналитической модели, отображаются на соответствующие задачи.
Периодические задачи интерфейса с устройством ввода/вывода. Если асинхронная задача интерфейса с устройством ввода/вывода работает с асинхронным устройством, то периодическая задача имеет дело с пассивным устройством, которое необходимо время от времени опрашивать. В этой ситуации задача активизируется периодически, но ее функции связаны с вводом/выводом.
Характеристики устройств ввода/вывода.
|
|
характеристики устройств ввода/вывода. Важно понять, является устройство асинхронным (активным) или пассивным. Вот три основных класса устройств ввода/вывода:
• асинхронные устройства ввода/вывода (иногда их называют также активными), работающие по прерываниям. Когда асинхронное устройство ввода получает данные для обработки, оно генерирует прерывание. Асинхронное же устройство вывода генерирует прерывание, когда заканчивает операцию вывода и готово к приему новых данных;
• пассивные устройства ввода/вывода. Пассивное устройство не генерирует прерываний при завершении операции. Чтобы узнать, есть ли информация у пассивного устройства ввода, его надо периодически опрашивать. Соответственно перед отправкой данных пассивному устройству вывода надо убедиться, что оно готово принять их;
• канал связи. Некоторые управляемые микропроцессорами устройства ввода/вывода и внешние системы подключаются с помощью канала связи. Порядок обмена данными между системами определяется коммуникационным протоколом (например, TCP/IP). На прикладном уровне задачи, принадлежащие разным системам, обмениваются сообщениями.
Дата добавления: 2018-08-06; просмотров: 222; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!