приоритет, чем процесс-монополист. В средах UNIX/Linux для уровней приоритетов предусмотрен диапазон от -20 до 19. Чем выше значение уровня, тем ниже приоритет процесса.
При назначении приоритета пользовательскому процессу следует учитывать, на что именно этот процесс тратит большую часть времени. Одни процессы отличаются повышенной интенсивностью использования процессорного времени (они используют процессор в течение всего кванта процессорного времени). У других же большая часть времени уходит на ожидание выполнения операций ввода-вывода или наступления некоторых иных событий. Если такой процесс готов к использованию процессора, ему следует немедленно предоставить процессор, чтобы он мог сделать следующий запрос к устройствам ввода-вывода. Процессы, которые взаимодействуют между собой, могут требовать довольно высокий приоритет, чтобы рассчитывать на приличное время реакции. Системные процессы имеют более высокий приоритет, чем пользовательские.
Рис. 3.5. Многоуровневая приоритетная очередь (массив распределения), каждый элемент которой указывает на очередь готовых процессов с одинаковым уровнем приоритета
Стратегия планирования
Процессы размещаются в приоритетных очередях в соответствии со стратегией Планирования. В системах UNIX/Linux используются две стратегии планирования: FIFO (сокр. от
Рис.3.6. Схемы действия FIFO- и RR-стратегий планирования При использовании стратегии FIFO процессы назначаются процессору в соответствии со временем поступления в очередь. При использовании стратегии RR процессы назначаются процессору по правилам FIFO-стратегии, но с одним отличием: после истечения кванта времени процесс помещается не в начало, а в конец своей приоритетной очереди
В соответствии с циклической стратегией планирования (RR) все процессы счи таются равноправными (см. рис. 3.6,
Использование утилиты ps
Утилита ps генерирует отчет, который содержит статистические данные о выполнении текущих процессов. Эту информацию можно использовать для контроля за их состоянием. В табл. 3.8 перечислены общие заголовки и описаны выходные данные, генерируемые утилитой ps для сред Solaris/Linux. В любой многопроцессорной среде утилита ps успешно применяется для мониторинга состояния процессов, степени использования ЦП и памяти, приоритетов и времени запуска текущих процессов. Ниже приведены командные опции, которые позволяют управлять информацией, содержащейся в отчете (с их помощью можно уточнить, что именно и какие процессы вас интересуют). В среде Solaris по умолчанию (без командных опций) отображается информация о процессах с тем же идентификатором эффективного пользователя и управляющим терминалом инициатора вызова. В среде Linux по умолчанию отображается информация о процессах, id пользователя которых совпадает с id инициатора запуска. В обеих средах в этом случае отображаемая информация, ограниченная следующими составляющими: PID, TTY, TIME и COMMAND. Перечислим опции, которые позволяют получить информацию о нужных процессах.
-t term Список процессов, связанных с терминалом, заданным значением term
-e Все текущие процессы
-a (Linux) Все процессы с терминалом tty за исключением лидеров сеанса
(Solaris) Большинство часто запрашиваемых процессов за исключением лидеров группы и процессов, не связанных с терминалом
-d Все текущие процессы за исключением лидеров сеанса
T (Linux) Все процессы, связанные с данным терминалом
a (Linux) Все процессы, включая процессы остальных пользователей
r (Linux) Только выполняющиеся процессы
Таблица 3 .2. Общие заголовки, используемые для утилиты ps в средах Solaris/Linux
USER, UID Пользовательское имя владельца процесса
PID ID процесса
PPID ID родительского процесса
PGID ID лидирующего процесса в группе
SlD ID лидера сеанса
%CPU Коэффициент использования времени ЦП (в процентах) процессом
в течение последней минуты
RSS Объем реального ОЗУ, занимаемый процессом в данный момент (в Кбайт)
%MEM Коэффициент использования реального ОЗУ процессом в течение последней минуты
SZ Размер виртуальной памяти, занимаемой данными и стеком процесса (в Кбайт или страницах)
WCHAN Адрес события, в ожидании которого процесс пребывает в состоянии ожидания
COMMAND Имя команды и аргументы
CMD
TT, TTY Управляющий терминал процесса
S, STAT Текущее состояние процесса
TIME Общее время ЦП, используемое процессом (HH:MM:SS)
STIME, START Время или дата старта процесса
NI Фактор уступчивости процесса
PRI Приоритет процесса
С, CP Коэффициент краткосрочного использования ЦП для вычисления планировщиком значения PRI
ADDR Адрес памяти, выделенной процессу
LWP ID потока