Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

XSI IPC

.pdf
Скачиваний:
6
Добавлен:
22.03.2016
Размер:
136.59 Кб
Скачать

XSI IPC

4. System V IPC

XSI IPC

Очереди сообщений

Разделяемая память

Семафоры

Зачем?

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

Идентификаторы и ключи

Каждому XSI IPC соответствует идентификатор в системе

Идентификатор - внутренне имя IPC

В качестве внешнего идентификатора выступает специальный ключ, который используется в системных вызовах

Ключ

<sys/types.h>

key_t - длинное целое со знаком

Ядро выполняет преобразование ключа в идентификатор

Задание ключа

#include <sys/ipc.h>

key_t ftok(const char *path, int id);

1.Возможны коллизии с другими разработчиками

2.Параметр id позволяет задавать несколько ipc связанных с один путем в ФС

Файл необходим только для генерации ключа!

Разделяемая память

Каждый процесс существует в своем собственном изолированном адресном пространстве

Разделяемая память позволяет преодолеть это ограничение

Разделяемая память

Поведение при fork, exec

fork:

Разделяемая память наследуется

exec:

Разделяемая память исключается

Создание РП

#include <sys/types.h> #include <sys/ipc.h> #include <sys/shm.h>

int shmget(key_t key, size_t size, int shmflg);

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