Администрирование локальных сетей
Информация - Компьютеры, программирование
Другие материалы по предмету Компьютеры, программирование
л fork-нут.
$ ps -f
UID PID PPID C STIME TTY TIME COMMAND
torry 3286 2016 9 16:19:03 ttyp1 0:00 ps -f
torry 25705 25649 0 08:47:58 ttyp1 0:02 -ksh /home/torry [ksh]
torry 2016 25705 0 15:13:02 ttyp1 0:24 vi processes.tag
Опция e приводит к выдаче информации о всех активных процессах в системе. Опция -l (long) дополнительно показывает состояние процесса (S), параметр nice (NI), адрес процесса в памяти (ADDR), приоритет (PRI), и размер в блоках (SZ) образа процесса.
$ ps -l
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME COMD
1 R 513 11009 7793 5 179 20 d6e200 16 ttyu4 0:00 ps
1 S 0 7792 133 15 154 20 e06100 13 214fb0 ttyu4 0:00 rlogind
1 S 513 7793 7792 16 168 20 df5a80 52 7ffe6000 ttyu4 0:00 csh
Относительные приоритеты процессов -- nice и renice
Все процессы имеют приоритет устанавливаемый на основе таких факторов как прльзователь запустивший процесс и в каком окружении запущен процесс: с разделением времени или в реального времени. Комманда nice может быть использована для запуска процесса с более низким чем по умолчанию приоритетом. nice не уменьшает приоритетов уже запущеных процессов.
Команда renice позволяет изменять приоритеты уже запущеных процессов.
Программы для мониторинга производительности системы
top
Периодически показывает информацию о процессах в системе в порядке убывания использования ресурсов. Суммирует состояние системы (среднюю загрузку), использование виртуальной памяти. В отличии от psкоторый дает лишь снимок текущего состояния системы top выдает информацию с периодичностью. На мультипроцессорных системах, top выдает состояние каждого процессора раздельно.
sar
Выдает суммированую статистику о системной активности включая загрузку CPU, активность буферов, количество опреций ввода-вывода, терминальную активность, число системных, активность свопинга и п.р.
vmstat
Выдает информацию об использовании виртуальной памяти и активность CPU.
iostat
Выдает информацию об дисковой активности ввода-вывода, терминальной активности статистику CPU.
Управление процессами и ядро системы
Процесс может иметь доступ на чтение и запись к своему сегменту данных и стеку но не к другим процессам (за исключением сегментов разделяемой памяти). Процесс обменивается данными с другими процессами либо через системные вызовы либо через разделяемую память.
Приоритеты процесса
Все процессы в HP-UX могут находится в двух режимах: пользовательский режим и режим ядра. Когда процесс переключается в режим ядра (например при системном вызове) он исполняет код ядра и пользуется стеком ядра. В зависимости от приоритета и наличия других процессов процесса планировцик процессов может выделять ему больше или меньше квантов процессорного времени.
Приоритеты можно разделить на две части: диапазон POSIX standard приоритетов и диапазхон HP-UXприоритетов. POSIX standard приоритеты всегда выше чем все другие HP-UX приоритеты. Процесс который имеет меньшее числовое значение приоритета имеет преимущество при выполнении над процессом с большим цифровым значением приоритета. Следующий список выводит по категориям диапазоны приоритетов от большого к маленькому:
1. POSIX standard приоритеты (системный параметр)
POSIX standard приоритеты, известные как RTSCHED приоритеты, являются самыми
высокими приоритетами. Количество RTSCHED приоритетов есть системный параметр
(rtsched_numpri), устанавливаемый между 32 и 512 (default 32).
2. приоритеты реального времени (0-127)
Зарезервированы для процессов SCHED_RTPRIO стартующих с системного вызова
rtprio()
3. Системные приоритеты (128-177)
Используются системными процессами.
4. Пользовательские приоритеты (178-255)
Устанавливаются пользовательским процессам.
Ядро может изменять приоритеты процессов разделения времени (128-255) но не процессов реального времени (0-127).
Состояние процесса
В процессе своей жизни процесс может менять несколько раз свое состояние.Процессы размиещаются в очередях выполнения планировщика процесса в соответствии с их состоянием как определено в файле /usr/include/sys/proc.h . События, такие как получение сигнала могут переводить процесс из одного состояния в другое.
Процесс может находится в одном из следующих состояний:
* idle процесс простаивает в очереди выполнения планировщика.
* run -процесс выполняется в очереди планировщика либо в пользовательском режиме либо в режиме ядра.
* stopped процесс остановлен сигналом либо процессом родителем.
* sleep процесс не выполняется пока он находится в спящем состоянии в очереди
(например он ждет окончания операции ввода-вывода)
* zombie процесс уже фактически не существует, но так как он оставил для родителя
некоторые непрочитанные данные о своем выполнении он не может осуществить завершение.
Когда программа запускает прооцесс, ядро выделяет для него сроку из своей таблицы процессов и процесс находится в idle состоянии. Затем после получения ресурсови попадания в очередь он находится в состоянии run. Если процесс получкает сигнал SIGSTOP или его переводлят в режи трассировки, он переходит в stop состояние. После получения сигнала SIGCONT signal, процесс возвращается в состояние run. Если запущеный процесс ждет освобождение какихто ре