Точная подстройка менеджера ресурсов (ассоциации клиентов/fd с OCB)
#include <sys/resmgr.h>
int resmgr_handle_tune( int min_handles,
int min_clients,
int max_client_handles,
int *min_handles_old,
int *min_clients_old,
int *max_client_handles_old );
- min_handles
- Для выполнения описанного сопоставления структура менеджера ресурсов использует структуры
_resmgr_handle_entry
. Это значение описывает минимальное количество таких структур. Если используется больше, чем это число, они могут быть освобождены при помощи free() по мере их отсоединения.
- min_clients
- max_client_handles
- Для выполнения описанного сопоставления структура менеджера ресурсов использует хеш-сегменты, по одному на каждого клиента. min_clients описывает минимальное количество таких сегментов, которые нужно хранить. Если с менеджером ресурсов обменивается данными больше, чем это количество клиентов, то эти сегменты могут быть освобождены при помощи free(), поскольку определенные клиенты закрывают менеджеру доступ к своим fd.
max_client_handles описывает размер каждого из этих хэш-сегментов. Максимальное количество поисков для поиска конкретного сопоставления fd-to-OCB - это максимальное значение fd клиента, деленное на max_client_handles, округленное до ближайшего целого числа, то есть в псевдокоде: ceil( max fd / max_client_handles ).
Если это значение изменяется, новое значение вступает в силу для вновь подключившихся клиентов. Существующие клиенты не пострадают. Если для любого из трех вышеперечисленных параметров указаны отрицательные значения, их текущие значения остаются неизменными.
- *_old
- Если какой-либо из них не
NULL
, возвращается соответствующее значение, используемое слоем менеджера ресурсов во время вызова.
libc
Одна из функций структуры менеджера ресурсов - выполнять отображение дескрипторов клиентских файлов в структуры, локальные по отношению к менеджеру ресурсов, которые описывают эти дескрипторы. Эти структуры часто являются блоками открытого контекста (OCB, Open Control Block). Подробнее о OCB см. в resmgr_open_bind(). Можно использовать resmgr_handle_tune() для настройки определенных аспектов этого сопоставления и последующих поисков клиентских OCB.
0
ЗОСРВ «Нейтрино»
- Нет
- Обработчик прерываний
- Нет
- Обработчик сигналов
- Нет
- В потоке
- Да
resmgr_open_bind()
Предыдущий раздел: Описание API системной библиотеки