Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lektsii_OS_chast_2.docx
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
1.55 Mб
Скачать

Концепция почтовых ящиков.

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

Характеристиками почтовых ящиков являются:

  1. Имя, которое используется клиентами для связи с почтовыми ящиками;

  2. Направление передачи данных (от клиента к серверу);

  3. Способ передачи данных (сообщения);

  4. Тип обмена данными (синхронный или асинхронный).

Несмотря на то, что передача данных осуществляется только от клиента к серверу, один и тот же почтовый ящик может иметь несколько серверов. Это происходит в том случае, когда несколько серверов создают почтовые ящики с одинаковыми именами. Тогда все сообщения, которые посылает клиент в такой почтовый ящик, будут получать все серверы этого почтового ящика. Однако, это выполняется только при условии , что длина сообщения меньше 425 байтов, поскольку в этом случае сообщения передаются в виде так называемых дейтаграмм.

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

Если длина сообщения больше 425 байт, то такие сообщения могут передаваться только от одного клиента к одному серверу. При этом, используется Server Message Block.

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

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

  1. Создание почтового ящика сервером;

  2. Соединение клиента с почтовым ящиком;

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

  4. Закрытие почтового ящика клиентом и сервером.

Все эти действия реализуются с помощью системных функций.

Создание почтовых ящиков.

Почтовые ящики создаются процессом-сервером вызовом CreateMailSlot (p1, p2, p3, p4);.

  • p1 определяет имя почтового ящика, и представляет собой указатель на место расположения в системе этого имени. Этот параметр должен иметь следующий стандартный вид:

\\.\mailslot\<mailslot_name>

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

  • p3 определяет интервал ожидания в миллисекундах, в течение которого функция ReadFile ждет поступления сообщения в почтовый ящик. Если в этом параметре установлен ноль, то в случае отсутствия в почтовом ящике сообщения функция CreateMailSlot немедленно возвращает управление;

  • p4 определяет атрибуты безопасности.

В случае успешного завершения функция возвращает дескриптор почтового ящика. В случае неудачи возвращается значение ошибки.

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]