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

7.Организация взаимодействия процессов в ос unix

Сама ОС должна обеспечить механизмы межпроцессорного взаимодействия (Inter-Process Communication, IPC). К средствам межпроцессорного взаимодействия в UNIX относятся:

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

    1. сигнал от пользователя

    2. изнутри программного процесса (функция Kill или установка системных таймеров, у которых также посылаются сигналы).

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

2. Каналы – позволяют передавать информацию от одного процесса к другому. Простой канал является файлом специального типа и организуется с помощью pipe(), она возвращает два файловых дескриптора на передачу и на прием. Канал создается одним из процессов, дескрипторы известны всем остальным процессам, участвующим в передаче. Канал может существовать только между процесами-родственниками(братья-потомки, родитель-потомок). Обмен осуществляется по стандартным технологиям работы с памятью.

  1. FIFO (именованные каналы) – между независимыми процессами. Канал создается одним процессом, а другой должен открыть канал с таким же именем. При создании канала процессами используется некое имя канала. Имя должно быть одинаковым и у процесса, который передает информацию, и у процесса, который получает ее. Наличие одного имени позволяет создать канал между процессами, каждый из которых получает одинаковый файловый дескриптор.

  2. Сообщения (очереди сообщения)- обеспечивает асинхронный обмен информацией, причем сообщение организует передачу информации через ядро, здесь устанавливаются каналы передачи сообщений между произвольными процессами, и на приеме возможны варианты выбора сообщений. Асинхронный механизм – за счет создания очередей сообщений. Каждый из процессов может иметь несколько очередей. Очередь создается специальным вызовом, каждый элемент структуры очереди содержит указатель на блок данных. Прием, а также выборка элементов из очереди сообщений на приеме производится с помощью специальной функции.

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

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

Во многих версиях UNIX есть еще одно средство IPC – сокеты, впервые предложенные в BSD UNIX. Сокет инициирует обмен данными между процессами одной машины с процессами выполняющимися на других машинах сети. Коммуникационный домен – в домен входят сокеты одного типа, он определяет свойства обмена для определенных сетей. Домен определяется при создании сокета. Сокеты обеспечивают несколько способов организации доставки данных:

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

  2. Сокет потока – через который осуществляется надежная передача потоков байтов без сохранения границ сообщений

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

  4. Сокет низкого уровня – через который осуществляется непосредственный доступ к коммуникационному протоколу.