Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
26-30.docx
Скачиваний:
9
Добавлен:
08.09.2019
Размер:
118.7 Кб
Скачать

Реализация разделяемой памяти для FreeBsd с указанием программной семантики.

Примерный сценарий работы с разделяемой памятью выглядит следую!

щим образом:

1. Сервер получает доступ к разделяемой памяти, используя семафор.

2. Сервер производит запись данных в разделяемую память.

После завершения записи сервер освобождает разделяемую память с

помощью семафора.

4. Клиент получает доступ к разделяемой памяти, запирая ресурс с по!

мощью семафора.

5. Клиент производит чтение данных из разделяемой памяти и освобож!

дает ее, используя семафор.

Для каждой области разделяемой памяти, ядро поддерживает структуру

данных основными полями которой являются:

struct shm_perm Права доступа, владельца и создателя области

shm_segsz Размер выделяемой памяти

При работе с разделяемой памятью необходимо синхронизировать выпол!

нение взаимодействующих процессов: когда один из процессов записывает

данные в разделяемую память, остальные процессы ожидают завершения

операции. Обычно синхронизация обеспечивается с помощью семафоров,

назначение и число которых определяется конкретным использованием

разделяемой памяти.