Чтение онлайн

ЖАНРЫ

Параллельное и распределенное программирование на С++
Шрифт:

Создание открепленных потоков с помощью объекта атрибутов

Управление потоками

Завершение потоков

Точки аннулирования потоков

Очистка перед завершением

Управление стеком потока

Установка атрибутов планирования и свойств потоков

Установка области конкуренции потока

Использование функции sysconf

Управление критическими разделами

Безопасность использования потоков и библиотек

Разбиение программы на несколько потоков

Использование модели

делегирования

Использование модели сети с равноправными узлами

Использование модели конвейера

Использование модели «изготовитель-потребитель»

Создание многопоточных объектов

Резюме

Синхронизация параллельно выполняемых задач

Координация порядка выполнения потоков

Взаимоотношения между синхронизируемыми задачами

Отношения типа старт-старт (CC)

Отношения типа финиш-старт (ФС)

Отношения типа старт-финиш (СФ)

Отношения типа финиш-финиш (ФФ)

Синхронизация доступа к данным

Модель РРАМ

Параллельный и исключающий доступ к памяти

Что такое семафоры

Операции по управлению семафором

Мьютексные семафоры

Использование мьютексного атрибутного объекта

Использование мьютексных семафоров для управления критическими разделами

Блокировки для чтения и записи

Использование блокировок чтения-записи для реализации стратегии доступа

Условные переменные

Использование условных переменных для управления отношениями синхронизации

Объектно-ориентированный подход к синхронизации

Резюме

Объединение возможностей параллельного программирования и C++ средств на основе PVM

Классические модели параллелизма, поддерживаемые системой PVM

Библиотека PVM для языка С++

Компиляция и компоновка C++/PVM-npoгpaмм

Выполнение PVM-программы в виде двоичного файла

Запуск PVM-программ c помощью PVM-консоли

Запуск PVM-программ c помощью XPVM

Требования к PVM-программам

Объединение динамической С++-библиотеки c библиотекой PVM

Методы использования PVM-задач

Реализация модели SPMD (SIMD) c помощью PVM-и С++-средств

Реализация модели MPMD (MIMD) с помощью PVM-и С++-средств

Базовые механизмы PVM

Функции управления процессами

Упаковка и отправка сообщений

Доступ к стандартному входному потоку (stdin) и стандартному выходному потоку (stdout) со стороны PVM-задач

Получение доступа к стандартному выходному потоку (cout) из сыновней задачи

Резюме

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

Надежность программного обеспечения

Отказы в программных и аппаратных компонентах

Определение дефектов в зависимости от спецификаций ПО

Обработка ошибок или обработка исключительных ситуаций?

Надежность ПО: простой план

План А:

модель возобновления, план Б: модель завершения

Использование объектов отображения для обработки ошибок

Механизмы обработки исключительных ситуаций в С++

Классы исключений

Классы runtime__error

Классы logic_error

Выведение новых классов исключений

Защита классов исключений от исключительныхситуаций

Диаграммы событий, логические выражения и логические схемы

Резюме

Распределенное объектно-ориентированное программирование

Декомпозиция задачи и инкапсуляция ее решения

Взаимодействие между распределенными объектами

Синхронизация взаимодействия локальных и удаленных объектов

Обработка ошибок и исключений в распределенной среде

Доступ к объектам из других адресных пространств

. IOR-доступ к удаленным объектам

Брокеры объектных запросов (ORB)

Язык описания интерфейсов (IDL):более «пристальный» взгляд на CORBA-объекты

Анатомия базовой CORBA-программы потребителя

Анатомия базовой CORBA-программы изготовителя

Базовый npoeкт CORBA-приложения

IDL-компилятор

Получение IOR-ссылки для удаленных объектов

Служба имен

Использование службы имен и создание именных контекстов

Служба имен «потребитель-клиент»

Подробнее об объектных адаптерах

Хранилища реализаций и интерфейсов

Простые pacnpeделенные Web-службы, использующие CORBA-спецификацию

Маклерская служба

Парадигма «клиент-сервер»

Резюме

Реализация моделей SPMD и MPMD с помощью шаблонов и MPI-программирования

Декомпозиция работ для MPI-интерфейса

Дифференциация задач по рангу

Группирование задач по коммуникаторам

Анатомия MPI-задачи

Использование шаблонных функций для представления MPI-задач

Реализация шаблонов и модельБРМО (типы данных)

Использование полиморфизмадля реализации MPMD-модели

Введение MPMD-модели c помощью функций -объектов

Как упростить взаимодействие между MPI-задачами

Перегрузка операторов «<<» и «>>» для организации взаимодействия между MPI-задачами

Резюме

Визуализация проектов параллельных и распределенных систем

Визуализация структур

Классы и объекты

Отображение информации об атрибутах и операциях класса

Организация атрибутов и операций

Шаблонные классы

Отношения между классами и объектами

Интерфейсные классы

Организация интерактивных объектов

Отображение параллельного поведения

Сотрудничество объектов

Процессы и потоки

Отображение нескольких потоков выполнения и взаимодействия между ними

Последовательность передачи сообщений между объектами

Поделиться с друзьями: