Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Itogi_Shpory

.pdf
Скачиваний:
41
Добавлен:
18.03.2015
Размер:
2.33 Mб
Скачать

27.Диаграммы взаимодействия

ВUML есть два вида диаграмм взаимодействия: диаграммы кооперации и диаграммы последовательности.

На диаграмме кооперации показывается, как объекты динамически общаются между собой, посылая и получая сообщения. Эта диаграмма представляет структурную организацию взаимодействующих объектов, изображаемых в виде прямоугольников и соединяющих их дуг. Помеченные стрелки рядом с дугами обозначают имя сообщения и направление его передачи между объектами. Отдельные сообщения в последовательности сообщений, отправляемых от одного объекта к другому, нумеруются. Необязательное повторение обозначается символом *, свидетельствующим, что информация посылается более одного раза. Необязательное условие означает, что сообщение посылается только тогда, когда условие истинно.

На диаграмме последовательности обмен объектов сообщениями представлен во времени более точно и наглядно. Участвующие объекты изображаются вдоль горизонтальной оси, а время откладывается вдоль вертикальной. От прямоугольника каждого объекта идет вниз вертикальная пунктирная линия, называемая линией жизни. Период, в течение которого объект выполняет операцию, именуется активизацией. На протяжении этого периода линия жизни изображается двойной сплошной линией. Помеченные горизонтальные линии представляют пересылку сообщений. Существенны только отправитель и получатель сообщения. Сообщение посылается объектом-отправителем объекту-получателю.

28.Диаграммы состояний

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

Рядом с дугой, представляющей переход, находится условие перехода в виде: Событие [условие]/Действие. Событие вызывает переход в новое состояние. Если задано необязательное булевское условие, то переход осуществится, когда оно истинно. В результате перехода может быть выполнено необязательное действие. Дополнительно с состоянием иногда ассоциируются:

– действие при входе в состояние;

– деятельность, выполняемая во время нахождения внутри состояния;

– действие при выходе из состояния.

На рис. выше показано надсостояние А, разложенное на два последовательных подсостояния – А1 и А2. На следующем рис. изображено надсостояние В, разложенное на два параллельных подсостояния – ВС и BD.

29. Пакеты

В UML пакетом называется группа элементов модели, используемая, например, для представления системы или подсистемы. Такая группа изображается пиктограммой папки – большим прямоугольником, над которым находится прямоугольник поменьше. Каждый пакет владеет всеми своими элементами, т. е. теми элементами, которые включены в него. Про соответствующие элементы пакета говорят, что они принадлежат пакету или входят в него. При этом каждый элемент может принадлежать только одному пакету. Пакеты бывают вложенными: одни пакеты могут быть вложены в другие пакеты. В этом случае первые называются подпакетами, поскольку все элементы подпакета будут принадлежать более общему пакету. Тем самым для элементов модели задается отношение вложенности пакетов, которое представляет собой иерархию. Между ними могут существовать отношения зависимости и обобщения/специализации. Пакеты способны содержать классы, объекты или прецеденты.

Каждый пакет обладает именем, уточняющим область видимости

каждого элемента пакета. Например, если класс с именем Timer принадлежит

пакету Utilities, полное имя класса имеет вид Utilities::Timer. Элементы, входящие в один пакет, могут обращаться друг к другу без уточнения имен. Пакет может задавать уровень видимости входящих в него и импортированных элементов, однако элементы могут находиться только на одном из двух уровней: открытом или приватном. Открытая видимость означает, что элемент может использоваться за пределами пакета (с уточнением его имени именем пакета). Элементы с приватной видимостью могут использоваться только другими элементами того же пакета.

30. Диаграммы параллельной кооперации

Диаграмма параллельной кооперации позволяет наглядно представить параллелизм в системе. На такой диаграмме задача (активный объект, который имеет собственный поток управления и исполняется параллельно с другими объектами) показывается в виде прямоугольника с жирной границей, а пассивный объект (не имеющий своего потока управления, исполняется только тогда, когда другой объект вызовет одну из его операций) – в виде прямоугольника с тонкой границей.

Интерфейс для обмена сообщениями на диаграмме параллельной кооперации может быть слабо связанным или сильно

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

сильно связанный обмен сообщениями с ответом и сильно связанный обмен сообщениями без ответа.

31. Диаграммы развертывания

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

Узлом, как правило, является компьютер, при этом максимальное число экземпляров узла может быть ограничено. Для физического соединения имеется стереотип, задающий тип соединения, например «локальная сеть» или «глобальная сеть». На рис. показаны узлы двух типов: банкомат (каждый такой клиент занимает ровно один узел), соединенный с банковским сервером, который также размещен в одном узле. В кубе, представляющем узел, могут также изображаться объекты, находящиеся в этом узле. Есть так же вариант, где несколько клиентов и серверов соединены локальной сетью, сама сеть также присутствует в виде узла. Подобная нотация применяется в тех случаях, когда в сети есть более двух узлов-компьютеров.

32. Механизмы расширения UML

Механизмы расширения UML позволяют расширять его возможности контролируемым образом. В UML имеется три механизма расширения языка:

стереотипы, помеченные значения и ограничения. Стереотипы расширяют словарь

UML, позволяя на основе существующих блоков языка создавать новые, специфичные для решения конкретной проблемы. В UML определено несколько стандартных стереотипов, но проектировщик может создавать и собственные. Названия стереотипов заключаются в кавычки. Помеченное значение расширяет свойства строительного блока UML, сообщая тем самым новую информацию. Оно заключается в фигурные скобки {метка = значение}. Друг от друга помеченные значения отделяются запятыми. Например, класс на рис. имеет два помеченных значения (номер версии и автор): {версия = 1.0, автор = Gill}. Ограничение задает условие, которое должно выполняться. В UML ограничение семантически расширяет элемент, добавляя новые правила или изменяя существующие. Например, в классе Счет есть ограничение на атрибут баланс, состоящее в том, что баланс не должен быть отрицательным {баланс ≥ 0}. Помимо этого, в состав UML входит объектный язык ограничений Object Constraint Language.

33. Технологии параллельных и распределенных систем

Рассмотрим технологию (или инфраструктуру) параллельной и распределенной обработки, которая нужна в приложениях реального времени. Инфраструктуру обеспечивают операционная система, вычислительная сеть и программное обеспечение (ПО) промежуточного слоя. Основные среды для параллельной обработки можно отнести к следующим категориям: мультипрограммные среды, симметричные мультипроцессорные среды и распределенные среды. В мультипрограммной (или многозадачной) среде несколько задач разделяют единственный процессор. Виртуальный параллелизм обеспечивается операционной системой, которая управляет выделением процессора отдельным задачам, так что создается иллюзия, будто у каждой задачи есть свой процессор. В симметричной мультипроцессорной среде есть два или несколько процессоров с общей памятью. Для всех процессоров существует единое физическое адресное пространство, поэтому все процессы находятся в общей памяти. В такой среде поддерживается реальный параллелизм, поскольку процессоры работают одновременно. В случае распределенной среды есть несколько узлов, связанных между собой сетью. Каждый узел – это компьютер с собственной локальной памятью, который обычно представляет собой мультипрограммную или симметричную мультипроцессорную среду. Важным отличием распределенной среды является то, что у узлов нет общей памяти. Следовательно, распределенное приложение состоит из параллельных процессов, работающих в разных узлах.

Распределенная система состоит из компьютеров, соединенных коммуникационной средой, например локальной сетью. Типичные примеры – приложения клиент-сервер. Клиент-серверная система логически состоит из двух компонентов: клиента, который запрашивает сервисы, и сервера, который эти сервисы предоставляет. В одноранговой сети все компьютеры равноправны: нет иерархии среди компьютеров и нет выделенного сервера. Как правило, каждый компьютер функционирует и как клиент, и как сервер. В отличие от архитектуры клиент-сервера, такая организация позволяет сохранять работоспособность сети при любом количестве и любом сочетании доступных узлов.

34. Среды для параллельной обработки

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

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

Рис. Мультипрограммная среда

Всимметричной мультипроцессорной среде есть два или несколько процессоров

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

Рис. Симметричная мультипроцессорная среда

Рис. Распределенная среда

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

35. Поддержка исполнения в мультипрограммной и мультипроцессорной средах

Поддержка исполнения параллельных вычислений реализуется:

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

системой времени исполнения в языке программирования, поддерживающем параллелизм;

пакетом для поддержки потоков. Предоставляет сервисы, необходимые для управления потоками (облегченными процессами) внутри тяжеловесного процесса.

В языках, ориентированных на последовательное программирование, например С, C++, Pascal и Fortran, нет встроенной поддержки параллелизма. Поэтому при разработке параллельных многозадачных приложений на этих языках приходится прибегать к помощи ядра или библиотеки потоков.

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

Ядро операционной системы обычно предоставляет следующие сервисы:

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

межзадачную коммуникацию посредством сообщений;

взаимное исключение с помощью семафоров;

синхронизацию по событию с использованием сигналов. Вместо этого для синхронизации могут применяться сообщения;

обработку прерываний и базовые сервисы ввода/вывода;

управление памятью. Эта подсистема отвечает за отображение виртуальной памяти каждой задачи на физическую память.

В качестве примеров широко распространенных систем с поддержкой параллелизма в ядре можно назвать несколько версий UNIX (в том числе Linux, Solaris и AIX), Windows

98, Windows NT и Windows 2000.

36. Планирование задач

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

Алгоритмы планирования задач. Цель циклического алгоритма планирования – обеспечить справедливое выделение ресурсов. Задача ставится в очередь, поддерживающую принцип «первым пришел – первым обслужен» (FIFO). Задаче, находящейся в начале списка готовых, назначается процессор, которым она может владеть в течение фиксированного промежутка времени, называемого квантом. Если квант времени истек до того, как задача приостановилась сама (например, в ожидании завершения ввода/ вывода или сообщения), то ее приостанавливает ядро, после чего задача помещается в конец списка готовых. Затем ЦП выделяется другой задаче, оказавшейся в начале списка.

Для систем реального времени циклическое планирование не годится. Справедливое распределение ресурсов – это не главное, задачам нужно назначать приоритеты в соответствии с важностью выполняемых операций. Так, критичные по времени задачи обязательно должны уложиться в отведенные временные рамки. Поэтому для систем реального времени больше подходит алгоритм вытесняющего планирования с приоритетами. Каждой задаче назначается приоритет, и список готовых упорядочивается по значению этого приоритета. ЦП выделяется задаче с наивысшим приоритетом. Затем эта задача выполняется до тех пор, пока не приостановится сама либо не будет вытеснена задачей с большим приоритетом (которая только что возобновила работу). Задачам с одинаковыми приоритетами ЦП выделяется по циклическому алгоритму. Следует отметить, что при вытесняющем планировании с приоритетами квантование времени не применяется.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]