^
Начало
Установить закладку
+ Настройки
14 | 16 | 18 | 20 | 22 | 24
Ширина текста:
50% | 60% | 70% | 80% | 90% | 100%
Шрифт:
Цвет текста:
Установить
Цвет фона:
Установить
Сбросить настройки
Введение
Этапы большого пути
Подход
Почему именно С++
Библиотеки для параллельного и распределенного программирования
Новый единый стандарт спецификаций UNIX
Для кого написана эта книга
Среды разработки
Дополнительный материал
Благодарности
Преимущества параллельного программирования
Что такое параллелизм
Преимущества параллельного программирования
Преимущества распределенного программирования
Минимальные требования
Базовые уровни программного параллелизма
Отсутствие языковой поддержки параллелизма в С++
Среды для параллельного и распределенного программирования
Резюме
Проблемы параллельного и распределенного программирования
Кардинальное изменение парадигмы
Проблемы координации
Отказы оборудования и поведение ПО
Негативные последствия излишнего параллелизма и распределения
Выбор архитектуры
Различные методы тестирования и отладки
Связь между параллельным и распределенным проектами
Резюме
Разбиение С++ программ на множество задач
Определение процесса
Анатомия процесса
Состояния процессов
Планирование процессов
Переключение контекста
Создание процесса
Завершение процесса
Ресурсы процессов
Асинхронные и синхронные процессы
Разбиение программы на задачи
Резюме
Разбиение C++ программ на множество потоков
Определение потока
Анатомия потока
Планирование потоков
Ресурсы потоков
Модели создания и функционирования потоков
Введение в библиотеку Pthread
Анатомия простой многопоточной программы
Создание потоков
Управление потоками
Безопасность использования потоков и библиотек
Разбиение программы на несколько потоков
Резюме
Синхронизация параллельно выполняемых задач
Координация порядка выполнения потоков
Синхронизация доступа к данным
Что такое семафоры
Объектно-ориентированный подход к синхронизации
Резюме
Объединение возможностей параллельного программирования и C++ средств на основе PVM
Классические модели параллелизма, поддерживаемые системой PVM
Библиотека PVM для языка С++
Базовые механизмы PVM
Доступ к стандартному входному потоку (stdin) и стандартному выходному потоку (stdout) со стороны PVM-задач
Резюме
Обработка ошибок, исключительных ситуаций и надежность программного обеспечения
Надежность программного обеспечения
Отказы в программных и аппаратных компонентах
Определение дефектов в зависимости от спецификаций ПО
Обработка ошибок или обработка исключительных ситуаций?
Надежность ПО: простой план
Использование объектов отображения для обработки ошибок
Механизмы обработки исключительных ситуаций в С++
Диаграммы событий, логические выражения и логические схемы
Резюме
Распределенное объектно-ориентированное программирование
Декомпозиция задачи и инкапсуляция ее решения
Доступ к объектам из других адресных пространств
Анатомия базовой CORBA-программы потребителя
Анатомия базовой CORBA-программы изготовителя
Базовый npoeкт CORBA-приложения
Служба имен
Подробнее об объектных адаптерах
Хранилища реализаций и интерфейсов
Простые pacnpeделенные Web-службы, использующие CORBA-спецификацию
Маклерская служба
Парадигма «клиент-сервер»
Резюме
Реализация моделей SPMD и MPMD с помощью шаблонов и MPI-программирования
Декомпозиция работ для MPI-интерфейса
Использование шаблонных функций для представления MPI-задач
Как упростить взаимодействие между MPI-задачами
Резюме
Визуализация проектов параллельных и распределенных систем
Визуализация структур
Отображение параллельного поведения
Визуализация всей системы
Резюме
Проектирование компонентов для поддержки параллелизма
Как воспользоваться преимуществами интерфейсных классов
Подробнее об объектно-ориентированном взаимном исключении и интерфейсных классах
Поддержка потокового представления
Пользовательские классы, создаваемые для обработки PVM-потоков данных
Объектно-ориентированные каналы и FIFO-очереди как базовые элементы низкого уровня
Каркасные классы
Резюме
Реализация агентно-ориентированных архитектур
Что такое агенты
Понятие об агентно-ориентированном программировании
Базовые компоненты агентов
Реализация агентов в С++
12.6. Резюме
Реализация технологии «классной доски» с использованием PVM-средств, потоков и компонентов
Модель «классной доски»
Методы структурирования «классной доски»
Анатомия источника знаний
Стратегии управления для «классной доски»
Реализация модели «классной доски» с помощью CORBA-объектов
Реализация модели «классной доски» с помощью глобальных объектов
Активизация источников знаний с помощью потоков
Резюме
Приложение A
Диаграммы классов и объектов
Диаграммы взаимодейс т вия
A.3. Диаграммы состояний
A.4. Диаграммы пакетов
Приложение Б [26]
posix_spawn, posix_spawnp
posix_spawn_file_actions_addclose, posix_spawn_file_actions_addopen
posix_spawn_file_actions_adddup2
posix_spawn_file_actions_destroy, posix_spawn_file_actions_init
posix_spawnattr_destroy, posix_spawnattr_init
posix_spawnattr_getflags, posix_spawnattr_setflags
posix_spawnattr_getpgroup, posix_spawnattr_setpgroup
posix_spawnattr_getschedparam, posix_spawnattr_setschedparam
posix_spawnattr_getschedpolicy, posix_spawnattr_setschedpolicy
posix_spawnattr_getsigdefault, posix_spawnattr_setsigdefault
posix_spawnattr_getsigmask, posix_spawnattr_setsigmask
pthread_attr_destroy, pthread_attr_init
pthread_attr_getdetachstate, pthread_attr__setdetachstate
pthread_attr_getguardsize, pthread_attr_setguardsize
pthread_attr_getinheritsched, pthread_attr_setinheritsched
pthread_attr_getschedparam, pthread_attr_setschedparam
pthread_attr_getschedpolicy, pthread_attr_setschedpolicy
pthread_cancel
pthread_cleanup_pop, pthread_cleanup_push
pthread_cond_broadcast(),pthread_cond_signal()
pthread_cond_destroy, pthread_cond_init
pthread_cond_timedwait, pthread_cond_wait
pthread_condattr_destroy, pthread_condattr_init
pthread_condattr_getpshared, pthread_condattr_setpshared
pthread_create
pthread_detach
pthread_exit
pthread_getconcurrency, pthread_setconcurrency
pthread_getschedparam, pthread_setschedparam
pthread_join
pthread_mutex_destroy, pthread_mutex_init
pthread_mutex_getprioceiling, pthread_mutex_setprioceiling
pthread_mutex_lock, pthread_mutex_trylock, pthread_mutex_unlock
pthread_mutex_timedlock
pthread_mutexattr_destroy
pthread_mutexattr_getprioceiling, pthread_mutexattr_setprioceiling
pthread_mutexattr_setprotocol, pthread_mutexattr_getprotocol
pthread_mutexattr_getpshared, pthread_mutexattr_setpshared
pthread_mutexattr_gettype, pthread_mutexattr_settype
pthread_once
pthread_rwlock_destroy, pthread_rwlock_init
pthread_rwlock_rdlock, pthread_rwlock_tryrdlock
pthread_rwlock_timedrdlock
pthread_rwlock_timedwrlock
pthread_rwlock_trywrlock, pthread_rwlock_wrlock
pthread_rwlock_unlock
pthread_rwlockattr_destroy, pthread_rwlockattr_init
pthread_rwlockattr_getpshared, pthread_rwlockattr_setpshared
pthread_self
pthread_setcancelstate, pthread_setcanceltype, pthread_testcancel
pthread_setschedprio