Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовой по СРВ.doc
Скачиваний:
96
Добавлен:
02.05.2014
Размер:
2.59 Mб
Скачать

7. Разбиение системы на задачи

Далее рассматривается разбиение на задачи. Для этого необходимо проанали­зировать все объекты на диаграммах кооперации и применить критерии выделе­ния задач. Мы сделаем это для каждой диаграммы по очереди.

В распределенной системе управления исправлением ошибок имеется по одному экземпляру Подсистемы управления исправлением ошибок и по одному экземпляру Подсистемы шлюзов (см. рис. 9). Но, если трактовать систему как нераспределенную, можно кое-что упростить. В данном случае система управле­ния исправлением ошибок отображается на один процессор или сильно связанную многопро­цессорную конфигурацию (с общей памятью).

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

Рис.12. Уточненная статическая модель системы управления исправлением ошибок

7.1. Выделение задач в подсистеме управления исправлением ошибок

Рассмотрим архитектуру задач Подсистемы управления исправлением ошибок для нераспределенного случая.

На диаграмме кооперации Исправление ошибок нужно обратить внимание на объект интерфейса устройства, который получает входную информацию от актера, и затем проследить цепочку взаимодействий. Объект Интерфейс кнопки исправления ошибок выделяется в самостоятельную задачу Интерфейс кно­пок (актер нажимает на кнопку для исправления ошибок) с помощью критерия асинхронного интерфейса устройства ввода. Применив инверсию задач, мы проектируем одну задачу, которая будет отвечать за все кнопки системы, вместо того чтобы иметь по одной задаче на каждую кнопку. Задача Интерфейс кнопок активизируется прерыванием, возникающим при нажатии любой кнопки. Затем она считывает входную информацию от кноп­ки и посылает запрос Диспетчеру, а сама тем временем готовится к при­ходу следующего прерывания. Диспетчер, который является объектом-координатором, получает сообщения от Интерфейса кнопок в данном прецеденте. Он выделяется в координирующую задачу, активизируемую приходом сообщения Запрос кнопки.

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

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

7.2. Выделение задач в подсистеме шлюзов

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

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

Тут вы можете оставить комментарий к выбранному абзацу или сообщить об ошибке.

Оставленные комментарии видны всем.