Sunday, Feb 05th

Last update12:13:00 PM GMT

Вы находитесь на: FreeBSD Запуск и выключение Межпроцессное взаимодействие

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

Межпроцессное взаимодействие в FreeBSD организовано в коммуникационные домены. Важнейшие домены, поддерживаемые в настоящее время, включают локальный домен для взаимодействия процессов, выполняющихся на одной машине; домен IPv4 для взаимодействия процессов с использованием набора протоколов TCP/IP (четвертой версии) и домен IPv6, который является новейшей версией протоколов Интернета.

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

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

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

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

Реализация сетевых средств в UNIX до 4.2BSD обычно работала посредством перегрузки интерфейсов символьных устройств. Одной из целей интерфейса сокетов было дать возможность простым программам работать без изменений в соединениях в стиле потоков. Такие программы могут работать, лишь если системные вызовы read и write не изменены. Поэтому оригинальные интерфейсы были оставлены нетронутыми и могли работать с сокетами для потоков. Для более сложных сокетов были добавлены новые интерфейсы, такие, как сокеты, использующиеся для отправки дейтаграмм, в которых адрес назначения должен был указываться в каждом вызове send.

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

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

Сейчас 26 гостей онлайн

Реклама на сайте: