♦ NICE — показатель уступчивости. Процессы выполняются в режиме разделения времени, то есть время центрального процессора делится между готовыми к выполнению процессами с учетом их приоритета. Чем выше показатель уступчивости, тем ниже приоритет.
♦ Переменные окружения.
Каждый процесс порождается другим процессом, использующим для этого системный вызов /etc/inittab
), которые, в свою очередь, при участии пользователя порождают другие процессы.
В результате системного вызова
Может случиться и так, что процесс выполняет вызов
Рис. 3.3. Как размножаются процессы
Каждый процесс, завершившись, возвращает родительскому процессу какое-то значение, называемое кодом завершения или кодом возврата. По соглашению разработчиков, нулевой код возврата означает успешное завершение, а ненулевые — разнообразные ошибки. Процесс-родитель может приостановить свое выполнение до завершения потомка и выполнить разные действия в зависимости от возвращенного дочерним процессом значения, а может и не делать этого.
Моментальный снимок протекающих в системе процессов можно посмотреть с помощью команды ps (ps --help
. Вот некоторые полезные из них:
♦ -p <список_PID>: только процессы с указанными ID;
♦ -u <список_USERID>: только запущенные указанными пользователями;
♦ -е: все процессы в системе;
♦ -f: полная форма вывода;
♦ -Н: вывод иерархии процессов в форме дерева.
Рис. 3.4. Фрагмент иерархии процессов
Представление о динамике процессов дает команда top. Она выводит список процессов, отсортированный по количеству запятой памяти или использованного процессорного времени, и обновляет его через указанные промежутки времени (по умолчанию через каждые 3 секунды).
Процессы делятся на три категории:
♦ Системные. Они порождаются ядром особым образом в процессе загрузки и выполняют системные функции (например, планирование процессов или смену страниц виртуальной памяти). Выполняемая ими программа берется не из исполняемого файла, а является частью ядра.
♦ Пользовательские. Как правило, они порождаются во время сеанса работы пользователя и связаны с терминалом. Если пользовательский процесс работает в интерактивном режиме, то он захватывает терминал в монопольное владение и, пока он не завершится, пользователь не имеет доступа к командной строке на этом терминале. Пользовательские процессы могут работать также в фоновом режиме, освободив командную строку.
♦ Демоны. Запускаются после инициализации ядра. Выполняются в фоновом режиме, не связаны ни с одним пользователем, обеспечивают работу различных служб (например, управление сетью). Главным демоном считается
Название «демон» (
3.3. Взаимодействие процессов
Из всех средств межпроцессного взаимодействия, которыми так богаты UNIX-подобные ОС, в этой главе мы рассмотрим только конвейеры и сигналы.
3.3.1. Конвейер (pipe)
В главе 2 вы познакомились с командой-фильтром more, вызываемой так:
< команда_выводящая_много_строк > | more
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии