[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]

Принципы управления системой: Операционная система и устройства


Присвоение процессов классам в WLM

В WLM процессы можно присваивать классам двумя способами:

Автоматическое присвоение

Для автоматического присвоения процессов применяется набор правил присвоения, заданный администратором WLM. Можно задать два уровня правил:

Формат правил присвоения для обоих уровней совпадает.

Атрибуты присвоения

Автоматическое присвоение основано на значениях атрибутов, связанных с процессом. Это следующие атрибуты:

Тег - это атрибут процесса, который представляет собой строку символов, заданную приложением с помощью API WLM.

Процесс присвоения состоит в последовательном сравнении значений атрибутов из правил присвоения с атрибутами процесса до нахождения правила, соответствующего присваиваемому процессу. Список правил присвоения хранится в файле с именем rules.

Правило присвоения - это текстовая строка, различные поля которой разделены пробелами или знаками табуляции. Это следующие поля:

Имя Это поле содержит имя класса, определенного в файле классов (rules) соответствующего уровня (суперкласса или подкласса). Имена классов должны быть не длиннее 16 символов и могут содержать только прописные и строчные буквы английского алфавита, цифры и символы подчеркивания. Правила присвоения для системных классов Unclassified, Unmanaged и Shared определить нельзя.
Зарезервировано Это поле зарезервировано для будущих версий. Оно должно присутствовать и состоять из одного символа минус (-).
Пользователь Это поле должно содержать либо один символ минус (-), либо список имен пользователей (из указанных в файле /etc/passwd). Элементы списка разделяются запятыми (,). Если перед именем пользователя будет указан восклицательный знак (!), этот пользователь будет исключен из класса. Можно также указывать шаблоны имен пользователей в формате шаблонов оболочки Korn.
Группа Это поле должно содержать либо один символ минус (-), либо список групп (из указанных в файле /etc/group). Элементы списка разделяются запятыми (,). Если перед именем группы будет указан восклицательный знак (!), эта группа будет исключена из класса. Можно также указывать шаблоны имен групп в формате шаблонов оболочки Korn.
Приложение Это поле должно содержать либо один символ минус (-), либо список имен исполняемых файлов. Описываемый класс будет присваиваться всем процессам, выполняющим один из перечисленных файлов. Имя исполняемого файла может содержать либо полный путь, либо шаблон пути в формате оболочки Korn. Элементы списка разделяются запятыми (,). Если перед именем файла будет указан восклицательный знак (!), этот файл будет исключен из класса.
Тип Это поле должно содержать либо один символ минус (-), либо список атрибутов процесса. Возможные атрибуты:
  • 32bit: 32-разрядный процесс
  • 64bit: 64-разрядный процесс
  • plock: процесс вызвал системную функцию plock для закрепления памяти
  • fixed: приоритет процесса фиксирован (SCHED_FIFO или SCHED_RR)
Значение этого поля может содержать несколько атрибутов с помощью символа плюс (+). Атрибуты 32bit и 64bit нельзя указывать одновременно.
Тег Это поле должно содержать либо один символ минус (-), либо список тегов приложения. Тег приложения - это строка длиной до 30 символов. Элементы списка разделяются запятыми (,).

Пример правил присвоения

Ниже приведен пример файла присвоения верхнего уровня rules для конфигурации Config (файл /etc/wlm/Config/rules):

* Этот файл содержит правила, применяемые WLM
* для присвоения процессов суперклассам
*
* класс resvd пользователь группа приложение       тип тег
db1      -      -       -    /usr/bin/oracle*      _DB1
db2      -      -       -    /usr/bin/oracle*      _DB2
devlt    -      -      dev        -            -    -
VPs      -   bob,ted    -         -            -    -
acctg    -      -     acct*       -            -    -
System   -    root      -         -            -    -
Default  -      -       -         -            -    -

Ниже приведен пример файла rules для суперкласса devlt в файле /etc/wlm/Config/devlt/rules:

* Этот файл содержит правила, применяемые WLM
* для присвоения процессов подклассам
* суперкласса devlt
*
* класс resvd пользователь группа приложение         тип         тег
hackers   -    jim,liz     -       -                 -          -
hogs      -       -        -       -             64bit+plock    -
editors   -     !sue       -   /bin/vi,/bin/emacs    -          -
build     -       -        -   /bin/make,/bin/cc     -          -
Default   -       -        -       -                 -          -

Примечание: Строки файла rules, начинающиеся со звездочки (*) - это комментарии.

Автоматическое присвоение

При создании процесса вызовом fork ему присваивается класс родительского процесса. Другой класс может быть присвоен в случае, когда процесс выполняет системный вызов, который может изменить один из атрибутов классификации процессов, например: exec, setuid (и связанные вызовы), setgid (и связанные вызовы), setpri и plock.

Примечание: При некоторых условиях повторное присвоение процессов не выполняется.

Сначала WLM проверяет файл rules верхнего уровня для определения суперкласса нового процесса. Для каждого правила из этого файла WLM сравнивает указанные в нем значения с текущими значениями атрибутов процесса. Правила просматриваются в том порядке, в котором они указаны в файле. Если правило соответствует процессу, этому процессу будет присвоен суперкласс, указанный в первом поле правила. Затем таким же способом будет просмотрен файл правил суперкласса для определения подкласса процесса.

Для того чтобы процесс соответствовал правилу, все его атрибуты должны совпадать со значениями, указанными в правиле. Ниже приведен список критериев, по которым определяется, соответствует ли атрибут значению поля из файла rules:

Как на уровне суперкласса, так и на уровне подкласса WLM просматривает правила в том порядке, в котором они перечислены в файле rules, и присваивает процессу класс первого подходящего правила. Порядок правил в файле крайне важен для правильной классификации, поэтому его необходимо учитывать при создании и изменении файла правил.

Ниже приведены примеры примеры применения файлов правил:

В приведенных выше примерах атрибут наследования всех классов был сброшен. В противном случае новым процессам был бы просто присвоен суперкласс и подкласс родительского процесса.


[ Страница назад | Страница вперед | Содержание | Индекс | Библиотека | Юридическая информация | Поиск ]