Sunday, Feb 05th

Last update12:13:00 PM GMT

Вы находитесь на: FreeBSD Общая информация Группы процессов и сеансы

Группы процессов и сеансы

Процессы организованы в группы процессов. Группы процессов используются для управления доступом к терминалам и предоставления средств распределения сигналов по совокупностям связанных процессов. Процесс наследует свою группу процесса от своего родительского процесса. Ядром предоставляются механизмы для изменения процессами своих групп процессов или групп процессов своих потомков. Создание новой группы процессов просто; значением новой группы процессов обычно является идентификатор создающего процесса.

Группу процессов иногда называют заданием (job) и управляют с помощью высокоуровневого системного программного обеспечения, такого, как оболочка. Обычной разновидностью задания, созданного оболочкой, является конвейер (pipeline) из нескольких процессов, соединенных каналами таким образом, что выход первого процесса является входом второго, выход второго является входом третьего и т. д. Оболочка создает такое задание, создавая с помощью fork процесс для каждой ступени конвейера, помещая затем все эти процессы в отдельную группу процессов.

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

У терминала (или чаще программной эмуляции терминала, называемой псевдотерминалом) есть присвоенный ему идентификатор группы процесса. Обычно в качестве этого идентификатора берется идентификатор группы процессов, связанной с терминалом. Управляющая заданиями оболочка может создать несколько групп процессов, связанных с одним и тем же терминалом; терминал является управляющим терминалом для каждого процесса в этих группах. Процесс может читать из дескриптора своего управляющего терминала, только если идентификатор группы процессов терминала совпадает с идентификатором группы этого процесса. Если идентификаторы не совпадают, процесс будет заблокирован, если он попытается прочесть с терминала. Изменяя идентификатор группы процессов терминала, оболочка может разделять (arbitrate) терминал между несколькими различными заданиями. Это разделение называется управлением заданиями (job control).

Так же как набор связанных процессов может быть собран в группу процессов, набор групп процессов может быть собран в сеанс (session). Главным применением для сеансов является создание изолированной среды для процессов демонов и их потомков и связывание воедино оболочки регистрации пользователя и заданий, которые эта оболочка порождает.


Похожие:
Еще по теме:
Советуем прочитать:

Сейчас 24 гостей онлайн

Реклама на сайте: