Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Материал / ZIBBEN-I.doc
Скачиваний:
59
Добавлен:
30.04.2013
Размер:
1.04 Mб
Скачать

12. Средства взаимод-вия процессов в Unix.

В слож.вычислит. среде общая задача разделяется на отд. процессы, к-рые имеют точки взаимод-я и м. обмениваться данными. Необходимо реал-ть ср-ва взаимод-я, и надо исключить нежелат. влияние одного процесса на другой. IPC- Inter- Process Communication. Элементы Unix:

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

Сигнал позволяет вызвать опред. процедуру при наступлении нек-го события. В таком мех-ме есть 2 фазы: 1. Генерация и отправление сигнала в одном процессе. 2. Доставка и обработка в другом процессе.

В промежутках м/д фазами сигнал ожидает доставки. Чаще всего сигналы исп-ся для уведомления об аварийных или особых ситуациях. Напр, терминальное прер-е: с клав-ры ctrl+c, ctrl+\, del. Другие прим: превышение процессом квоты вычислит. ресурсов, уведомление о готовности устр-ва, сигналы от интервального таймера(алармы), сигналы завершения процесса.

Сигналы достаточно ресурсоемкое ср-во, число их ограничено, слабо информативны.

2. Семафоры-упр-ют совместным доступом к разделяемым ресурсам. Семафоры доступны через набор системных ф-ций. Семафоры в Unix облад. след. св-ми:

-семафор- группа неск. счетчиков, объединенных общими признаками.

-Кажд. счетчик принимает неотр. значение в заданных пределах.

Над семафорами возможны 3 операции: увеличение на n>0 (безусловное выполнение), ожидание (n=0) пока семафор не обнулится (проверка условия), условное вып-ние при n<0.

Процесс ожидает пока знач. семафора не станет больше или равным ׀n׀. Затем из знач-я семафора вычит-ся ׀n׀. Кроме самого знач-я семафора в его стр-ре данных хранится: 1) PID процесса, вызвавшего послед. операцию над семафором 2) число процессов, ожидающих увеличения знач-я семафора 3) число процессов, ожидающих нулевого знач-я семафора. При работе с семафором взаимод-щие процессы д. договориться о совместном исп-нии. Напр, м. договориться о том, какое знач. семафора явл. разрешающим, а какое запрещающим.

3. Каналы (pipes)-это ср-ва передачи данных м/д родственными процессами. Каналы-это обл-ть памяти, собственно говоря. Один процесс системным вызовом созд. канал и получ. 2 файловых дескриптора. Процесс-потомок наследует от родителя дескрипторы канала и т.ж. м. вып-ть такие же операции с каналом. Работа с данными идет послед-но: чтение, запись. Ограничения каналов: каналы м. связывать т. родственные процессы.

4. Именованные каналы (FIFO)-это тоже однонапр-ное ср-во передачи данных. Отличие в том, что именов. каналы имеют глобальные имена, что позволяет исп-ть их независимым процессам. FIFO м.б. открыты т. по чтению или по чтен/записи.

FIFO-тип файлов. $ mknod name P- указывает, что мы создаем канал с именем и с типом.

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

6. Разделяемая память- Ниаб. эффектив. по быстродействию ср-во обмена данными. Виртуальн. орг-ция памяти позволяет вып-ть отображение части вирт. адресного пр-ва процесса на один и тот же уч-ток физическ. памяти. Для реализации необходимо: 1) синхронизировать вып-ние процессов 2) обеспечить корректный доступ к разделяемой памяти.

7.Сокет-виртуальн. объект, описывающ. высокоуровневый канал связи м/д процессами в коммуникационном домене. Сокеты д. обладать след. св-ми: 1) упорядоченная доставка данных 2) отсутствие дублирования данных 3) сохранение границ сообщений 4) поддержка передачи экстренных сообщений 5) предварительное установление соединения.

В Unix реализованы след. типы сокетов:

Datagram Soket-это теоретически ненадежная, несвязная передача пакетов.

Stream Socket-это сокет потока-надежная передача потоков байтов без сохранения границ сооб-ний. Исп-ся для экстренной передачи данных.

Packet Socket-сокет пакетов-надеж, последов. передача данных без дублирования с предварительным установлением соединения. Границы сооб-ний сохр-ся.

Raw Socket-сокет низкого уровня-реализует непосредств. доступ к коммуникационному протоколу.

8. Система именования. Мнов-во возможных имен объектов конкретного типа межпроцессного взаимод-я наз пр-вом имен. Когда создается объект (напр, FIFO) он получает имя, затем разные процессы обращаются к объекту, указывая его имя или дескриптор. Имена д.б уникальными для объектов одного типа. Имена для семафоров, очередей, обл-тей памяти м.б. более сложными, чем простое имя файла. Напр, в версии Unix: System V-имя объекта, называемое ключом. Ключ состоит из имени объекта и идентиф-ра проекта. Имя указ-ет на локальный дескриптор объекта, а идентиф-тор проекта имеет общую значимость для всей системы. Напр, в OS/2 тоже есть семафоры, к-рые делятся на типы, очереди и …

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