3.2. Жизнь процесса

3.2. Жизнь процесса

Таблица процессов

С точки зрения ядра процесс представляет собой запись в таблице процессов. Эта запись содержит данные, существующие в течение всего времени жизни процесса, и сведения о его состоянии. Размер таблицы процессов позволяет запускать несколько сотен процессов одновременно. Другая важная информация о процессе — например, таблица всех открытых процессом файлов — хранится в его адресном пространстве. Запись в таблице процессов и пространство процесса вместе составляют контекст, или окружение, процесса. В него входят:

PID — идентификатор процесса. Он принудительно назначается планировщиком при запуске процесса.

PPID — идентификатор родительского процесса (о порождении процессов — дальше в этом же параграфе).

TTY — имя управляющего терминала (терминал, с которого запущен процесс).

WD — текущий каталог процесса, от которого отсчитываются относительные пути.

RID, RGID — реальные ID и групповой ID пользователя, запустившего процесс.

EUID, EGID — эффективные ID и GID: см. п.2.1.4.8.

NICE — показатель уступчивости. Процессы выполняются в режиме разделения времени, то есть время центрального процессора делится между готовыми к выполнению процессами с учетом их приоритета. Чем выше показатель уступчивости, тем ниже приоритет.

Переменные окружения.

Системные вызовы fork() и exec() или как размножаются процессы

Каждый процесс порождается другим процессом, использующим для этого системный вызов fork(). Таким образом, структура процессов, подобно файловой системе, древовидна. Корнем этого дерева служит init — процесс инициализации системы. Он запускается ядром первым, получает идентификатор 1 и порождает еще несколько процессов (сколько и каких, можно узнать из его конфигурационного файла /etc/inittab), которые, в свою очередь, при участии пользователя порождают другие процессы.

В результате системного вызова fork() родительский процесс полностью копирует свое окружение, включая адресное пространство, в дочерний, так что в момент рождения дочерний процесс отличается только своим ID. Потом дочерний процесс с помощью вызова exec() загружает в свое адресное пространство какой-нибудь исполняемый файл и начинает исполнять содержащуюся в нем программу.

Может случиться и так, что процесс выполняет вызов exec() без fork(): тогда не возникает нового процесса, но в старом начинает выполняться другая программа. Например, программа login выполняется с привилегиями суперпользователя, поскольку ей нужен доступ к файлу паролей. Проверив пароль, она устанавливает себе права зарегистрировавшегося пользователя и выполняет вызов exec(), замещая свой код кодом командной оболочки. После этого из командной оболочки изменить свои привилегии обратно на root нельзя, потому что кода программы login в текущем процессе уже нет.

Рис. 3.3. Как размножаются процессы

Каждый процесс, завершившись, возвращает родительскому процессу какое-то значение, называемое кодом завершения или кодом возврата. По соглашению разработчиков, нулевой код возврата означает успешное завершение, а ненулевые — разнообразные ошибки. Процесс-родитель может приостановить свое выполнение до завершения потомка и выполнить разные действия в зависимости от возвращенного дочерним процессом значения, а может и не делать этого.

Снимок протекающих в системе процессов — команда ps

Моментальный снимок протекающих в системе процессов можно посмотреть с помощью команды ps (process status). Без аргументов она покажет список процессов, связанных с текущей консолью (или виртуальным терминалом). Список возможных ключей команды можно, как обычно, получить по команде ps --help. Вот некоторые полезные из них:

-p <список_PID>: только процессы с указанными ID;

-u <список_USERID>: только запущенные указанными пользователями;

: все процессы в системе;

-f: полная форма вывода;

: вывод иерархии процессов в форме дерева.

Рис. 3.4. Фрагмент иерархии процессов

Динамика процессов — команда top

Представление о динамике процессов дает команда top. Она выводит список процессов, отсортированный по количеству запятой памяти или использованного процессорного времени, и обновляет его через указанные промежутки времени (по умолчанию через каждые 3 секунды).

Категории процессов

Процессы делятся на три категории:

Системные. Они порождаются ядром особым образом в процессе загрузки и выполняют системные функции (например, планирование процессов или смену страниц виртуальной памяти). Выполняемая ими программа берется не из исполняемого файла, а является частью ядра.

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

Демоны. Запускаются после инициализации ядра. Выполняются в фоновом режиме, не связаны ни с одним пользователем, обеспечивают работу различных служб (например, управление сетью). Главным демоном считается init — процесс инициализации системы.

Примечание

Название «демон» (daemon) не имеет ничего общего с потусторонними существами: это просто сокращение от Disk And Execution MONitor.

Данный текст является ознакомительным фрагментом.



Поделитесь на страничке

Похожие главы из других книг:

Жизнь до блога

Из книги автора

Жизнь до блога Сфера влияния и сфера забот В «Семи навыках высокоэффективных людей» Стивен Кови вводит понятия «круг влияния» и «круг забот». Если рассматривать их в трехмерном мире, то круги становятся сферами. Чтобы блогосфера не превратилась для вас в сферу забот, вы


Жизнь с блогом

Из книги автора

Жизнь с блогом Важное и несрочное дело Блогородная репутация Метки: репутацияКогда компания обычно задумывается над своей репутацией? Как правило, когда уже нет времени на ее исправление: в кризисной ситуации, или при усилившейся конкуренции, или перед изменением


Жизнь

Из книги автора

Жизнь В зависимости от правил администрирования домена первого уровня возможна регистрация имен на различные периоды времени. Например, в домене COM можно регистрировать имена на срок от одного года до десяти лет. Обычно в течение первых 30–60 дней после регистрации смена


7.3.2. Концепции, касающиеся основных средств производственного процесса организации Основные средства производственного процесса организации (ППО)

Из книги автора

7.3.2. Концепции, касающиеся основных средств производственного процесса организации Основные средства производственного процесса организации (ППО) Организация устанавливает и сопровождает набор основных средств производственного процесса, как показано на рис. 4.1. К


Игра" Жизнь"

Из книги автора

Игра" Жизнь" Исходный файл: gameoflife.fla Игра "Жизнь" известна как результат серьезных разработок в области искусственного интеллекта и одновременно как популярная игра. Она была изобретена математиком Джоном Конвэйем и приобрела известность благодаря опубликованной в 1970


Жизнь насекомых

Из книги автора

Жизнь насекомых Вряд ли в далеких сороковых годах инженеры, доставшие из чрева компьютера Mark II виновницу замыкания - крохотную мошку, могли предвидеть, какая судьба уготована брошенному ими мимоходом словечку «bug». В наши дни, когда не в меру расплодившиеся компьютерные


«Жизнь» в Интернете

Из книги автора

«Жизнь» в Интернете Билл Гейтс и Рей Оззи (новый технический директор Microsoft) обратились к сотрудникам с призывом, практически повторяющим строки нашей известной песни: «Вставай, страна огромная, вставай на смертный бой:». Все на приступ Интернета. Большая Игра в


Жизнь без прокладки

Из книги автора

Жизнь без прокладки Автор: Алекс ЭкслерБольшинство домашних пользователей компьютера в какой-то момент вдруг выясняют, что в их квартире - в которой, казалось бы, проложены все мыслимые и немыслимые провода, - не хватает одного-единственного, но очень важного проводочка -


Утопия и жизнь

Из книги автора

Утопия и жизнь Автор: Киви БердЖурналисты английской газеты Daily Mail провели любопытное исследование нынешних масштабов государственной слежки за населением. Для максимальной выразительности, вероятно, в качестве объекта анализа была выбрана квартира Джорджа Оруэлла на


Наука и жизнь

Из книги автора

Наука и жизнь Тибетский горючий лёд обогреет Китай Михаил Карпов После такого заголовка сразу же представляются огромные грузовики, гружёные льдом и снующие повсюду предприимчивые китайцы. На самом деле, всё прозаичнее: китайские власти планируют начать разработку


Наука и жизнь

Из книги автора

Наука и жизнь "Великое объединение" для нейтронных звезд Сергей Попов (ГАИШ МГУ) Опубликовано 12 мая 2010 года В современной физике высоких энергий есть такое важное и красивое понятие, как «Великое объединение». Это та самая «теория всего» или


Лучшая жизнь в трехмерном онлайне: Жизнь в метаверсе как часть «просто жизни»

Из книги автора

Лучшая жизнь в трехмерном онлайне: Жизнь в метаверсе как часть «просто жизни» Автор: Анатолий ЛевенчукЯ не буду даже обсуждать многопользовательские онлайн-игры — где есть понятие квеста, где есть геймплей. Я буду обсуждать метаверсы — многопользовательские