Jump to content

Группа процессов

В POSIX -совместимой операционной системе группа процессов обозначает совокупность одного или нескольких процессов . [1] Помимо прочего, группа процессов используется для управления распространением сигнала ;когда сигнал направляется группе процессов, сигнал доставляется каждому процессу, который является членом группы. [2]

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

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

Приложения

[ редактировать ]

Распределение сигналов по группам процессов формирует основу управления заданиями , используемого программами оболочки .Драйвер устройства TTY включает в себя понятие группы процессов переднего плана , в которую он отправляет сигналы, генерируемые прерываниями клавиатуры , в частности SIGINT («прерывание», Control+ C), SIGTSTP («конечная остановка», Control+ Z) и SIGQUIT («выход», Control+ \).Он также отправляет сигналы SIGTTIN и SIGTTOU всем процессам, которые пытаются выполнить чтение или запись на терминал и которые не входят в группу процессов переднего плана.Оболочка, в свою очередь, разделяет создаваемые ею командные конвейеры на группы процессов и контролирует, какая группа процессов является группой процессов переднего плана своего управляющего терминала , таким образом определяя, какие процессы (и, следовательно, какие командные конвейеры) могут выполнять ввод-вывод и с терминала в любой момент времени.

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

Если текстовый пользовательский интерфейс в Unix-подобной системе используется , сеансы используются для реализации сеансов входа в систему .Единственный процесс, лидер сеанса , взаимодействует с управляющим терминалом, чтобы гарантировать завершение всех программ, когда пользователь «обрывает» терминальное соединение.(Если лидер сеанса отсутствует, ожидается, что процессы в группе процессов переднего плана терминала будут обрабатывать зависания.)

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

Подробности

[ редактировать ]

Системный вызов setsid используется для создания нового сеанса, содержащего одну (новую) группу процессов, где текущий процесс является одновременно лидером сеанса и лидером группы процессов этой единственной группы процессов. [4] Группы процессов идентифицируются положительным целым числом, идентификатором группы процессов , который является идентификатором процесса, который является (или был) лидером группы процессов.Группы процессов не обязательно должны иметь лидеров, хотя они всегда начинаются с одного.Сеансы идентифицируются по идентификатору группы процессов лидера сеанса.POSIX запрещает изменение идентификатора группы процессов лидера сеанса.

Системный вызов setpgid используется для установки идентификатора группы процессов процесса, тем самым либо присоединяя процесс к существующей группе процессов, либо создавая новую группу процессов в сеансе процесса, при этом процесс становится лидером группы процессов вновь созданной группы. [5] POSIX запрещает повторное использование идентификатора процесса, если группа процессов с этим идентификатором все еще существует (т. е. когда лидер группы процессов вышел, но другие процессы в группе все еще существуют).Тем самым это гарантирует, что процессы не могут случайно стать лидерами группы процессов.

Системный вызов kill способен направлять сигналы как на отдельные процессы, так и на группы процессов. [2]

См. также

[ редактировать ]
  1. ^ IEEE и Открытая группа (2018). «3. Определения» . Базовые спецификации открытой группы, выпуск 7 . § 296 . Проверено 30 августа 2020 г. Набор процессов, который позволяет сигнализировать о связанных процессах.
  2. ^ Перейти обратно: а б kill – Справочник по системным интерфейсам, Единая спецификация UNIX , версия 4 от Открытой группы.
  3. ^ IEEE и Открытая группа (2018). «3. Определения» . Базовые спецификации открытой группы, выпуск 7 . § 343 . Проверено 30 августа 2020 г. Коллекция групп процессов [...]. Каждая группа процессов является участником сеанса.
  4. ^ setsid – Справочник по системным интерфейсам, Единая спецификация UNIX , версия 4 от Открытой группы.
  5. ^ setpgid – Справочник по системным интерфейсам, Единая спецификация UNIX , версия 4 от Открытой группы.
  6. ^ Карл-Бридж-Майкрософт. «Объекты заданий — приложения Win32» . docs.microsoft.com . Проверено 28 августа 2022 г.

Дальнейшее чтение

[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 590a670e96f1510e0a28b982fed65581__1679890620
URL1:https://arc.ask3.ru/arc/aa/59/81/590a670e96f1510e0a28b982fed65581.html
Заголовок, (Title) документа по адресу, URL1:
Process group - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)