Разделы презентаций


8. Передача данных между процессами

Содержание

8.1. Каналы передачи данных

Слайды и текст этой презентации

Слайд 18. Передача данных между процессами

8. Передача данных между процессами

Слайд 28.1. Каналы передачи данных

8.1. Каналы передачи данных

Слайд 3Отправители и адресаты
Под обменом данными между параллельными процессами понимается пересылка

данных от одного потока к другому потоку, предполагая, что эти

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

Слайд 4Обмен данными между потоками одного процесса
Если потоки выполняются в контексте

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

глобальные переменные и средства синхронизации потоков.
Обмен данными между потоками одного процессаЕсли потоки выполняются в контексте одного процесса, то обмен данными между ними

Слайд 5Обмен данными между потоками разных процессов
Если потоки выполняются в контекстах

разных процессах, то потоки не могут обращаться к общим переменным.
В

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

Слайд 6Схема канала передачи данных
T1, T2 – потоки пользователя
B1, B2 –

буферы ввода-вывода
K1, K2 – потоки ядра операционной системы
M – общая

память
Схема канала передачи данныхT1, T2 – потоки пользователяB1, B2 – буферы ввода-выводаK1, K2 – потоки ядра операционной

Слайд 7Порядок работы канала передачи данных
Пересылка данных из потока T1 в

поток T2 происходит следующим образом:
Пользовательский поток T1 записывает данные в

буфер B1, используя специальную функцию ядра операционной системы;
Поток K1 ядра операционной системы читает данные из буфера B1 и записывает их в общую память M;
Поток K2 ядра операционной системы читает данные из общей памяти M и записывает их в буфер B2;
Пользовательский поток T2 читает данные из буфера B2.
Порядок работы канала передачи данныхПересылка данных из потока T1 в поток T2 происходит следующим образом:Пользовательский поток T1

Слайд 8Реализация канала
Обычно канал реализуется как кольцевой буфер, работающий по принципу

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

как и для работы с файлами.
Реализация каналаОбычно канал реализуется как кольцевой буфер, работающий по принципу FIFO.Для работы с каналом могут использоваться такие

Слайд 9Различают два способа передачи данных по каналам:
потоком;
сообщениями.
Если данные передаются непрерывной

последовательностью байтов, то такая пересылка данных называется передача данных потоком.
Если

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

Способы передачи данных по каналам

Различают два способа передачи данных по каналам:потоком;сообщениями.Если данные передаются непрерывной последовательностью байтов, то такая пересылка данных называется

Слайд 108.2. Связи между процессами
Прежде чем пересылать данные между процессами, нужно

установить между этими процессами связь.
Связь между процессами устанавливается как на

физическом (аппаратном), так и логическом (программном) уровнях.
8.2. Связи между процессамиПрежде чем пересылать данные между процессами, нужно установить между этими процессами связь.Связь между процессами

Слайд 11Направления передачи данных
С точки зрения направления передачи данных различают следующие

виды связей:
полудуплексная связь – данные по этой связи могут передаваться

только в одном направлении;
дуплексная связь – данные по этой связи могут передаваться в обоих направлениях.
Направления передачи данныхС точки зрения направления передачи данных различают следующие виды связей:полудуплексная связь – данные по этой

Слайд 12Топологии связей
Теперь, предполагая, что рассматриваются только полудуплексные связи, определим возможные

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

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

Слайд 13Виды связей
С точки зрения топологии различают следующие виды связей:
1 

1 - между собой связаны только два процесса;
1  N - один

процесс связан с N процессами;
N  1 - каждый из N процессов связан с одним процессом;
N  M - каждый из N процессов связан с каждым из M процессов.
Виды связейС точки зрения топологии различают следующие виды связей:	1  1	- между собой связаны только два процесса;	1

Слайд 14Обозначения
- процесс
- канал
- связь

Обозначения- процесс- канал- связь

Слайд 15Топология связей между процессами
11
1N
N1
NM

Топология связей между процессами111NN1NM

Слайд 16Порты и почтовые ящики
Канал передачи данных, реализующий топологию N1 обычно

называется портом.
Канал передачи данных, реализующий топологию NM обычно называется почтовым

ящиком.

Порты и почтовые ящикиКанал передачи данных, реализующий топологию N1 обычно называется портом.Канал передачи данных, реализующий топологию NM

Слайд 17Порядок разработки систем обмена данными
При разработке систем с обменом данными

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

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

Слайд 18Функции для установки связей между процессами
Для установки связей между процессами

обычно используются функции типа:
connect – установить связь;
disconnect – разорвать связь.
Эти

функции, а также функции для обмена данными между процессами обеспечивает система передачи данных, которая обычно является частью ядра операционной системы.
Функции для установки связей между процессамиДля установки связей между процессами обычно используются функции типа:connect – установить связь;disconnect

Слайд 198.3. Передача сообщений
Обмен сообщениями между процессами выполняется при помощи двух

функций:
send - послать сообщение;
receive - получить сообщение.

8.3. Передача сообщенийОбмен сообщениями между процессами выполняется при помощи двух функций:send - послать сообщение;receive - получить сообщение.

Слайд 20Структура сообщения
Заголовок
сообщения
Тело
сообщения

Структура сообщенияЗаголовоксообщенияТелосообщения

Слайд 21Типы адресации процессов
При передаче сообщений может использоваться прямая или косвенная

адресация процессов.

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

Слайд 22Прямая адресация процессов
При прямой адресации процессов в функциях send и

receive явно указываются процессы отправитель и получатель.
В этом случае

функции обмена данными имеют следующий вид:
send(P, сообщение) - послать сообщение процессу P;
receive(Q, сообщение) - получить сообщение от процесса Q.
Прямая адресация процессовПри прямой адресации процессов в функциях send и receive явно указываются процессы отправитель и получатель.

Слайд 23Косвенная адресация процессов
При косвенной адресации в функциях send и receive

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

передается сообщение.
В этом случае функции обмена данными имеют следующий вид:
send(S, сообщение) - послать сообщение по каналу связи S;
receive(R, сообщение) - получить сообщение по каналу связи R.
В последнем случае сообщение могут получать все процессы, подключенные к каналу связи R.
Косвенная адресация процессовПри косвенной адресации в функциях send и receive указываются не адреса процессов, а имя канала

Слайд 24Симметричная и асимметричная адресация
Адресация процессов может быть симметричной и асимметричной.
Если

при передаче сообщений используется только прямая или только косвенная адресация,

то такая адресация процессов называется симметричной.
В противном случае адресация процессов называется асимметричной.
Симметричная и асимметричная адресацияАдресация процессов может быть симметричной и асимметричной.Если при передаче сообщений используется только прямая или

Слайд 25Адресация в системах клиент-сервер
Асимметричная адресация процессов используется в системах клиент-сервер.
В

этом случае клиенты знают адрес сервера и посылают ему сообщения,

используя функцию
send(Server, сообщение)
А сервер «слушает» канал связи и принимает сообщения от всех клиентов, используя функцию
receive(Connection, сообщение)
Часто эта функция так и называется listen (слушать).
Адресация в системах клиент-серверАсимметричная адресация процессов используется в системах клиент-сервер.В этом случае клиенты знают адрес сервера и

Слайд 26Протокол
Набор правил, по которым устанавливаются связи и передаются данные между

процессами, называется протоколом.

ПротоколНабор правил, по которым устанавливаются связи и передаются данные между процессами, называется протоколом.

Слайд 278.4. Синхронный и асинхронный обмен данными
При передаче данных различают синхронный

и асинхронный обмен данными.

8.4. Синхронный и асинхронный обмен даннымиПри передаче данных различают синхронный и асинхронный обмен данными.

Слайд 28Синхронное и асинхронное отправление сообщения
Если поток отправитель, отправив сообщение функцией

send, блокируется до получения этого сообщения потоком адресатом, то такое

отправление сообщения называется синхронным.
В противном случае отправление сообщения называется асинхронным.
Синхронное и асинхронное отправление сообщенияЕсли поток отправитель, отправив сообщение функцией send, блокируется до получения этого сообщения потоком

Слайд 29Синхронное и асинхронное получение сообщения
Если поток получатель, вызвавший функцию receive,

блокируется до тех пор, пока не получит сообщение, то такое

получение сообщения называется синхронным.
В противном случае получение сообщения называется асинхронным.

Синхронное и асинхронное получение сообщенияЕсли поток получатель, вызвавший функцию receive, блокируется до тех пор, пока не получит

Слайд 30Синхронный и асинхронный обмен сообщениями
Обмен сообщениями называется синхронным, если поток

отправитель синхронно передает сообщения, а поток адресат синхронно принимает эти

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

Слайд 31Рандеву
Синхронный обмен данными в случае прямой адресации процессов называется рандеву

(rendezvous), что переводится с французского языка как «встреча».
Такой механизм обмена

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

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

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

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

Слайд 33Типы буферизации
Существенно различаются три типа буферизации:
нулевая вместимость связи (нет буфера),

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

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

Слайд 34Как видно из этих определений типы буферизации тесно связаны с

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

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

Слайд 358.6. Анонимные каналы в Windows
Анонимным каналом называется объект ядра операционной

системы, который обеспечивает передачу данных между процессами, выполняющимися на одном

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

Слайд 36Свойства анонимных каналов
не имеют имени;
полудуплексные;
передача данных потоком;
синхронный обмен данными;
возможность моделирования

любой топологии связей.

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

Слайд 37Порядок работы с анонимным каналом
создание анонимного канала сервером;
соединение клиентов с

каналом;
обмен данными по каналу;
закрытие канала.

Порядок работы с анонимным каналомсоздание анонимного канала сервером;соединение клиентов с каналом;обмен данными по каналу;закрытие канала.

Слайд 38Так как анонимный канал не имеет имени, то доступ к

такому каналу имеют только родительский процесс-сервер и дочерние процессы-клиенты этого

канала.
Чтобы процесс-клиент наследовал дескриптор анонимного канала, этот дескриптор должен быть наследуемым.
Явная передача наследуемого дескриптора процессу-клиенту анонимного канала может выполняться одним из следующих способов:
через командную строку;
через поля hStdInput, hStdOutput и hStdError структуры STARTUPINFO;
посредством сообщения WM_COPYDATA;
через файл.

Соединение клиентов с анонимным каналом

Так как анонимный канал не имеет имени, то доступ к такому каналу имеют только родительский процесс-сервер и

Слайд 39Функции для работы с анонимным каналом
CreatePipe – создание анонимного канала;
WriteFile

– запись данных в анонимный канал;
ReadFile – чтение данных из

анонимного канала;

Функции для работы с анонимным каналомCreatePipe – создание анонимного канала;WriteFile – запись данных в анонимный канал;ReadFile –

Слайд 408.7. Именованные каналы в Windows
Именованным каналом называется объект ядра операционной

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

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

Слайд 41Свойства именованных каналов
имеют имя, которое используется клиентами для связи с

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

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

Слайд 42Порядок работы с именованными каналами
создание именованного канала сервером:
соединение сервера с

экземпляром именованного канала;
соединение клиента с экземпляром именованного канала;
обмен данными по

именованному каналу;
отсоединение сервера от экземпляра именованного канала;
закрытие именованного канала клиентом и сервером.
Порядок работы с именованными каналамисоздание именованного канала сервером:соединение сервера с экземпляром именованного канала;соединение клиента с экземпляром именованного

Слайд 43Функции для соединения с именованным каналом
CreateNamedPipe – создание именованного канала;
ConnectNamedPipe

– соединение сервера с клиентом именованного канала;
DisconnectNamedPipe – отсоединение сервера

от именованного канала;
WaitNamedPipe – ожидание клиентом свободного экземпляра именованного канала;
CreateFile – соединение клиента с именованным каналом;
Функции для соединения с именованным каналомCreateNamedPipe – создание именованного канала;ConnectNamedPipe – соединение сервера с клиентом именованного канала;DisconnectNamedPipe

Слайд 44WriteFile – запись даннх в именованный канал;
ReadFile – чтение данных

из именованного канала;
PeekNamedPipe – копирование данных из именованного канала;
TransactNamedPipe –

обмен сообщениями по именованному каналу;

Функции для передачи данных по именованному каналу

WriteFile – запись даннх в именованный канал;ReadFile – чтение данных из именованного канала;PeekNamedPipe – копирование данных из

Слайд 45Функции для работы с состоянием и свойствами именованного канала
GetNamedPipeHandleState –

определение состояния именованного канала;
SetNamedPipeHandleState – изменение состяния именованного канала;
GetNamedPipeInfo –

получить информацию об атрибутах именованного канала;
Функции для работы с состоянием и свойствами именованного каналаGetNamedPipeHandleState – определение состояния именованного канала;SetNamedPipeHandleState – изменение состяния

Слайд 468.8. Почтовые ящики в Windows
Почтовым ящиком называется объект ядра операционной

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

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

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

почтовыми ящиками;
направление передачи данных от клиента к серверу;
передача данных осуществляется

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

Слайд 48Передача сообщений почтовыми ящиками
Хотя передача данных осуществляется только от клиента

к серверу, один почтовый ящик может иметь несколько серверов.
Это происходит

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

Слайд 49Порядок работы с почтовым ящиком
создание почтового ящика сервером:
соединение клиента с

почтовым ящиком;
обмен данными через почтовый ящик;
закрытие почтового ящика клиентом и

сервером.
Порядок работы с почтовым ящикомсоздание почтового ящика сервером:соединение клиента с почтовым ящиком;обмен данными через почтовый ящик;закрытие почтового

Слайд 50Функции для работы с почтовыми ящиками
CreateMailslot – создание почтового ящика;
CreateFile

– соединение клиента с почтовым ящиком;
WriteFile – запись данных в

почтовый ящик;
ReadFile – чтение данных из почтового ящика;
GetMailslotInfo – получение информации о свойствах почтового ящика;
SetMailslotInfo – изменение сервером времени ожидания от клиента.
Функции для работы с почтовыми ящикамиCreateMailslot – создание почтового ящика;CreateFile – соединение клиента с почтовым ящиком;WriteFile –

Обратная связь

Если не удалось найти и скачать доклад-презентацию, Вы можете заказать его на нашем сайте. Мы постараемся найти нужный Вам материал и отправим по электронной почте. Не стесняйтесь обращаться к нам, если у вас возникли вопросы или пожелания:

Email: Нажмите что бы посмотреть 

Что такое TheSlide.ru?

Это сайт презентации, докладов, проектов в PowerPoint. Здесь удобно  хранить и делиться своими презентациями с другими пользователями.


Для правообладателей

Яндекс.Метрика