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


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

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



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

Рекомендуемая литература:

1. В.Г.Олифер, Н.А.Олифер. Сетевые операционные системы. Учебное пособие.-СПб.:БХВ-Петербург, 2006.-536с.

2. В.А.Шеховцов. Операційні системи.Підручник.-К.:Виканавча група ВНV. 2005. 576с.

3. Столлингс В. Операционные системы. М.: Вильямс, 2001. -672с.

Раздел 4

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

♦ Проблемы межпроцессового взаимодействия

♦ Виды межпроцессового взаимодействия

♦ Принципы и базовые примитивы передачи сообщений

♦ Технологии передачи сообщений

До сих пор мы рассматривали взаимодействие потоков одного процесса. Главной особенностью этого взаимодействия есть простота технической реализации обмена данными между ними - все потоки одного процесса используют одно адресное пространство, и могут свободно получать доступ к совместно используемым данным, будто они есть их собственными. Поскольку технических трудностей с реализацией обмена данными здесь нет, основной проблемой, которую нужно решать в этом случае, есть синхронизация потоков.

С другой стороны, каждый поток выполняется в рамках адресного пространства некоторого процесса, поэтому часто возникает задача организации взаимодействия между потоками разных процессов. Эта технология появилась задолго до распространению многопотоковости.

Для потоков разных процессов вопрос обеспечения синхронизации тоже являются актуальными, но они в большинстве случаев не основываются на понятии совместно используемых данных (такие данные по умолчанию для процессов отсутствуют). Кроме того, прибавляется довольно сложная задача обеспечения обмена данными между защищенными адресными пространствами. Подходы к ее решению определяют разные виды межпроцессового взаимодействия (interprocess communication, IPC).

Виды межпроцесорного взаимодействия

Реализация межпроцессового взаимодействия осуществляется тремя основными методами:

-метод передачи сообщений;

-метод распределения памяти;

-метод отображаемой памяти.

Еще одним методом ІРС также можно считать технологию сигналов, которая была рассмотрена в разделе 3 (Л1). Сигналы были рассмотрены раньше, так как их использование не сводится только к организации ІРС (синхронные сигналы являются средством оповещения процесса об исключительной ситуации); без них сложно объяснить ряд базовых понятий управления процессами (например, ожидание завершения процесса).

Методы распределения памяти

Методы распределения памяти (shared memory) дают возможность двум процессам обмениваться данными через общий буфер памяти. Перед обменом данными каждый из тех процессов должны присоединить этот буфер к своему адресному пространству с использованием специальных системных вызовов (перед этим проверяют права). Буфер доступен в системе с помощью процедуры именования, срок его существования обычно ограничен временем работы всей системы. Данные в нем фактически совместно используются и для потоков. Никаких средств синхронизации доступа к этим данным розпределения памяти не обеспечивается, программист, так же, как и при разработке многопотокових приложений, должен организовывать её сам.

Методы передачи сообщений

В основе методов передачи сообщений (message passing) лежат разные технологии, которые дают возможность потокам разных процессов (которые, возможно, выполняются на разных компьютерах) обмениваться информацией в виде фрагментов данных фиксированной или сменной длины, которые называют сообщениями (теззаез). Процессы могут принимать и отсылать сообщение, при этом автоматически обеспечивается их пересылка между адресными пространствами процессов одного компьютера или через сеть. Важной особенностью технологий передачи сообщений есть то, что они не опираются на совместно используемые данные - процессы могут обмениваться сообщениями, даже не знавая один об одном.

Основы передачи сообщений

Все методы взаимодействия, которые было рассмотрено до сих пор, основываются на чтении и записывании совместно используемых данных. На практике такое взаимодействие не всегда возможное (например, работа с совместно используемыми данными проблематична, если для процессов нет общей физической памяти, а есть только сетевая связь между компьютерами, на которые они выполняются). В таких случаях можно использовать средства взаимодействия, которые не основываются на совместно используемых данных, прежде всего средства передачи сообщений.

Как было уже упомянуто, средства передачи сообщений основываются на обмене сообщениями - фрагментами данных сменной длины. Основой такого обмена есть не общая память, а канал связи. Он обеспечивает взаимодействие между процессами (для того, чтобы общаться, они должны создать канал связи) и является абстрактным отображением сети связи. Абстрактность канала дает возможность реализовать его не только на основе сетевого взаимодействия, но и общей памяти (когда процессы находятся на одном компьютере). При этом такие изменения в реализации будут скрыты от процессов, которые взаимодействуют.

Выделяют такие характеристики каналов связи:

-способ задання;

-количество процессов, которые могут быть соединены одним каналом;

-количество каналов, которые могут быть созданы между двумя процессами;

-пропускная способность канала (количество сообщений, которые могут одновременно находиться в системе и быть ассоциированными с этим каналом);

-максимальный размер сообщения;

-направленность связи через канал (двусторонняя или односторонняя связь).

В односторонней связи для конкретного процесса допускают передачи данных только в один сторону.

Выводы

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

· Главной особенностью передачи сообщений является то, что эта технология не требует наличия совместно используемых данных. Процессы обмениваются сообщениями сменной длины с помощью примитивов send и receive. Эта технология может быть применена для организации взаимодействия между процессами, выполняемыми на отдаленных компьютерах.

Контрольные вопросы и задачи

1.Предположим, что к коммуникационному каналу, предоставленному ОС, могут «подключаться» два процесса. Какие синхронизационные примитивы на равные ядра ОС могут быть использованы для обмена данными этим каналом соответственно технологии программных каналов (ріреs)? В качестве примера ОС возьмите систему Linux.

2.Пересчитайте возможные отличия реализации очереди сообщений и программного канала на равные ядра ОС.

3.Система обмена сообщениями предоставляет примитивы send и receive. Примитив receive приостанавливает процесс, если нет сообщений, предназначенных для него. Возможное ли взаимное блокирование процессов, если не учитывать других сообщений, а общих данных у процессов нет?

4.Пересчитайте общие черты и отличия именованых каналов и сокетов.

 

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

Рекомендуемая литература:

1. В.Г.Олифер, Н.А.Олифер. Сетевые операционные системы. Учебное пособие.-СПб.:БХВ-Петербург, 2006.-536с.

2. В.А.Шеховцов. Операційні системи.Підручник.-К.:Виканавча група ВНV. 2005. 576с.

3. Столлингс В. Операционные системы. М.: Вильямс, 2001. -672с.

Раздел 4



Поделиться:


Последнее изменение этой страницы: 2017-01-19; просмотров: 59; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.14.70.203 (0.009 с.)