Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
экзамен СП.docx
Скачиваний:
13
Добавлен:
22.04.2019
Размер:
515.86 Кб
Скачать

Сравнительная характеристика механизмов взаимодействия

Свойства различных механизмов, предлагаемых ОС для решения задач взаимодействия процессов и потоков, удобно представить в виде таблицы. Т.к. речь идет в первую очередь о реальных механизмах, предусмотренных в Win 32, то все остальные рассматриваются также со стороны Win 32, хотя многие из них, например, сокетов BSD, значительно старше по происхождению и "глобальнее" по значимости.

Таблица хх.

Сравнение механизмов взаимодействия

Механизм

Переносимость

Глобальность

Функциональность

Производительность, экономичность

Использование файловой системы

Унификация, поддержка системой

Теоретические

Глобальные переменные Деккера

да

нутрипроцессный (межпроцессный)

синхронизация,

обмен данными (ограниченно)

высокая

нет

поддержка ОС желательна

Семафоры Дейкстры

да

межпроцессный

синхронизация

высокая

нет

да

Монитор Хоара

частично

межпроцессный

различные функции

интерфейс вызовов

нет

да

Рандеву Хоара/Хансена

ограниченно

межпроцессный

синхронизация, обмен данными, передача управления

нет

да

Схема "клиент-сервер"

Да

межпроцессный

(межсистемный)

синхронизация, обмен данными, передача управления

нет

(но может использовать для идентификации)

да

Реальные

Глобальные флаги (переменные)

да (т.к. не требуют поддержки ОС)

внутрипроцессный

синхронизация, обмен данными

нет

нет

"Блокированные" вызовы

ограниченно

внутрипроцессный

(межпроцессный)

синхронизация, обмен данными

высокая

нет

да, но ограниченная

Объект "критичес­кая секция"

ограниченно

внутрипроцессный

синхронизация

высокая

нет

да

Функции ожидания, объекты ISO

да, но имеют большие различия

межпроцессный

синхронизация

высокая

нет

да

Сигналы

да, но имеют большие различия

межпроцессный

синхронизация, передача управления

высокая

нет

да

Сообщения Windows

нет

межпроцессный

синхронизация, передача управления, обмен данными (ограниченно)

высокая

нет

да

Глобальные данные DLL

ограниченно (могут быть аналоги)

межпроцессный

синхронизация, обмен данными

высокая

ограниченно

(идентификация DLL)

нет или недостаточная

Объекты "блок памяти"

да (имеют различия)

межпроцессный

обмен данными

высокая

нет

да

Буфер обмена

ограниченно

межпроцессный

обмен данными, в т.ч. с синхронизацией (ожидание)

высокая

нет

(неявно)

да, но ограниченная

Отображение файлов

ограниченно

межпроцессный

обмен данными (автоматическая поддержка когерентности)

достаточно высокая

да (можно использовать и безымянный файл подкачки)

да

DDE, OLE, COM, ActiveX

нет (могут присутствовать аналоги)

сложные специализированные механизмы, плохо поддающиеся формальной характеристике

да

Неименованные каналы

да

межпроцессный (ограниченно)

обмен данными, в т.ч. с синхронизацией (ожидание)

ограничено файловой системой и буферизацией

нет

(неявно)

да

Именован­ные каналы, "почтовые ящики"

ограниченно

межсистемный

обмен данными, в т.ч. с синхронизацией (ожидание)

ограничено файловой системой и буферизацией

да, в т.ч. сетевая

да

Сокеты, NetBIOS и др. сетевые интерфейсы

да

межсистемный и межплатформенный

синхронизация, обмен данными

зависит от параметров среды взаимодействия

нет либо частично (пространство имен)

да

RPC, MSMQ

да (RPC),

нет (MSMQ)

межсистемный, RPC также и межплатформенный

синхронизация, обмен данными, передача управления

интерфейс вызовов,

зависит от параметров среды взаимодействия

нет

да

Примечание 1. Под "переносимостью" здесь понимается наличие либо отсутствие поддержки данного средства на различных платформах. "Ограниченная переносимость" – имеется в виду принципиальное существование аналогичного средства, но перенос программ без их изменение невозможен (например, особенности реализации, формат системных вызовов и т.д.). Для "теоретических" механизмов – вообще распространенность конкретного механизма или возможность реализовать его на различных платформах.

Примечание 2. Под "глобальностью" здесь понимается возможность использования механизма при взаимодействии субъектов на различных уровнях: внутри процесса (между потоками/нитями), между процессами в одной системе (на одной ЭВМ), между системами, но под единой ОС, между различными платформами. Для теоретических механизмов различие межсистемного и межплатформенного взаимодействия несущественно. В ряде случаев "повышение глобальности" механизма возможно при использовании дополнительных средств, например, глобальная переменная процесса может быть сделана доступной также и другим процессам.

Примечание 3. В общем, тут еще примечать и примечать, потому что многое формально описать не удается. Но это уже позже.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]