Сравнение различных систем межпроцессного взаимодействия
Сравнение различных систем межпроцессного взаимодействия
Заканчивая разговор о межпроцессном взаимодействии в UNIX, приведем сводную сравнительную таблицу рассмотренных систем.
Каналы FIFO Сообщения Разделяемая память Сокеты (домен UNIX) Пространство имен — Имя файла Ключ Ключ Имя файла Объект Системный канал Именованный канал Очередь сообщений Разделяемая область памяти Коммуникационный узел Создание объекта pipe() mknod() msgget() shmget() socket() Связывание pipe() open() msgget() shmat() bind() connect() Передача данных read() write() read() write() msgrcv() msgsnd() Непосредственный доступ memcpy() read() write() recv() send() recvfrom() sendto() Уничтожение close() close() unlink() msgctl() shmdt() close() unlink()Если говорить о производительности IPC, то наиболее быстрым способом передачи данных между неродственными процессами является разделяемая память. Разделяемая память является частью адресного пространства для каждого из взаимодействующих процессов, поэтому чтение и запись в эту область неотличимы, например, от чтения и записи в область собственных данных процесса. Однако при использовании разделяемой памяти необходимо обеспечить синхронизацию процессов. При использовании семафоров, необходимо иметь в виду следующие обстоятельства:
? Применение семафоров может увеличить число процессов в очереди на выполнение, поскольку несколько процессов, ожидающих разрешающего сигнала семафора, будут одновременно разбужены и переведены в очередь на выполнение.
? Применение семафоров увеличивает число переключений контекста, что, в свою очередь, увеличивает нагрузку на систему.
? В то же время, использование семафоров является наиболее стандартным (POSIX.1b), хотя и неэффективным способом обеспечения синхронизации.
Очереди сообщений предназначены для обмена короткими (обычно менее 1 Кбайт) структурами данных. Если объем данных превышает эту величину, использование сообщений может значительно увеличить число системных вызовов и уменьшить производительность операционной системы.
Интенсивность межпроцессного взаимодействия в системе можно определить с помощью команды sar -m. Вывод команды показывает число использования объектов IPC в секунду:
17:47:53 msg/s sema/s
17:47:58 0.20 20.00
17:48:03 0.60 12.20
17:48:08 2.20 10.40
17:48:13 0.80 25.10
17:48:18 0.00 15.60
Average 0.76 16.66
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКДанный текст является ознакомительным фрагментом.
Читайте также
Построение взаимодействия
Построение взаимодействия Мы изучили довольно простой пример, добавляя различные свойства CSS3 к элементам нашей страницы, которые относятся исключительно к взаимодействию. Браузеры, поддерживающие эти свойства, будут показывать анимацию полупрозрачного фона
8.1.2. Обзор различных типов файловых систем
8.1.2. Обзор различных типов файловых систем ЗАМЕЧАНИЕ. Обсуждение в данном разделе специфично для Linux. Однако, у многих современных систем Unix также есть сходные особенности. Мы рекомендуем вам изучить документацию своей системы. Исторически V7 Unix поддерживал лишь один тип
10.7. Сигналы для межпроцессного взаимодействия
10.7. Сигналы для межпроцессного взаимодействия «ЭТО УЖАСНАЯ МЫСЛЬ! СИГНАЛЫ НЕ ПРЕДНАЗНАЧЕНЫ ДЛЯ ЭТОГО! Просто скажите НЕТ». - Джефф Колье (Geoff Collyer) - Одним из главных механизмов межпроцессного взаимодействия (IPC) являются каналы, которые описаны в разделе 9.3 «Базовая
Сравнение времени выполнения различных версий функции str_cli
Сравнение времени выполнения различных версий функции str_cli Итак, мы продемонстрировали четыре различных версии функции str_cli. Для каждой версии мы покажем время, которое потребовалось для ее выполнения, в том числе и для версии, использующей программные потоки (см.
1.7.3 RFC и стимулирование сетевого взаимодействия продуктов различных производителей
1.7.3 RFC и стимулирование сетевого взаимодействия продуктов различных производителей То, что пользователи не должны придерживаться только одной компьютерной архитектуры, стало главной причиной одобрения TCP/IP в качестве коммуникационных стандартов правительственными
Запрос страницы сайта, сохраненной в кэше различных поисковых систем
Запрос страницы сайта, сохраненной в кэше различных поисковых систем Рис. 30. Запрос страницы сайта компании «Автоленд» из кэша Google, полученный через панель управления на ресурсе Fagan
6.1.2. Уровни взаимодействия OSI
6.1.2. Уровни взаимодействия OSI Физический уровень (Physical Layer)Физический уровень передает биты по физическим каналам связи, например, коаксиальному кабелю или витой паре. На этом уровне определяются характеристики электрических сигналов, которые передают дискретную
26.1. Способы взаимодействия
26.1. Способы взаимодействия Процессы, как и люди, могут «общаться» между собой, то есть обмениваться информацией. В главе 3 мы бегло рассмотрели два средства межпроцессного взаимодействия (IPC, Inter-Process Communication); полудуплексные каналы (конвейеры) и сигналы, но в UNIX-системах
5.5. Диаграммы взаимодействия
5.5. Диаграммы взаимодействия Существенное: объекты и их взаимодействия Диаграмма взаимодействии используется, чтобы проследить выполнение сценария в том же контексте, что и диаграмма объектов [Эти диаграммы обобщают диаграммы трассировки событий Румбаха и диаграммы
3 Контраст: сравнение философии Unix и других операционных систем
3 Контраст: сравнение философии Unix и других операционных систем Если ваша проблема выглядит неприступной, найдите пользователя Unix, который покажет, как ее решить. Информационный бюллетень Дилберта (Dilbert), 3.0, 1994 —Скотт Адаме Способы создания операционных систем, как
3.2. Сравнение операционных систем
3.2. Сравнение операционных систем Логика выбора конструкции Unix становится более очевидной в сравнении с другими операционными системами. Ниже приводится только общий обзор конструкций19.На рис. 3.1. отражены генетические связи между рассматриваемыми операционными
3 Контраст: сравнение философии Unix и других операционных систем
3 Контраст: сравнение философии Unix и других операционных систем Если ваша проблема выглядит неприступной, найдите пользователя Unix, который покажет, как ее решить. Информационный бюллетень Дилберта (Dilbert), 3.0, 1994 —Скотт Адамс Способы создания операционных систем, как
3.2. Сравнение операционных систем
3.2. Сравнение операционных систем Логика выбора конструкции Unix становится более очевидной в сравнении с другими операционными системами. Ниже приводится только общий обзор конструкций[23].На рис. 3.1. отражены генетические связи между рассматриваемыми операционными
Понятие удаленного взаимодействия .NET
Понятие удаленного взаимодействия .NET Вы должны помнить из главы 13, что домен приложения [AppDomain] задает логические границы выполнения компоновочного блока .NET в рамках процесса Win32. Понимание этого очень важно для дальнейшего обсуждения распределенных приложений .NET,
Каркас удаленного взаимодействия .NET
Каркас удаленного взаимодействия .NET Когда клиенты и серверы обмениваются информацией через границы приложений, среда CLR вынуждена использовать низкоуровневые примитивы, обеспечивающие настолько "прозрачное" взаимодействие сторон, насколько это возможно. Это значит,