Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лекции / 3. IPC

.pdf
Скачиваний:
7
Добавлен:
15.02.2021
Размер:
13.89 Mб
Скачать

Очереди сообщений

•позволяют процессам и потокам обмениваться структурированными сообщениями;

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

Почтовые ящики

Почтовые ящики обеспечивают только однонаправленные соединения.

Сокеты

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

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

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

Сокеты можно также использовать для соединения процессов на одной и той же машине. Изначально были разработаны для Berkeley UNIX. Некоторая часть кода и структур данных Berkeley и до нынешнего дня присутствует в Windows.

Основные функции

Общие

Socket

Send

Receive

Close

Серверные

Bind

Listen

Accept

Клиентские

Connect

Создать новый сокет и вернуть файловый дескриптор

Отправить данные по сети Получить данные из сети Закрыть соединение

Связать сокет с IP-адресом и портом

Объявить о желании принимать соединения. Слушает порт и ждет когда будет установлено соединение

Принять запрос на установку соединения

Установить соединение

Потоковый (SOCK_STREAM) Устанавливает соединение Гарантирует доставку данных Гарантирует порядок доставки пакетов Гарантирует целостность пакетов Разбивает сообщение на пакеты Контролирует поток данных

Дейтаграммный (SOCK_DGRAM) Нет

Нет в случае UDP

Нет в случае UDP Тоже Нет Нет

Разделяемая

Виртуальное адресное

Виртуальное адресное

пространство процесса

пространство процесса

1

2

 

Совместно

 

используем

 

ая

Соседние файлы в папке Лекции