Статья: Механизмы межпроцессных взаимодействий в операционной системе Unix

изменение его состояния

уничтожение очереди сообщений

Программные каналы

Создание неименованного программного канала

pipe(fdptr);

fdptr - это указатель массива из двух целых чисел для размещения дескриптора для чтения из программного канала (с помощью read) и записи в программный канал (с помощью write)

обычные дескрипторы файлов

два элемента таблицы открытых файлов процесса

Создание именованных программных каналов (или получение доступа к существующим)

Обычный системный вызов open

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

аналогично обрабатывается открытие для чтения

имеется флаг NO_DELAY

Запись и чтение: read и write

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

при чтении выбираются из конца канала

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

Окончание работы процесса: close

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

Программные гнезда (sockets)

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

выполняющимся на одном компьютере

в пределах одной локальной сети

разнесенным на разные компьютеры территориально распределенной сети

Первое решение:

UNIX BSD 4.1 в 1982 г.

Три составляющих:

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

компонентом протокольного уровня (независящий от среды передачи данных)

К-во Просмотров: 370
Бесплатно скачать Статья: Механизмы межпроцессных взаимодействий в операционной системе Unix