Основы многопоточного и распределенного программирования

       

Реализация языковых механизмов


______________________________Глава 10

Реализация языковых механизмов

В данной главе представлены способы реализации различных языковых механизмов, опи­санных в главах 7 и 8: асинхронной и синхронной передачи сообщений, удаленного вызова процедур (RPC) и рандеву. Сначала показано, как реализовать асинхронную передачу сооб­щений с помощью ядра. Затем асинхронная передача сообщений используется для реализа­ции синхронной передачи сообщений и защищенного взаимодействия. Далее демонстриру­ется реализация RPC с помощью ядра, рандеву с помощью асинхронной передачи сообщений и, наконец, рандеву (и совместно используемые примитивы) в ядре.

Реализация синхронной передачи сообщений сложнее, чем асинхронной, поскольку опе­раторы как приема, так и передачи являются блокирующими. Аналогично реализация ранде­ву сложнее, чем реализация RPC или асинхронной передачи сообщений, поскольку для ран­деву нужны двусторонние взаимодействие и синхронизация.

Отправной точкой рассматриваемых реализаций является ядро с разделяемой памятью из главы 6. Таким образом, хотя программы, использующие передачу сообщений, RPC и ранде­ву, обычно пишутся для машин с распределенной памятью, их можно выполнять и на маши­нах с разделяемой памятью. Используя так называемую распределенную разделяемую память, можно выполнять программы с разделяемыми переменными на машинах с распределенной памятью, даже если они были написаны для работы на машинах с разделяемой памятью. По­следний раздел главы посвящен реализации распределенной разделяемой памяти.



Содержание раздела