Скачиваний:
90
Добавлен:
12.05.2015
Размер:
913.92 Кб
Скачать

21.6. Ограничения, накладываемые на разделяемую память

На разделяемую память System Vнакладываются определенные ограничения точно так же, как на очереди сообщений и семафоры System V (раздел 16.7). Втабл. 20.1приведены значения этих ограничений для ОС Linux. В первом столбце приведены традиционные для System V имена переменных ядра, в которых хранятся эти ограничения.

Таблица 20.1

Типичные значения ограничений,

накладываемых на разделяемую память System V

Имя

Описание

Значение

shmall

Общее количество разделяемой памяти (в байтах), которое может быть использовано в системе

2097152

shmmax

Максимальный размер сегмента в байтах

33554432

shmmni

Максимальное количество сегментов разделяемой памяти в системе

4096

В ОС Linux можно получить значения указанных переменных с помощью команды sysctl.

21.7. Выводы по главе 21

Разделяемая память System Vпредоставляет в распоряжение программиста следующие функции:

  • shmgetдля получения идентификатора сегмента;

  • shmat для подключения сегмента разделяемой памяти к адресному пространству процесса;

  • shmdtдля отключения сегмента от адресного пространства процесса и/или удаления сегмента из системы;

  • shmctlс командамиIPC_STATиIPC_SETдля получения сведений о сегменте и установки параметров сегмента соответственно, а также командойIPC_RMID, используемой при пометке сегмента для удаления.

21.8. Упражнения по главе 21

21.1. В разделе 17.5 мы говорили, что для доступа к очереди сообщений System V достаточно знать только ее идентификатор (при наличии соответствующих разрешений). Внесите соответствующие изменения в программу, представленную листингом 20.1, чтобы продемонстрировать, что это верно и для разделяемой памяти System V.

Соседние файлы в папке Chapter.4