[<<Previous Entry] [^^Up^^] [Next Entry>>] [Menu] [About The Guide]
 Информация о классе разделения времени и его параметры

Структура tsinfo_t, приведенная на следующей странице (определенная в
<sys/tspriocntl.h>), задает формат поля pc_clinfo, содержащего
атрибуты класса разделения времени. ts_maxupri задает максимальное
значение приоритета пользователя для класса разделения времени в
текущей конфигурации. Как пользовательский приоритет, так и
ограничения на пользовательский приоритет должны лежать в диапазоне от
-ts_maxupri до ts_maxupri.
Структура tsparms_t, приведенная на следующей странице, задает формат
поля pc_clparms, содержащего параметры планирования процесса
разделения времени. Команды PC_SETPARMS и PC_GETPARMS возвращают
данные для процессов разделения времени в буфере pc_clparms в этом
формате.
Команды PC_GETPARMS, если pc_cid задает класс разделения времени и
обрабатывается один или несколько процессов разделения времени,
возвращает параметры планирования процесса с высшим пользовательским
приоритетом (ts_upri). Если есть несколько процессов с одинаково
высоким приоритетом, то выбор определяется реализацией.
ts_uprilim задает ограничение на пользовательский приоритет процесса.
Это максимальное значение (ts_upri), в которое может быть установлен
приоритет данного процесса. По умолчанию, ts_uprilim равен нулю. Цель
пользовательского приоритета ts_upri - это обеспечение пользователю
или прикладной программе возможность управлять планированием процессов
разделения времени. Увеличение или уменьшение значения ts_upri
процесса, исполняющегося в режиме разделения времени, увеличивает или
уменьшает приоритет планирования процесса. Это не гарантируется, но
тем не менее, процесс с большим значением ts_upri будет исполняться
раньше процесса с меньшим ts_upri. Именно поэтому значение ts_upri
используется для задания приоритета планирования процесса разделяемого
времени. Система может динамически регулировать свою составляющую
приоритета процесса разделяемого времени, чтобы обеспечить
своевременные перезахваты ЦП.
Любой процесс разделяемого времени может понизить свой ts_uprilim (или
любого другого процесса с тем же идентификатором пользователя).
Повысить свой ts_uprilim может только процесс с привилегиями
суперпользователя. При изменении класса процесса на класс разделения
времени нужны привилегии суперпользователя, чтобы установить начальное
значение ts_uprilim больше нуля. Любой процесс разделения времени
может установить значение своего ts_upri в любое значение, меньшее или
равное ts_uprilim. Попытки установить ts_upri в значение большее чем
ts_uprilim приводят к тому, что ts_upri становится равным ts_uprilim.
Либо ts_upri, либо ts_uprilim могут быть установлены равным
TS_NOCHANGE, чтобы установка одного из значений не имела влияние на
другое значение.
Пользовательский приоритет разделения времени и ограничение
пользовательского приоритета наследуются при использовании fork(2) и
exec(2).
        ИНФОРМАЦИЯ О КЛАССЕ РАЗДЕЛЕНИЯ ВРЕМЕНИ И ЕГО ПАРАМЕТРЫ
.   формат pc_clinfo

      typedef struct {
          short ts_maxupri; /* User priority range
          limits */ }
      tsinfo_t;

.   формат pc_clparms

      typedef struct {
          short ts_uprilim;/*Time-sharing user
          priority limit*/
          short ts_upri;   /*Time-sharing user
          priority*/ }
      tsparms_t;