- •1. Понятие вычислительной системы
- •1.1. Модель вычислителя
- •1.2. Модель коллектива вычислителей
- •1.3. Понятие параллельных алгоритмов
- •1.4. Принципы технической реализации модели коллектива вычислителей
- •1.5. Классификация архитектур вычислительных систем
- •1.6. Конвейерные вычислительные системы
- •1.7. Матричные вычислительные системы
- •1.8. Мультипроцессорные системы
- •1.9. Распределенные вычислительные системы
- •1.10. Вычислительные системы с программируемой структурой
- •1.11. Примеры реализаций вычислительных систем.
- •2. Аппаратные средства вс
- •2.1. Прерывания
- •2.2. Многомодульное программирование
- •2.3. Реализация архитектурных решений. Обзор технологий процессоров Intel
- •3. Ос. Основные понятия и типы операционных систем
- •3.1. Основные технологии программирования
- •3.2. Общие подходы к построению ос. Классификация ос.
- •3.3. Основные функции ос
- •3.4. Подходы к построению ос.
- •3.5. Виртуализация
- •3.6. Подходы Oracle
- •3.7. Центры обработки данных (цод)
- •Инструментарий ос (на основе Windows)
- •Основные базовые понятия: процессы и потоки
- •Инструментарий
- •Режим ядра и пользовательский режим
- •Средства изучения внутреннего устройства Windows
- •Основные концепции построения Windows
- •Архитектура современных ос
- •Лекция Основные требования при проектировании
- •Модель ос Windows
- •Обзор архитектуры
- •Многопроцессорная обработка
- •Различия между клиентскими и серверными версиями ос Windows
- •Лекция. Проверочный выпуск ос
- •Ключевые компоненты системы
- •Подсистема окружения
- •Подсистема окружения Windows
- •Исполнительная система Windows
- •Объекты ядра
- •Поддержка оборудования
- •Уровень абстрагирования от оборудования (Hardware Abstraction Layer)
- •Драйверы устройств в ос Windows
- •Недокументированные интерфейсы
- •Системные процессы
- •Прерывания (interrupts) и dpc (deferred procedure calls)
- •Процесс system и его потоки
- •Диспетчер сеансов
- •Диспетчер управления сервисами
- •Системные механизмы Windows
- •Виртуальная память
- •Режим ядра и пользовательский режим
- •Другие механизмы
- •Уровни запросов программных прерываний
- •Объекты прерывания
- •Программные прерывания
- •Прерывания apc (Asynchronous Procedure Call)
- •Диспетчеризация исключений
- •Необработанные исключения
- •Поддержка отчетов об ошибках
- •Диспетчеризация системных сервисов
- •Диспетчеризация 32-разрядных системных сервисов
- •Диспетчеризация системных сервисов режима ядра
- •Диспетчер объектов
- •Объекты исполнительной системы
- •Структура объектов в Windows
- •Заголовки и тела объектов
- •Объекты типа
- •Атрибуты объекта типа
- •Методы объекта
- •Описатели объектов и таблица описателей
- •Глобальные флаги Windows
- •Трассировка событий ядра
- •Управление процессами и потоками
- •Внутреннее устройство процессов
- •Создание процессов
- •Внутреннее устройство процессов. Структуры данных
- •Внутреннее устройство потоков
- •Основные блоки описания потоков в ос Windows
- •Взаимодействие процессов (ipc)
- •Взаимоисключения
- •Синхронизация в Windows
- •Спин-блокировки
1.3. Понятие параллельных алгоритмов
Для функционирования вычислительной системы, как правило, задача представляется в виде параллельного алгоритма.
Параллельный алгоритм (фундаментальное понятие теории вычислительных систем) – описание процесса обработки информации, ориентированного на реализацию в коллективе вычислителей.
В отличие от последовательного алгоритма, параллельный предусматривает одновременное выполнение множества операций в пределах одного шага вычислений.
Параллельный алгоритм составляет основу параллельной программы, которая влияет на алгоритм функционирования вычислительной системы. Программа, реализующая параллельный алгоритм, называется параллельной программой, а формальный язык – параллельным.
Замечание: не все задачи можно представить в виде параллельного алгоритма. Такая методика подходит в целом для решения сложной многокритериальной задачи.
Методы и алгоритмы решения задач, как правило, последовательные. Деятельность по созданию параллельных алгоритмов программ называется параллельным программированием.
Качество параллельного алгоритма (его эффективность) определяется применяемым методом распараллеливания.
Существует два основных подхода по распараллеливанию задач:
1) локальное;
2) глобальное (крупноблочное).
Первый подход ориентирован на расщеплении сложной задачи на предельно простые блоки (операции, операторы). Он в целом не приводит к параллельным алгоритмам, эффективно реализуемым коллективом вычислителей. Процесс распараллеливания трудоемок. Параллельные алгоритмы структурно неоднородны и различаются объемами вычислений на различных этапах.
Второй подход предусматривает разделение сложной задачи на крупные блоки – подзадачи, между которыми существует малая связность. В этом случае обмен информацией между подзадачами составляет незначительную часть, чем при решении непосредственно самой подзадачи. Именно такое распараллеливание обеспечивает получение ветвей параллельного алгоритма и ветвей параллельной программы.
Одним из примеров крупноблочного распараллеливания является распараллеливание по циклам. Прием позволяет представить решение задачи в виде параллельных ветвей, полученных расщеплением цикла на части, количество которых равно числу повторений цикла.
1.4. Принципы технической реализации модели коллектива вычислителей
1) Модульность (modularity) – формирование вычислительной системы из унифицированных элементарных модулей;
2) Близкодействие (short range interaction) – каждый модуль может обмениваться через посредников друг с другом. Взаимодействие с удаленным модулем (вершинами) осуществляется транзитно через промежуточные вершины. Замечание: принцип дает возможность реализовать управление вычислительной системой вне зависимости от количества составляющих модулей.
3) Локальность – состояние вычислителя:
на
очередном временном шаге
зависит от состояния на предыдущем шаге
непосредственно связанных с ним
вычислителей, где
– номер вычислителя.
4) Асинхронность функционирования – порядок срабатывания модулей определяется не с помощью меток времени, а достижением значений переменных.
5) Децентрализованность управления – в системе нет выделенного модуля, который функционирует как единый центр управления.
6) Распределенность ресурсов – в системе нет единого ресурса, используемого другими вычислителями в режиме разделения времени.
