Что такое PID или как мониторить и завершать запущенные процессы.
Время чтения: 5 мин
Открыть/закрыть навигацию по статье
- Управление процессами
- Приоритет процесса
Контрибьюторы:
- Егор Левченко ,
- Сергей Пархоменко
Обновлено 8 марта 2022
В этой статье мы говорим про управление процессами в многопоточных операционных системах. Если вам не очень понятно, зачем это нужно, прочитайте статью «Многозадачность и процессы»
Управление процессами
Скопировать ссылку на секцию «Управление процессами» Скопировано
В Windows управление процессами сводится к диспетчеру задач, который имеет графический интерфейс пользователя. С помощью этой утилиты можно запускать и останавливать разные процессы. В Unix-подобных операционных системах, которые являются изначально многопользовательскими, предусмотрены довольно развитые механизмы управления процессами.
Все процессы в Unix-подобных операционных системах делятся на фоновые (background) и приоритетные (foreground). В статье «Интерфейс командной строки» описано использование терминала для запуска приоритетных процессов. Приоритетный режим означает, что терминал будет ожидать завершения процесса и не будет доступен для ввода новых команд до его завершения.
PID Controller Explained
Иногда удобнее использовать фоновый процесс. Например, если мы хотим все время посылать запросы сетевому устройству с помощью команды ping , как это было описано в статье «Работа с сетью» (ключ -i устанавливает количество секунд между запросами к серверу):
ping 8.8.8.8 -i 15 [1] ping 8.8.8.8 -i 15 [1] PID> Скопировать Скопировано Не удалось скопировать
Символ P I D>(от Process Identifier) — идентификационный номер процесса. Зная его, можно отслеживать состояние процесса, подавать ему сигналы или управлять им напрямую средствами операционной системы. [1 ] — обозначает номер задания (фонового процесса пользователя, который запущен из данного терминала).
Если запустить другой процесс, например, посылать запросы к другому сетевому устройству, то вы увидите, что номер сменился:
ping 8.8.4.4 -i 10 [2] ping 8.8.4.4 -i 10 [2] PID> Скопировать Скопировано Не удалось скопировать
Изменится также и PID. Вы можете посмотреть список задач, для этого используется команда:
jobs> [1] — running ping 8.8.8.8> [2] + running ping 8.8.4.4 jobs > [1] — running ping 8.8.8.8 > [2] + running ping 8.8.4.4 Скопировать Скопировано Не удалось скопировать
Чтобы перевести процесс из фонового в приоритетный режим, можно использовать команду fg . Если выполнить её без аргументов, то она переведёт последний фоновый процесс в приоритетный режим. В нашем случае это будет процесс под номером [2 ] .
Запустим процесс в приоритетном режиме и нажмём сочетание клавиш Ctrl Z :
ping 8.8.8.8 -i 15^Z> [1] + 22495 suspended ping 8.8.8.8 -i 15 ping 8.8.8.8 -i 15 ^Z > [1] + 22495 suspended ping 8.8.8.8 -i 15 Скопировать Скопировано Не удалось скопировать
Вызовем список процессов с помощью jobs :
О PID регуляторе простым языком (что такое ПИДы)
jobs> [1] + suspended ping 8.8.8.8 -i 15 jobs > [1] + suspended ping 8.8.8.8 -i 15 Скопировать Скопировано Не удалось скопировать
suspended означает, что процесс остановлен и стоит на паузе. Его можно продолжить командой bg и перевести в фоновый режим:
bg> [1] + 22495 continued ping 8.8.8.8 -i 15> 64 bytes from 8.8.8.8: icmp_seq=1 ttl=108 time=28.854 ms jobs> [1] + running ping 8.8.8.8 -i 15 bg > [1] + 22495 continued ping 8.8.8.8 -i 15 > 64 bytes from 8.8.8.8: icmp_seq=1 ttl=108 time=28.854 ms jobs > [1] + running ping 8.8.8.8 -i 15 Скопировать Скопировано Не удалось скопировать
Приоритет процесса
Скопировать ссылку на секцию «Приоритет процесса» Скопировано
Иногда случается, что запущенный процесс съедает слишком много ресурсов CPU, и тогда его начинает не хватать для обработки других, не менее, а иногда даже более важных процессов. В этом случае можно использовать команды nice и renice для изменения приоритета.
Приоритет процесса, обычно указывается в диапазоне от -20 до 20. Чем меньше значение (ниже нуля) тем выше приоритет.
Например, нам нужно заархивировать большой каталог на сервере, где запущена база данных. Чтобы процесс архивации не мешал работе БД, можно запустить его с наименьшим приоритетом:
nice -n 20 tar -czvf /path/to_save_archive.tar.gz /path/to_big_folder nice -n 20 tar -czvf /path/to_save_archive.tar.gz /path/to_big_folder Скопировать Скопировано Не удалось скопировать
Чтобы изменить приоритет уже запущенной задачи, используйте команду renice :
renice -n 20 -p PID renice -n 20 -p PID Скопировать Скопировано Не удалось скопировать
Мониторинг процессов
Скопировать ссылку на секцию «Мониторинг процессов» Скопировано
Есть инструменты и для мониторинга процессов, запущенных в операционной системе. Эти инструменты позволяют отслеживать потребляемые ресурсы (использование процессора, оперативной памяти, дискового пространства и так далее) и взаимодействие с другими процессами и пользователями.
Можно просмотреть в реальном времени нагрузку на процессор, состояние оперативной памяти, состояние своп-файла и все процессы, запущенные не только из текущего терминала:
top top Скопировать Скопировано Не удалось скопировать
Утилита top используется для мониторинга состояния операционной системы. С помощью нажатия клавиши Q на клавиатуре можно выйти из top , а нажатие клавиши ? позволяет вывести справку по использованию этой утилиты. На операционных системах семейства Linux чаще пользуются утилитой htop , которая имеет более простой интерфейс.
Чтобы получить полный отчёт именно о процессах используют утилиту ps . Название утилиты образовалось от «Process Status». Выполнение этой команды в терминале приведёт к выводу списка терминалов. А если добавить ключ — A , вы получите список всех текущих процессов в операционной системе:
ps -A ps -A Скопировать Скопировано Не удалось скопировать
Ключ -f используется, чтобы информация о процессах была более детализирована:
ps -Af ps -Af Скопировать Скопировано Не удалось скопировать
Команда kill используется для остановке процесса:
kill kill PID> Скопировать Скопировано Не удалось скопировать
PID — это номер (идентификатор) процесса, который можно получить помощью утилиты ps или top . Номер процесса будет указан в левой колонке таблицы.
Остановка процесса произойдёт, если в коде программы процесса описан ответ на сигнал SIGKILL . Но процесс можно завершить принудительно командой:
sudo kill -9 sudo kill -9 PID> Скопировать Скопировано Не удалось скопировать
Обычно операционная система попросит выполнить эту команду с директивой sudo .
Источник: doka.guide
Что такое PID? Или на первый-второй рассчитайся!
Управление компьютером кажется простым занятием, но так ли это? Километры машинного кода, организация взаимодействия программ, ресурсов и пользователя. Важно не только создать жизнеспособную среду, но и придать ей возможность дальнейшего развития и оптимизации. Разработчикам же остается использовать доступный инструментарий.
Функции операционной системы
Прежде чем ответить на вопрос, что такое pid, важно понять функциональные возможности, от реализации которых зависят и функции идентификатора:
- работа с данными, запуск и остановка ПО;
- взаимодействие с устройствами ввода/вывода;
- распределение и организация оперативной памяти;
- обеспечение доступа к энергозависимым носителям;
- оптимизация ресурсов машины;
- обеспечение безопасного доступа каждого объекта к ресурсам машины;
- надежные вычисления;
- защита данных от вредоносного ПО и намеренного взлома.
Базовые понятия
Дальнейшее повествование будет базироваться на приведенных ниже понятиях. Пренебрегая этим пунктом, будет сложно понять, что такое pid.
Процесс – это любой объект, использующий ресурсы системы, согласно стандарту ISO. 9000:2000 – совокупность операций, взаимодействие которых преобразует входящие данные в исходящие.
Любой процесс характеризуется несколькими параметрами:
- машинным кодом;
- исполняемым кодом;
- зарезервированным фрагментом памяти (иногда – виртуальной);
- атрибутами безопасности;
- входными/выходными данными;
- стеком вызова, который следит за активностью каждого объекта;
- так называемой «кучей», хранящей промежуточные результаты операций и вычислений.
Процесс создается операционной системой с момента запуска или при получении соответствующего запроса. Завершение происходит путем сбора статистической информации с последующим удалением и взаимодействием с очередью планирования и выделением ресурсов. С теоретической базой покончено, пора дать ответ на важнейший вопрос, что такое pid.
Понятие идентификатора
Каждая запущенная программа идентифицируется или распознается с помощью уникального номера с меткой. Таким образом система взаимодействует с каждым процессом.
Чтобы поближе познакомиться с указателем, можно пойти двумя путями:
- Вызываем диспетчер задач правой кнопкой мыши на панели задач. Далее, переходим во вкладку «Процессы», выбираем меню «Вид». Находим пункт «Выбрать столбцы», в открывшемся диалоговом окне ставим галочку для PID. В командной строке прописываем tasklist.
- Для Unix-систем верна и другая тактика. Здесь рекомендуется использовать команду ps. С ее помощью можно найти идентификатор для конкретной программы.
Разрешается использование уникального номера для поиска потенциально вредоносного ПО. Дело в том, что вирусы часто маскируются под «благопристойные» файлы, указатель же дает четкое представление о безопасности рассматриваемого объекта. Нужно только уметь распознать, «что такое pid» из кодового потока системных и менее значительных процессов.
Современные языки программирования позволяют «вычленить» из обычного номера информацию об интересующем объекте. На программном уровне можно разработать код, напрямую взаимодействующий с pid. Что это дает? Ценой пары кликов удастся вывести полный путь к интересующему файлу или программе. По сути, это позволит не только понять и оптимизировать работу системы (количество необходимых ресурсов), но и защитить машину от потенциальной угрозы.
Чтобы не запутаться
В электронике существует и pid-регулятор – электронное устройство, использующееся в системах автоматического управления. Позволяет не только формировать сигнал управления, но и влиять на показатели точности и качества переходного процесса.
Многие пользователи путают два понятия, но они абсолютно разные. После прочтения статьи окончательно должен иссякнуть вопрос, «что такое pid процесса», так как приведенные сведения дают полное описание и возможности указателя. Важно понимать, что функционирование «операционки» напрямую зависит от каждого винтика фундаментальной системы. Сегодня был рассмотрена лишь частичка на микроуровне компьютера как машины.
Источник: businessman.ru