Сдам Сам

ПОЛЕЗНОЕ


КАТЕГОРИИ







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





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

В лекции рассматриваются: взаимодействие процессов: проблема ограниченного буфера; проблема "производитель – потребитель"; прямая и косвенная связь процессов; клиент-серверная взаимосвязь; сокетная связь; удаленный вызов процедуры (RPC) и удаленный вызов метода (RMI); выстраивание параметров (marshaling).

 

Содержание

Введение Независимые и взаимодействующие процессы Виды организации взаимосвязи процессов Парадигма (шаблон) взаимодействия процессов: производитель – потребитель Коммуникация процессов Непосредственная коммуникация процессов Косвенная коммуникация процессов Буферизация и очередь сообщений Клиент-серверная взаимосвязь – один из наиболее распространенных видов коммуникации процессов Ключевые термины Краткие итоги Набор для практики
  o Вопросы
  o Упражнения
  o Темы для курсовых работ, рефератов, эссе
     

Введение

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

Независимые и взаимодействующие процессы

С точки зрения взаимосвязи, процессы подразделяются на независимые и взаимодействующие.

Независимый процесс – процесс, никак не связанный с другими процессами, который не может влиять на исполнение других процессов или испытывать их влияние.

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

Преимущества взаимодействующих процессов очевидны:

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

 
Ускорение вычислений;

 
Модульность: организация взаимодействующих процессов – это метод параллельного решения задачи, декомпозируемой на относительно независимые части, части, каждую из которых решает один из взаимодействующих процессов

 
Удобство.

Коммуникация процессов

Рассмотрим теперь возможные механизмы для непосредственной коммуникации процессов и синхронизации их действий.

Наиболее распространенный их них - система сообщений; при этом процессы взаимодействуют между собой без обращений к общим переменным.

Средства коммуникации между процессами обеспечивают две операции вида:

 
send (message) – отправка сообщения message; размер сообщения может быть постоянным или переменным;

 
receive (message) – получение сообщения в буфер message.

Если процессам P и Q требуется взаимодействовать между собой, им необходимо:

- Установить связь (communication link) друг с другом

- Обменяться сообщениями вида send/receive.

Реализация связи может быть физической (общая память, аппаратная шина) или логической (например, логические свойства).

Ключевые термины

Send – операция отправки сообщения другому процессу.

Receive – операция получения сообщения от другого процесса.

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

Выстраивание (marshaling) – механизм преобразования параметров удаленной процедуры (метода) для их передаче по сети в виде последовательного потока.

Косвенная коммуникация (indirect communication) – способ взаимодействия процессов с помощью сообщений, при котором сообщения направляются и получаются через почтовые ящики, или порты.

Независимый процесс – процесс, никак не связанный с другими процессами, который не может влиять на исполнение других процессов или испытывать их влияние.

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

Очередь сообщений (message queue) – системная структура (буфер) для хранения сообщений между процессами.

Переполнение буфера (buffer overrun) – ошибочное или преднамеренное превыше ния размера б уфера, которое может привести к обращению в чужую область памяти и используется для внешних атак.

Подчиненный процесс – процесс, зависящий от процесса-родителя; уничтожается при уничтожении родительского процесса; процесс-родитель перед своим завершением должен ожидать завершения всех своих подчиненных процессов.

Почтовый ящик (порт) – системная структура, предназначенные для приема, хранения и передачи сообщений.

Производитель – потребитель (producer – consumer) - парадигма взаимодействия процессов, при которой процесс-производитель (producer) генерирует в некотором буфере информацию, которая используется процессом-потребителем (consumer).

Рандеву (rendezvous) – механизм коммуникации процессов, при котором оба процесса приостанавливаются до момента окончания передачи сообщения.

Сокет (socket) – метод клиент-серверного сетевого взаимодействия процессов, при котором информация передается через последовательный поток через порт с определенным номером.

Сопроцесс (coprocess, coroutine) – процесс, равноправно взаимодействующий с другими такими же процессами по управлению с помощью операций типа resume (Q), возобновляющих приостановленный процесс. Переходит в завершенное состояние операцией detach.

Удаленный вызов метода (Remote Method Invocation – RMI) – разработанный фирмой Sun объектно-ориентированный механизм Java-технологии для вызова метода Java на другом компьютере сети, аналогичный удаленному вызову процедуры.

Удаленный вызов процедуры (Remote Procedure Call – RPC) – разработанный фирмой Sun мех анизм вызова процедуры на другом компьютере локальной сети с использованием процедур- заглушек на клиенте и на сервере, передающих информацию и выстраивающих параметры и результат удаленной процедуры.

Краткие итоги

Процессы могут быть независимыми друг от друга и взаимодействующими.

Преимущества взаимодействующих процессов – совместное использование данных, модульность, ускорение вычислений.

Дочерний процесс по отношению к процессу-родителю может быть подчиненным (зависящим от родителя), независимым, либо сопроцессом. Сопроцессы – равноправная группа процессов, взаимодействующая между собой операторами явного переключения управления.

Парадигма производитель – потребитель – классическая схема взаимодействия процессов: производитель генерирует информационные элементы в буфере, а потребитель использует их и удаляет из буфера. Буфер может быть неограниченным или иметь ограниченную длину.

Коммуникация процессов может осуществляться с помощью сообщений. Коммуникация бывает непосредственная (с явным указанием адресов или имен процессов-адресатов) и косвенная (через почтовые ящики).

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

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

При коммуникации передача сообщений может быть синхронной (с блокировкой) или асинхронной (без блокировки).

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

Основные виды клиент-серверной коммуникации процессов – сокеты, удаленные вызовы процедур и методов.

Сокеты, предназначены для взаимодействия между клиентом и сервером в сетях TCP/IP через порт с определенным номером, при котором информация передается через последовательные потоки.

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

Удаленный вызов метода – объектно-ориентированный механизм Java-технологии, аналогичный удаленному вызову процедуры.

Набор для практики

Вопросы

1. Что такое независимый процесс?

2. Что такое взаимодействующие процессы?

3. В чем преимущества взаимодействующих процессов перед независимыми?

4. Что такое подчиненный процесс?

5. Что такое сопроцессы (сопрограммы) и какими операциями они взаимодействуют?

6. В чем суть парадигмы производитель – потребитель?

7. Какие действия выполняет процесс-производитель?

8. Какие действия выполняет процесс-потребитель?

9. Какие проблемы могут возникнуть при использовании буфера ограниченной длины?

10. Каким образом осуществляется коммуникация процессов?

11. Что такое непосредственная и косвенная коммуникация?

12. Какими операциями осуществляется коммуникация?

13. Какие вопросы анализируются при анализе реализации коммуникационной линии между процессами?

14. Как осуществляется непосредственная коммуникация процессов?

15. Как осуществляется косвенная коммуникация процессов?

16. Что такое почтовый ящик и как он используется при коммуникации процессов?

17. В чем особенности синхронной и асинхронной передачи сообщений?

18. Что такое очередь сообщений и какие ее разновидности используются?

19. Что такое рандеву процессов?

20. Какие Вы знаете способы клиент-серверной коммуникации процессов?

21. Что такое сокет и как осуществляется сокетная коммуникация процессов?

22. Что такое удаленный вызов процедуры и как он осуществляется?

23. Что такое удаленный вызов метода?

24. Что такое заглушка (proxy) и как она используется при удаленном вызове процедуры?

25. Что такое выстраивание параметров при удаленном вызове процедуры?

Упражнения

1. Реализуйте модель механизма сопроцессов с операциями resume / detach.

2. Реализуйте парадигму производитель – потребитель.

3. Реализуйте набор операций непосредственной коммуникации процессов.

4. Реализуйте набор операций косвенной коммуникации процессов.

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

6. Реализуйте очередь сообщений неограниченной длины и ограниченной длины и операции над ней.

7. Реализуйте механизм рандеву процессов.

8. Реализуйте модель сокетной взаимосвязи.

9. Проанализируйте работу удаленного вызова процедур в системе Linux или Solaris на простом примере и опишите свои выводы.

10. Проанализируйте работу удаленного вызова методов в Java на простом примере и опишите свои выводы.

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

В лекции рассматриваются: взаимодействие процессов: проблема ограниченного буфера; проблема "производитель – потребитель"; прямая и косвенная связь процессов; клиент-серверная взаимосвязь; сокетная связь; удаленный вызов процедуры (RPC) и удаленный вызов метода (RMI); выстраивание параметров (marshaling).

 

Содержание

Введение Независимые и взаимодействующие процессы Виды организации взаимосвязи процессов Парадигма (шаблон) взаимодействия процессов: производитель – потребитель Коммуникация процессов Непосредственная коммуникация процессов Косвенная коммуникация процессов Буферизация и очередь сообщений Клиент-серверная взаимосвязь – один из наиболее распространенных видов коммуникации процессов Ключевые термины Краткие итоги Набор для практики
  o Вопросы
  o Упражнения
  o Темы для курсовых работ, рефератов, эссе
     

Введение

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







Что будет с Землей, если ось ее сместится на 6666 км? Что будет с Землей? - задался я вопросом...

Что делает отдел по эксплуатации и сопровождению ИС? Отвечает за сохранность данных (расписания копирования, копирование и пр.)...

Что вызывает тренды на фондовых и товарных рынках Объяснение теории грузового поезда Первые 17 лет моих рыночных исследований сводились к попыткам вычис­лить, когда этот...

ЧТО И КАК ПИСАЛИ О МОДЕ В ЖУРНАЛАХ НАЧАЛА XX ВЕКА Первый номер журнала «Аполлон» за 1909 г. начинался, по сути, с программного заявления редакции журнала...





Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:


©2015- 2024 zdamsam.ru Размещенные материалы защищены законодательством РФ.