Распределение модулей и подсистем по процессорам

При распределении модулей и подсистем по процессорам следует иметь в виду следующее:

- некоторые задачи нужно выполнять на определённых устройствах; например, обработку банковской карточки следует выполнять на ATM;

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

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

 

Управление хранилищами данных

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

В базах данных обычно размещают данные, удовлетворяющие одному из следующих условий:

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

- данные, которые могут эффективно управляться командами СУБД;

- данные, которые должны переноситься на многие платформы;

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

В файлах удобно размещать данные, удовлетворяющие одному из следующих условий:

- данные, которых много, но которые плохо поддаются структуризации;

- данные с низкой информационной плотностью (например, дампы);

- «сырые» данные, подготавливаемые для баз данных;

- «летучие» данные, которые хранятся короткое время, а потом удаляются.

Управление глобальными ресурсами

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

 

Реализация управления программным обеспечением

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

Известны три метода внешнего управления:

1) последовательное управление процедурами,

2) последовательное управление событиями,

3) параллельное асинхронное управление.

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

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

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

 

Пограничные ситуации

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

Инициализация. Перед тем как начать работать, система (объект) должна быть приведена в фиксированное начальное состояние: должны быть проинициализированы все константы, начальные значения глобальных переменных и параметров, задачи и, возможно, сама иерархия классов. Во время инициализации, как правило, бывает доступна лишь часть возможностей системы.

Терминация. Терминация состоит в освобождении всех внешних ресурсов, занятых задачами системы.

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