Основы многопоточного и распределенного программирования
ПредисловиеОбзор области параллельных вычислений
Суть параллельного программирования
Структуры аппаратного обеспечения
Приложения и стили программирования
Итеративный параллелизм: умножение матриц
Производители и потребители: каналы ОС Unix
Клиенты и серверы: файловые системы
Взаимодействующие равные: распределенное умножение матриц
Обзор программной нотации
Историческая справка
Литература
Упражнения
Процессы и синхронизация
Состояние, действие, история и свойства
Распараллеливание: поиск образца в файле
Синхронизация: поиск максимального элемента массива
Неделимые действия и операторы ожидания
Синхронизация типа "производитель-потребитель"
Обзор аксиоматической семантики
Техника устранения взаимного вмешательства
Свойства безопасности и живучести
Блокировки и барьеры
Критические секции: решения со справедливой стратегией
Барьерная синхронизация
Алгоритмы, параллельные по данным
Основы многопоточного и распределенного программирования
СемафорыСинтаксис и семантика
Задача об обедающих философах
Распределение ресурсов и планирование
Учебные примеры: библиотека Pthreads
Мониторы
Методы синхронизации
Планирование работы диска: программные структуры
Однопроцессорное ядро
Реализация семафоров в ядре
Реализация мониторов в ядре
Реализация мониторов с помощью семафоров
Удаленный вызов процедур
Основы многопоточного и распределенного программирования
Нотация совместно используемых примитивовНовые решения задачи о читателях и писателях
Учебные примеры: язык Java
Учебные примеры: язык Ada
Учебные примеры: язык SR
Модели взаимодействия процессов
Управляющий-рабочие (распределенный портфель задач)
Алгоритмы пульсации
Конвейерные алгоритмы
Алгоритмы типа "зонд-эхо"
Алгоритмы рассылки
Алгоритмы передачи маркера
Дублируемые серверы
Реализация языковых механизмов
Асинхронная передача сообщений
Удаленный вызов процедур и рандеву
Синхронное параллельное программирование
Сеточные вычисления
Основы многопоточного и распределенного программирования
Матричные вычисленияЯзыки, компиляторы, библиотеки и инструментальные средства
Библиотеки параллельного программирования
Распараллеливающие компиляторы
Языки и модели
Инструментальные средства параллельного программирования
Словарь