- •Билет №1
- •1.Составные части и свойства распределенной системы
- •2. Удаленный сервер
- •Билет №2
- •1. Параллелизм в распределенной системе
- •2. Реализация локального сервера
- •Билет №3
- •1. Закон Амдала
- •2. Заместитель/заглушка. Компилятор midl
- •Билет №4
- •1. Ускорение решения задачи в распределенной параллельной системе
- •2. Язык idl
- •Билет №5
- •1. Последовательные операции. Параллельные операции. Число процессоров.
- •2. Назначение данных на узлы распределенной системы. Модель назначения объектов на узлы. Сокращение трафика в каналах передачи данных.
- •Билет №6
- •1. Планирование параллельной распределенной обработки данных.
- •2. Модель назначения объектов на узлы. Частоты запросов к объектам. Длины объектов. Производительность узлов. Производительность каналов передачи данных.
- •Билет №7
- •1. Параллелизм в пространстве и во времени (конвейерный параллелизм)
- •2. Среднее время обработки одного запроса. Минимизация времени
- •Многошаговое планирование на базе asap
- •1 31 6 Типы операций:
- •Билет №8
- •1. Синхронное и асинхронное планирование.
- •2. Время обработки всех запросов к объектам. Загрузка узлов. Загрузка каналов передачи данных.
- •Билет №9
- •1. Планирование при ограничениях на ресурсы, время, достижимость
- •2. Локальный вызов процедуры. Маршалинг Локальный вызов процедуры
- •Маршалинг
- •Билет №10
- •Стратегия планирования asap Алгоритм планирования asap (как можно раньше)
- •2. Серверы в exe.
- •Билет №11
- •1. Стратегия планирования alap
- •2. Включение и агрегирование компонентов
- •Стратегия планирования «Группировка доминирующей последовательности» (Dominant Sequence Clustering - dsc)
- •Билет №12
- •1. Стратегия спискового планирования
- •Регистрация компонента в реестре
- •Билет №13
- •1. Многошаговое планирование
- •2. Функции CoGetClassObject и DllGetClassObject и их использование
- •Билет №14
- •1. Цепочечное планирование
- •2. Интерфейс iClassFactory
- •AБилет №15
- •1. Граф предшествования и граф распараллеленности операций
- •2. Фабрика класса
- •Билет №16
- •1. Свертывание графа распараллеленности операций
- •2. Использование динамической библиотеки. Экспорт функций из библиотеки. Загрузка и выгрузка dll
- •Билет №17
- •1. Синтез последовательно параллельного плана
- •2. Динамическая компоновка. Библиотеки dll. Создание динамической библиотеки
- •Билет №18
- •1. Модель разнородной распределенной системы
- •2. Управление временем жизни компонента. Подсчет ссылок
- •Билет №19
- •1. Сведение планирования к задаче целочисленного линейного программирования
- •2. Запрос интерфейса. Интерфейс iUnknown. Реализация интерфейса
- •1 31 6 Типы операций:
- •Билет №20
- •1. Задача минимизации ресурсов при заданном времени реализации плана
- •2. Таблица виртуальных функций
- •Билет №21
- •1. Целочисленное линейное программирование. Пример. Целевая функция. Система ограничений
- •Многошаговое планирование на базе asap
- •Билет №22
- •1. Планирование выполнения графа задач на узлах распределенной системы с учетом обмена данными
- •2. Теория интерфейсов
- •Неизменность интерфейсов
- •Билет №23
- •1. Граф задач. Назначение задач на процессоры. Обмен данными. План решения задач на каждом процессоре. Планирование выполнения графа задач на узлах распределенной системы с учетом обмена данными
- •Планирование графа задач
- •2. Языки и инструменты программирования распределенной обработки данных.
- •1 31 6 Типы операций:
- •Билет №24
- •1. Стратегии планирования на графе задач. Планирование графа задач
- •2. Процессы и потоки. Многопоточные приложения. Модель многопоточных приложений
- •Билет №25
- •1. Стратегия планирования «Наиболее ранняя задача первая» (Earliest Task First - etf). Стратегия планирования «Наиболее ранняя задача первая» (Earliest Task First - etf)
- •2 . Инкапсуляция. Полиморфизм. Виртуальные функции. Чисто абстрактные базовые классы. Множественное наследование. Инкапсуляция.
- •Полиморфизм и виртуальные функции
- •Чисто абстрактные базовые классы
- •Множественное наследование классов. Компоненты
- •1 31 6 Типы операций:
- •Билет №26
- •1. Стратегия планирования «Зануление дуг» (Edge Zeroing - ez). Стратегия планирования «Зануление дуг» (Edge Zeroing - ez)
- •2. Преимущество использования компонентов. Требования к компонентам. Преимущества использования компонентов
- •Требования к компонентам
- •Билет №27
- •2. Модель компонентных объектов com.
- •1 31 6 Типы операций:
- •Билет №28
- •1. Стратегия планирования «Управление мобильностью» (Mobility Directed - md). Стратегия планирования «Управление мобильностью» (Mobility Directed - md)
- •2. Интерфейс передачи сообщений (Message Passing Interface - mpi). Интерфейс передачи сообщений mpi
- •Постановка проблемы
- •Билет №29
- •1. Граф взаимодействия задач. Граф разнородной сети. Планирование решения задач в разнородной распределенной системе
- •2. Интерфейс OpenMp. Интерфейс OpenMp
- •Билет №30
- •Постановка проблемы
- •Алгоритм а* оптимального назначения задач на процессоры
- •2. Технологический стандарт написания распределённых приложений corba. Технологический стандарт corba
2. Локальный вызов процедуры. Маршалинг Локальный вызов процедуры
В качестве метода межпроцессной коммуникации СОМ использует локальный вызов процедуры (local procedure call, LPC). LPC — это средство связи между разными процессами на одной и той же машине. LPC представляет собой специализированное средство связи между разными процессами в пределах одной машины, построенное на основе удаленного вызова процедуры (remote procedure call, RPC).
Стандарт RPC определен OSF (Open Software Foundation) в спецификации DCE (Distributed Computing Environment) RPC. RPC обеспечивает коммуникацию между процессами на разных машинах с помощью разнообразных сетевых протоколов. Распределенная модель DCOM использует RPC для связи по сети. RPC работает с использованием реализации вызовов процедуры операционной системой. Операционной системе известны физические адреса, соответствующие логическому адресному пространству каждого процесса; следовательно, операционная система может вызывать функции внутри любого процесса.
Маршалинг
При вызове функции EXE необходимо передать параметры функции из адресного пространства клиента в адресное пространство компонента. Этот процесс называется маршалингом (marshaling). Если оба процесса находятся на одной машине, маршалинг копирует данные одного процесса в адресное пространство другого процесса. Если процессы находятся на разных машинах, данные преобразуются в стандартный формат, учитывающий межмашинные различия, например, порядок следования байтов в слове.
Механизм LPC способен скопировать данные из одного процесса в другой. Для выборки параметров и посылки их в другой процесс ему требуется больше информации, чем содержится в заголовочном файле С++. Например, указатели на структуры следует обрабатывать иначе, чем целые числа. Маршалинг указателя включает в себя копирование в другой процесс структуры, на которую указатель ссылается. Однако, если указатель — это указатель на интерфейс, то область памяти, на которую он ссылается, копироваться не должна. Как видите, для выполнения маршалинга нужно сделать больше, чем просто вызвать memcpy. Для маршалинга компонента предназначен интерфейс IMarshal. В процессе создания компонента СОМ запрашивает у него этот интерфейс. Затем СОМ вызывает функции-члены этого интерфейса для маршалинга и демаршалинга параметров до и после вызова функций. Библиотека СОМ реализует стандартную версию IMarshal, которая работает для большинства интерфейсов.
Задача - Построить план с использованием стратегии «Наиболее ранняя задача первая»
С
тратегия
ETF
использует статические приоритеты
задач и учитывает ограничение на число
процессоров. Тем не менее, задача с более
высоким приоритетом не обязательно
планируется перед задачей с менее
высоким приоритетом. Причиной является
то, что на каждом шаге ETF
вычисляет наиболее раннее время запуска
всех готовых к планированию задач и
выбирает задачу с минимальным временем
запуска. Задача готова к планированию,
если все предшествующие задачи уже
спланированы. Наиболее раннее время
запуска задачи вычисляется путем
оценивания времен запуска задачи на
всех возможных процессорах, включая
ранее не использовавшийся процессор.
Если две задачи имеют одинаковое наиболее
раннее время запуска, выбирается задача
с более высоким статическим приоритетом.
Статические приоритеты вычисляются на
основе применения стратегии ALAP
и оценивания наиболее поздних времен
запуска задач.
Рассмотрим стратегию на примере графа задач, показанного на рис.1. Предварительно выполняется упорядочение задач с присвоением им статического приоритета на основе применения стратегии ALAP (рис.1а):
Задача |
n1 |
n2 |
n3 |
n4 |
Наиболее позднее время начала выполнения |
0 |
24 |
25 |
45 |
Приоритет |
1 |
2 |
3 |
4 |
Построение плана происходит на четырех шагах (число шагов равно числу узлов в графе задач).
Ш
аг
1. Задача n1
готова к планированию, имеет наивысший
статический приоритет 1 и соответственно
минимальное время начала выполнения.
Поскольку ни одного процессора еще не
задействовано, назначаем узел n1
на процессор PE0
(рис.2).
Ш
аг
2. Задачи n2
и n3
готовы к планированию. Наиболее раннее
время запуска обеих задач равно 5. Задача
n2
имеет более высокий статический приоритет
2, поэтому выбирается на шаге 2. Поскольку
один процессор уже задействован,
рассматриваем попытку введения второго
процессора и исследуем два варианта I
и II
назначения узла n2
на процессор PE0
и на новый процессор PE1
(рис.3). В варианте I
время запуска задачи n2
равно 5. В варианте II
время запуска равно 6. Следовательно,
предпочтительным является вариант I,
его и выбираем для дальнейшего
рассмотрения.
Шаг 3. Задача n3 готова к планированию, имеет статический приоритет 3 и наиболее позднее время запуска 25. Поскольку задачи n1 и n2 назначены на шаге 2 на процессор PE0, рассматриваем попытку введения второго процессора и снова исследуем два варианта I и II назначения узла n3 на процессор PE0 и на новый процессор PE1 (рис.4). В варианте I время запуска задачи n3 равно 25. В варианте II время запуска также равно 25. Для дальнейшего рассмотрения выбираем вариант I, поскольку он использует только один процессор.
Ш
аг
4. Задача n4
готова к планированию, имеет наиболее
раннее время запуска 45, статический
приоритет 4 и наиболее позднее время
начала выполнения 45. Поскольку задачи
n2
и n3
назначены на шаге 3 на процессор PE0,
снова рассматриваем попытку введения
второго узла и исследуем два варианта
I
и II
назначения узла n4
на процессор PE0
и на новый процессор PE1
(рис.5). В варианте I
время запуска задачи n4
равно 35. В варианте II
время запуска также равно 45. В качестве
искомого асинхронного плана выбираем
вариант I,
поскольку он имеет меньшее время запуска
задачи n4.
Как показано на рис.6, время реализации
плана равно 43 единицам.
